Pular para o conteúdo principal

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​

ArquivoLinhasRotinaO que o trecho faz
source/CNF009/UCNF009.pas397-411iniciarLê ST_VARIOSVENDEDORES/ST_ALTERABASECALCULOCOMISSAO da PARMFATUR
source/CNF009/UCNF009.pas2925-2960TfrmCNF009.ConfirmarProgramacaoGrava 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 + ' ' +