Jump to content
Fivewin Brasil

CT-e 4.00 com a DLL da Flexdocs


EDUTEK

Recommended Posts

Bom Dia

 

Alguem usa a DLL da Flexdocs para emissao de CT-e, atualizei para a a versão nova devido a troca de de layout  de 3 para 4

instalei conforme o procedimento , esta certinho igual na versao anteriar

gero o XML< valido e assino, mas p sistema não envia, da um erro como se não existisse a funcao de envio

EnviaCTeSinc

    If ::CertificadoSelecionado()
      nRet   := ::oCTeUtil:EnviaCTeSinc(::SiglaWS,;
                                        ::VersaoCTe,;
                                        ::cCertificado,;
                                        xmlDoc,;
                                        msgDados,;
                                        @msgRetWS,;
                                        cStat,;
                                        msgResultado,;
                                        @CTeAssinada,;
                                        @nroProtocolo,;
                                        @dhProtocolo,;
                                        ::proxy,;
                                        ::usuario,;
                                        ::senha,;
                                        ::licenca)        

segue o erro

Application
===========
   Path and name: D:\aplicx\CONES\cones.EXE (32 bits)
   Size: ********* bytes
   Compiler version: xHarbour build 1.0.0 Intl. (SimpLex)
   FiveWin  Version: FWHX 9.04
   Windows version: 6.2, Build 9200 

   Time from start: 0 hours 1 mins 11 secs 
   Error occurred at: 28/01/2024, 18:25:34
   Error description: Error CTe_Util.Util/3  DISP_E_MEMBERNOTFOUND: ENVIACTESINC
   Args:
     [   1] = C   RS
     [   2] = C   4.00.......


Stack Calls
===========
   Called from: win32ole.prg => TOLEAUTO:ENVIACTESINC( 0 )
   Called from: vocteutil3.000 => TVOCTEUTIL:ENVIACTESINC( 940 )
   Called from: cteflexdocs.prg => ENVIASEFAZCTE( 65 )
   Called from: cteflexdocs.prg => ENVIA_CTE_XML( 989 )
   Called from: cteflexdocs.prg => (b)GERA_CTE_XML( 971 )

 

como se se essa funcao não existisse, alguem passoupro isso, ou ja usou e tem algo mais a fazer que não estou sabendo configurar

 

 

Link to comment
Share on other sites

Class TVoCTeUtil
	Data oCTeUtil
	Data cCertificado
	Data SiglaUF
	Data SiglaWS
	Data Proxy
   Data Usuario
   Data Senha
   Data Ambiente
   Data aUltStatus
   Data Licenca
   Data cTitular
   Data cCNPJTitular
   Data EmissorCertificado
   Data NroSerieCertificado
   Data dInicioValidade
   Data dFimValidade
   Data cMsgStatusInternet
   Data cVersaoDotNet
   Data lmensagem
   Data cStsCTe
	Data cStsCTeMsg
	Data lAutorizada INIT .f.
	Data lOperacao
	Data cMsgOperacao
	Data cMsgSefaz INIT ""    	// Descrição da mensagem da SEFZ para Buscas	
	Data Protocolo
	Data Recebimento
	Data cXml
	Data cChaveCte INIT ""	
	Data cXmlProtocolo
	Data lSalvaXmlAutomatico INIT .T.	
	Data cMensagem INIT ""
	Data VersaoCTe INIT "4.00"
	DATA cPathNFe
	
   Method New(SiglaUF, TipoAmbiente, cCertificado, proxy,Usuario,Senha,Licenca, lMensagem,lScan) CONSTRUCTOR
   Method Versao()
   Method PegaCertificado(Nome,Mensagem)
   Method Assinar(XmlDoc,RefURI,Nome,XmlAssinado)
   Method CertificadoSelecionado()
   Method ConsultaStatus()
   Method EnviaLote(XmlDados,nroRecibo)
   Method BuscaLote(NumeroRecibo)
   Method ConsultaCT(ChaveCTe,cXmlAssinado)
   Method CancelaCT(ChaveCTe, nroProtocolo, Justificativa)
   Method CancelaCTEvento(ChaveCTe, nroProtocolo, Justificativa)   
   Method enviaEPEC(ChaveCTe, nroProtocolo, Justificativa)      
   Method InutilizaCT( cUF, Ano, Modelo, SerieCTe, NroInicial,NroFinal,Justificativa)
   Method ConsultaCad(TipoArgumento,Argumento)
   Method ValidaXml(XmlDoc,TipoXml)
   Method CriaChave(Ano,Mes,modelo,serie,numero,codigoseguranca)
   Method PegaDadosCertificado()
   Method EnviaCTe(XmlDoc, CTeAssinada, nroRecibo )
   Method EnviaCTeSinc(XmlDoc, CTeAssinada, nroRecibo )   
   Method BuscaCTe(CTeAssinada, nroRecibo )
   #IFNDEF __DOS__
      Method StatusInternet()
   #ENDIF
   Method DotNetInstalled(cVersao)
   Method Limpa()   
	Method CriaProcCTe(cNfeAssinado,cTo,cBcc,cSubject,aFieldBody,cBody,lBodyHtml,cCancNFe)   
   Method EnviaCCe(cChaveNfe,cTextoCorrecao,lAcentuado,nCorrecao,cDataHoraCorrecao)		
   Method ReadXml(XmlDoc)
	METHOD SalvaXML(cFile, cDocXml)   
	METHOD SaveXML(cFile, cDocXml, nTipo)	
   Method infCTeSupl(cURL, cChave, cTipoAmbiente, cCertificado, mQrCodeCTe, resultado, msgResultado)   	
