Como funciona a lógica aplicada no exemplo

Identificando clientes do mesmo grupo empresarial

No exemplo apresentado, o desenvolvedor utiliza a variável MV_X_MSMCL para armazenar uma lista de clientes considerados parte do mesmo grupo econômico. Isso permite classificar automaticamente o tipo de documento financeiro com base no cliente responsável pela nota. Essa abordagem evita erros manuais e padroniza processos internos.

Ajustando o E1_TIPO dinamicamente

A variável MVNOTAFIS é a chave do processo. Alterar seu conteúdo dentro do ponto de entrada faz com que o Protheus utilize o código de tipo de documento indicado no momento de gerar o título. Dessa forma, clientes de um mesmo grupo podem ter um tipo diferenciado, enquanto os demais continuam seguindo o padrão da empresa.

Retorno mantendo o fluxo padrão

O ponto de entrada precisa devolver a data de condição para completar o processo de forma íntegra. O código mantém esse retorno padrão, garantindo que o comportamento original do sistema não seja impactado além do necessário.

Código completo utilizado no exemplo

O código abaixo é exatamente o mesmo disponível no conteúdo original, sem qualquer modificação. Ele aplica condicionalmente o tipo do título com base na identificação do cliente, utilizando M460COND como ponto de entrada.

#Include "TOTVS.ch"

/*/{Protheus.doc} User Function M460COND
Ponto de entrada para alterar a data que irá considerar para gerar as parcelas e vencimentos
@type  Function
@author Atilio
@since 16/06/2023
@see https://tdn.totvs.com/pages/viewpage.action?pageId=6784176
/*/

User Function M460COND()
    Local aArea     := FWGetArea()
    Local aAreaSC5  := SC5->(FWGetArea())
    Local dDataCond := ParamIXB[1] //Por padrão pega do SF2->F2_EMISSAO
    Local cCliMV    := SuperGetMV("MV_X_MSMCL", .F., "000001;") //Se for clientes que são do mesmo grupo de empresa

    //Se for clientes do mesmo CNPJ, muda o tipo para MSM (para lembrar que é do MESMO grupo)
    If Alltrim(SF2->F2_CLIENTE) $ cCliMV
        MVNOTAFIS := AvKey("MSM", "E1_TIPO")
    Else
        MVNOTAFIS := AvKey("NF",  "E1_TIPO")
    EndIf

    FWRestArea(aAreaSC5)
    FWRestArea(aArea)
Return dDataCond

Analisando o comportamento do código linha a linha

Preservação da área de trabalho

O uso de FWGetArea e FWRestArea garante que a execução do ponto de entrada não altere ou prejudique as áreas de trabalho em memória. Essa é uma prática indispensável quando manipulamos tabelas dentro de funções de sistema, principalmente em rotinas sensíveis como as do financeiro.

Uso da ParamIXB

ParamIXB pega como base a data de emissão da nota, garantindo que o comportamento padrão de geração de vencimentos seja mantido. Isso evita problemas com parcelas incorretas ou desvios de fluxo.

SuperGetMV como controle de lógica

Buscar a informação em uma MV torna o código mais flexível e permite que o usuário, via parametrização, ajuste quais clientes pertencem ao grupo sem modificar o fonte. Essa abordagem é preferível quando o cenário de negócio pode mudar com frequência.

Atribuição do tipo de documento

MVNOTAFIS recebe o valor gerado pelo AvKey, garantindo que o sistema identifique corretamente o tipo de documento E1_TIPO durante o processo financeiro. O método AvKey é usado para garantir que a chave seja convertida no formato esperado pelo Protheus.

Conclusão: quando vale a pena aplicar essa lógica

Essa solução é recomendada em cenários onde existe a necessidade de classificar automaticamente documentos financeiros para clientes específicos, principalmente em operações que envolvem grupos empresariais. Além disso, por ser um ajuste localizado e de baixo impacto, tende a ser uma alternativa segura e eficiente para empresas que preferem evitar customizações profundas.

Alterar o E1_TIPO pelo M460COND é um exemplo de como pequenas intervenções podem alinhar processos internos com a operação real da empresa, garantindo mais organização, rastreabilidade e automação dentro do financeiro do Protheus.

Index

Categorias

Sobre o Autor

Foto do Autor
Fábio Hayama

Apaixonado por gestão, tecnologia e inovação, Fábio Hayama possui mais de 15 anos de experiência no universo do ERP Protheus, estratégia empresarial e automação de processos.

Leia mais sobre o Fábio

Entre em contato conosco

Veja mais artigos relacionados

Como transformar seus representantes comerciais em uma força de vendas digital com Protheus + Flexy
Seu representante vende ou passa o dia resolvendo problemas operacionais? Imagine um representante comercial diante de um cliente interessado em fechar um pedido. O relacionamento está construído, existe interesse na compra, mas antes de avançar ele precisa confirmar preço, consultar disponibilidade de um produto, verificar uma condição comercial ou mandar uma mensagem para alguém do […]
Workshop Gratuito: Como Replicar Campos de uma Base de Testes para Produção no Protheus
Neste workshop, vamos mostrar de forma prática como replicar campos de uma base de testes para produção no Protheus, abordando os principais cuidados e boas práticas para realizar esse processo com mais segurança, organização e eficiência, reduzindo riscos e evitando retrabalho no ambiente produtivo.
Cibersegurança: como proteger pequenas empresas de ataques hacker
Cibersegurança: como proteger pequenas empresas de ataques hacker Pequenas empresas são alvos atraentes para atacantes: menor superfície de defesa, processos menos maduros e frequentemente orçamentos restritos. Este texto aborda controles técnicos e estratégicos com terminologia precisa, indicado para profissionais de TI com conhecimento prévio. Entenda primeiro o modelo de ameaça: determine ativos críticos (dados de […]
Protheus
Como replicar campos, tabelas e índices no Protheus usando a Gestão de Ambientes (UPDDISTR)
Replicar customizações no Protheus pode ser muito mais simples do que parece Quem trabalha com desenvolvimento ou sustentação no TOTVS Protheus provavelmente já passou pela seguinte situação: depois de concluir uma customização em uma base de desenvolvimento ou homologação, chega o momento de levar todas aquelas alterações para produção. À primeira vista parece uma tarefa […]