Devido à descontinuação da versão 5.10.3, que ocorrerá em 30/09/2025, informamos que este manual não receberá atualizações a partir desta data. Para mais informações sobre a evolução do Gestão Empresarial | ERP, acesse a documentação sobre a PCVV - Política do Ciclo de Vida das Versões.

Informamos que as funcionalidades da Reforma Tributária estão disponíveis apenas a partir da versão 5.10.4 do Gestão Empresarial.
Acesse o Portal de Exigências Legais da Senior para saber como preparar o seu negócio!

Ajuda por telas > Mercado > Gestão de Vendas > Contratos > Dados de Faturamento dos Contratos - Problemas, Diagnóstico e Correção

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:

2. Problemas nos dados de faturamento do contrato

Erros nas informações de último faturamento podem causar:

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:

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:

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:

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:

Cada arquivo conterá:

Os "Dados do Contrato", conforme abaixo:

Os "Dados Atuais de Faturamento":

Os "Dados Corretos de Faturamento":

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?

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?

Se selecionado "Todos" anteriormente, a seguinte pergunta será exibida: O sistema irá Corrigir todos os contratos. Deseja continuar?

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.

Este artigo ajudou você?