Jump to content
Fivewin Brasil

EDUTEK

Membros
  • Posts

    340
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by EDUTEK

  1. Boa tarde!

     

    O que vocês estão usando para envio de e-mail, eu usava o swithmail, mas agora não estou conseguindo mais em contas Gmail.

    alguma sugestão de programa.

    uso para enviar de duplicatas, cte, nfe, mdfe, avisos de vencimento, cobranca,  etc.

     

     

  2. 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

     

  3. 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

     

     

  4. conforme o João passou, procurei lá e consegui achar uma forma  segue abaixo

    function orion_jornada_AchaEndereco(mLat, mLong)
       local cGoogleURL := "https://nominatim.openstreetmap.org/reverse?format=xml&"
       local cAddress   := "lat="+alltrim(mLat)+"&lon="+alltrim(mLong)
       local aReturn, i, cTxt := ""
       if empty(mLat)
             mLat := jornada->latitudegps
             mLong := Jornada->longitudegps         
             cAddress   := "lat="+alltrim(mLat)+"&lon="+alltrim(mLong)
       endif         
      // aReturn := hb_jsonDecode( WebPageContents( cGoogleURL + cAddress) )   // *** Change this *** 
       cDocXML := WebPageContents( cGoogleURL + cAddress)
    *   hb_jsondecode( aReturn, @aReturn ) && se lá na URL vc colocar format "json" - eu uso "XML"
       if !empty(cDocXML)
          mRodovia  := LerTag(cDocxml, "road")       
          mCidade   := LerTag(cDocxml, "town")         
          mArea     := LerTag(cDocxml, "municipality")         
          mEstado   := LerTag(cDocxml, "state")         
          mRegiao   := LerTag(cDocxml, "region")
          mRodovia  := iif(len(rtrim(mrodovia))>0,mRodovia+", ","")                         
          mCidade   := iif(len(rtrim(mCidade))>0,mCidade+", ","")                               
          mestado   := iif(len(rtrim(mEstado))>0,mEstado+", ","")                               
          mRegiao   := iif(len(rtrim(mRegiao))>0,mRegiao+", ","")                               
          cTxt1     := mRodovia + mcidade + mEstado + mRegiao + mArea
          cTXT      := U8ToUni(cTXT1,"UTYPE_ANSI")
          if len(alltrim(ctxt)) < 10
             cTxt:="Localização não Encontrada"      
          endif
       else   
          cTxt:="Localização não Encontrada"
       endif
       dbselectarea("jornada")
       mregistro := jornada->( recno())
       grava_dados("A","jornada",{ "local" }, { cTxt }, alias(), "S")
    return nil

     

  5. Boa tarde

     

    Alguém tem algum exemplo de como pegar a localização tendo a latitude e longitude.

    Tenho um programa de ponto de motorista, cada marcação ele grava a latitude e longitude, preciso informar pelo menos aproximadamente o local que ele efetuou a marcação.

    O programa do Tablet que ele faz a marcação não fui eu que desenvolvi, só montei o projeto, mas a parte da retaguarda é minha a programação.

    ai queria saber por exemplo onde ele encerrou a jornada do dia dele.

    Alguém tem um exemplo ?

     

     

    Grato.

  6. Como Faço um xbrowse que apresente um campo que tem várias linhas, é uma tabela de mensagens entre a central e o motorista

    isso está no Mysql e estou usando SQLRDD, quando campo vem ele vem como campo MEMO

    como faço para que a linha seja quebrada e apareça todo o conteúdo da mensagem, da forma que fiz so aparace uma linha

       oCol2:=obrw2:addcol()       
       oCol2:bStrdata:={|| mensagem_chat->MENSAGEM}       
       oCol2:cHeader:="MENSAGEM"       
       oCol2:oDataFont := oFont2
       oCol2:oHeaderFont := oFont2   
       oCol2:nWidth        := 450
       oCol2:nEditType    := EDIT_BUTTON
       oCol2:bEditBlock   := { | r, c, o | EditNotes( r, c, o ) }
     

  7. defino a string 

       cConnString = "MySQL=192.168.0.245;UID=root;PWD=senha;DTB=orion;PRT=3307;OWNER=;ENGINE=innoDB;AUTOCOMMIT=1000"

    e executo
       nCnn1 := SR_AddConnection( CONNECT_MYSQL, cConnString )     


       ele retorna ncnn1 = -1
       mas não diz o que foi que aconteceu, qual foi o erro.

    quando eu uso o mariaDB ele não da este erro, ele conecta normalmente com a mesma lib "libmysql"

     

    tem alguma alteração que tem que fazer ?


     

  8. Bom Dia!

     

    Bom dia Estou usando o FWH com sqlrdd,  para mariaDB 10 o sistema conecta sem problemas,

    mas não conecta o mysql 8,

    está na rede interna, já instalei o mysql 8 na minha maquina local,

    e quando dou

    image.png.6527dcc4a7157ff29f193060cb39a650.png

    e pelo heidiSQL ele entra normalmente

     

     

  9. Boa tarde

     

    Alguém teria um exemplo de como usar um Get Spinner com peles C, eu achi um exemplo com Get normal ( @ ) mas não com recurso

       @ 100, 10 GET aGet[1] VAR nGiocata SPINNER MIN 00 MAX 24 ;
          ON UP   GetStep( aGet[ 1 ],   1 )                     ;
          ON DOWN GetStep( aGet[ 1 ], - 1 )                     ;
          SIZE 80, 24 RIGHT PIXEL OF oDlg PICTURE "€ 999.99"

    assim funciona 

    mas com Recurso não achei como fazer 

     

  10. Bom Dia!

    Preciso desenvolver um sistema para usar em celular para controle de Jornada, não tenho nada e sem contato com qualquer linguagem.

    Qual vocês estão usando para este tipo de desenvolvimento que tenha uma boa documentação?

    sei que tudo é novo, mas vou começar do zero mesmo.

     

     

  11. No caso para sair do SQLRDD qual a melhor opção ?

    acesso Oracle, SQL Server e Mysql simultaneamente no mesmo aplicativo.

    alguém teria algum exemplo, pois meu sqlrdd já e antiga a versão , tenho medo de não funcionar mais mais para frente.

    isso ja migrando para Harbour 3.2

     

×
×
  • Create New...