Parâmetro de Histórico de Cliente Devedor
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 1 Tabela:
PARMFATUR.ST_MOSTRARDEVENDOValor padrão:N(Não)
Observação sobre nomenclatura: O nome real do campo no banco é
ST_MOSTRARDEVENDO(com R — "Mostrar Devendo"). O parâmetro foi solicitado comoST_MOSTRADEVENDO, mas a documentação reflete o nome efetivamente existente emPARMFATUR.
Telas impactadas
| Módulo | Código | Descrição |
|---|---|---|
| Pedido de Venda | MPD002 | Pedidos de venda |
| Pedido de Venda (Mobile/Especial) | MPD049 | Pedido vinculado a empresa/placa |
| Nota Fiscal Saída | MNF002 | Emissão de NF de saída |
| NF Devolução/Outra | MNF008 | NF de devolução/outra saída |
| PDV / Cupom Fiscal | MNF017 | Frente de caixa (incluindo confirmação de pedido) |
| Ordem de Serviço | MOF001 | Ordens de serviço |
| Histórico de Cliente | CFC004 | Tela alvo aberta quando há contas pendentes (recebe ST_CONTAS) |
Os módulos
MPD004,MPD020,MPD049 (Busca_Parametros),MOF006,MNF013,MNF014,MNF015,MCO006eCPD009carregam o parâmetro dePARMFATURem variáveis internas, mas não aplicam lógica condicional baseada nele (apenas o leem ou apenas usam o select com a coluna). EmMNF017 (UdmMNF017.pas)o trecho equivalente está comentado (substituído pela versão em ).
Campos envolvidos
| Campo | Descrição |
|---|---|
CONTAS.CD_PESSOA | Cliente cujo histórico está sendo verificado |
CONTAS.ST_CONTAS | Status da conta (P=Pendente, T=Total/Aberta, L=Liquidada, C=Cancelada, A=Anulada) |
CONTAS.DT_VENCIMENTO | Data de vencimento da parcela |
CONTAS.DT_LIQUIDACAO | Data em que a parcela foi quitada |
PARMFATUR.CD_CONSUMIDOR | Cliente "consumidor final" (excluído da verificação) |
Opções disponíveis
S - Pendentes
| O que faz | Detalhe |
|---|---|
| Quando dispara? | Ao informar/selecionar o cliente no documento (Pedido, NF, OS, etc.) |
| Filtro aplicado em CONTAS | ST_CONTAS IN ('T', 'P') (todas as contas em aberto) |
| Considera vencimento? | Não — qualquer conta em aberto, vencida ou a vencer, dispara o alerta |
| Exclui consumidor final? | Sim (CD_PESSOA <> PARMFATUR.CD_CONSUMIDOR) nos módulos MNF002/MNF008/MOF001 |
| Ação se houver conta | Abre automaticamente a tela CFC004 (Histórico do Cliente) com ST_CONTAS='S' |
| Tela CFC004 filtra | AND CONTAS.ST_CONTAS IN ('T','P') |
Simulação passo a passo
- Vá em MFA001 → Parâmetros → Ambos → Opção 1 → ST_MOSTRARDEVENDO = "Pendentes"
- Salve os parâmetros (F6)
- Cadastre um cliente X com pelo menos uma conta a receber em aberto (
ST_CONTAS = 'P'ou'T') - Abra um Pedido de Venda (MPD002)
- Informe o cliente X no campo
CD_PESSOAe saia do campo (Exit) - Sistema executa SELECT em CONTAS filtrando
ST_CONTAS IN ('T','P') - Como há conta pendente, abre automaticamente a tela CFC004 carregando o histórico financeiro do cliente
- Repita com cliente Y que não tem contas em aberto → Nenhuma tela é aberta
Resultado esperado: Sempre que o cliente tiver qualquer conta em aberto (vencida ou não), o sistema interrompe o fluxo de digitação e exibe o histórico financeiro.
V - Pendentes Vencidas
| O que faz | Detalhe |
|---|---|
| Quando dispara? | Ao informar/selecionar o cliente no documento |
| Filtro aplicado em CONTAS | ST_CONTAS IN ('T', 'P') AND DT_VENCIMENTO <= CURRENT_DATE |
| Considera vencimento? | Sim — somente contas já vencidas disparam o alerta |
| Exclui consumidor final? | Sim (em MNF002/MNF008/MOF001) |
| Ação se houver conta | Abre CFC004 com ST_CONTAS='V' |
| Tela CFC004 filtra | AND CONTAS.ST_CONTAS IN ('T','P') AND CONTAS.DT_VENCIMENTO <= CURRENT_DATE |
Simulação passo a passo
- MFA001 → ST_MOSTRARDEVENDO = "Pendentes Vencidas"
- Salve os parâmetros (F6)
- Cadastre cliente X com conta em aberto com vencimento futuro (ex: vence em 30 dias)
- Cadastre cliente Y com conta em aberto vencida (vencimento ontem)
- Abra um Pedido de Venda
- Informe cliente X → Nenhuma tela abre (não há pendência vencida)
- Informe cliente Y → Abre CFC004 mostrando as contas vencidas
Resultado esperado: O sistema só interrompe o atendimento quando o cliente tiver pelo menos uma conta vencida; clientes apenas com contas a vencer passam livres.
L - Liquidadas após Vencto
| O que faz | Detalhe |
|---|---|
| Quando dispara? | Ao informar/selecionar o cliente no documento |
| Filtro aplicado em CONTAS | ST_CONTAS = 'L' AND (DT_LIQUIDACAO - DT_VENCIMENTO) > 10 |
| O que verifica | Contas já quitadas, mas que foram pagas com mais de 10 dias de atraso |
| Exclui consumidor final? | Sim (em MNF002/MNF008/MOF001) |
| Ação se houver conta | Abre CFC004 com ST_CONTAS='L' |
| Tela CFC004 filtra | AND CONTAS.ST_CONTAS = 'L' AND (CONTAS.DT_LIQUIDACAO - CONTAS.DT_VENCIMENTO) > 10 |
Simulação passo a passo
- MFA001 → ST_MOSTRARDEVENDO = "Liquidadas após Vencto"
- Salve os parâmetros (F6)
- Cadastre cliente X cujas contas foram todas pagas em dia (ou com até 10 dias de atraso)
- Cadastre cliente Y com pelo menos uma conta liquidada 15 dias após o vencimento
- Abra um Pedido de Venda
- Informe cliente X → Nenhuma tela abre
- Informe cliente Y → Abre CFC004 mostrando o histórico de atraso de pagamento
Resultado esperado: O sistema sinaliza clientes com histórico de mau pagador (atraso superior a 10 dias na liquidação), mesmo que estejam atualmente sem dívida em aberto.
T - Todas
| O que faz | Detalhe |
|---|---|
| Quando dispara? | Ao informar/selecionar o cliente no documento |
| Filtro aplicado em CONTAS | ST_CONTAS IN ('T', 'P', 'L') (sem filtro de data) |
| O que verifica | Qualquer histórico financeiro — pendentes, abertas e quitadas |
| Exclui consumidor final? | Sim (em MNF002/MNF008/MOF001) |
| Ação se houver conta | Abre CFC004 com ST_CONTAS='T' |
| Tela CFC004 filtra | Sem iFiltro específico no UCFC004 (cai no filtro padrão ST_CONTAS NOT IN ('C','A')) |
Simulação passo a passo
- MFA001 → ST_MOSTRARDEVENDO = "Todas"
- Salve os parâmetros (F6)
- Cadastre cliente X que já comprou alguma vez (independente de estar quitado ou não)
- Abra um Pedido de Venda
- Informe cliente X → Abre CFC004 com todo o histórico financeiro do cliente
- Cliente novo, sem nenhum lançamento em CONTAS → Nenhuma tela abre
Resultado esperado: O histórico financeiro completo é exibido para qualquer cliente que tenha movimentação em CONTAS, servindo como consulta automática.
N - Não
| O que faz | Detalhe |
|---|---|
| Quando dispara? | Nunca — o bloco condicional é totalmente ignorado |
| Filtro aplicado em CONTAS | Nenhuma consulta executada |
| Ação | O sistema segue o fluxo normal sem interromper o usuário |
Simulação passo a passo
- MFA001 → ST_MOSTRARDEVENDO = "Não"
- Salve os parâmetros (F6)
- Abra um Pedido de Venda (MPD002)
- Informe qualquer cliente — inclusive um com várias contas vencidas
- Nenhuma consulta a CONTAS é executada
- Nenhuma tela CFC004 é aberta automaticamente
- O fluxo do pedido segue normalmente
Resultado esperado: Nenhum alerta automático de inadimplência. O operador pode atender qualquer cliente sem ser interrompido.
Este é o valor padrão ao criar um novo registro no MFA001 .
Observação Importante: Tela CFC004 (Histórico do Cliente)
Quando o parâmetro detecta uma conta no perfil configurado, o sistema carrega o módulo CFC004 passando os parâmetros:
| Parâmetro | Valor enviado |
|---|---|
Modulo | Código do módulo chamador (ex: MPD002, MNF002) |
CD_PESSOA | Código do cliente do documento atual |
ST_CONTAS | Valor atual do PARMFATUR.ST_MOSTRARDEVENDO (S, V, L ou T) |
ST_SHOW (apenas MNF017) | 'S' — força exibição da tela |
A tela CFC004 reaplica internamente o filtro iFiltro correspondente ao valor recebido em ST_CONTAS , garantindo que o histórico exibido corresponda exatamente ao critério configurado.
A tela só é carregada se o usuário tiver acesso a CFC004 no menu (sessao.menu.get('CFC004')); caso contrário é lançada JException W-0000 com a mensagem "O usuário não possui acesso à tela de Histórico de Cliente [CFC004]!".
Regra Geral de Disparo
O bloco condicional só é executado quando todas as condições abaixo são atendidas:
PARMFATUR.ST_MOSTRARDEVENDO <> 'N'- O documento tem
CD_PESSOAinformado (cliente preenchido) - O evento de saída do campo cliente (
edtCD_PESSOAExit) foi disparado, ou (em MNF002) o cliente foi alterado comiST_PESSOA = 'S'
Em MNF002/MNF008/MOF001, há ainda a exclusão extra do consumidor final: Isso evita que vendas no balcão para consumidor genérico abram o histórico do cliente "consumidor".
Em MPD002 e MPD049, essa exclusão não está presente na consulta principal.
Interação com outros parâmetros
| Parâmetro | Interação |
|---|---|
PARMFATUR.CD_CONSUMIDOR | Pessoa-consumidor é excluída da verificação em MNF002, MNF008 e MOF001 |
PARMFATUR.ST_DATASCPC | Em MNF002, é avaliado logo após o ST_MOSTRARDEVENDO (linha 5722); ambos são checagens de risco do cliente |
Tabela Comparativa Resumida
| Opção | Descrição | Filtro em CONTAS | Considera vencimento? | Considera atraso na liquidação? | Abre CFC004? |
|---|---|---|---|---|---|
| S | Pendentes | ST_CONTAS IN ('T','P') | Não | Não | Sim |
| V | Pendentes Vencidas | ST_CONTAS IN ('T','P') AND DT_VENC <= CURRENT_DATE | Sim | Não | Sim |
| L | Liquidadas após Vencto | ST_CONTAS = 'L' AND (DT_LIQ - DT_VENC) > 10 | - | Sim (>10 dias) | Sim |
| T | Todas | ST_CONTAS IN ('T','P','L') | Não | Não | Sim |
| N | Não | — (não executa) | - | - | Não |