Clipper On Line • Ver Tópico - COMO CANCELAR UMA NFC-e com a SEFAZCLASS??

COMO CANCELAR UMA NFC-e com a SEFAZCLASS??

Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)

Moderador: Moderadores

 

COMO CANCELAR UMA NFC-e com a SEFAZCLASS??

Mensagempor Fernando queiroz » 06 Mar 2018 15:51

Estou precisando cancelar uma NFC-e usando a SEFAZCLASS mas nao esta funcionando

tentei pela mesma rotina de cancelamento da NF-e mas nao fez nada, tem alguma rotina especifica para isso???

********************************************************
STATIC FUNCTION NFCECANCELA(  )
********************************************************
      SELE CERTIFICADO
      IF !DBSEEK(rtrim(hwg_GetComputerName()))
         hwg_MsgInfo("Computador sem o CERTIFICADO DIGITAL instalado"+ HB_EOL()+"A Operação não poderá ser efetuada")
         SELE NOTAFE
         RETURN NIL
      endif
      SELE NOTAFCE
      
      cPrefixo := hb_Dirbase()+"xml\retorno\NFCe" + substr(NOTAFCE->a_Id,26,12)         

      xJust:=space(90)     
      oSefaz     := SefazClass():New()
      oSefaz:cCertificado := TRIM(CERTIFICADO->NOMCERT)
//      cXmlRetorno := oSefaz:NFeConsultaProtocolo( substr(NOTAFCE->a_Id,4,44), ALLTRIM(oSefaz:cCertificado) , FLAG->n_tpAmb )
//      IF XmlNode(cXmlRetorno, "cStat") != "100"
//         hwg_MsgInfo("NFC-e NAO PODE SER CANCELADA"+ HB_EOL()+ HB_EOL() +;
//                          "MOTIVO: " + XmlNode(cXmlRetorno, "xMotivo")+ HB_EOL() +;
//                          "STATUS: " + XmlNode(cXmlRetorno, "cStat")+ HB_EOL() + HB_EOL() , "Cancela NFC-e - " + substr(NOTAFCE->a_Id,29,9) )
//      ELSE
         IF PERG( "DESEJA CANCELAR A NFC-e " + substr(NOTAFCE->a_Id,29,9) + " ?" ) = "S"   
            cXmlRetorno:=MemoRead(cPrefixo + "_7_Autorizado.xml")
            xJust:=space(120)
            xJust:=JUSTIFICANFCE(xJust)                                     
            IF xJust = "cancela"
               RETURN NIL
            endif
            if xJust != space(20)
               oSefaz     := SefazClass():New()
               hwg_MsgInfo( substr(NOTAFCE->a_Id,4,44)+ HB_EOL() + XmlNode(cXmlRetorno, "nProt")+ HB_EOL() +RTRIM(xJust)+ HB_EOL() +TRIM(CERTIFICADO->NOMCERT))
               
               
               
               cXmlRetorno := oSefaz:NFeEventoCancela( substr(NOTAFCE->a_Id,4,44), 1, val(XmlNode(cXmlRetorno, "nProt")), RTRIM(xJust), TRIM(CERTIFICADO->NOMCERT), FLAG->n_tpAmb )      
               hb_MemoWrit( cPrefixo + "_9_Cancelamento.xml", cXmlRetorno )
               cXmlRetorno := XmlNode( cXmlRetorno, "retEvento" )
               if XmlNode(cXmlRetorno, "cStat") == "135"      
                  hwg_MsgInfo("NFC-e SOLICITACAO DE CANCELAMENTO EFETUADA COM SUCESSO"+ HB_EOL()+ HB_EOL() +;
                                "MOTIVO: " + XmlNode(cXmlRetorno, "xMotivo")+ HB_EOL() +;
                                "STATUS: " + XmlNode(cXmlRetorno, "cStat")+ HB_EOL() + HB_EOL() , "Cancela NFC-e - " + substr(NOTAFCE->a_Id,29,9) )
               else
                  hwg_MsgInfo("NFC-e SOLICITACAO DE CANCELAMENTO RECUSADA"+ HB_EOL()+ HB_EOL() +;
                                "MOTIVO: " + XmlNode(cXmlRetorno, "xMotivo")+ HB_EOL() +;
                                "STATUS: " + XmlNode(cXmlRetorno, "cStat")+ HB_EOL() + HB_EOL() , "Cancela NFC-e - " + substr(NOTAFCE->a_Id,29,9) )                  
               endif
            endif
         endif
