Valdir Posted July 24, 2018 Report Share Posted July 24, 2018 Boas... Alguém está ficando louco e acredito que não seja eu... pelo menos pro enquanto. Vejam que absurdo este retorno da SEFAZ-SP: - Um cliente emitiu uma NFe de Vendas ontem por volta das 5:30 hs. Esta Nfe foi autorizada e Recibo registrado como "2018-07-23T15:27:12-3:00". Hoje ao tentar Cancelar essa mesma NFe, está retornando: "Rejeição 577 - A data do Evento não pode ser maior que a data de emissão..." E para piorar um pouco mais, após algumas tentativas, começou a retornar: "Consumo Indevido..." Parece piada, más infelizmente não é. Quote Link to comment Share on other sites More sharing options...
edutraini Posted July 24, 2018 Report Share Posted July 24, 2018 Nao quero nem imaginar o que vem por ai Valdir 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 24, 2018 Report Share Posted July 24, 2018 Sincronize o Relógio do Windows do cliente. Valdir 1 Quote Link to comment Share on other sites More sharing options...
Valdir Posted July 24, 2018 Author Report Share Posted July 24, 2018 Sincronize o Relógio do Windows do cliente. Jura ???? kkkkkkkkkkkkk Já foi feito meu amigo... Abrs. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 24, 2018 Report Share Posted July 24, 2018 Tá estranho... tá estranho... aqui não temos reportagem de problemas com cancelamentos. Un xeyrooo no kangotyyy.... kkkkkkkkkkkkkkkkkk Tais usando a rotina modificada pelo master Gilmer Tavares? Valdir 1 Quote Link to comment Share on other sites More sharing options...
Valdir Posted July 24, 2018 Author Report Share Posted July 24, 2018 Tá estranho... tá estranho... aqui não temos reportagem de problemas com cancelamentos. Un xeyrooo no kangotyyy.... kkkkkkkkkkkkkkkkkk Tais usando a rotina modificada pelo master Gilmer Tavares? Obrigado à todos pelas respostas. Concordo contigo prezado amigo... Vamos aos fatos: 1º - O Cliente emite e autoriza a NFe com data de ontem "23-07-2018T15:27-3:00" 2º - Hoje, ao tentar o Cancelamento pelo primeira vez, é retornado "Rejeição 577 - A data do Evento não pode ser maior que a data de emissão..." 3º - O Cliente corrige a Data e do Computador e retransmite o Pedido de Cancelamento. 4º - Novamente e por várias vezes é retornado "Rejeição 577 - A data do Evento não pode ser maior que a data de emissão..." 5º - Após várias tentativas do cliente, começa a retornar "Consumo Indevido..." Após checagem das informações através da MsgDados da VoNfeUtil, é confirmado que os parâmetros estão corretos e por isso, não deveria retornar a rejeição 577 Abrs. Quote Link to comment Share on other sites More sharing options...
gilmer Posted July 24, 2018 Report Share Posted July 24, 2018 A Flexdocs tem o cancelamento por evento http://www.flexdocs.com.br/guianfe/WS.canc.cancelaEvento.html este permite passar a diferença de fuso, quando não enviado ela passa o padrão (windows). Valdir and jfaguiar 2 Quote Link to comment Share on other sites More sharing options...
Valdir Posted July 25, 2018 Author Report Share Posted July 25, 2018 A Flexdocs tem o cancelamento por evento http://www.flexdocs.com.br/guianfe/WS.canc.cancelaEvento.html este permite passar a diferença de fuso, quando não enviado ela passa o padrão (windows). Bom Dia... Gilmer, obrigado pela resposta, porém repare que já uso a função CancelaEvento da FlexDocs. //Cancela Nfe Method CancelaNF(ChaveNFe, nroProtocolo, Justificativa,dhEvento,cTo,cBcc,cSubject,aFieldBody,cBody,lBodyHtml) Class TVoNFeUtil2G local nStat:=0 local msgRetWS:="" Local mensagem := "" Local msgDados := "" Local cProtocoloCanc:="" Local dProtocoloCanc:="" Default ChaveNfe:="" Default Justificativa:="" Default nroprotocolo := "" Default dhevento:="" Justificativa:=Alltrim(Justificativa) ::Limpa() If ::CertificadoSelecionado() If ::ConsultaStatus() Try ::cXmlProtocolo:=::oNFEUtil:CancelaNFEvento(::SiglaWS,::Ambiente,::cCertificado,"4.00",@msgDados,@msgRetWS,; @nStat, @mensagem,ChaveNFe, nroProtocolo,Justificativa,dhevento,@cProtocoloCanc,; @dProtocoloCanc,::Proxy,::Usuario,::Senha,::Licenca) Catch ? "Tratar erro" End Try If nStat!=135.and.nStat!=151.and.nStat!=155 If ::lMensagem #IFDEF _DOS_ Alert( hb_ansitooem( Mensagem+"-"+Procname() ) ) #ELSE MsgStop( Mensagem+CRLF+ProcName() , CAPTION_MSG ) #ENDIF Endif // Tratar erro Endif ::aUltStatus:={msgDados, msgRetWS} ::cStsNFe := Alltrim(Str(nStat)) ::cStsNFeMsg := mensagem ::lAutorizada := nStat==135.or.nStat==151.or.nStat==155 ::Protocolo := cProtocoloCanc ::Recebimento := dProtocoloCanc If ::lAutorizada If ::lSalvaXmlAutomatico ::cChaveNfe:=ChaveNfe If !::SalvaXml(::cChaveNfe+"-can.xml",::cXmlProtocolo,3) ::Geralog("Não foi possível salvar XML de cancelamento:"+::cChaveNfe+CRLF+::cXml) #IFDEF _DOS_ Alert( hb_ansitooem( "Não foi possível salvar XML de cancelamento:"+::cChaveNfe+"-"+Procname() ) ) #ELSE MsgStop( "Não foi possível salvar XML de cancelamento:"+::cChaveNfe+"-"+CRLF+ProcName() , CAPTION_MSG) #ENDIF Endif Endif If !Empty(::cFromEmail).and.!Empty(cTo) cBody:=::PreparaEmail(If(Empty(cBody),::cEmailCancela,cBody),::cXmlProtocolo,aFieldBody,::ReadXml(::cPathNFe+::cSubPastaProtocolos+::cChaveNfe+"-nfe.xml")) ::EnviaEmail(cTo,cBcc,cSubject,cBody,{::cPathNFe+::cSubPastaProtocolos+::cChaveNfe+"-can.xml"},lBodyHtml,aFieldBody) Endif Endif Endif // Tratar erro Endif Return( ::lAutorizada ) Ou não seria isso ? Abração. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 25, 2018 Report Share Posted July 25, 2018 3º - O Cliente corrige a Data e do Computador e retransmite o Pedido de Cancelamento. Certifique-se que ele esteja fazendo a sincronia corretamente, não pode ser manualmente. Conforme imagem: Valdir 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 25, 2018 Report Share Posted July 25, 2018 Fazes assim? IF VAL(cTpAmb) = 1 // CONFORME O GILMER P/O CLIENTE E .F. P/RETORNOS oNFEUtil:=tVoNFeUtil2G():New(CADPARAM->UF,val(cTpAmb),cCertificado,wProxy,wUsuario,wSenha,cLicenca,.F.,lNfeScan) ELSE // CONFORME O GILMER EM AMBIENTE DE TESTES = .T. oNFEUtil:=tVoNFeUtil2G():New(CADPARAM->UF,val(cTpAmb),cCertificado,wProxy,wUsuario,wSenha,cLicenca,.T.,lNfeScan) ENDIF Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 25, 2018 Report Share Posted July 25, 2018 nX:=oNFEUtil:CancelaNF(cChaveAcesso,cProtocolo,"Nota Cancelada pelo Emitente") Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 25, 2018 Report Share Posted July 25, 2018 Quote Link to comment Share on other sites More sharing options...
Valdir Posted July 25, 2018 Author Report Share Posted July 25, 2018 Fazes assim? IF VAL(cTpAmb) = 1 // CONFORME O GILMER P/O CLIENTE E .F. P/RETORNOS oNFEUtil:=tVoNFeUtil2G():New(CADPARAM->UF,val(cTpAmb),cCertificado,wProxy,wUsuario,wSenha,cLicenca,.F.,lNfeScan) ELSE // CONFORME O GILMER EM AMBIENTE DE TESTES = .T. oNFEUtil:=tVoNFeUtil2G():New(CADPARAM->UF,val(cTpAmb),cCertificado,wProxy,wUsuario,wSenha,cLicenca,.T.,lNfeScan) ENDIF Kapi, Obrigado pela resposta. A.. ::Ambiente Faz exatamente a mesma coisa. Abrs. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 25, 2018 Report Share Posted July 25, 2018 Vaja data e hora dessa nota fiscal, cancelou de boa. Teste ai na sua máquina, pois a classe do Gilmer tá de acordo com a FlexDocs. https://i.imgur.com/y8igvFm.png https://i.imgur.com/LLUJUEi.png Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted July 25, 2018 Report Share Posted July 25, 2018 Tb estou com problema no cancelamento no meu caso vem o erro: 6158 - Erro: O parâmentro dhEvento é invalida[cadeia de caracteres não reconhecida como um datetime válido] tipo fiz um teste aqui, para ver o retorno de dhEvento Try ::cXmlProtocolo:=::oNFEUtil:CancelaNFEvento(::SiglaWS,::Ambiente,::cCertificado,"4.00",@msgDados,@msgRetWS,; @nStat, @mensagem,ChaveNFe,nroProtocolo,Justificativa,dhevento,@cProtocoloCanc,; @dProtocoloCanc,::Proxy,::Usuario,::Senha,::Licenca) ? dhevento //:cXmlProtocolo e no caso o retorno veio o email do cliente, olha o manual da flexdocs não teria que ter mais dois parametro ( chaveCTe, CNPJTomador ) procEvento = objCTeUtil.EnviaPrestDesacordo(siglaWS, tipoAmbiente, nomeCertificado, versao, msgDados, msgRetWS, cStat, msgResultado, chaveCTe, CNPJTomador, xObs, dhEvento, nProtocolo, dProtocolo, proxy, usuario, senha, licenca) Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 25, 2018 Report Share Posted July 25, 2018 Mostre como está o seu dhEvento e a Function TimeZone(dData) <dhEvento>2017-05-30T14:55:32-03:00</dhEvento> Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 25, 2018 Report Share Posted July 25, 2018 Luiz Fernando 1 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted July 25, 2018 Report Share Posted July 25, 2018 Mostre como está o seu dhEvento e a Function TimeZone(dData) <dhEvento>2017-05-30T14:55:32-03:00</dhEvento> No meu caso aqui deu certo o erro estava na minha chamada if oNfeUtil:CancelaNF(Alltrim(cChave),Alltrim(cProtocolo),Alltrim(cJustificativa),'',_email_cliente,cUser,"Aviso Nota Fiscal Eletrônica - Cancelamento",; entre o cJustificativae e email coloquei "", e la no Methodo CancelaNF deixei o dhEnvento:="" cancelou certinho aqui. kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 25, 2018 Report Share Posted July 25, 2018 Method CancelaNF(ChaveNFe, nroProtocolo, Justificativa,dhevento,cTo,cBcc,cSubject,aFieldBody,cBody,lBodyHtml) Method CancelaNF(ChaveNFe, nroProtocolo, Justificativa,dhEvento,cTo,cBcc,cSubject,aFieldBody,cBody,lBodyHtml) Class TVoNFeUtil2G local nStat:=0 local msgRetWS:="" Local mensagem := "" Local msgDados := "" Local cProtocoloCanc:="" Local dProtocoloCanc:="" // CANCELAMENTO DE NFE POR EVENTO A PARTIR DE 2012 Local lEvento := If(date()>=ctod("31/03/2012"),.T.,.F.) Default ChaveNfe:="" Default Justificativa:="" Default nroprotocolo := "" Default dhevento:="" // dhevento default vazio Justificativa:=Alltrim(Justificativa) ::lEventoAtivo:=lEvento ::Limpa() HB_GCALL( .F. ) If ::CertificadoSelecionado() // NOVO CANCELAMENTO, peguei da classe do GILMER: 29/11/2012 If ::ConsultaStatus( .T. ) // alterado em 20/11/2010 Try /* // ERA ASSIM NA VERSAO: 3.10 ::cXmlProtocolo:=::oNFEUtil:CancelaNF2G(::SiglaWS,::Ambiente,::cCertificado,If(::lEventoAtivo,IF(LNOVADLL4,"4.00","1.00"),::cVersaoNfe),@msgDados,@msgRetWS,; @nStat, @mensagem,ChaveNFe,nroProtocolo,Justificativa,@cProtocoloCanc,; @dProtocoloCanc,::Proxy,::Usuario,::Senha,::Licenca) */ ::cXmlProtocolo:=::oNFEUtil:CancelaNFEvento(::SiglaWS,::Ambiente,::cCertificado,"4.00",@msgDados,@msgRetWS,; @nStat, @mensagem,ChaveNFe, nroProtocolo,Justificativa,dhevento,@cProtocoloCanc,; @dProtocoloCanc,::Proxy,::Usuario,::Senha,::Licenca) Catch ? "Tratar erro linha 1370 VONFEUTIL2G - CancelaNF" End Try //? nStat, @nStat // MANTIVE lEventoAtivo AQUI, MESMO NAO TENDO NA CLASSE DO GILMER. If iif(!::lEventoAtivo,( nStat!=101 .and. nStat!=151 .and. nStat!=420 ) , ( nStat!=135 .and. nStat!=151 .and. nStat!=155 .and. nStat!=420 ) ) If ::lMensagem #IFDEF __DOS__ Alert( hb_ansitooem( Mensagem+"-"+Procname() ) ) #ELSE MsgStop( Mensagem+CRLF+ProcName() , CAPTION_MSG ) // Cancelamento Intempestivo - NFe Aut. a + de 7 dias IF nStat = 501 // Modifcado em: 10/07/2013 CANC_INTEMPESTIVO_501_DATA_DA_NOTA() ELSEIF nStat = 573 // Modifcado em: 26/11/2013 CANC_573_DUPLICIDADE_DE_EVENTO() // DUPLICIDADE DE EVENTO NO CANCELAMENTO ENDIF #ENDIF Endif // Tratar erro Endif ::aUltStatus:={msgDados, msgRetWS} ::cStsNFe := Alltrim(Str(nStat)) ::cStsNFeMsg := mensagem ::lAutorizada := iif(!::lEventoAtivo,( nStat==101.or.nStat==151.or.nStat==420 ),( nStat==135.or.nStat==151.or.nStat==155.or.nStat==420 ) ) ::Protocolo := cProtocoloCanc ::Recebimento := dProtocoloCanc If ::lAutorizada If ::lSalvaXmlAutomatico ::cChaveNfe:=ChaveNfe If !::SalvaXml(::cChaveNfe+"-can.xml",::cXmlProtocolo,3) ::Geralog("Não foi possível salvar XML de cancelamento:"+::cChaveNfe+CRLF+::cXml) #IFDEF __DOS__ Alert( hb_ansitooem( "Não foi possível salvar XML de cancelamento:"+::cChaveNfe+"-"+Procname() ) ) #ELSE MsgStop( "Não foi possível salvar XML de cancelamento:"+::cChaveNfe+"-"+CRLF+ProcName() , CAPTION_MSG) #ENDIF Endif Endif If !Empty(::cFromEmail).and.!Empty(cTo) cBody:=::PreparaEmail(If(Empty(cBody),::cEmailCancela,cBody),::cXmlProtocolo,aFieldBody,::ReadXml(::cPathNFe+::cSubPastaProtocolos+::cChaveNfe+"-nfe.xml")) ::EnviaEmail(cTo,cBcc,cSubject,cBody,{::cPathNFe+::cSubPastaProtocolos+::cChaveNfe+"-can.xml"},lBodyHtml,aFieldBody) Endif Endif Endif // Tratar erro Endif Return( ::lAutorizada ) Quote Link to comment Share on other sites More sharing options...
jfaguiar Posted July 26, 2018 Report Share Posted July 26, 2018 A Flexdocs tem o cancelamento por evento http://www.flexdocs.com.br/guianfe/WS.canc.cancelaEvento.html este permite passar a diferença de fuso, quando não enviado ela passa o padrão (windows). E o suporte é ótimo. Grande Flexdocs! A Flexdocs tem o cancelamento por evento http://www.flexdocs.com.br/guianfe/WS.canc.cancelaEvento.html este permite passar a diferença de fuso, quando não enviado ela passa o padrão (windows). Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 26, 2018 Report Share Posted July 26, 2018 FlexDocs 19 de fevereiro · Fim do horário de verão Na maioria dos equipamentos, o ajuste do fim do horário de verão é automático. Nos casos em que o ajuste não acontecer NÃO ATRASE o relógio, a forma correta de ajustar o horário é mudar o fuso horário no Windows para -03:00 (se estiver -02:00) ou -04:00 (se estiver -03:00): Passos para modificar o fuso horário no Windows: 1. Clique com o botão direito sobre a Data e a Hora no canto inferior direito da tela. 2. A partir da caixa de diálogo da Data e Hora clique em Alterar configurações de data e hora. 3. Na janela de propriedades de Data e Hora clique no botão Alterar fuso horário. 4. Na janela de Configurações de Fuso Horário selecione o fuso horário correto no menu Suspenso e clique em OK. Se acontecer alguma rejeição relacionado com o horário, a causa do problema deve ser o ajuste do fim do horário de verão realizado de forma incorreta. Quote Link to comment Share on other sites More sharing options...
Wellington Vieira Posted July 26, 2018 Report Share Posted July 26, 2018 Boa tarde, Ontem dia 25/07/2018, aqui em MG um cliente enviou uma NF-e, e recebeu o número do recibo, o número do protocolo retornado pela SEFAZ/MG e autorizou a NF-e. Foi necessário cancelar a mesma e para surpresa a mesma não constava na base de dados da SEFAZ/MG e tão pouco na base de dados da SEFAZ Nacional. A ação necessária foi inutilizar o número e reemitir outra nf-e. Já ocorreu aqui também de emitir a nf-e, receber o protocolo e na hora de CANCELAR acusar "Rejeição 577 - A data do Evento não pode ser maior que a data de emissão..." , mas eram problemas relacionados ao ambiente da SEFAZ/MG. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.