RNF020 — Estatística de Vendas por Vendedor (enriquecimento)
Menu: Faturamento > Relatórios > Notas Fiscais > Estatística de Vendas por Vendedor
Objetivo
A tela RNF020 gera relatórios estatísticos de vendas por vendedor, cliente, produto, meta ou despesa para o módulo de Faturamento, cobrindo um período de até 12 meses. O usuário escolhe um entre 11 modelos de relatório (ex.: Vendas por Cliente/Faturamento, Meta x Vendas, Vendas e Despesas x Vendedor), aplica filtros opcionais de vendedor, cliente, região, grupo, seção etc., e imprime o resultado. A consulta gerada e os filtros disponíveis mudam conforme o modelo escolhido e conforme a empresa estar parametrizada para permitir mais de um vendedor por nota fiscal (PARMFATUR.ST_VARIOSVENDEDORES).
Fluxo principal
- Usuário clica em Novo (ou F5); a tela inicia transação, abre os grids de filtro e assume a Empresa da sessão e o modelo padrão "Vendas por Cliente/Faturamento". (Toolbar) —
source/RNF020/URNF020.pas:299-359 (TfrmRNF020.btnNovoClick) - Usuário escolhe o Modelo de relatório na combo (ex.: Vendas por Cliente/Faturamento, Meta x Vendas, Vendas e Despesas x Vendedor); a tela reorganiza quais filtros e abas ficam visíveis para aquele modelo. (grpCONSULTA) —
source/RNF020/URNF020.pas:2085-2196 (TfrmRNF020.AtualizaFiltro) - Usuário informa o período (Mês Inicial e Mês Final), campos sempre obrigatórios. (grpCONSULTA) —
source/RNF020/URNF020.pas:638-647 (TfrmRNF020.btnImprimirClick) - Usuário adiciona linhas opcionais nos grids de filtro, digitando o código ou usando F9 para pesquisar; cada código digitado é validado contra o cadastro correspondente. (Abas de filtro (Cliente, Vendedor, Região, Grupo, SubGrupo, Seção, Movimentação, Perfil, Tipo de Vendedor, Município, Perfil de Cliente e, no modelo Despesas, Conta Contábil/Centro de Resultado)) —
source/RNF020/UdmRNF020.pas:213-229 (TdmRNF020.tabVENDEDORCD_VENDEDORValidate) - Usuário fecha a tela (Sair/F12); o último filtro usado é salvo por usuário/empresa e a transação é desfeita (rollback). (Toolbar) —
source/RNF020/URNF020.pas:268-281 (TfrmRNF020.FormClose)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Mês Inicial (DT_MESINI) | sempre, em qualquer modelo de relatório, ao clicar em Imprimir | É Obrigatório Informar o Mês Inicial do Período para Realizar a Consulta! | source/RNF020/URNF020.pas:638-641 (TfrmRNF020.btnImprimirClick) |
| Mês Final (DT_MESFIM) | sempre, em qualquer modelo de relatório, ao clicar em Imprimir | É Obrigatório Informar o Mês Final do Período para Realizar a Consulta! | source/RNF020/URNF020.pas:643-646 (TfrmRNF020.btnImprimirClick) |
| Empresa (CD_EMPRESA) | apenas quando o Modelo selecionado é "Total Vendas/Mês x Comissão" (valor 'A') | É Obrigatório Informar a Empresa para Realizar a Consulta! | source/RNF020/URNF020.pas:535-536 (TfrmRNF020.btnImprimirClick) |
| Empresa (CD_EMPRESA) | ao pesquisar Conta Contábil pelo atalho F10, quando PARMSISTEMA.TP_PLANOCONTABIL for diferente de 'G' (plano por empresa) | O tipo do plano de contas é por empresa, portando a empresa deve ser informada. | source/RNF020/URNF020.pas:3199-3213 (TfrmRNF020.gridContaContabilKeyDown) |
Mensagens: causa e ação
É Obrigatório Informar a Empresa para Realizar a Consulta!
Causa: O Modelo selecionado é "Total Vendas/Mês x Comissão" e o campo Empresa está vazio.
Ação: Informe o código da Empresa (F9 para pesquisar) antes de imprimir.
Fonte: source/RNF020/URNF020.pas:535-536 (TfrmRNF020.btnImprimirClick)
É Obrigatório Informar o Mês Inicial do Período para Realizar a Consulta!
Causa: O campo Mês Inicial do período de vendas está vazio ao clicar em Imprimir.
Ação: Preencha o Mês Inicial do período a consultar.
Fonte: source/RNF020/URNF020.pas:638-641 (TfrmRNF020.btnImprimirClick)
É Obrigatório Informar o Mês Final do Período para Realizar a Consulta!
Causa: O campo Mês Final do período de vendas está vazio ao clicar em Imprimir.
Ação: Preencha o Mês Final do período a consultar.
Fonte: source/RNF020/URNF020.pas:643-646 (TfrmRNF020.btnImprimirClick)
A Data Inicial não pode ser Maior que a Data Final!
Causa: O Mês Inicial do período de vendas informado é posterior ao Mês Final.
Ação: Corrija o Mês Inicial ou o Mês Final para que o início seja igual ou anterior ao fim.
Fonte: source/RNF020/URNF020.pas:544-561 (TfrmRNF020.btnImprimirClick)
O Período Máximo Permitido é de 12 meses. Verifique!
Causa: O intervalo entre Mês Inicial e Mês Final cruza a virada do ano e a comparação de mês indica período maior que 12 meses.
Ação: Reduza o intervalo entre Mês Inicial e Mês Final e tente novamente.
Fonte: source/RNF020/URNF020.pas:650-655 (TfrmRNF020.btnImprimirClick)
Consulta não retornou registros!
Causa: No modelo "Total Vendas/Mês x Comissão", nenhuma nota/comissão foi encontrada com os filtros e período informados.
Ação: Revise Empresa, período e demais filtros (vendedor, cliente etc.) e tente novamente.
Fonte: source/RNF020/URNF020.pas:1611-1616 (TfrmRNF020.btnImprimirClick)
Atenção! O Modelo não funciona corretamente com a opção de 'Vários Vendedores' parametrizada [MFA001].
Causa: A empresa está parametrizada com PARMFATUR.ST_VARIOSVENDEDORES='S' e o modelo escolhido ("Vendas Toneladas x Vendedor", "Vendas x Forma de Pagamento" ou similar) não considera múltiplos vendedores por nota.
Ação: Continue ciente de que o resultado usará apenas o vendedor único da nota, ou escolha outro modelo de relatório.
Fonte: source/RNF020/URNF020.pas:1563-1566 (TfrmRNF020.btnImprimirClick), source/RNF020/URNF020.pas:1634-1637 (TfrmRNF020.btnImprimirClick)
O tipo do plano de contas é por empresa, portando a empresa deve ser informada.
Causa: Usuário tentou pesquisar Conta Contábil pelo atalho F10 sem preencher a Empresa, e o parâmetro de sistema do plano de contas não é do tipo Geral.
Ação: Preencha a Empresa no filtro antes de pesquisar a Conta Contábil.
Fonte: source/RNF020/URNF020.pas:3199-3213 (TfrmRNF020.gridContaContabilKeyDown)
A Empresa não está Cadastrada [ADM002]!
Causa: O código de Empresa digitado no filtro não existe no cadastro de Empresas.
Ação: Use F9 para pesquisar a Empresa ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:172-179 (TdmRNF020.tabEMPRESACD_EMPRESAValidate)
O Vendedor não está Cadastrado [TFA007]!
Causa: O código de Vendedor digitado no grid de filtro não existe no cadastro de Vendedores.
Ação: Use F9 para pesquisar o Vendedor ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:218-225 (TdmRNF020.tabVENDEDORCD_VENDEDORValidate)
A Região Comercial não está Cadastrada [TFA014]!
Causa: O código de Região Comercial digitado não existe no cadastro.
Ação: Use F9 para pesquisar a Região ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:236-243 (TdmRNF020.tabRegiaoCD_REGIAOCOMERCIALValidate)
O Grupo não está Cadastrado [TPO006]!
Causa: O código de Grupo de item digitado não existe no cadastro de Grupos.
Ação: Use F9 para pesquisar o Grupo ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:254-261 (TdmRNF020.tabGRUPOCD_GRUPOValidate)
O Cliente não está Cadastrado[TFA001]!
Causa: O código de Cliente digitado no grid de filtro não existe no cadastro de Pessoas.
Ação: Use F9 para pesquisar o Cliente ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:273-280 (TdmRNF020.tabClienteCD_PESSOAValidate)
O Perfil não está Cadastrado [TPO033]!
Causa: O código de Perfil de item digitado não existe no cadastro de Perfis.
Ação: Use F9 para pesquisar o Perfil ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:291-298 (TdmRNF020.tabPERFILCD_PERFILValidate)
O perfil não está Cadastrado! Verifique [TPO033].
Causa: O código de Perfil de Cliente digitado não existe no cadastro de Perfis.
Ação: Use F9 para pesquisar o Perfil de Cliente ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:410-416 (TdmRNF020.tabPERFILCLIENTECD_PERFILValidate)
O SubGrupo não está Cadastrado [TPO007]!
Causa: O código de SubGrupo digitado não existe no cadastro de SubGrupos.
Ação: Use F9 para pesquisar o SubGrupo ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:309-318 (TdmRNF020.tabSubGrupoCD_SUBGRUPOValidate)
A Movimentação não está Cadastrada [TCB001]!
Causa: O código de Movimentação digitado não existe no cadastro de Movimentações.
Ação: Use F9 para pesquisar a Movimentação ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:330-339 (TdmRNF020.tabMovimentacaoCD_MOVIMENTACAOValidate)
A Seção não está Cadastrada [TPO008]!
Causa: O código de Seção digitado não existe no cadastro de Seções.
Ação: Use F9 para pesquisar a Seção ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:351-360 (TdmRNF020.tabSECAOCD_SECAOValidate)
O Tipo de Vendedor não está Cadastrado [TFA064]!
Causa: O código de Tipo de Vendedor digitado não existe no cadastro correspondente.
Ação: Use F9 para pesquisar o Tipo de Vendedor ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:372-379 (TdmRNF020.tabTPVENDEDORIDValidate)
O Município não está Cadastrado [TFA003]!
Causa: O código de Município digitado não existe no cadastro de Municípios.
Ação: Use F9 para pesquisar o Município ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:390-399 (TdmRNF020.tabMunicipioCD_MUNICIPIOValidate)
A Conta Contábil não está Cadastrada [TFC001]!
Causa: O código de Conta Contábil digitado não existe no plano de contas.
Ação: Use F10 para pesquisar a Conta Contábil (informando a Empresa se exigido) ou corrija o código digitado.
Fonte: source/RNF020/UdmRNF020.pas:428-434 (TdmRNF020.tabCONTACONTCD_CONTAValidate)
O Centro de Resultado não está Cadastrado [TCB001]!
Causa: O código de Centro de Resultado digitado não existe para a Empresa preenchida no filtro.
Ação: Confirme a Empresa correta e use F9 para pesquisar o Centro de Resultado.
Fonte: source/RNF020/UdmRNF020.pas:445-452 (TdmRNF020.tabCENTROCUSTOCD_CENTROCUSTOValidate)
W-0231
Causa: Na aba de Despesas, a Data Inicial de Vencimento de Contas informada é maior que a Data Final já preenchida.
Ação: Corrija a Data Inicial de Vencimento de Contas para ser igual ou anterior à Data Final.
Fonte: source/RNF020/UdmRNF020.pas:199-211 (TdmRNF020.tabEMPRESADT_CONTASINIValidate)
W-0232
Causa: Na aba de Despesas, a Data Final de Vencimento de Contas informada é menor que a Data Inicial já preenchida.
Ação: Corrija a Data Final de Vencimento de Contas para ser igual ou posterior à Data Inicial.
Fonte: source/RNF020/UdmRNF020.pas:185-197 (TdmRNF020.tabEMPRESADT_CONTASFIMValidate)
Regras de negócio
RNF020.R001(verregras/RNF020/RNF020.R001.md)RNF020.R002(verregras/RNF020/RNF020.R002.md)RNF020.R003(verregras/RNF020/RNF020.R003.md)RNF020.R004(verregras/RNF020/RNF020.R004.md)RNF020.R005(verregras/RNF020/RNF020.R005.md)RNF020.R006(verregras/RNF020/RNF020.R006.md)RNF020.R007(verregras/RNF020/RNF020.R007.md)RNF020.R008(verregras/RNF020/RNF020.R008.md)RNF020.R009(verregras/RNF020/RNF020.R009.md)RNF020.R010(verregras/RNF020/RNF020.R010.md)RNF020.R011(verregras/RNF020/RNF020.R011.md)RNF020.R012(verregras/RNF020/RNF020.R012.md)RNF020.R013(verregras/RNF020/RNF020.R013.md)RNF020.R014(verregras/RNF020/RNF020.R014.md)RNF020.R015(verregras/RNF020/RNF020.R015.md)RNF020.R016(verregras/RNF020/RNF020.R016.md)RNF020.R017(verregras/RNF020/RNF020.R017.md)RNF020.R018(verregras/RNF020/RNF020.R018.md)RNF020.R019(verregras/RNF020/RNF020.R019.md)
Perguntas frequentes
P: Por que o sistema pede para informar a Empresa antes de imprimir, se em outros relatórios de vendas isso não é obrigatório?
R: A Empresa só é obrigatória quando o Modelo selecionado é "Total Vendas/Mês x Comissão". Nos demais modelos o campo é opcional.
Fonte: source/RNF020/URNF020.pas:535-536 (TfrmRNF020.btnImprimirClick)
P: Apareceu "O Período Máximo Permitido é de 12 meses. Verifique!", mas o período parece menor que isso. O que fazer?
R: A validação compara apenas o ano e o mês de início/fim, não a diferença exata de meses; em períodos que cruzam a virada do ano ela pode disparar mesmo com menos de 12 meses efetivos. Reduza o intervalo entre Mês Inicial e Mês Final para tentar novamente.
Fonte: source/RNF020/URNF020.pas:650-655 (TfrmRNF020.btnImprimirClick)
P: Por que a mensagem "Consulta não retornou registros!" só aparece às vezes e não em todos os relatórios vazios?
R: Essa checagem prévia só existe no modelo "Total Vendas/Mês x Comissão" (A); os demais modelos deixam o gerador de relatório (GeraRelatorio) tratar o resultado vazio sem essa mensagem específica.
Fonte: source/RNF020/URNF020.pas:1611-1616 (TfrmRNF020.btnImprimirClick)
P: Por que o filtro "Tipo de Vendedor" às vezes aparece na tela e às vezes não?
R: Ele só fica visível quando o parâmetro PARMFATUR.ST_VARIOSVENDEDORES da empresa logada está marcado como 'S' (Sim), o que habilita vendedor por item de nota em vez de vendedor único por nota.
Fonte: source/RNF020/URNF020.pas:226-246 (iniciar)
P: Recebi o aviso "O Modelo não funciona corretamente com a opção de 'Vários Vendedores' parametrizada [MFA001]". O relatório ainda pode ser usado?
R: Sim, o relatório é gerado mesmo assim, mas nos modelos "Vendas Toneladas x Vendedor" e "Vendas x Forma de Pagamento" o valor considera apenas o vendedor único gravado na nota, ignorando que a empresa está parametrizada para permitir vários vendedores por nota. Se precisar do detalhamento por vendedor de item, use outro modelo (ex.: Vendas por Cliente/Faturamento).
Fonte: source/RNF020/URNF020.pas:1563-1586 (TfrmRNF020.btnImprimirClick)
P: Marquei "Ignorar Seção" e informei seções no filtro, mas o relatório trouxe o oposto do que eu esperava. Por quê?
R: Com "Ignorar Seção" marcado, as seções escolhidas no grid passam a ser excluídas do resultado (NOT IN), em vez de serem o único conjunto incluído (IN). Desmarque a opção se quiser restringir o relatório apenas às seções selecionadas.
Fonte: source/RNF020/URNF020.pas:996-1007 (TfrmRNF020.btnImprimirClick)
P: Não encontro os filtros de Conta Contábil e Centro de Resultado, nem o período de "Vencimento de Contas". Onde estão?
R: Esses filtros e a aba correspondente só aparecem quando o Modelo selecionado é "Vendas e Despesas x Vendedor".
Fonte: source/RNF020/URNF020.pas:3044-3052 (TfrmRNF020.AtualizaFiltro)
P: A tela abriu já com Empresa, Modelo e filtros preenchidos de uma consulta anterior. Isso é normal?
R: Sim, a tela salva o último filtro usado por usuário/empresa ao ser fechada e o recarrega automaticamente na próxima abertura.
Fonte: source/RNF020/URNF020.pas:221-221 (iniciar), source/RNF020/URNF020.pas:275-275 (TfrmRNF020.FormClose)
P: Deu a mensagem "O Centro de Resultado não está Cadastrado [TCB001]!" mas eu sei que o código existe.
R: O centro de resultado é validado dentro da Empresa informada no filtro; se o campo Empresa estiver vazio ou for outra empresa, um centro de resultado válido em outra empresa pode ser recusado. Preencha a Empresa correta antes de digitar o código.
Fonte: source/RNF020/UdmRNF020.pas:445-452 (TdmRNF020.tabCENTROCUSTOCD_CENTROCUSTOValidate)
Dúvidas em aberto (o código não responde)
- O que exatamente as procedures VIEW_RNF020, VIEW_RNF020_D e VIEW_RNF020_V calculam internamente (fórmulas de comissão, saldo de devolução, meta) além do que é passado como parâmetro pela tela? — As procedures foram chamadas pelo módulo mas não foram lidas por completo (apenas o cabeçalho de VIEW_RNF020_D); muitas colunas exibidas (VL_METAREALIZADA, VL_CARTEIRA_TOTAL, PC_CARTEIRA) são calculadas lá dentro.
- O que representa exatamente a "quebra por Alçada" (chkAlcada/DS_GRUPOCALCADA), disponível só no modelo Despesas? — URNF020.pas:3059-3080 mostra o checkbox e a coluna DS_GRUPOCALCADA sendo usada, mas o significado de negócio de 'alçada' não é explicado no código lido.
- A licença erpFatBasico é validada em algum ponto do código do módulo (ex.: no arranque
iniciar) ou apenas no menu/framework externo? — O briefing cita a licença exigida, mas não foi encontrada checagem explícita de licença nos arquivos .pas lidos.