*   Method CTe_v3a(CTe_versao, CTe_Id, CTe_ide, CTe_compl_Opc, CTe_emit, CTe_rem_Opc, CTe_exped_Opc, CTe_receb_Opc, CTe_dest_Opc, CTe_vPrest, CTe_imp, CTe_infCTe, CTe_autXML_Opc, CTe_infRespTec_Opc, CTe_infCteSupl_Opc)
   Method End()
EndClass

criei o metodo assim logo apos o antigo "enviacte"

METHOD EnviaCTeSinc( XmlDoc, CTeAssinada, nroRecibo ) Class TVoCTeUtil
	local nRet:=1
	Local msgCabec:="", msgDados:="", msgRetWS:=""
	Local mensagem:=""

	default nrorecibo:=""
	default nroProtocolo:=""
	default dhProtocolo:=""   	
	default CTeAssinada := ""
   default cStat:=""

	XmlDoc := ::ReadXml( XmlDoc )
//	? XmlDoc
	if Empty(xmlDoc)

      #IFDEF __DOS__
         Alert("Favor informar, a CTe/XML a ser enviada!")
      #ELSE
         MsgStop("Favor informar, a CTe/XML a ser enviada!",CAPTION_MSG)
      #ENDIF

		return( 1 )

	Endif

	If ::CertificadoSelecionado()
      nRet   := ::oCTeUtil:EnviaCTeSinc(::SiglaWS,;
                                        ::VersaoCTe,;
                                        ::cCertificado,;
                                        xmlDoc,;
                                        msgDados,;
                                        @msgRetWS,;
                                        cStat,;
                                        msgResultado,;
                                        @CTeAssinada,;
                                        @nroProtocolo,;
                                        @dhProtocolo,;
                                        ::proxy,;
                                        ::usuario,;
                                        ::senha,;
                                        ::licenca)		

		If  nRet != 101 .and. nRet != 103  .and. ::lMensagem
         #IFDEF __DOS__
*            Alert( hb_ansitooem( Mensagem+"-"+Procname() ) )
         #ELSE
*            MsgStop( Mensagem+CRLF+ProcName() , CAPTION_MSG)
         #ENDIF
         MemoWrit("EnviCTe.lOG",MsgRetWs)
		Endif
	
		::aUltStatus:={ msgCabec, msgDados, msgRetWS}
		::cStsCTe     := LerTag(msgRetWS, "cStat")
   	::cStsCTeMsg  := LerTag(msgRetWS, "xMotivo")
      ::lAutorizada := ( ::cStsCTe $ "101/103" )
      ::Protocolo   := LerTag(msgRetWS, "nProt")
      ::Recebimento := LerTag(msgRetWS, "dhRecbto")
   Endif

Return(nRet)

desta forma

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...