CNF009.R001 — Modelo de vendedor único vs. vários vendedores
Módulo: CNF009 · Menu: Faturamento > Consultas > Notas Fiscais > Programação/Fechamento de Comissões Classificação: intencional · Relevância: alta
Regra
Todo o módulo opera em dois modos: vendedor único por nota (tabelas NOTA/PEDIDO) ou vários vendedores por item (ITEMNOTAVENDEDOR/ITEMPEDIDOVENDEDOR), definido pelo parâmetro ST_VARIOSVENDEDORES da PARMFATUR da empresa.
Quando dispara
Ao abrir a tela e em toda consulta/gravação de programação e fechamento
Como o usuário resolve
Ajustar o parâmetro 'Vários Vendedores' no cadastro de Parâmetros de Faturamento (MFA001) conforme o modelo comercial da empresa
Parâmetros envolvidos
ST_VARIOSVENDEDORES (PARMFATUR)
Evidência
| Arquivo | Linhas | Rotina | O que o trecho faz |
|---|---|---|---|
source/CNF009/UCNF009.pas | 397-411 | iniciar | Lê ST_VARIOSVENDEDORES/ST_ALTERABASECALCULOCOMISSAO da PARMFATUR |
source/CNF009/UCNF009.pas | 2925-2960 | TfrmCNF009.ConfirmarProgramacao | Grava vínculo de programação em tabelas diferentes conforme o modelo |
source/CNF009/UCNF009.pas:397
// Verifica o modelo de associação do Vendedor
Consulta :=
'SELECT ST_VARIOSVENDEDORES, ST_ALTERABASECALCULOCOMISSAO ' + #10 +
'FROM PARMFATUR P WHERE P.CD_EMPRESA = ' + IntToStr(sessao.empresa.cd_empresa);
Resultado := ExecutaConsulta(dmCNF009.transaction, Consulta);
VariosVendedores := Resultado[0];
AlteraBaseCalculoComissao := Resultado[1];
if AlteraBaseCalculoComissao = 'S' then
begin
source/CNF009/UCNF009.pas:2925
if ( VariosVendedores = 'S' ) then begin
if ( Trim(dmCNF009.tabCONTROLECD_SERIE.AsString) <> '' ) then begin
Consulta := 'UPDATE ITEMNOTAVENDEDOR SET NR_PROGRAMACAOCOMISSAO = ' + iNrFechamento + ' ' +
' WHERE CD_EMPRESA = ' + Nulo(dmCNF009.tabCONTROLECD_EMPRESA.AsString,'I') +
' AND NR_LANCAMENTO = ' + Nulo(dmCNF009.tabCONTROLENR_LANCAMENTO.AsString,'I') +
' AND CD_SERIE = ' + Nulo(dmCNF009.tabCONTROLECD_SERIE.AsString,'S') +
' AND TP_NOTA = ' + Nulo(dmCNF009.tabCONTROLETP_NOTA.AsString,'S') +
' AND CD_VENDEDOR = ' + Nulo(dmCNF009.tabRESUMOCD_VENDEDOR.AsString,'I');
execUpdate(dmCNF009.transactionBanco, Consulta);
end
else begin
Consulta := 'UPDATE ITEMPEDIDOVENDEDOR SET NR_PROGRAMACAOCOMISSAO = ' + iNrFechamento + ' ' +