Baixa Automática de Nota Fiscal à Vista
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Notas Fiscais → Parâmetros NF (aba
pagParametrosNF) Tabela:PARMFATUR.ST_PAGTOAVISTAValor padrão:S(Baixa Automática no Caixa)
Define se, ao confirmar uma Nota Fiscal à vista, o sistema gera automaticamente um Processo de Caixa e abre a tela do Caixa para dar baixa nas parcelas com vencimento igual à data de lançamento, ou se essa baixa deve ser feita manualmente depois (em MFC004).
Telas impactadas
| Módulo | Código | Arquivo | Descrição |
|---|---|---|---|
| Emissão / Gravação de NF | MNF033 | source/MNF033/UdmMNF033.pas:1009 | Consumidor principal — decide se abre o Caixa ao confirmar a NF |
| Consulta Cartão (Compensação) | MNF030 | source/MNF030/UMNF030.pas:386-389 | Validação comentada — não está mais ativa |
Procedures impactadas
| Procedure | Arquivo | Descrição |
|---|---|---|
GERA_NOTAFISCAL | Scripts/GERA_NOTAFISCAL.sql:257-265, 1390-1404 | Lê P.ST_PAGTOAVISTA de PARMFATUR, ajusta conforme regras (devolução, estabil, duplicada) e passa para GERA_DUPLICATAS |
GERA_DUPLICATAS | Scripts/GERA_DUPLICATAS.sql:8, 172 | Recebe V_ST_PAGTOAVISTA como parâmetro de entrada; se 'S' gera o Processo de Caixa após criar as duplicatas |
GERA_ESTOQUE_NOTAFISCAL | Scripts/GERA_ESTOQUE_NOTAFISCAL.sql:19, 171-177 | Lê o parâmetro de PARMFATUR (uso legado, sem decisão condicional no fluxo atual) |
GERA_NOTAPEDIDOSOVIS | Scripts/GERA_NOTAPEDIDOSOVIS.sql:40, 50-62 | Bloqueia o faturamento SOVIS quando o parâmetro está como 'S', exigindo "Baixa Manual" |
FECHA_CONTRATOLEITE | Scripts/FECHA_CONTRATOLEITE.sql:106, 398-421 | Salva o valor atual, força para 'N' durante a emissão da NF do fechamento e restaura depois |
FECHA_CONTRATOLEITE_V2 | Scripts/FECHA_CONTRATOLEITE_V2.sql:114, 398-417 | Idem V1 — neutraliza o parâmetro durante a chamada a GERA_NOTAFISCAL |
Campos envolvidos
| Campo / Tabela | Descrição |
|---|---|
PARMFATUR.ST_PAGTOAVISTA | Flag que define o modo de baixa ('S' automática / 'N' manual) |
PROCESSO.NR_PROCESSO | Número do Processo de Caixa gerado pela NF à vista |
PROCESSO.TP_PROCESSO | Tipo do Processo ('P' = Processo, 'R' = Recebimento) |
MOVTOCAIXA | Movimento de caixa gerado automaticamente com TP_DOCUMENTO = 'AV' (À Vista) |
CONTAS.DT_VENCIMENTO / CONTAS.DT_LANCAMENTO | Identifica parcelas à vista (vencimento = lançamento) |
ORIGEMREPARCELAMENTO / DESTINOREPARCELAMENTO | Quando existe reparcelamento, o sistema usa as contas de destino |
Opções disponíveis
S - Baixa Automática no Caixa
| O que faz | Detalhe |
|---|---|
| Gera Processo de Caixa? | SIM, ao confirmar a NF |
| Abre tela do Caixa? | SIM, automaticamente após gravar a NF |
| Parcelas baixadas | Todas as que têm DT_VENCIMENTO = DT_LANCAMENTO (parcelas à vista / entrada) |
Gera MOVTOCAIXA | Sim, com TP_DOCUMENTO = 'AV' |
| Gera Recibo | Sim, se PARMFINANC.CD_LAYRECIBO estiver configurado |
| Integra com SOVIS | INCOMPATÍVEL — o faturamento automático SOVIS é bloqueado |
Simulação passo a passo
- MFA001 → aba Notas Fiscais → Parâmetros NF → ST_PAGTOAVISTA = "Baixa Automática no Caixa"
- Salve os parâmetros (F6)
- Abra MNF033 — emita uma NF de saída com pelo menos 1 parcela à vista (
DT_VENCIMENTO = DT_LANCAMENTO) - Confirme a gravação
- A procedure
GERA_NOTAFISCALchamaGERA_DUPLICATAScomV_ST_PAGTOAVISTA = 'S'→ é gerado automaticamente umNR_PROCESSO - No Delphi,
UdmMNF033.pas:1009detecta que há processo com valor > 0 e soma o total das parcelas à vista - A tela do Caixa (
AbreCaixa) abre automaticamente já carregada com o processo - Se houver layout de recibo em
PARMFINANC.CD_LAYRECIBO, o recibo é gerado (NR_RECIBOviaGERA_SEQUENCIA) - Ao fechar o caixa com sucesso, a mensagem final inclui:
Processo de Caixa Nº.: NNNN Liquidado com Sucesso.
Resultado esperado: O operador não precisa passar por MFC004 para baixar a entrada. A baixa e o recibo são feitos automaticamente na hora da emissão.
Atenção: este é o valor padrão ao criar um novo registro no MFA001 (
UdmMFA001.pas:445).
N - Baixa Manual
| O que faz | Detalhe |
|---|---|
| Gera Processo de Caixa? | NÃO na confirmação da NF |
| Abre tela do Caixa? | NÃO |
| Parcelas | Ficam em aberto na CONTAS, a serem baixadas depois |
| Onde baixar | Manualmente em MFC004 (Baixa de Contas) ou via Caixa (MCX001) |
| Integra com SOVIS | OBRIGATÓRIO — o faturamento automático SOVIS exige este valor |
Simulação passo a passo
- MFA001 → aba Notas Fiscais → Parâmetros NF → ST_PAGTOAVISTA = "Baixa Manual"
- Salve os parâmetros (F6)
- Abra MNF033 — emita a mesma NF de saída com parcela à vista
- Confirme a gravação
- A procedure
GERA_NOTAFISCALchamaGERA_DUPLICATAScomV_ST_PAGTOAVISTA = 'N'→ nenhum processo de caixa é gerado - O bloco de
UdmMNF033.pas:1009(else if ParmFatur.Values['ST_PAGTOAVISTA'] = 'S') não é executado, logo a tela do Caixa não abre - A parcela à vista fica registrada em
CONTASaguardando baixa - Abra MFC004 → localize a parcela → realize a baixa manual
Resultado esperado: A NF é emitida sem abrir o Caixa. O financeiro precisa baixar a parcela depois — dá mais flexibilidade mas exige um passo adicional.
Regras de Neutralização Automática (GERA_NOTAFISCAL)
Mesmo com PARMFATUR.ST_PAGTOAVISTA = 'S', a procedure GERA_NOTAFISCAL força I_ST_PAGTOAVISTA = 'N' em situações específicas (Scripts/GERA_NOTAFISCAL.sql:1389-1401):
| Situação | Trecho | Motivo |
|---|---|---|
| NF de devolução com condição à prazo | linha 1390-1391 | Devolução não gera processo de caixa automaticamente |
NF com origem no Estabil (V_IDESTABIL IS NOT NULL) | linha 1394-1395 | Notas integradas do Estabil não podem ser baixadas automaticamente |
NF duplicada (V_ST_DUPLICADA = 'S') | linha 1397-1398 | Evita duplicar o processo de caixa |
Duplicata de nota especial (V_ST_DUPLICADA_NOTA = 'X') | linha 1400-1401 | Caso especial, não gera caixa |
Interação com FECHA_CONTRATOLEITE (Leite)
As procedures FECHA_CONTRATOLEITE e FECHA_CONTRATOLEITE_V2 implementam um bypass temporário:
- Leem o valor atual de
ST_PAGTOAVISTAemVST_PAGTOAVISTA - Se era
'S', dãoUPDATE PARMFATUR SET ST_PAGTOAVISTA = 'N'antes de chamarGERA_NOTAFISCAL - Restauram o valor original com
UPDATE PARMFATUR SET ST_PAGTOAVISTA = :VST_PAGTOAVISTAapós a emissão
Isso garante que o fechamento de contrato de leite nunca dispare processo de caixa automático, mesmo que o parâmetro esteja configurado para 'S'.
Interação com Faturamento SOVIS
O faturamento automático via GERA_NOTAPEDIDOSOVIS bloqueia a execução quando o parâmetro está como 'S' (Scripts/GERA_NOTAPEDIDOSOVIS.sql:55-62):
[GERA_NOTAPEDIDOSOVIS] A empresa N está usando baixa automática no caixa (MFA001), e para o faturamento automático de notas fiscais a vista funcionar corretamente, o parâmetro deve estar como Baixa Manual!
Para usar faturamento SOVIS em lote, é obrigatório configurar ST_PAGTOAVISTA = 'N'.
Tabela Comparativa Resumida
| Opção | Descrição | Processo de Caixa automático? | Abre tela do Caixa? | Gera Recibo? | SOVIS funciona? |
|---|---|---|---|---|---|
| S | Baixa Automática no Caixa | Sim | Sim | Sim (se houver layout) | Não (bloqueia) |
| N | Baixa Manual | Não | Não | Não | Sim |
Referências no Código Fonte
Delphi
| Arquivo | Linha(s) | Trecho |
|---|---|---|
source/MFA001/UMFA001.dfm | 5958-5959 | Label lbl16 — Caption "Nota Fiscal À Vista", FocusControl = cmbST_PAGTOAVISTA |
source/MFA001/UMFA001.dfm | 6543-6569 | ComboBox cmbST_PAGTOAVISTA com Items Baixa Automática no Caixa → S / Baixa Manual → N |
source/MFA001/UMFA001.pas | 376 | Declaração cmbST_PAGTOAVISTA: TwwDBComboBox |
source/MFA001/UMFA001.pas | 1143 | Navegação de foco (pagPARMAMETROS + pagNota) |
source/MFA001/UMFA001.pas | 1447 | SetFocus ao entrar na aba Notas Fiscais |
source/MFA001/UdmMFA001.dfm | 86, 713-718, 2343, 2489, 2721, 2966 | Select/Insert/Update/Field do dataset tabPARMFATUR |
source/MFA001/UdmMFA001.pas | 59 | tabPARMFATURST_PAGTOAVISTA: TStringField |
source/MFA001/UdmMFA001.pas | 445 | Valor padrão 'S' no AfterInsert |
source/MNF033/UdmMNF033.pas | 1009 | else if (ParmFatur.Values['ST_PAGTOAVISTA'] = 'S') then — dispara o processo de caixa automático |
source/MNF030/UMNF030.pas | 386-389 | Validação comentada/desativada |
source/RCA006/UdmRCA006.dfm | 3061, 3127, 3216, 3289 | CRUD do registro PARMFATUR (sem decisão) |
source/CPD009/UdmCPD009.dfm | 312, 378, 467, 540 | CRUD do registro PARMFATUR (sem decisão) |
SQL (Scripts/)
| Arquivo | Linha(s) |
|---|---|
Scripts/GERA_NOTAFISCAL.sql | 19, 257-265, 1390-1404 |
Scripts/GERA_DUPLICATAS.sql | 8, 172 |
Scripts/GERA_ESTOQUE_NOTAFISCAL.sql | 19, 171-177 |
Scripts/GERA_NOTAPEDIDOSOVIS.sql | 40, 50-62 |
Scripts/FECHA_CONTRATOLEITE.sql | 106, 398-421 |
Scripts/FECHA_CONTRATOLEITE_V2.sql | 114, 398-417 |