Ir para conteúdo
  • Cadastre-se

dev botao

pcnConversao - Bug identificado no StrToTpEvento + Problema ao verificar status de NFC-e Cancelada por Substituição


MarcosRWeimer
  • Este tópico foi criado há 1820 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa Tarde!

Estou implementando o cancelamento por substituição, estou tendo o retorno 135 (evento vinculado e registrado) tudo conforme o esperado, porem ao verificar status retorna com status 100, então fui

verificar os eventos retornados nesta consulta e encontrei um erro ao converter.

TpcnTpEventoString : array[0..54] of String =('-99999', '110110', '110111',
                                                '210200', '210210', '210220',
                                                '210240', '110112', '110113',
                                                '110114', '110160', '310620',
                                                '510620', '110140', '610600',
                                                '610501', '610550', '610601',
                                                '610611', '990900', '111500',
                                                '111501', '111502', '111503',
                                                '411500', '411501', '411502',
                                                '411503', '610500', '990910',
                                                '000000', '610610', '610110',
                                                '110170', '310610', '110115',
                                                '310611', '610614', '610510',
                                                '610514', '610554', '610615',
                                                '790700', '240130', '240131',
                                                '240140', '240150', '240160',
                                                '240170', '440130', '440140',
                                                '440150', '440160', '110112',
                                                '110116');

Vejam que na terceira linha, segunda coluna (posição 7 no array),  temos o '110112' e na penúltima linha, terceira coluna (posição 53 do array),  também temos o '110112'

Agora vejam o TpcnTpEvento:

TpcnTpEvento = (teNaoMapeado, teCCe, teCancelamento, teManifDestConfirmacao,
                  teManifDestCiencia, teManifDestDesconhecimento, teManifDestOperNaoRealizada,
                  teEncerramento, teEPEC, teInclusaoCondutor,
                  teMultiModal, teRegistroPassagem, teRegistroPassagemBRId,
                  teEPECNFe, teRegistroCTe, teRegistroPassagemNFeCancelado,
                  teRegistroPassagemNFeRFID, teCTeCancelado, teMDFeCancelado,
                  teVistoriaSuframa, tePedProrrog1, tePedProrrog2,
                  teCanPedProrrog1, teCanPedProrrog2, teEventoFiscoPP1,
                  teEventoFiscoPP2, teEventoFiscoCPP1, teEventoFiscoCPP2,
                  teRegistroPassagemNFe, teConfInternalizacao, teCTeAutorizado,
                  teMDFeAutorizado, tePrestDesacordo, teGTV, teMDFeAutorizado2,
                  teNaoEmbarque, teMDFeCancelado2,teMDFeAutorizadoComCTe,
                  teRegPasNfeProMDFe, teRegPasNfeProMDFeCte, teRegPasAutMDFeComCte,
                  teCancelamentoMDFeAutComCTe, teAverbacaoExportacao, teAutCteComplementar,
                  teCancCteComplementar,teCTeSubstituicao,teCTeAnulacao,teLiberacaoEPEC,teLiberacaoPrazoCanc,
                  teAutorizadoRedespacho,teautorizadoRedespIntermed,teAutorizadoSubcontratacao,
                  teautorizadoServMultimodal, teCancSubst, teAlteracaoPoltrona);

A posição 7 é teEncerramento, e é assim que o ACBr identifica o retorno da verificação de status, fica como Encerramento ao invés de teCancSubst.

É identificado pela linha 193 (infEvento.tpEvento     := StrToTpEvento(ok,Leitor.rCampo(tcStr, 'tpEvento'));)  do arquivo pcnRetEnvEventoNFe no método TRetEventoNFe.LerXml

 

O objetivo é setar a NFC-e como cancelada (cStat 101) mas pelo geito não vou conseguir fazer isso, já que no evento retorna 135 e no status 100. Estou testando no Sefaz/PR. Alguem de outra UF tem o mesmo problema (retornar 100 ao invés do 101 depois de autorizado o cancelamento por substituição). ??

