📌 PE MT46DTEN — Definir Data de Entrega no Documento de Saída e no Pedido de Vendas (MATA461 / MATA410)

🗓️ Data de publicação

09/02/2026


🎯 Objetivo

Permitir que o Ponto de Entrada MT46DTEN defina, via regra customizada, a Data de Entrega no momento de preparar o Documento de Saída, atuando tanto na rotina Documentos de Saída (MATA461) quanto no Pedido de Vendas (MATA410).


🧩 Ambiente

  • Produto: TOTVS Backoffice

  • Linha: Protheus

  • Módulo: Faturamento (SIGAFAT)

  • Rotinas impactadas:

    • MATA461 — Documentos de Saída

    • MATA410 — Pedido de Vendas

  • Compatibilidade: Protheus 12 (Brasil) — bases e sistemas operacionais: todos


🧠 Descrição técnica

O MT46DTEN() deve retornar uma data (Date) que será utilizada como Data de Entrega.
A customização pode identificar o contexto de execução (ex.: se a chamada vem do Pedido de Vendas ou do Documento de Saída) usando ProcName() e aplicar regras diferentes.

  • Assinatura esperada: MT46DTEN() -> DATA

  • Retorno: dDtEntrega (tipo Date)


🛠️ Exemplo de implementação (AdvPL)

#Include "Protheus.ch" #Include "Totvs.ch" User Function MT46DTEN() Local dDtEntrega := Ctod("//") // Identifica o contexto de execução Local lMata410 := ( ProcName(2) == "Ma410PvNfs" ) // Pedido de Vendas (MATA410) Local lMata461 := ( ProcName(2) == "Ma460Nota" ) // Documento de Saída (MATA461) If lMata410 // Exemplo: regra para quando a chamada vier do Pedido de Vendas dDtEntrega := Ctod("30/01/2026") EndIf If lMata461 // Exemplo: regra para quando a chamada ocorrer no Documento de Saída dDtEntrega := Ctod("30/12/2027") EndIf Return dDtEntrega

✅ Boas práticas de uso

  • Garanta que a data retornada seja válida e coerente com o processo (ex.: calendário de entrega, SLA, rota, transportadora).

  • Se a regra depender de dados do documento/pedido, busque as informações necessárias no contexto antes de montar o retorno.

  • Se não quiser forçar o preenchimento, retorne data vazia (Ctod("//")) para permitir o comportamento padrão do sistema.


❓ FAQ

1) Esse PE atua somente no Documento de Saída (MATA461)?
Não. Ele pode ser executado também no Pedido de Vendas (MATA410), conforme o fluxo de preparação do documento.

2) O que devo retornar no MT46DTEN?
Uma variável Date com a data desejada para Entrega. Ex.: Ctod("30/01/2026").

3) Como diferenciar se estou no Pedido de Vendas ou no Documento de Saída?
Uma abordagem comum é validar ProcName() e aplicar regras por contexto, como no exemplo.

4) Posso aplicar regras por TES/Cliente/Filial/Transportadora?
Sim. É um uso típico: validar informações do cenário e devolver a data conforme a regra do negócio.

5) Se eu retornar data vazia, o que acontece?
Em geral o sistema seguirá o comportamento padrão (não forçando a data), dependendo do fluxo e parametrizações do cliente.


👤 Autor

Fabrizio Augusto Ventavolo
Consultor Especialista TOTVS — Mastersiga Consultoria


Atualizado em 09/02/2026
Este artigo foi útil?  
Agradecemos sua avaliação.