ERP – Faturamento – Como inutilizar um lote de NF-e
Dúvida
Existe algum procedimento que pode ser realizado no Gestão Empresarial | ERP para gerar inutilização de NF-e em lote?
Exemplo de cenário:
Foi criada uma série de NF-e nova, porém, equivocadamente, a primeira nota gerada foi a de número 1015, e seguiu-se a partir deste número. Tem-se a necessidade de fazer a inutilização destas notas (de 1 a 1014), para que possa ser escriturado no arquivo do SPED FISCAL.
Solução
Importante
As informações presentes neste artigo se aplicam para NF-e., uma vez que para CT-e e NFS-e não existe inutilização de documento;
- As informações presentes neste artigo tem foco no processo de integração entre Gestão Empresarial | ERP e eDocs;
- A quantidade de NF-e gerada e inutilizada por lote deve ser avaliada de acordo com a infraestrutura do cliente;
- Recomenda-se a duplicação do ambiente de produção do cliente para um ambiente de homologação/testes, onde possam ser testados os procedimentos necessários, inclusive com a integração do ERP Senior com o eDocs. Recomenda-se, para os primeiros testes, utilização de rotina para criação/inutilização de pequenas quantidades de NF-e;
- Deverá ser solicitado junto à SEFAZ a liberação para solicitação de inutilização de NF-e em grande número, para que não ocorra rejeição destas solicitações ou multas pelo uso indevido dos recursos da SEFAZ, consumo excessivo dos Web Services da SEFAZ;
- Caso haja necessidade de apoio para realização deste processo, a área de Serviços da Senior poderá ser acionada para que seja alocado um consultor para apoiar a execução deste processo.
Para que seja efetuada a inutilização de NF-e em Lote, você poderá utilizar um dos seguintes processos:
1. Processo agendado de inutilização
1.1. Acesse a tela F000AGE - Recursos / Processos Automáticos / Cadastro e parametrize o processo agendado de rotina 157. Acesse o Manual de Usuário do Gestão Empresarial | ERP e busque pelo termo '167 - Inutilização de números de séries fiscais não utilizados' para localizar a documentação deste processo;
Atenção
A parametrização equivocada deste processo agendado poderá gerar a inutilização inadequada de numerações e impactar diretamente o processo de faturamento.
1.2. Ative o processo e acompanhe a inutilização dos documentos.
2. Inutilização através de regras customizada e WebService
2.1. Acesse a tela Recursos / Implementações / Regras / Editar;
2.1.1. Crie uma regra LSP utilizando o WebService com.senior.g5.co.mcm.ven.notafiscal@GravarNotasFiscaisSaida_X para geração em lotes das NF-e que necessitam ser inutilizadas (as NF-e não precisam ter produtos/serviços informados, apenas o cabeçalho da NF-e e um cliente padrão, que deverá ser definido pelo cliente);
Observação
Orienta-se a utilização da última porta disponível do WebService.
2.1.2. Após a geração das NF-e, a inutilização em lote também será necessária, através do mesmo WebService, sendo definido via regra o motivo da inutilização;
Abaixo seguem exemplos de requisições ao WebService para geração da NF e posterior inutilização:
Importante
Esses exemplos não irão funcionar se apenas copiados para uma regra. Eles são partes de uma regra que deverá ser criada para geração da solicitação. O Suporte da Senior não prestará atendimento sobre duvidas quanto a estes exemplos. Eles servem apenas para clarificar a forma da chamada do WebService.
Exemplo de requisição a ser efetuada via regra ao WebService para inclusão de uma NF que será inutilizada
wsNotaSaidaInu.TipoProcessamento = 1;
wsNotaSaidaInu.TipCal = 0;
wsNotaSaidaInu.GerPar = 1;
wsNotaSaidaInu.FecNot = 1;
wsNotaSaidaInu.GerarDocumentoEletronico = 0;
@- Inserir o Cabeçalho da Nota Fiscal -@
wsNotaSaidaInu.DadosGerais.CriarLinha();
wsNotaSaidaInu.DadosGerais.CodEmp = 1;
wsNotaSaidaInu.DadosGerais.CodFil = 1;
wsNotaSaidaInu.DadosGerais.CodSnf = NFE;
wsNotaSaidaInu.DadosGerais.CodEdc = 55;
wsNotaSaidaInu.DadosGerais.CodCli = 99;
wsNotaSaidaInu.DadosGerais.CodFpg = 1;
wsNotaSaidaInu.DadosGerais.CodTra = 1;
wsNotaSaidaInu.DadosGerais.TnsPro = 5102;
Exemplo de requisição a ser efetuada via regra ao WebService para solicitar inutilização da NF
wsNotaSaidaInu.TipoProcessamento = 3;
wsNotaSaidaInu.TipCal = 0;
wsNotaSaidaInu.GerPar = 1;
wsNotaSaidaInu.FecNot = 1;
wsNotaSaidaInu.GerarDocumentoEletronico = 1;
@- Inserir o Cabeçalho da Nota Fiscal -@
wsNotaSaidaInu.DadosGerais.CriarLinha();
wsNotaSaidaInu.DadosGerais.CodEmp = 1;
wsNotaSaidaInu.DadosGerais.CodFil = 1;
wsNotaSaidaInu.DadosGerais.CodSnf = NFE;
wsNotaSaidaInu.DadosGerais.NumNfv = sNumNfv;
wsNotaSaidaInu.DadosGerais.CodEdc = 55;
wsNotaSaidaInu.DadosGerais.CodMot = 10;
Exemplo de requisição a ser efetuada via regra ao WebService para solicitar inutilização da NF que tenha já o cabeçalho gerado
Definir cursor Cur_E140NFV;
Definir numero NumeroInicial;
Definir numero NumeroFinal;
Definir numero VContinua;
Definir numero VsCodEmp;
Definir numero VsCodFil;
Definir alfa VsCodSnf;
Definir numero VsSitNfv;
Definir numero VsNumNfv;
Definir alfa aNumNfv;
Definir interno.com.senior.g5.co.mcm.ven.notafiscal.GravarNotasFiscaisSaida_17 wsNotaSaidaInu;
VsCodEmp = 1;
VsCodFil = 1;
VsCodSnf = "NFE";
NumeroInicial = 819452;
NumeroFinal = 819455;
VsSitNfv = 1;
Cur_E140NFV.SQL "SELECT * FROM E140NFV \
WHERE CODEMP = :VSCODEMP \
AND CODFIL = :VSCODFIL \
AND CODSNF = :VSCODSNF \
AND NUMNFV >= :NumeroInicial \
AND NUMNFV <= :NumeroFinal \
AND SITNFV = :VsSitNfv";
Cur_E140NFV.AbrirCursor();
VContinua = 0;
Enquanto ((Cur_E140NFV.Achou) e (VContinua < 3))
Inicio
VsNumNfv = Cur_E140NFV.NumNfv;
IntParaAlfa(VsNumNfv,aNumNfv);
wsNotaSaidaInu.DadosGerais.CriarLinha();
wsNotaSaidaInu.DadosGerais.CodEmp = VsCodEmp;
wsNotaSaidaInu.DadosGerais.CodFil = VsCodFil;
wsNotaSaidaInu.DadosGerais.CodSnf = VsCodSnf;
wsNotaSaidaInu.DadosGerais.NumNfv = aNumNfv;
wsNotaSaidaInu.TipoProcessamento = 3;
wsNotaSaidaInu.TipCal = 0;
wsNotaSaidaInu.GerPar = 1;
wsNotaSaidaInu.FecNot = "1";
wsNotaSaidaInu.GerarDocumentoEletronico = "1";
VContinua = VContinua + 1;
Cur_E140NFV.Proximo();
Fim;
Cur_E140NFV.FecharCursor();
wsNotaSaidaInu.ModoExecucao = 2;
wsNotaSaidaInu.Executar();
nQtdLinhasRetorno = wsNotaSaidaInu.RetornosNotasSaida.QtdLinhas;
nQtdLin = 0;
Definir Alfa sRetIte;
sRetIte = " ";
Enquanto (nQtdLin < nQtdLinhasRetorno)
{
@posiciona no primeiro registro da tabela de retorno@
wsNotaSaidaInu.RetornosNotasSaida.LinhaAtual = nQtdLin;
@busca os dados do retorno da inserção do pedido na linha atual@
nCodEmp = wsNotaSaidaInu.RetornosNotasSaida.CodEmp;
nCodFil = wsNotaSaidaInu.RetornosNotasSaida.CodFil;
Definir Alfa sCodSnf;
sCodSnf = wsNotaSaidaInu.RetornosNotasSaida.CodSnf;
Definir Alfa sNumNfv;
sNumNfv = wsNotaSaidaInu.RetornosNotasSaida.NumNfv;
Definir Alfa sMsgRet;
sMsgRet = wsNotaSaidaInu.RetornosNotasSaida.Retorno;
nQtdLin = nQtdLin + 1;
}
x=y;
Observação
- É obrigatório que a NF gerada via WebService tenha pelo menos um item (que poderá ser apenas o complemento do item) com valor. A NF deverá ser fechada;
- A solicitação de cancelamento da última NF da série via WebService, por padrão, fará com que o sistema exclua a NF do sistema. Desta forma, orienta-se a geração das NF primeiro, para depois solicitar a inutilização das NF-e. Sendo a última NF da série a que precise ser inutilizada, a inutilização poderá ser efetuada de forma unitária pela tela F140CAN;
- Como houve o pulo da numeração da série da NF, o sistema irá efetuar consistências referente a data da NF e a numeração da NF;
- Se for alterado apenas o número da última NF da série para realizar a geração das NF-e, o sistema poderá gerar a mensagem: A série fiscal 'XX' possui notas fiscais com numeração superior a XX, mas com data de emissão inferior a XX. Verifique a nota fiscal XXXXXX com emissão XXXXX. Para este cenário, consulte as informações presentes no artigo ERP – Faturamento – A série fiscal 'XX' possui notas fiscais com numeração superior a XX, mas com data de emissão inferior a XX;
- Em caso de cliente que utilize ERP GOUP:
- Independente do ambiente, é possível criar uma regra personalizada e executá-la. Única questão é que a regra será perdida em uma atualização. Se for utilizado o parâmetro -customizar no atalho de inicialização do sistema, o ERP GOUP permitirá acesso ao menu Recursos para executar a regra;
- Outra possibilidade é acionar o WebService necessário para execução do processo através de um relatório (relatórios customizados são permitidos no ERP GOUP e não são perdidos na atualização).