P.S. Procurei na NT mas não encontrei nenhuma alteração na verificação de status.

 

 

 

 

 

 

 

 

-=Ma®©oS=-

Link para o comentário
Compartilhar em outros sites

ninguém mais identificou o problema? Ninguém verificou status da NFC-e substituída ?

Até sei uma solução simples que seria no arquivo pcnRetEnvEventoNFe.pas no método TRetEventoNFe.LerXml depois da linha 193...

if infEvento.tpEvento = teEncerramento then 
  infEvento.tpEvento := teCancSubst;

 

mas não seria "nada elegante".

-=Ma®©oS=-

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

Se alguem precisa resolver a parte da impressão (fast report), só alterar no DanfeEventos.fr3

 

procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);
begin

  if <Eventos."TipoEvento"> = '110111' then
  begin
    Memo40.Text:='CANCELAMENTO DE NF-e';
  end
  else if <Eventos."TipoEvento"> = '110112' then
  begin
    Memo40.Text:='CANCELAMENTO POR SUBSTITUIÇÃO DE NF-e';
  end
  else
  begin
    Memo40.Text:='CARTA DE CORREÇÃO ELETRÔNICA';
  end;
  Memo1.Text := Memo40.Text;

end;

 

Editado por -=Ma®©oS=-

-=Ma®©oS=-

Link para o comentário
Compartilhar em outros sites

  • Consultores
22 horas atrás, -=Ma®©oS=- disse:

Se alguem precisa resolver a parte da impressão (fast report), só alterar no DanfeEventos.fr3

 


procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);
begin

  if <Eventos."TipoEvento"> = '110111' then
  begin
    Memo40.Text:='CANCELAMENTO DE NF-e';
  end
  else if <Eventos."TipoEvento"> = '110112' then
  begin
    Memo40.Text:='CANCELAMENTO POR SUBSTITUIÇÃO DE NF-e';
  end
  else
  begin
    Memo40.Text:='CARTA DE CORREÇÃO ELETRÔNICA';
  end;
  Memo1.Text := Memo40.Text;

end;

 

Enviei essa alteração ao SVN. Queira por favor atualizar, testar e reportar qualquer problema.

Note que ainda precisamos resolver a questão levantada no princípio das conversões.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Em 01/04/2019 at 14:06, -=Ma®©oS=- disse:

ninguém mais identificou o problema? Ninguém verificou status da NFC-e substituída ?

Até sei uma solução simples que seria no arquivo pcnRetEnvEventoNFe.pas no método TRetEventoNFe.LerXml depois da linha 193...


if infEvento.tpEvento = teEncerramento then 
  infEvento.tpEvento := teCancSubst;

 

mas não seria "nada elegante".

Uma solução para  a conversão seria esta... mas não é nada elegante, o melhor a fazer, no MEU ponto de vista, seria separar o tipo enumerado (tpEvento) por documento.

 

-=Ma®©oS=-

Link para o comentário
Compartilhar em outros sites

  • Consultores
5 minutos atrás, -=Ma®©oS=- disse:

Uma solução para  a conversão seria esta... mas não é nada elegante, o melhor a fazer, no MEU ponto de vista, seria separar o tipo enumerado (tpEvento) por documento.

 

Exatamente isso que conversamos e estamos planejando fazer.

Parece que não vamos ter outra opção pois pode ser que, de agora em diante, comecem a surgir mais eventos e eles acabem tendo o mesmo código.

Infelizmente, isso deve quebrar algum código... :(

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

2 minutos atrás, EMBarbosa disse:

Exatamente isso que conversamos e estamos planejando fazer.

Parece que não vamos ter outra opção pois pode ser que, de agora em diante, comecem a surgir mais eventos e eles acabem tendo o mesmo código.

Infelizmente, isso deve quebrar algum código... :(

Pois é, SEFAZ poderia facilitar e não repetir os códigos de tpEvento, mas pra que facilitar né? kkk

Também acho que vai acontecer de repetir mais no futuro, vai ser uma baita alteração, com certeza haverá impactos.

 

-=Ma®©oS=-

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1820 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...