Jump to content
Fivewin Brasil

aokisantos

Membros
  • Posts

    557
  • Joined

  • Last visited

  • Days Won

    1

Reputation Activity

  1. Like
    aokisantos got a reaction from frkiko in Alguem já usou as DLL do FSIST para baixar xml   
    Espero que possa ajudar os amigos do forum, como disse o suporte do Fernando é muito bom, vale muito a pena comprar a DLL.

    #include 'fivewin.ch'
    #include 'hbdll.ch'

    static s_hDLL, s_cSistema, s_cTituloMensagem

    /******************************************************************************/
    procedure DownloadNFe( cChave, cPasta, cSerie )

    local oDialog, oIcone, oFonte, hInput := HB_Hash()
    local cCaptcha := Space( 6 )
    local lSemParametros := Empty( PCount() )

    if lSemParametros
    cChave := Space( 44 )
    cPasta := m->cDiretorioXML
    cSerie := m->cCertificado
    endif

    define font oFonte name 'Arial' size 6, 16 bold
    define icon oIcone resource 'MAINSG'

    define dialog oDialog title 'Download XML - NFe' from 0, 0 to 164, 565 pixel font oFonte icon oIcone

    @ 7, 112 say 'Chave:' of oDialog pixel
    @ 34, 112 say 'Captcha:' of oDialog pixel
    @ 16, 112 get hInput['Chave'] var cChave of oDialog pixel size 165, 13 picture '@9' Valid ValidaChaveConsulta( cChave )
    @ 43, 112 get hInput['Captcha'] var cCaptcha of oDialog pixel size 34, 13 picture '@!'
    @ 8, 4 image hInput['Imagem'] of oDialog pixel size 104, 48 adjust

    @ 64, 174 button '&Baixar' of oDialog pixel size 45, 12 action XmlDownload( hInput, cPasta, cSerie, oDialog, lSemParametros )
    @ 64, 226 button '&Sair' of oDialog pixel size 45, 12 action oDialog:End() cancel
    @ 64, 4 button '&Atualizar Captcha' of oDialog pixel size 64, 12 action AtualizaCaptcha( hInput, oDialog )

    oDialog:lHelpIcon := .f.
    activate dialog oDialog centered on init ( IIf( lSemParametros,, hInput['Chave']:disable() ), ;
    AtualizaCaptcha( hInput, oDialog ) )
    oIcone:end()
    oFonte:end()

    return

    /******************************************************************************/
    static function ValidaChaveConsulta( cChave )
    /*
    */
    if !ValidaChaveDaNFE( cChave )
    return .f.
    endif
    if !ValidaDVNfe(cChave)
    return(.f.)
    endif
    return(.t.)

    /******************************************************************************/
    function CarregaDLLDownloadNFe( cSistema )

    local oPulsante

    if s_cTituloMensagem == nil
    if HB_IsString( cSistema )
    s_cSistema := cSistema
    s_cTituloMensagem := cSistema
    else
    s_cTituloMensagem := 'Aviso do Sistema'
    endif
    endif

    if s_hDLL == nil
    if !File( 'BaixarXMLNFe.dll' )
    MsgStop( 'Arquivo não encontrado: BaixarXMLNFe.dll' + CRLF + 'Verifique!', s_cTituloMensagem )
    return .f.
    endif

    oPulsante := TPul():new( 'Aguarde.' + CRLF + 'Carregando e registrando DLL...' )
    s_hDLL := LoadLibrary( 'BaixarXMLNFe.dll' )
    DllRegistra()
    DllLicenca( "LICENSA FERNANDO" ) // Fornecido por: Fernando (fsist.com.br)
    oPulsante:end()
    endif

    return .t.

    /******************************************************************************/
    procedure SetProxyDownloadNFe( lProxy, cIP, nPorta, cUsuario, cSenha )

    if lProxy
    Proxy( cIP, nPorta, cUsuario, cSenha )
    else
    Proxy( '', 0, '', '' )
    endif

    return

    /******************************************************************************/
    procedure FinalizaDLLDownloadNFe()

    if !Empty( s_hDLL )
    FreeLib32( s_hDLL )
    s_hDLL := nil
    endif

    return

    /******************************************************************************/
    static procedure XmlDownload( hInput, cPasta, cSerie, oDialog, lSemParametros )

    local cChave := AllTrim( hInput['Chave' ]:value() )
    local cCaptcha := AllTrim( hInput['Captcha']:value() )
    local cArquivoXML := cPasta + '\' + cChave + '.xml'
    local bDownload, nRetorno, nErro, cErro

    if Len( cChave ) < 44
    MsgStop( 'Chave tem que ter 44 digitos!', s_cTituloMensagem )
    hInput['Chave']:setFocus()
    return
    endif

    if Len( cCaptcha ) < 6
    MsgStop( 'Favor informar o captcha corretamente!', s_cTituloMensagem )
    hInput['Captcha']:setFocus()
    return
    endif

    if Empty( cSerie )
    bDownload := { || nRetorno := BaixarXMLNFeSemCert( cChave, cCaptcha, cArquivoXML ) }
    else
    bDownload := { || nRetorno := BaixarXMLNFeComCert( cChave, cCaptcha, cArquivoXML ) }
    endif

    SetCertificadoDigital( cSerie )
    MsgRun( 'Aguarde! Realizando Download do XML...', s_cSistema, bDownload )

    if nRetorno == 1
    MsgInfo( 'Download realizado com sucesso! Arquivo gerado:' + CRLF + cArquivoXML, ;
    'NF-e ' + IIf( Empty( cSerie ), 'sem', 'com' ) + ' certificado digital' )

    if lSemParametros
    AtualizaCaptcha( hInput, oDialog )

    hInput['Chave' ]:cText( Space( 44 ) )
    hInput['Captcha']:cText( Space( 6 ) )
    hInput['Chave' ]:setFocus()
    else
    oDialog:end()
    endif
    else
    nErro := MsgCode()
    do case
    case nErro == 1
    cErro := 'É necessário digitar a chave da nfe.'
    case nErro == 2
    cErro := 'É necessário digitar o captcha.'
    case nErro == 3
    cErro := 'Código da Imagem inválido. Tente novamente.'
    case nErro == 4
    cErro := 'NF-e INEXISTENTE na base nacional.'
    otherwise
    cErro := 'Desconhecido'
    endcase

    MsgStop( 'Não foi possível realizar o download do XML!' + CRLF + ;
    'Erro ' + AllTrim( Str( nErro ) ) + ': ' + cErro, s_cTituloMensagem )
    AtualizaCaptcha( hInput, oDialog )

    hInput['Captcha']:cText( Space( 6 ) )
    hInput['Captcha']:setFocus()
    hInput['Captcha']:setPos( 1 )
    endif

    return

    /******************************************************************************/
    static procedure AtualizaCaptcha( hInput, oDialog )

    local nRetorno

    MsgRun( 'Aguarde! Atualizando Captcha...', s_cSistema, { || nRetorno := Captcha( 'Captcha.jpg' ) } )

    if nRetorno == 0 // retorna 1 ou 0, 1 é ok
    MsgStop( 'Não foi possível carregar o captcha!', s_cTituloMensagem )
    oDialog:end()
    else
    hInput['Imagem']:loadImage( , 'Captcha.jpg' )
    hInput['Imagem']:refresh()
    endif

    return

    /******************************************************************************/
    DLL32 FUNCTION Captcha(SalvarEm AS STRING) AS LONG PASCAL LIB 'BaixarXMLNFe.dll'
    DLL32 FUNCTION BaixarXMLNFeSemCert(Chave AS STRING, Captcha AS STRING, SalvarEm AS STRING) AS LONG PASCAL LIB 'BaixarXMLNFe.dll'
    DLL32 FUNCTION BaixarXMLNFeComCert(Chave AS STRING, Captcha AS STRING, SalvarEm AS STRING) AS LONG PASCAL LIB 'BaixarXMLNFe.dll'
    DLL32 FUNCTION GetCertificadoDigital() AS LONG PASCAL LIB 'BaixarXMLNFe.dll'
    DLL32 FUNCTION SetCertificadoDigital(Cert AS STRING) AS LONG PASCAL LIB 'BaixarXMLNFe.dll'
    DLL32 FUNCTION MsgCode() AS LONG PASCAL LIB 'BaixarXMLNFe.dll'
    DLL32 FUNCTION DLLRegistra() AS LONG PASCAL LIB 'BaixarXMLNFe.dll'
    DLL32 FUNCTION DLLLicenca(Chave AS STRING) AS LONG PASCAL LIB 'BaixarXMLNFe.dll'
    DLL32 FUNCTION Proxy(Host AS STRING, Port AS LONG, User AS STRING, Pass AS STRING) AS LONG PASCAL LIB 'BaixarXMLNFe.dll'
  2. Like
    aokisantos got a reaction from Ronaldbuch in ECF urano - fit logger DLL   
    Boa tarde,
    estou precisando implementar no meu frente a URANO alguem já conseguiu? poderia compartilhar as declarações da DLL?
    Abraço
×
×
  • Create New...