//      ENDIF
RETURN NIL

**********************************************************************************************************************
STATIC FUNCTION JUSTIFICANFCE(cJust)
**********************************************************************************************************************
  LOCAL oDlg,  oButton1, oButton2, oJust, oLabel1

  INIT DIALOG oDlg TITLE "INFORME A JUSTIFICATIVA PARA CANCELAMENTO DA NFC-E " + substr(NOTAFCE->a_Id,29,9)    AT 0, 0 SIZE 751,136 NOEXIT  ;
     STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER
    Thisform := oDlg

   @ 546,80 BUTTON oButton1 CAPTION "Ok"   SIZE 90,30 ;
        STYLE BS_CENTER +WS_TABSTOP ;
        ON CLICK {|| cJust:=UPPER(cJust),oDlg:close() }
   @ 649,80 BUTTON oButton2 CAPTION "Cancelar"   SIZE 90,30 ;
        STYLE BS_CENTER +WS_TABSTOP  ;
        ON CLICK {|| cJust:="cancela",oDlg:close() }
   @ 97,27 GET oJust VAR cJust SIZE 646,24  STYLE ES_AUTOHSCROLL  MAXLENGTH 120 
   @ 7,29 SAY oLabel1 CAPTION "Justificativa:"  SIZE 85,21 

   ACTIVATE DIALOG oDlg

RETURN cJust


:% :% :% :% :% :% :% :%
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

COMO CANCELAR UMA NFC-e com a SEFAZCLASS??

Mensagempor JoséQuintas » 06 Mar 2018 16:14

Pra NFCe é necessário Sefaz:cNFCe := "S"
Essa é a forma de diferenciar webservice de NFE e NFCE.

Para alguns eventos dá pra pegar da chave de acesso, o modelo 65.
Com base nisso, depois vou melhorar a classe pra ela pegar automático aonde possível - cancelamento, protocolo, carta, etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

COMO CANCELAR UMA NFC-e com a SEFAZCLASS??

Mensagempor Fernando queiroz » 06 Mar 2018 17:47

quintas baixei as atualizações da SEFAZCLASS e gerei novamente as lib recompilei e funcionou , acho que o que eu tinha estava desatualizado , mas no cancelamento
ocorreu algo engraçado

NFC-e 2018-03-06T15:01:09-05:00
CANCELAMENTO 2018-03-06T15:27:09-05:00

E ESTA DANDO ERRO 577: A data do evento não pode ser menor que a data de emissão da NF-e

:% :% :% :% :%

peguei uma nota emitida a mais horas e cancelou normalmente, vai entender
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

COMO CANCELAR UMA NFC-e com a SEFAZCLASS??

Mensagempor JoséQuintas » 06 Mar 2018 18:29

Alguma chance da data/hora de autorização ser acima da data/hora que está indicando no evento?

Me veio na cabeça uma coisa:
E o webservice que atende várias UFs?
Qual será o fuso horário? da UF que processa ou da UF do documento?
E será que considera isso pra tudo, ou só pra determinadas coisas?

Voltando à Sefaz:
Na alteração atual, coloquei detecção de NFE/NFCE no cancelamento.
Pode ser o que fez diferença aí.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

COMO CANCELAR UMA NFC-e com a SEFAZCLASS??

Mensagempor Fernando queiroz » 06 Mar 2018 19:06

Quntas descobri a coisa do horario, o Webserver trabalha com o horario local como o Acre esta a 2:00 horas do Rio Grande do Sul ele so cancela apos duas horas da emissão da nota,
:(Neg :(Neg :(Neg :(Neg :(Neg :(Neg :(Neg
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes




Retornar para Legislação Fiscal e Tributária

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro