Dados de Faturamento dos Contratos - Problemas, Diagnóstico e Correção
1. Dados do último faturamento do contrato:
Tanto a tabela de dados gerais do contrato (E160CTR) como a tabela de itens de produto (E160CVP) e/ou itens de serviço (E160CVS), possuem campos que indicam dados do último faturamento, conforme segue:
- filnfv: filial da última nota que faturou o contrato/item;
- codsnf: série da última nota que faturou o contrato/item;
- numnfv: número da última nota que faturou o contrato/item;
- seqipv: sequência de item da última nota que faturou o item (Somente na tabela de item de produto);
- seqisv: sequência de item da última nota que faturou o item (Somente na tabela de item de serviço);
- datuft: data de competência da última nota que faturou o contrato/item.
2. Problemas nos dados de faturamento do contrato
Erros nas informações de último faturamento podem causar:
- Faturamento duplicado (competências já faturadas);
- Bloqueio do faturamento de competências ainda não faturadas;
- Informações incorretas em relatórios e controles de faturamento.
3. Recomendação
Recomendamos utilizar o parâmetro CtrDatUft igual a “S” na tela Manutenção dos parâmetros globais do sistema (F000PGS).
Com o parâmetro global CtrDatUft com valor igual a “S”, ao realizar o cancelamento/retorno de cancelamento de uma nota fiscal, o sistema executa uma rotina mais robusta para garantir que os dados de faturamento do contrato e de seus itens estejam corretos.
Com o parâmetro global com valor igual a “N”, essa atualização não é 100% precisa.
4. Como encontrar os dados atuais de faturamento do contrato
Abaixo seguem comandos SQL para verificar a situação atual dos dados de faturamento dos dados gerais de contrato, itens de produto e/ou itens de serviço.
O que deve ser verificado:
- filnfv: filial da última nota que faturou o contrato/item;
- codsnf: série da última nota que faturou o contrato/item;
- numnfv: número da última nota que faturou o contrato/item;
- seqipv: sequência de item da última nota que faturou o contrato/item;
- datuft: data de competência da última nota que faturou o contrato/item.
4.1 Dados atuais de faturamento para os dados gerais do contrato
SELECT 'Dados gerais do contrato', codemp, codfil, numctr, filnfv, codsnf, numnfv, datuft
FROM e160ctr
WHERE codemp = [CODEMP] AND codfil = [CODFIL] AND numctr = [NUMCTR];
Observação
Substitua os campos entre colchetes com os valores desejados.
4.2 Dados atuais de faturamento para os Itens de produto do contrato
SELECT 'Itens de produto do contrato', codemp, codfil, numctr, seqcvp, filnfv, codsnf, numnfv, seqipv, datuft
FROM E160CVP
WHERE codemp = [CODEMP] AND codfil = [CODFIL] AND numctr = [NUMCTR];
Observação
Substitua os campos entre colchetes com os valores desejados.
4.3 Dados atuais de faturamento para os Itens de serviço do contrato
SELECT 'Itens de serviço do contrato', codemp, codfil, numctr, seqcvs, filnfv, codsnf, numnfv, seqisv, datuft
FROM E160CVS
WHERE codemp = [CODEMP] AND codfil = [CODFIL] AND numctr = [NUMCTR];
Observação
Substitua os campos entre colchetes com os valores desejados.
5. Como encontrar os dados corretos de faturamento do contrato
Abaixo seguem comandos SQL para verificar quais os dados corretos de faturamento dos dados gerais de contrato, itens de produto e/ou itens de serviço.
O que deve ser verificado:
- codfil: filial da última nota que faturou o contrato/item;
- codsnf: série da última nota que faturou o contrato/item;
- numnfv: número da última nota que faturou o contrato/item;
- seqite: sequência de item da última nota que faturou o contrato/item;
- datcpt: data de competência da última nota que faturou o contrato/item;
Cada comando possui a ordenação adequada para que o primeiro registro apresentado seja utilizado como a fonte dos dados corretos de faturamento do contrato.
A ordenação deve ser, primeiramente, por data e hora! Se a série for considerada antes da data, pode ser que seja retornado um número que não o último emitido. A ordem correta é: data, hora, filial, série e número.
Ao final, foi acrescentada ainda a competência faturada, pois uma mesma nota pode ter faturado várias competências. Nesse cenário, haverá várias linhas com a mesma chave, sendo a competência faturada o único diferencial. Para esse cenário, deve-se considerar a última competência faturada para a respectiva nota.
5.1 Dados corretos de faturamento para os Dados gerais do contrato
SELECT
E140NFV.CODFIL ,
E140NFV.CODSNF ,
E140NFV.NUMNFV ,
E140ISV.SEQISV AS SEQITE,
E140NFV.DATEMI ,
E140NFV.HOREMI ,
E140ISV.CPTFAT ,
E140ISV.DATCP
FROM
E140NFV,
E140ISV
WHERE
E140NFV.CODEMP=E140ISV.CODEMP
AND E140NFV.CODFIL=E140ISV.CODFIL
AND E140NFV.CODSNF=E140ISV.CODSNF
AND E140NFV.NUMNFV=E140ISV.NUMNFV
AND E140ISV.CODEMP={CODEMP}
AND E140ISV.FILCTR={FILCTR}
AND E140ISV.NUMCTR={NUMCTR}
AND (
(E140NFV.SITNFV = '1') OR
(E140NFV.SITNFV = '2') OR
(
(E140NFV.SITNFV = '3') AND
EXISTS (
SELECT 1
FROM E140IDE
WHERE E140IDE.CODEMP = E140NFV.CODEMP
AND E140IDE.CODSNF = E140NFV.CODSNF
AND E140IDE.NUMNFV = E140NFV.NUMNFV
AND E140IDE.SITDOE NOT IN(8, 9)
)
)
)
UNION ALL
SELECT
E140NFV.CODFIL ,
E140NFV.CODSNF ,
E140NFV.NUMNFV ,
E140IPV.SEQIPV AS SEQITE,
E140NFV.DATEMI ,
E140NFV.HOREMI ,
E140IPV.CPTFAT ,
E140IPV.DATCPT
FROM
E140NFV,
E140IPV
WHERE
E140NFV.CODEMP=E140IPV.CODEMP
AND E140NFV.CODFIL=E140IPV.CODFIL
AND E140NFV.CODSNF=E140IPV.CODSNF
AND E140NFV.NUMNFV=E140IPV.NUMNFV
AND E140IPV.CODEMP={CODEMP}
AND E140IPV.FILCTR={FILCTR}
AND E140IPV.NUMCTR={NUMCTR}
AND (
(E140NFV.SITNFV = '1') OR
(E140NFV.SITNFV = '2') OR
(
(E140NFV.SITNFV = '3') AND
EXISTS (
SELECT 1
FROM E140IDE
WHERE E140IDE.CODEMP = E140NFV.CODEMP
AND E140IDE.CODSNF = E140NFV.CODSNF
AND E140IDE.NUMNFV = E140NFV.NUMNFV
AND E140IDE.SITDOE NOT IN(8, 9)
)
)
)
ORDER BY 5 DESC, 6 DESC, 1 DESC, 2 DESC, 3 DESC, 7 DESC
Observação
Substitua os campos entre colchetes com os valores desejados.
CodEmp: Código da empresa do contrato;
FilCtr: Filial do contrato;
NumCtr: Número do contrato;
FilNfv: Filial da nota fiscal vinculada ao item de serviço do contrato;
SnfNfv: Série da nota fiscal vinculada ao item de serviço do contrato;
NumNfv: Número da nota fiscal vinculada ao item de serviço do contrato;
5.2 Dados corretos de faturamento para os Itens de serviço do contrato
SELECT E140NFV.CODFIL,
E140NFV.CODSNF,
E140NFV.NUMNFV,
E140ISV.SEQISV AS SEQITE,
E140NFV.DATEMI,
E140NFV.HOREMI,
E140ISV.CPTFAT,
E140ISV.DATCPT
FROM E140NFV,
E140ISV
WHERE E140NFV.CODEMP = E140ISV.CODEMP
AND E140NFV.CODFIL = E140ISV.CODFIL
AND E140NFV.CODSNF = E140ISV.CODSNF
AND E140NFV.NUMNFV = E140ISV.NUMNFV
AND E140ISV.CODEMP = {CODEMP}
AND E140ISV.FILCTR = {FILCTR}
AND E140ISV.NUMCTR = {NUMCTR}
AND E140ISV.DATCPT = {DATCPT}
AND E140ISV.SEQCVS = {SEQCTR}
AND (
(E140NFV.SITNFV = '1') OR
(E140NFV.SITNFV = '2') OR
(
(E140NFV.SITNFV = '3') AND EXISTS (
SELECT 1
FROM E140IDE
WHERE E140IDE.CODEMP = E140NFV.CODEMP
AND E140IDE.CODSNF = E140NFV.CODSNF
AND E140IDE.NUMNFV = E140NFV.NUMNFV
AND E140IDE.SITDOE NOT IN (8, 9)
)
)
)
ORDER BY 5 DESC, 6 DESC, 1 DESC, 2 DESC, 3 DESC, 7 DESC
Observação
Substitua os campos entre colchetes com os valores desejados.
CodEmp: Código da empresa do contrato;
FilCtr: Filial do contrato;
NumCtr: Número do contrato;
DatCpt: Data de competência do item de serviço do contrato;
SeqCtr: Sequência do item de serviço do contrato;
FilNfv: Filial da nota fiscal vinculada ao item de serviço do contrato;
SnfNfv: Série da nota fiscal vinculada ao item de serviço do contrato;
NumNfv: Número da nota fiscal vinculada ao item de serviço do contrato.
5.3 Dados corretos de faturamento para os Itens de produto do contrato.
SELECT E140NFV.CODFIL,
E140NFV.CODSNF,
E140NFV.NUMNFV,
E140IPV.SEQIPV AS SEQITE,
E140NFV.DATEMI,
E140NFV.HOREMI,
E140IPV.CPTFAT,
E140IPV.DATCPT
FROM E140NFV,
E140IPV
WHERE E140NFV.CODEMP = E140IPV.CODEMP
AND E140NFV.CODFIL = E140IPV.CODFIL
AND E140NFV.CODSNF = E140IPV.CODSNF
AND E140NFV.NUMNFV = E140IPV.NUMNFV
AND E140IPV.CODEMP = :CODEMP
AND E140IPV.FILCTR = :FILCTR
AND E140IPV.NUMCTR = :NUMCTR
AND E140IPV.DATCPT = {DATCPT}
AND E140IPV.SEQCVP = {SEQCTR}
AND (
(E140NFV.SITNFV = '1') OR
(E140NFV.SITNFV = '2') OR
(
(E140NFV.SITNFV = '3') AND EXISTS (
SELECT 1
FROM E140IDE
WHERE E140IDE.CODEMP = E140NFV.CODEMP
AND E140IDE.CODSNF = E140NFV.CODSNF
AND E140IDE.NUMNFV = E140NFV.NUMNFV
AND E140IDE.SITDOE NOT IN (8, 9)
)
)
)
ORDER BY 5 DESC, 6 DESC, 1 DESC, 2 DESC, 3 DESC, 7 DESC
Observação
Substitua os campos entre colchetes com os valores desejados.
CodEmp: Código da empresa do contrato;
FilCtr: Filial do contrato;
NumCtr: Número do contrato;
DatCpt: Data de competência do item de produto do contrato;
SeqCtr: Sequência do item de produto do contrato;
FilNfv: Filial da nota fiscal vinculada ao item de produto do contrato;
SnfNfv: Série da nota fiscal vinculada ao item de produto do contrato;
NumNfv: Número da nota fiscal vinculada ao item de produto do contrato.
6 - Diagnóstico e correção dos dados de faturamento de forma automatizada
O sistema disponibiliza uma ferramenta para diagnosticar inconsistências e/ou corrigir os dados de faturamento do contrato e seus itens, de forma automatizada, executando todos os comandos que foram expostos anteriormente.
6.1 Configurando a rotina
Na tela Manutenção dos parâmetros globais do sistema (F000PGS), configure o parâmetro CorCtrUft com os valores abaixo:
| Valor | Ação Executada |
|---|---|
| N | Não registrar nem corrigir |
| LL | Apenas registrar as inconsistências em log |
| UPP | Corrigir automaticamente os contratos |
| LL, UPP | Registrar as inconsistências em log e corrigir automaticamente |
Caso tenha sido utilizada a opção "LL" sozinha ou em conjunto com a opção "UPP", o sistema grava um arquivo de log na pasta de Logs padrão (Aquela definida no arquivo CFG).
Atenção
O escopo do parâmetro é por empresa e filial, assim como a sua execução. Ou seja, ao executar a rotina para todos os contratos, serão verificados e corrigidos apenas os contratos da empresa/filial logada.
6.2 Recomendações
Recomenda-se utilizar inicialmente apenas a opção "LL", para que o sistema registre todas as inconsistências e apresente um log em formato texto, que é gravado na pasta de Logs padrão (Aquela definida no arquivo CFG).
O log deve ser analisado. Neste, serão gerados arquivos de texto separados para o Contrato, Produto e Serviço.
6.3 Log - Diagnóstico e/ou correção
O log representa o resultado da execução da rotina em dois possíveis cenários, conforme abaixo:
- Quando o parâmetro global CorCtrUft possui apenas a opção "LL" sozinha, o log apresenta os dados atuais de faturamento e os dados corretos, para que esses possam ser conferidos antes de executar a correção da base de dados;
- Quando o parâmetro global CorCtrUft possuir a opção "LL" em conjunto com a opção "UPP", o log apresenta os dados atuais de faturamento e os dados corretos, que foram aplicados na base de dados.
Em ambos os casos o sistema grava um arquivo de log na pasta de Logs padrão (aquela definida no arquivo CFG), com as inconsistência encontradas/corrigidas, desde que existam inconsistências.
Caso ocorra algum erro durante a execução da rotina, isso também é gravado no log.
As informações apresentadas no log dizem respeito as operações de diagnóstico/correção efetuadas pela rotina com base nos contratos analisados.
6.4 Log - Composição
O log é composto por arquivos de texto separados para o Contrato, Produto e Serviço, com as seguintes nomenclaturas:
- CONTRATO_DADOS_FATURAMENTO – CONTRATO - DATA
Exemplo: CONTRATO_DADOS_FATURAMENTO - CONTRATO - 09-052025.LOG - CONTRATO_DADOS_FATURAMENTO – PRODUTO - DATA
Exemplo: CONTRATO_DADOS_FATURAMENTO - PRODUTO - 09-052025.LOG - CONTRATO_DADOS_FATURAMENTO – SERVICO – DATA
Exemplo: CONTRATO_DADOS_FATURAMENTO - SERVICO - 09-052025.LOG
Cada arquivo conterá:
Os "Dados do Contrato", conforme abaixo:
- Empresa: Empresa do contrato que foi feita a correção;
- Filial: Filial do contrato que foi feita a correção;
- Número: Número do contrato que foi feita a correção.
Os "Dados Atuais de Faturamento":
- Filial: Filial atual da nota no contrato;
- Série: Série atual da nota no contrato;
- Número: Número atual da nota no contrato;
- Sequência: Sequência do item atual da nota fiscal no contrato (Somente no log dos itens);
- Data de faturamento: Data de faturamento atual da nota no contrato.
Os "Dados Corretos de Faturamento":
- Filial: Filial correta da nota do contrato;
- Série: Série correta da nota do contrato;
- Número: Número correto da nota do contrato;
- Sequencia: Sequência do item correto da nota fiscal do contrato (Somente no log dos itens)
- Data de faturamento: Data de faturamento correta da nota do contrato.
6.5 Executando a rotina
1. Acesse a tela Contratos de Venda (F160NOV);
2. No rodapé da tela, clique no botão Corrigir Dados Faturamento Contrato;
Observação
O botão só estará disponível caso o valor do parâmetro global CorCtrUft seja um dos valores permitidos, exceto “N - Não”.
Caso um contrato específico tenha sido carregado em tela, será exibida a seguinte pergunta: Deseja executar a rotina para quais contratos?
- Atual: Corrige apenas o contrato carregado em tela desde que apresentem inconsistências;
- Todos: Corrige todos os contratos que apresentarem inconsistências;
Após a escolha, o sistema exibirá uma mensagem de confirmação. Se selecionado "Atual" anteriormente, será exibida a seguinte pergunta: O sistema irá Corrigir o contrato atual. Deseja continuar?
- Sim: Executa o processo;
- Não: Interrompe a execução.
Se selecionado "Todos" anteriormente, a seguinte pergunta será exibida: O sistema irá Corrigir todos os contratos. Deseja continuar?
- Sim: Executa o processo;
- Não: Interrompe a execução.
3. Após a escolha, o sistema exibirá uma mensagem de confirmação, de acordo com o valor do parâmetro CorCtrUft:
| Parâmetro CorCtrUft | Mensagem exibida | Opções exibidas |
|---|---|---|
| Somente Logar | O sistema irá logar o contrato atual ou todos. Qual operação deseja realizar? | Logar, Nenhuma |
| Somente Corrigir | O sistema irá corrigir o contrato atual ou todos. Qual operação deseja realizar? | Corrigir, Nenhuma |
| Logar e Corrigir | O sistema irá corrigir e logar o contrato atual ou todos. Qual operação deseja realizar? | Corrigir, Logar, Ambas, Nenhuma |
| N | Não habilita o botão na tela | Nenhuma opção exibida |
4. Após a confirmação, o sistema executa a rotina conforme a opção selecionada.
7 Configurações adicionais para atualização dos dados de faturamento do contrato
Existem configurações que podem interferir na atualização dos dados de faturamento do contrato. Dentre essas configurações, algumas são públicas e outras restritas.
English
Español
English
Español


