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

{{brizy_dc_image_alt entityId=
Adicionar validação na exclusão do documento de saída no Protheus
Se tem uma coisa que pode virar dor de cabeça rápida dentro do Protheus, é exclusão indevida de documento de saída. E não estamos falando só de erro operacional… estamos falando de impacto fiscal, retrabalho e, em alguns casos, até problema com auditoria. Recentemente, em um cliente, surgiu exatamente esse cenário:como impedir que qualquer usuário […]
{{brizy_dc_image_alt entityId=
Big Techs em Guerra: como Apple, Google, TOTVS, Amazon e Microsoft estão redesenhando o mercado de tecnologia
Se você olhar as principais movimentações recentes do mercado de tecnologia, pode até parecer que são notícias isoladas. Uma empresa mudando produção, outra lançando estratégia de produto, outra investindo em logística. Mas quando você conecta os pontos, fica muito claro que existe um padrão por trás disso tudo. Gigantes como Apple, Google, Amazon, Microsoft e […]
{{brizy_dc_image_alt entityId=
Atualizar automaticamente datas na NFe SEFAZ no Protheus (sem retrabalho)
Se você usa o Protheus no dia a dia, já sabe como funciona. Você abre a tela da NFe SEFAZ…E lá vai você ajustar data manualmente de novo. Pode parecer detalhe, mas isso acontece todos os dias.E quando soma no tempo da operação, vira retrabalho puro. Foi exatamente esse cenário que vimos em um cliente. […]
{{brizy_dc_image_alt entityId=
Protheus lento? Os erros de infraestrutura e banco que ninguém te conta
Seu Protheus está lento… mas talvez o problema não seja o sistema Se você usa Protheus no dia a dia, provavelmente já passou por isso: a tela demora para carregar, um simples faturamento vira um teste de paciência, relatórios levam minutos (ou mais) para sair… e no final, a conclusão mais comum é sempre a […]