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
:% :% :% :% :% :% :% :%