Na Venda Gera Débito Pendente para o Vendedor
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Faturamento → aba Vendedor (campo "Na Venda Gera Débito Pendente para o Vendedor"). Nota: não confundir com o campo "Mov de Débito Pendente p/ Vendedor" da aba Operações Padrão → Operação 2, que é um código de movimentação (
MV_DEBITOVENDEDOR), parâmetro distinto deste. Tabela:PARMFATUR.ST_DEBITOVENDEDORValor padrão:N(Não)
Controla se, ao gravar uma Nota Fiscal de Saída com vendedor informado, o sistema deve oferecer a geração automática de um débito pendente (lançamento a receber) em nome do vendedor. Usado em cenários em que o vendedor recebe mercadoria para vender (tipo consignado/coleta/venda a prazo de produto) e a empresa quer registrar um título a cobrar dele, abatido posteriormente conforme a venda efetivamente se liquidar.
O débito só é efetivamente gerado se o parâmetro complementar CD_MOVDEBITOVEND (movimentação de débito do vendedor) estiver preenchido — caso contrário é emitido aviso [MFA001]. A confirmação é interativa: o sistema pergunta ao operador antes de gravar o título.
Telas impactadas
| Módulo | Código | Descrição |
|---|---|---|
| Emissão de NF de Saída | MNF002 | Ao salvar NF de saída, após rateio de Centro de Resultado, oferece gerar débito para o vendedor |
| Pré-Venda / NF Cupom | MNF032 | Mesma regra: após gerar a nota, oferece gerar débito para o vendedor |
| NF Cupom/Contingência | MNF008 | Lê o parâmetro junto com os demais parâmetros do faturamento |
| Cupom Fiscal SAT/CFe | MCO006 | Lê o parâmetro junto com os demais parâmetros do faturamento |
Procedures impactadas
| Procedure | Arquivo | Descrição |
|---|---|---|
GRAVA_CONTAS | Scripts/GRAVA_CONTAS.sql | Procedure que grava efetivamente o título a receber (modo 'D' = débito) para o vendedor, com histórico DV. Chamada com tipo de conta/histórico vindos da movimentação CD_MOVDEBITOVEND |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
ST_DEBITOVENDEDOR | PARMFATUR | Flag principal (S/N) — habilita o fluxo de geração do débito |
CD_MOVDEBITOVEND | PARMFATUR | Parâmetro complementar obrigatório — movimentação financeira usada como template (informa CD_TIPOCONTA e CD_HISTORICO do débito). Sem ele, o fluxo avisa o operador e não gera o título |
CD_VENDEDOR | NOTA | Código do vendedor da nota. Sem vendedor informado, o fluxo de débito é ignorado silenciosamente |
CD_FORMAPAGTO | NOTA | Forma de pagamento copiada para o lançamento gerado |
NR_LANCAMENTO | NOTA | Número do lançamento da nota de origem (vai para a referência do título) |
CD_SERIENF / CD_SERIE | NOTA | Série da nota de origem (referência do título) |
VL_NOTAFISCAL | NOTA | Valor total da nota — valor do débito gerado para o vendedor |
DT_EMISSAO | NOTA | Data de emissão. O vencimento do débito é emissão + 30 dias (via IncDay(...,30)) |
Opções disponíveis
S - Sim
| O que faz | Detalhe |
|---|---|
| Ao salvar NF de saída com vendedor preenchido, pergunta? | SIM — exibe "Deseja Gerar Débito para o Vendedor" (mensagem C-0000) |
| Gera título a receber para o vendedor? | SIM, via GRAVA_CONTAS('D', ...) se o operador confirmar |
| Depende de outro parâmetro? | SIM — exige CD_MOVDEBITOVEND preenchido (Opção 2 → "Mov de Débito Pendete p/ Vendedor"). Sem ele, exibe aviso "O Vendedor Não Possui Movimentação de Débito Cadastrada! [MFA001]" |
| O que acontece se a nota não tem vendedor? | Fluxo é ignorado silenciosamente (nenhuma pergunta) |
| Valor do débito | Igual ao VL_NOTAFISCAL da nota |
| Vencimento do débito | Data de emissão da nota + 30 dias |
| Histórico contábil do título | 'DV' (débito vendedor) |
Simulação passo a passo
- Vá em MFA001 → aba Operações Padrão → Opção 2 → informe uma Movimentação de Débito Pendente p/ Vendedor (campo
CD_MOVDEBITOVEND) - Ainda em MFA001 → aba Operações Padrão → Opção 2 → "Na Venda Gera Débito Pendente para o Vendedor" = Sim
- Salve os parâmetros (F6)
- Abra uma NF de Saída (MNF002)
- Informe cliente + vendedor + itens + forma de pagamento e grave (F6)
- Após a nota ser gerada e o rateio de CR processado, aparece a pergunta "Deseja Gerar Débito para o Vendedor"
- Clique em Sim
- O sistema executa
GRAVA_CONTAS('D', ...)e exibe"Débito Vendedor Gerado com Sucesso ! Lançamento N° XXX."
Resultado esperado: É criado um título a receber em nome do vendedor, no valor total da nota, com vencimento em 30 dias, tipo de conta e histórico vindos da movimentação CD_MOVDEBITOVEND, e histórico fixo 'DV' (débito vendedor). Na aba financeira do vendedor (Contas a Receber), o título aparece como pendente.
N - Não
| O que faz | Detalhe |
|---|---|
| Ao salvar NF de saída com vendedor preenchido, pergunta? | NÃO — o fluxo de débito do vendedor é completamente ignorado |
| Gera título a receber para o vendedor? | NÃO |
| Quando usar? | Cenário padrão: vendedores recebem comissão sobre as vendas (ver ST_COMISSAO) e não assumem débito pelas mercadorias |
Simulação passo a passo
- Vá em MFA001 → aba Operações Padrão → Opção 2 → "Na Venda Gera Débito Pendente para o Vendedor" = Não
- Salve os parâmetros (F6)
- Abra uma NF de Saída (MNF002)
- Informe cliente + vendedor + itens e grave (F6)
- A nota é gerada normalmente, sem nenhuma pergunta adicional sobre débito do vendedor
- Consulte o Contas a Receber do vendedor → não há título novo
Resultado esperado: A gravação da NF segue o fluxo normal. Nenhum título é lançado em nome do vendedor; a relação financeira com ele permanece apenas pelo cálculo de comissão (se habilitado).
Este é o valor padrão ao criar um novo registro no MFA001 (
UdmMFA001.pas:495).
Observação importante: Dependência de CD_MOVDEBITOVEND
O parâmetro ST_DEBITOVENDEDOR = 'S' sozinho não gera nada. Ele apenas habilita a pergunta ao operador. A geração real do título depende de CD_MOVDEBITOVEND estar preenchido em MFA001 → Opção 2 (campo "Mov de Débito Pendete p/ Vendedor").
Fluxo real no código (UMNF002.pas:3983-4021, UMNF032.pas:1603-1642):
if (ParmFatur.Values['ST_DEBITOVENDEDOR'] = 'S') then
begin
if (dmMNF002.tabNOTACD_VENDEDOR.AsString <> '') then
begin
if (MsgCodigo('C-0000', ['Deseja Gerar Débito para o Vendedor'])) then
begin
// Busca CD_TIPOCONTA e CD_HISTORICO da movimentação CD_MOVDEBITOVEND
...
if (ParmFatur.Values['CD_MOVDEBITOVEND'] <> '') then
begin
// Executa GRAVA_CONTAS('D', ...) com histórico 'DV'
...
MsgCodigo('I-0000', ['Débito Vendedor Gerado com Sucesso ! ...']);
end
else
Raise JException.Create('W-0000',
['O Vendedor Não Possui Movimentação de Débito Cadastrada! [MFA001]']);
end;
end;
end;
Se o operador responder Não à pergunta, a nota é gravada normalmente e nenhum débito é criado naquela gravação (mas a pergunta voltará a aparecer em notas futuras enquanto o parâmetro permanecer 'S').
Tabela Comparativa Resumida
| Opção | Pergunta ao gravar NF? | Gera título a receber p/ vendedor? | Depende de CD_MOVDEBITOVEND? |
|---|---|---|---|
| S | Sim (se houver vendedor) | Sim, se operador confirmar e CD_MOVDEBITOVEND existir | Sim |
| N | Não | Não | — |
Referências no Código Fonte
MFA001 (tela de configuração):
source/MFA001/UMFA001.dfm:5483— ComboBox comDataField = 'ST_DEBITOVENDEDOR'(Items:'Sim'/'S','Não'/'N')source/MFA001/UMFA001.dfm:5154-5166— Label29 "Na Venda Gera Débito Pendente para o Vendedor" (Top=118, ao lado do combobox em Top=114)source/MFA001/UdmMFA001.pas:161— DeclaraçãotabPARMFATURST_DEBITOVENDEDOR: TStringFieldsource/MFA001/UdmMFA001.pas:495— Valor padrão noAfterInsert:'N'source/MFA001/UdmMFA001.dfm:1267-1269— Mapeamento do campo para"PARMFATUR"."ST_DEBITOVENDEDOR"source/MFA001/UdmMFA001.dfm:2390— Coluna noSelectSQLdo dataset PARMFATURsource/MFA001/UdmMFA001.dfm:2555— Parâmetro noInsertSQLsource/MFA001/UdmMFA001.dfm:2772— Parâmetro noUpdateSQL
Módulos consumidores:
source/MNF002/UdmMNF002.pas:10506— Leitura do parâmetro noSELECTde PARMFATUR (funçãoGetParmFatur)source/MNF002/UMNF002.pas:3982-4021— Fluxo principal de geração do débito após rateio de Centro de Resultado; chamaGRAVA_CONTAS('D', ...)com histórico'DV', vencimento em +30 diassource/MNF032/UMNF032.pas:1602-1642— Mesma lógica que MNF002 para o módulo MNF032source/MNF008/UdmMNF008.pas:771— Leitura do parâmetro noSELECTde PARMFATURsource/MCO006/UdmMCO006.pas:2115— Leitura do parâmetro noSELECTde PARMFATUR
Procedure SQL:
Scripts/GRAVA_CONTAS.sql— Procedure que grava o título a receber quando o operador confirma a geração do débito