Tempo de leitura: 4 minutos
Você solicitou um Ponto de Entrada para a rotina MATA410 (Pedido de Venda), focando na inclusão. Embora o ponto A410EXC trate da exclusão, o mais relevante para validação durante a inclusão é o MT410INC.
O MT410INC é o exit point ideal para implementar regras de negócio complexas que precisam ser verificadas antes que o Pedido de Venda seja efetivamente gravado nas tabelas SC5 e SC6.
🎯 O que é o Ponto de Entrada MT410INC?
O Ponto de Entrada MT410INC é uma validação pós-digitação de dados na rotina de Inclusão de Pedido de Venda (MATA410), no módulo SIGAFAT – Faturamento.
Ele é executado após o usuário preencher todos os campos, mas antes do registro ser gravado no banco de dados. Sua principal função é permitir que o desenvolvedor ADVPL bloqueie a gravação do pedido caso alguma regra de negócio customizada não seja atendida.
✨ Funcionalidade e Aplicações
O MT410INC deve retornar um valor lógico: .T. (Verdadeiro) para permitir a gravação do pedido, e .F. (Falso) para bloquear a inclusão.
| Aplicação Comum | Cenário de Uso |
| Bloqueio de Crédito | Verificar se o limite de crédito do cliente (SA1) será excedido pelo valor do novo pedido, independentemente da validação padrão. |
| Validação de Frete | Impedir a gravação se o tipo de frete for “CIF” e a transportadora (S4) estiver sem o campo de contato preenchido. |
| Integridade de Dados | Garantir que campos customizados (campos Z) obrigatórios nas tabelas SC5 ou SC6 estejam preenchidos corretamente. |
| Restrição de Combinações | Bloquear a inclusão de um produto (SB1) específico para uma condição de pagamento (SE4) ou cliente (SA1) específica. |
💻 Exemplo em ADVPL do Ponto de Entrada MT410INC
O Ponto de Entrada MT410INC não recebe parâmetros, mas quando é executado, o ambiente de trabalho está posicionado nas áreas temporárias das tabelas SC5 (cabeçalho) e SC6 (itens) do pedido que está sendo incluído.
Abaixo, um exemplo ADVPL que impede a inclusão do pedido se ele for superior a R$ 10.000,00 e a condição de pagamento utilizada for à vista (Exemplo: Código ‘001’).
//++
//|Programa | MT410INC |Autor |Adilio Costa |
//++
//|Descricao | Validação na inclusão do Pedido de Venda (MATA410)
|Data |03/11/2025 |
//++
//|Uso | Exemplo prático para blog ProtheusAdvpl |
//++
User Function MT410INC()
Local lRet := .T.
Local nVlTotal := SC5->C5_TOTAL
Local cCondPag := AllTrim(SC5->C5_CONDIC)
// A Work Area do SC5 já está posicionada com os dados da inclusão.
// Regra: Bloquear pedidos à vista (Ex: '001') acima de R$ 10.000,00
If cCondPag == "001" .And. nVlTotal > 10000.00
lRet := .F.
// Alerta impeditivo para o usuário
MsgStop("Pedidos à Vista não podem exceder R$ 10.000,00. Revise o valor ou a condição.", ;
"Validação MT410INC")
EndIf
// DICA: Você também pode validar os itens percorrendo a área temporária da SC6
// via GetNextAlias() ou utilizando o objeto de modelo se estiver em MVC.
Return lRet
Domine os Pontos de Entrada e o Backoffice
Para dominar este conceito em cenários de alta complexidade, como liberações de crédito automáticas, cálculos de impostos customizados e integrações com e-commerces, conheça o Portal ProtheusAdvpl. Lá, exploramos a fundo a arquitetura do Protheus e as melhores práticas para desenvolvedores seniores.
Cursos Recomendados para Programação e Backoffice:
Benefícios de Utilizar o MT410INC
- Governança Comercial: Aplique travas de preço, desconto e prazos que o padrão não cobre.
- Integridade Fiscal: Valide se campos customizados necessários para a NF-e estão preenchidos corretamente.
- Segurança: Evite a gravação de pedidos inconsistentes que gerariam retrabalho no faturamento.
Conclusão
O Ponto de Entrada MT410INC é uma ferramenta indispensável para elevar o nível de controle no módulo de Faturamento (SIGAFAT). Ao garantir que apenas pedidos válidos sejam gravados, você aumenta a eficiência operacional e reduz riscos financeiros. Dominar ADVPL Avançado é o que diferencia um programador comum de um consultor estratégico no mercado TOTVS.
Links de referência(s):