Jump to content

jorge andrade

Membros Pro
  • Posts

    563
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by jorge andrade

  1. Sr(a)s. Boa tarde
     
     
    Não sei se este seria o canal correto, e se alguém já se manifestou sobre o assunto, mas,  venho através deste, manifestar meus sentimentos a família pelo passamento do Rubinho que, no âmbito profissional ajudou muito os parceiros Elgin, promovendo e participando de eventos, além de disponibilizar ferramentas, equipamentos  e estruturas Elgin.

     

    Que deus conforte a família e os seus colegas.
     
    []s,
    • Sad 5
  2. 16 minutos atrás, José M. S. Junior disse:

    No caso, para as etiquetas de mesma linha deve passar a informação no mesmo bloco, conforme mostrei acima... É como se estivesse imprimindo na mesma linha, apenas avançando a orientação vertical...

    ex:

    ETQ.Ativar()
    
    ETQ.IniciarEtiqueta()
    
    ETQ.ImprimirTexto(0, 3, 1, 1, 11, 11, "ETQPPLB-11" )
    ETQ.ImprimirTexto(0, 3, 1, 1, 11, 46, "ETQPPLB-46" )
    ETQ.ImprimirTexto(0, 3, 1, 1, 11, 77, "ETQPPLB-77" )
    
    ETQ.FinalizarEtiqueta(1,0)
    
    ETQ.Imprimir()
    
    ETQ.Desativar()

    Obs: As configuração não precisa passar em cad bloco de impressão, basta configurar uma unica vez, se preferir pode configurar em tela e gravar

    Em cada bloco onde inicializa etiqueta e finaliza etiqueta passe apenas os comandos que geram o conteúdo de impressão de cada coluna.

    Isso eu entendi e salientei que havia excessos de comandos desnecessários, sobre gravar em tela, vc diz no próprio monitor correto.

     

    Obrigado

  3. Júnior boa tarde e obrigado pela resposta.

    Neste caso, devo mesmo usar o velho esquema de ajuste in loco, com tentativas e erros, até achar o formato adequado de acordo com a impressora,  modelo, fonte (A qual ainda não sei como determinar, bem provável pelo manual da impressora)  escolhido. Acredito que o teste abaixo deva deixar claro isso, onde utilizei uma etiqueta qualquer e a minha intenção era somente tentar imprimir uma linha em cada etiqueta e as coordenadas devem ter truncado, pois deve ter emitido na coordenada especificada, mas em etiquetas diferentes e bem provável tb pelo tamanho do texto

    Segue comando utilizado, talvez com excesso de informações  e aimagem.


    ETQ.Ativar()
    ETQ.IniciarEtiqueta()
    ETQ.Velocidade()
    ETQ.Modelo(4)
    ETQ.ModeloStr()
    ETQ.Temperatura()
    ETQ.SetUnidade(0)
    ETQ.DPI()
    ETQ.SetDPI(0)
    ETQ.MargemEsquerda() #AQUI DEVO DETERMINAR A MARGEM ESQUEDA INICIAL DA PRIMEIRA ETIQUETA?

    ETQ.ImprimirTexto(0, 3, 1, 1, 11, 11, "ETQPPLB-11" )

    ETQ.Ativar()
    ETQ.IniciarEtiqueta()
    ETQ.Velocidade()
    ETQ.Modelo(4)
    ETQ.ModeloStr()
    ETQ.Temperatura()
    ETQ.SetUnidade(0)
    ETQ.DPI()
    ETQ.SetDPI(0)
    ETQ.MargemEsquerda() #AQUI DEVO DETERMINAR A MARGEM ESQUEDA INICIAL DA SEGUNDA ETIQUETA?

    ETQ.ImprimirTexto(0, 3, 1, 1, 46, 46, "ETQPPLB-46" )


    ETQ.Ativar()
    ETQ.IniciarEtiqueta()
    ETQ.Velocidade()
    ETQ.Modelo(4)
    ETQ.ModeloStr()
    ETQ.Temperatura()
    ETQ.SetUnidade(0)
    ETQ.DPI()
    ETQ.SetDPI(0)
    ETQ.MargemEsquerda() #AQUI DEVO DETERMINAR A MARGEM ESQUEDA INICIAL DA TERCEIRA ETIQUETA

    ETQ.ImprimirTexto(0, 3, 1, 1, 77, 77, "ETQPPLB-77" )

    ETQ.Imprimir(1,0)
    ETQ.Desativar()

     

    ETIQUETAS QUALQUER.jpeg

  4. Em 08/10/2020 at 16:18, jorge andrade disse:

    Pessoal boa tarde

    Alquém tem um exemplo de emissão de etiqueta utilizando em etiquetas paralelas 40 x 25 x 2, conforme imagem:

    image.png.97e22eceb38ca712639d9a27c6cdef18.png

    []s

    Nenhum exemplo simples? Nada? Será quem ninguém usa a etiqueta d o ACBR via monitor? Puxa! Estou frustado.

  5. 8 horas atrás, AutomoSistema disse:

    Bom dia Rafael, estou trabalhando de forma:

    #define DLL_STDCALL NIL

    METHOD Button1_OnClick( Sender ) CLASS Form1
       LOCAL xLib , xRetorno := 0 , xACBrLib := "ACBrLib.ini"
       LOCAL xSenha := ""
       xLib := DllLoad( "ACBRMDFE32.dll" )
       xRetorno := DllCall( xLib ,DLL_STDCALL , "MDFe_Inicializar" , "" , "" )
    RETURN Self

    Todos na pasta conforme imagem. Retorno que recebo é de vazio

    Mostra.jpg

    Fiz os teste que vc postou acima com sucesso:  

    xLib := LibLoad( "ACBrNFe32.dll" )
       xRetorno := DllCall( xLib , DLL_OSAPI , "NFE_Inicializar" , xACBrLib , xSenha )

  6. O amigo Brizolla, me enviou por email o seu projeto não vou disponibilizar, pq é algo particular dele, porém, se ele achar conveniente anexar aqui como contribuição, acredito que, muitos irão agradecer, pois irá contribuir e quem sabe, até desafogar um pouco as perguntas ao Sac, além da contribuição de outros com ideias  e ajustes.

    []s,

    • Like 1
  7. 3 horas atrás, Rubens disse:

    Bom dia... 

    Então Rafael.. tentei de várias formas mas dá o mesmo erro... não sei onde estou errando

        nfe:Imprimir("Brother DCP-1610NW series","0","","True","","","")
        nfe:Imprimir("Brother DCP-1610NW series","1","","True","","","")
        nfe:Imprimir("","1","","True","","","")

    Att..

    Rubens

    Como O Rafael afirmou  e eu te falei e off, vc deve usar 0 ou 1. Tente simular conforme o monitor que te serve como procedimento, onde vc pode definir antecipadamente tudo o que vc define nele.

    A facilidade das DLL's é que vc pode dinamicamente orientar os seus processos, independente do que supostamente vc tenha configurado no monitor e lembre que é gerado o INI (ACBrLib.ini) da LIB com as configurações, o qual vc pode carregar.

    Se vc enviar assim nfe:Imprimir(,,,1,,,), vc terá o preview para escolher a impressora, ou defina-a corretamente com o nome capturado do windows pela sua aplicação .

    []s,

    • Like 1
  8. 1 hora atrás, Juliana Tamizou disse:

    Bom dia Jorge,

    Obrigada por seu espirito participativo e boa vontade, quanto mais pessoas assim na comunidade, mais podemos crescer.

    Gostaria somente de pedir que para que o tópico não fique muito extenso, procure anexar os arquivos ao mesmo.

    Att.

    Obrigado pela informação Juliana. Postei de forma aberta, pq em alguns fóruns não permitem UP-LOAD.

    • Like 1
  9. Pessoal  boa tarde

    Diante  da dificuldades de alguns, inclusive a minha e com a  ajuda do Rafael Dias, estou disponibilizando algumas informações(Corrijam o que for necessário), que podem ajudar aos colegas e por sua vez, devem criar uma avalanche de informações para outros e que possamos fortalecer  o projeto e possamos divulgar ainda mais o projeto e a adesão aos usuários SAC.

    Ao contrário de alguns, que apenas participam daqui com suas dúvidas e depois somem com as suas soluções, eu não faço isso, aliás, sinto-me feliz e privilegiado em poder ajudar com o meu ínfimo conhecimento, porém,  feliz e satisfeito com os poucos passos no entendimento do projeto.

    Espero que estas informações sirvam para alguns e que estas elucidem dúvidas iniciais em relação as DLL's, sendo cada delas em suas particularidades. Ciente de que a classe e o demo (Vide link) estão a disposição no SVN http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Harbour/NFe/ , anda assim, informo aqui, para facilitar aos colegas.

    Mais uma vez me dirijo aos que solicitei que postassem as suas soluções e os que fazem uso do fórum para expor suas soluções de forma comercial sem nenhum retorno ao mesmo. Me desculpem, mas é uma realidade de alguns aqui.

    []s,

     

    //------------------------------ACBRDEMO---------------------------------.
    Function Main ()
       local nfe
       local vendaRetorno, strIniVenda
       local hIni, hIniVenda
       LOCAL cSection
       LOCAL hIniData
       
       nfe := ACBrNFe():New("", "")
       //                      Sessão       Chave    Valor

       nfe := ACBrNFe():New("", "")
       nfe:ConfigGravarValor("Principal", "LogNivel", "4") // logParanoico     
       nfe:ConfigGravarValor("Principal", "LogPath", "C:\WINDOWS\TEMP" )
       nfe:ConfigGravarValor("NFE", "FormaEmissao", "0")
       nfe:ConfigGravarValor("NFE", "SalvarGer", "1")
       nfe:ConfigGravarValor("NFE", "ExibirErroSchema", "1")
       nfe:ConfigGravarValor("NFE", "RetirarAcentos", "1")
       nfe:ConfigGravarValor("NFE", "RetirarEspacos", "1")
       nfe:ConfigGravarValor("NFE", "IdentarXML", "1")

       nfe:ConfigGravarValor("NFE", "ValidarDigest", "0")
       nfe:ConfigGravarValor("NFE", "IdCSC", "000001")
       nfe:ConfigGravarValor("NFE", "CSC", "92052b84-e609-436c-8c27-a3922e509922")
       nfe:ConfigGravarValor("NFE", "ModeloDF", "0") //nfe
       //nfe:ConfigGravarValor("NFE", "ModeloDF", "1") //nfce
       nfe:ConfigGravarValor("NFE", "VersaoDF", "3") //versao 4.00
       nfe:ConfigGravarValor("NFE", "AtualizarXMLCancelado", "1")
       nfe:ConfigGravarValor("NFE", "VersaoQRCode", "2")
       nfe:ConfigGravarValor("NFE", "CamposFatObrigatorios", "1") //adiiconar tag
       nfe:ConfigGravarValor("NFE", "TagNT2018005", "1") //0 nunca 1 producao 2 somente homologacao 3 sempre
       
       nfe:ConfigGravarValor("NFE", "Ambiente", "0") //0 producao 1 homologação
       nfe:ConfigGravarValor("NFE", "SalvarWS", "1")
       nfe:ConfigGravarValor("NFE", "Timeout", "5000")
       nfe:ConfigGravarValor("NFE", "TimeoutPorThread", "0")
       nfe:ConfigGravarValor("NFE", "Visualizar", "1") //sim
       
       nfe:ConfigGravarValor("NFE", "AjustaAguardaConsultaRet", "1") //sim
       nfe:ConfigGravarValor("NFE", "AguardarConsultaRet", "0")
       nfe:ConfigGravarValor("NFE", "IntervaloTentativas", "1000")
       nfe:ConfigGravarValor("NFE", "Tentativas", "5")
       nfe:ConfigGravarValor("NFE", "SSLType", "0") //LT_all

       nfe:ConfigGravarValor("NFE", "PathSalvar", "C:\WINDOWS\TEMP")

       nfe:ConfigGravarValor("NFE", "PathSchemas", "C:\ACBrMonitorPLUS\Schemas")
       nfe:ConfigGravarValor("NFE", "IniServicos", "C:\ACBrMonitorPLUS\INIS")
       nfe:ConfigGravarValor("NFE", "SalvarArq", "1") //ARQUIVOS DE EVENTOS
       nfe:ConfigGravarValor("NFE", "AdicionarLiteral", "0")
       nfe:ConfigGravarValor("NFE", "SepararPorCNPJ", "0")
       nfe:ConfigGravarValor("NFE", "SepararPorModelo", "0")


       nfe:ConfigGravarValor("NFE", "SepararPorAno", "0")
       nfe:ConfigGravarValor("NFE", "SepararPorMes", "0")
       nfe:ConfigGravarValor("NFE", "SepararPorDia", "0")
       nfe:ConfigGravarValor("NFE", "SalvarEvento", "1")
       nfe:ConfigGravarValor("NFE", "SalvarApenasNFeProcessadas", "1")


       nfe:ConfigGravarValor("NFE", "EmissaoPathNFe", "0") //por data de emissão
       nfe:ConfigGravarValor("NFE", "NormatizarMunicipios", "1")
       nfe:ConfigGravarValor("NFE", "PathNFe", "c:\windows\temp")
       nfe:ConfigGravarValor("NFE", "PathInu", "c:\windows\temp")

       nfe:ConfigGravarValor("NFE", "PathEvento", "c:\windows\temp")
       nfe:ConfigGravarValor("NFE", "PathArquivoMunicipios", "C:\ACBrMonitorPLUS\MunIBGE")
       nfe:ConfigGravarValor("NFE", "Download.PathDownload", "c:\windows\temp")
       nfe:ConfigGravarValor("NFE", "Download.SepararPorNome", "0")
       nfe:ConfigGravarValor("NFE", "IdCSRT", "")
       nfe:ConfigGravarValor("NFE", "CSRT", "")

       nfe:ConfigGravarValor("DANFE", "PathPDF", "c:\windows\temp")
       nfe:ConfigGravarValor("DANFE", "UsaSeparadorPathPDF", "0")
       nfe:ConfigGravarValor("DANFE", "Impressora", "")
       nfe:ConfigGravarValor("DANFE", "NomeDocumento", "")
       nfe:ConfigGravarValor("DANFE", "MostraSetup", "1")
       nfe:ConfigGravarValor("DANFE", "MostraPreview", "1")

       nfe:ConfigGravarValor("DANFE", "MostraStatus", "1")
       nfe:ConfigGravarValor("DANFE", "Copias", "")
       nfe:ConfigGravarValor("DANFE", "PathLogo", "c:\windows\temp")


       nfe:ConfigGravarValor("DANFE", "MargemInferior", "0,10")
       nfe:ConfigGravarValor("DANFE", "MargemSuperior", "0,00")
       nfe:ConfigGravarValor("DANFE", "MargemEsquerda", "0,00")
       nfe:ConfigGravarValor("DANFE", "MargemDireita", "0,00")

       nfe:ConfigGravarValor("DANFE", "ExpandeLogoMarca", "0") //0 e expande ou nao


       //nfe:ConfigGravarValor("DANFE", "CasasDecimais.Formato", "0,00")
       //nfe:ConfigGravarValor("DANFE", "CasasDecimais.MaskqCom", "0,00")
       //nfe:ConfigGravarValor("DANFE", "CasasDecimais.MaskvUnCom", "0,00")

       //nfe:ConfigGravarValor("DANFE", "CasasDecimais.qCom", "0,00")
       //nfe:ConfigGravarValor("DANFE", "CasasDecimais.vUnCom", "0,00")
       //nfe:ConfigGravarValor("DANFE", "TipoDANFE", "1")
       //nfe:ConfigGravarValor("DANFE", "ImprimeTotalLiquido", "")


       nfe:ConfigGravarValor("DFe", "ArquivoPFX", "W:\SERV\CERTIFICADO\CLIENTES\ANDERSON\RUBINO\ArquivoPFX.pfx")
       ///nfe:ConfigGravarValor("DFe", "DadosPFX", "")
       ///nfe:ConfigGravarValor("DFe", "NumeroSerie", "")
       nfe:ConfigGravarValor("DFe", "Senha", "XXXPASSWORD DO CERTIFICADOXXX")
       ///nfe:ConfigGravarValor("DFe", "FK", "")
       nfe:ConfigGravarValor("DFe", "VerificarValidade", "1")
       nfe:ConfigGravarValor("DFe", "SSLCryptLib", "1")
       nfe:ConfigGravarValor("DFe", "SSLHttpLib", "3")
       nfe:ConfigGravarValor("DFe", "SSLXmlSignLib", "4")
       nfe:ConfigGravarValor("DFe", "UF", "SP")
       nfe:ConfigGravarValor("DFe", "TimeZone.Modo", "0")
       nfe:ConfigGravarValor("DFe", "TimeZone.Str", "")


       // Salvando configurações
       CLEAR SCREEN
       ?nfe:ConfigGravar("")
       ?nfe:Nome
       ?nfe:Versao


       ?x1 := nfe:StatusServico //()
       INKEY(0)

       nfe := nil
       INKEY(0)
        
    return NIL
    //------------------------------CLASSE ACBRNFE---------------------------------.
    #include "hbclass.ch"
    #include "error.ch"

    #define DC_CALL_CDECL          0x0010      // __cdecl
    #define DC_CALL_STD            0x0020      // __stdcall

    #ifdef __XHARBOUR__
    #define ACBrLIB "ACBrNFe32.dll"
    #define DLL_OSAPI DC_CALL_STD
    #else
    #if defined( __PLATFORM__WINDOWS )
    #define ACBrLIB "ACBrNFe32.dll"
    #define DLL_OSAPI DC_CALL_STD
    #else
    #define ACBrLIB "libacbrnfe64.so"
    #define DLL_OSAPI DC_CALL_CDECL
    #endif
    #endif

    #define STR_LEN 256

    CREATE CLASS ACBrNFe
    HIDDEN:
        VAR hHandle

        METHOD CheckResult(hResult)
        METHOD ProcessResult(buffer, bufferLen)

    VISIBLE:
        METHOD New(eArqConfig, eChaveCrypt) CONSTRUCTOR
        DESTRUCTOR  Destroy

        METHOD Nome
        METHOD Versao

        METHOD ConfigLer(eArqConfig)
        METHOD ConfigGravar(eArqConfig)
        METHOD ConfigLerValor(eSessao, eChave)
        METHOD ConfigGravarValor(eSessao, eChave, eValor)

        METHOD CarregarXML(eArquivoOuXml)
        METHOD CarregarINI(eArquivoOuIni)
        METHOD ObterXml(AIndex)
        METHOD GravarXml(AIndex, eNomeArquivo, ePathArquivo)
        METHOD CarregarEventoXML(eArquivoOuXml)
        METHOD CarregarEventoINI(eArquivoOuIni)
        METHOD LimparLista()
        METHOD LimparListaEventos()

        METHOD Assinar()
        METHOD Validar()
        METHOD ValidarRegrasdeNegocios()
        METHOD VerificarAssinatura()
        METHOD GerarChave(ACodigoUF, ACodigoNumerico, AModelo, ASerie, ANumero, ATpEmi, AEmissao, ACNPJCPF)

        METHOD StatusServico()
        METHOD Consultar(eChaveOuNFe)
        METHOD Inutilizar(ACNPJ, AJustificativa, Ano, Modelo, Serie, NumeroInicial, NumeroFinal)
        METHOD Enviar(ALote, Imprimir, Sincrono, Zipado)
        METHOD ConsultarRecibo(ARecibo)
        METHOD Cancelar(eChave, eJustificativa, eCNPJ, ALote)
        METHOD EnviarEvento(ALote)

        METHOD DistribuicaoDFePorUltNSU(acUFAutor, eCNPJCPF, eultNSU)
        METHOD DistribuicaoDFePorNSU(acUFAutor, eCNPJCPF, eNSU)
        METHOD DistribuicaoDFePorChave(acUFAutor, eCNPJCPF, echNFe)

        METHOD EnviarEmail(ePara, eChaveNFe, aEnviaPDF, eAssunto, eMensagem, eCc, eAnexos)
        METHOD EnviarEmailEvento(ePara, eChaveEvento, eChaveNFe, aEnviaPDF, eAssunto, eMensagem, eCc, eAnexos)

        METHOD Imprimir(cImpressora, nNumCopias, cProtocolo, bMostrarPreview, cMarcaDagua, bViaConsumidor, bSimplificado)
        METHOD ImprimirPDF()
        METHOD ImprimirEvento(eArquivoXmlNFe, eArquivoXmlEvento)
        METHOD ImprimirEventoPDF(eArquivoXmlNFe, eArquivoXmlEvento)
        METHOD ImprimirInutilizacao(eArquivoXml)
        METHOD ImprimirInutilizacaoPDF(eArquivoXml)

    END CLASS

    METHOD New(eArqConfig, eChaveCrypt) CLASS ACBrNFe
        local hResult, buffer, bufferLen, oErr

        eArqConfig :=if(eArqConfig = nil, '', eArqConfig)
        eChaveCrypt:=if(eChaveCrypt = nil, '', eChaveCrypt)

        ::hHandle := DllLoad(ACBrLIB)
        if ::hHandle = nil
            oErr := ErrorNew()
            oErr:Severity := ES_ERROR        
            oErr:Description := "Erro a carregar a dll [" + ACBrLIB + "]"
            Throw(oErr)
        endif
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Inicializar", hb_StrToUTF8(eArqConfig), hb_StrToUTF8(eChaveCrypt))
        ::CheckResult(hResult)
        RETURN Self

    PROCEDURE Destroy CLASS ACBrNFe
        DllCall(::hHandle, DLL_OSAPI, "NFE_Finalizar")
        DllUnload(::hHandle)
        RETURN

    METHOD CheckResult(hResult) CLASS ACBrNFe
        local buffer, bufferLen, oErr
        if hResult >= 0
           RETURN nil
        endif    

        bufferLen := STR_LEN
        buffer := Space(bufferLen)

        DllCall(::hHandle, DLL_OSAPI, "NFE_UltimoRetorno", @buffer, @bufferLen)
        if bufferLen > STR_LEN
            buffer := Space(bufferLen)
            DllCall(::hHandle, DLL_OSAPI, "NFE_UltimoRetorno", @buffer, @bufferLen)        
        endif    

        oErr := ErrorNew()
        oErr:Severity := ES_ERROR
        oErr:Description := hb_UTF8ToStr(buffer)
        Throw(oErr)
        RETURN nil

    METHOD ProcessResult(buffer, bufferLen) CLASS ACBrNFe
        if bufferLen > STR_LEN
            buffer := Space(bufferLen)
            DllCall(::hHandle, DLL_OSAPI, "NFE_UltimoRetorno", @buffer, @bufferLen)        
        endif
        RETURN buffer

    METHOD Nome CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Nome", @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD Versao CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Versao", @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD ConfigLer(eArqConfig) CLASS ACBrNFe
        local hResult    
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ConfigLer", hb_StrToUTF8(eArqConfig))
        ::CheckResult(hResult)
        RETURN nil

    METHOD ConfigGravar(eArqConfig) CLASS ACBrNFe
            local hResult    
            hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ConfigGravar", hb_StrToUTF8(eArqConfig))
            ::CheckResult(hResult)
            RETURN nil

    METHOD ConfigLerValor(eSessao, eChave) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)   
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ConfigLerValor", hb_StrToUTF8(eSessao), hb_StrToUTF8(eChave), @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD ConfigGravarValor(eSessao, eChave, eValor) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ConfigGravarValor", hb_StrToUTF8(eSessao), hb_StrToUTF8(eChave), hb_StrToUTF8(eValor))
        ::CheckResult(hResult)
        RETURN nil

    METHOD CarregarXML(eArquivoOuXml) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_CarregarXML", hb_StrToUTF8(eArquivoOuXml))
        ::CheckResult(hResult)
        RETURN nil
        
    METHOD CarregarINI(eArquivoOuIni) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_CarregarINI", hb_StrToUTF8(eArquivoOuIni))
        ::CheckResult(hResult)
        RETURN nil

    METHOD ObterXml(AIndex) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)   
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ObterXml", AIndex, @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD GravarXml(AIndex, eNomeArquivo, ePathArquivo) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_GravarXml", AIndex, hb_StrToUTF8(eNomeArquivo), hb_StrToUTF8(ePathArquivo))
        ::CheckResult(hResult)
        RETURN nil

    METHOD CarregarEventoXML(eArquivoOuXml) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_CarregarEventoXML", hb_StrToUTF8(eArquivoOuXml))
        ::CheckResult(hResult)
        RETURN nil

    METHOD CarregarEventoINI(eArquivoOuIni) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_CarregarEventoINI", hb_StrToUTF8(eArquivoOuIni))
        ::CheckResult(hResult)
        RETURN nil

    METHOD LimparLista() CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_LimparLista")
        ::CheckResult(hResult)
        RETURN nil

    METHOD LimparListaEventos() CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_LimparListaEventos")
        ::CheckResult(hResult)
        RETURN nil

    METHOD Assinar() CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Assinar")
        ::CheckResult(hResult)
        RETURN nil

    METHOD Validar() CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Validar")
        ::CheckResult(hResult)
        RETURN nil

    METHOD ValidarRegrasdeNegocios() CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ValidarRegrasdeNegocios")
        ::CheckResult(hResult)
        RETURN nil

    METHOD VerificarAssinatura() CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_VerificarAssinatura")
        ::CheckResult(hResult)
        RETURN nil

    METHOD GerarChave(ACodigoUF, ACodigoNumerico, AModelo, ASerie, ANumero, ATpEmi, AEmissao, ACNPJCPF) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_GerarChave", ACodigoUF, ACodigoNumerico, AModelo, ASerie, ANumero, ATpEmi, AEmissao, ACNPJCPF, @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD StatusServico() CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_StatusServico", @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD Consultar(eChaveOuNFe) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Consultar", hb_StrToUTF8(eChaveOuNFe), @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD Inutilizar(ACNPJ, AJustificativa, Ano, Modelo, Serie, NumeroInicial, NumeroFinal) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Inutilizar", hb_StrToUTF8(ACNPJ), hb_StrToUTF8(AJustificativa), Ano, Modelo, Serie, NumeroInicial, NumeroFinal, @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD Enviar(ALote, Imprimir, Sincrono, Zipado) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Enviar", ALote, Imprimir, Sincrono, Zipado, @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD ConsultarRecibo(ARecibo) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ConsultarRecibo", hb_StrToUTF8(ARecibo), @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD Cancelar(eChave, eJustificativa, eCNPJ, ALote) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Cancelar", hb_StrToUTF8(eChave), hb_StrToUTF8(eJustificativa), hb_StrToUTF8(eCNPJ), ALote, @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD EnviarEvento(ALote) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_EnviarEvento", ALote, @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD DistribuicaoDFePorUltNSU(acUFAutor, eCNPJCPF, eultNSU) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_DistribuicaoDFePorUltNSU", hb_StrToUTF8(acUFAutor), hb_StrToUTF8(eCNPJCPF), hb_StrToUTF8(eultNSU), @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD DistribuicaoDFePorNSU(acUFAutor, eCNPJCPF, eNSU) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_DistribuicaoDFePorNSU", hb_StrToUTF8(acUFAutor), hb_StrToUTF8(eCNPJCPF), hb_StrToUTF8(eNSU), @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD DistribuicaoDFePorChave(acUFAutor, eCNPJCPF, echNFe) CLASS ACBrNFe
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_DistribuicaoDFePorChave", hb_StrToUTF8(acUFAutor), hb_StrToUTF8(eCNPJCPF), hb_StrToUTF8(echNFe), @buffer, @bufferLen)
        ::CheckResult(hResult)
        RETURN ::ProcessResult(buffer, bufferLen)

    METHOD EnviarEmail(ePara, eChaveNFe, aEnviaPDF, eAssunto, eMensagem, eCc, eAnexos) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_EnviarEmail", hb_StrToUTF8(ePara), hb_StrToUTF8(eChaveNFe), aEnviaPDF, hb_StrToUTF8(eAssunto), hb_StrToUTF8(eMensagem), hb_StrToUTF8(eCc), hb_StrToUTF8(eAnexos))
        ::CheckResult(hResult)
        RETURN nil

    METHOD EnviarEmailEvento(ePara, eChaveEvento, eChaveNFe, aEnviaPDF, eAssunto, eMensagem, eCc, eAnexos) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_EnviarEmailEvento", hb_StrToUTF8(ePara), hb_StrToUTF8(eChaveEvento), hb_StrToUTF8(eChaveNFe), aEnviaPDF, hb_StrToUTF8(eAssunto), hb_StrToUTF8(eMensagem), hb_StrToUTF8(eCc), hb_StrToUTF8(eAnexos))
        ::CheckResult(hResult)
        RETURN nil

    METHOD Imprimir(cImpressora, nNumCopias, cProtocolo, bMostrarPreview, cMarcaDagua, bViaConsumidor, bSimplificado) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_Imprimir", hb_StrToUTF8(cImpressora), nNumCopias, hb_StrToUTF8(bMostrarPreview), hb_StrToUTF8(cMarcaDagua), hb_StrToUTF8(bViaConsumidor), hb_StrToUTF8(bSimplificado))
        ::CheckResult(hResult)
        RETURN nil

    METHOD ImprimirPDF() CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ImprimirPDF")
        ::CheckResult(hResult)
        RETURN nil

    METHOD ImprimirEvento(eArquivoXmlNFe, eArquivoXmlEvento) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ImprimirEvento", hb_StrToUTF8(eArquivoXmlNFe), hb_StrToUTF8(eArquivoXmlEvento))
        ::CheckResult(hResult)
        RETURN nil

    METHOD ImprimirEventoPDF(eArquivoXmlNFe, eArquivoXmlEvento) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ImprimirEventoPDF", hb_StrToUTF8(eArquivoXmlNFe), hb_StrToUTF8(eArquivoXmlEvento))
        ::CheckResult(hResult)
        RETURN nil

    METHOD ImprimirInutilizacao(eArquivoXml) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ImprimirInutilizacao", hb_StrToUTF8(eArquivoXml))
        ::CheckResult(hResult)
        RETURN nil

    METHOD ImprimirInutilizacaoPDF(eArquivoXml) CLASS ACBrNFe
        local hResult
        hResult := DllCall(::hHandle, DLL_OSAPI, "NFE_ImprimirInutilizacaoPDF", hb_StrToUTF8(eArquivoXml))
        ::CheckResult(hResult)
        RETURN nil
        
    //---------------------------------------------EOF----------------------------------------   

     

     

    • Like 2
  10. 1 hora atrás, José M. S. Junior disse:

    Bom dia

    Para passar os dados do cedente utilize o método ConfigurarDados, passando o arquivo .ini como parâmetro:

    https://acbr.sourceforge.io/ACBrLib/BOLETO_ConfigurarDados.html

    Para passar os dados do Título utilize o método:

    https://acbr.sourceforge.io/ACBrLib/BOLETO_IncluirTitulos.html

    Júnior, está dando pau no acesso:

    503 Service Unavailable

    No server is available to handle this request.

  11. 3 horas atrás, BRIZOLLA disse:

    Bom dia,

    preciso de mais uma ajuda, como postei consegui rodar a lib, mas estou com um erro no comando DesInicializar(), não gera retorno, percebi que gera um log de erro mas não descobri o problema, segue erro:

    14/10/19 10:45:58:834 - TLibNFeConfig.AplicarConfiguracoes: C:\mgi\ACBrLib.ini
    14/10/19 10:45:58:839 - Travar
    14/10/19 10:45:58:845 - TLibNFeConfig.AplicarConfiguracoes - Feito
    14/10/19 10:45:58:850 - Destravar
    14/10/19 10:45:59:036 - TLibNFeConfig.Ler - Feito
    14/10/19 10:45:59:041 - Destravar
    14/10/19 10:45:59:047 - LIB_Inicializar( ,  )
    14/10/19 10:45:59:053 -    ACBrLibNFe - 0.1.1
    14/10/19 10:45:59:058 -    SetRetorno(0, )
    14/10/19 10:45:59:063 - TACBrLibNFe.Inicializar
    14/10/19 10:45:59:069 - TACBrLibNFe.Inicializar - Feito
    14/10/19 10:45:59:075 - Travar
    14/10/19 10:45:59:080 - TLibNFeConfig.Ler: C:\mgi\ACBrLib.ini
    14/10/19 10:45:59:086 - TLibNFeConfig.AplicarConfiguracoes: C:\mgi\ACBrLib.ini
    14/10/19 10:45:59:144 - Travar
    14/10/19 10:45:59:150 - TLibNFeConfig.AplicarConfiguracoes - Feito
    14/10/19 10:45:59:155 - Destravar
    14/10/19 10:45:59:160 - TLibNFeConfig.Ler - Feito
    14/10/19 10:45:59:164 - Destravar
    14/10/19 10:45:59:170 - LIB_Inicializar( , *** )
    14/10/19 10:45:59:174 -    ACBrLibNFe - 0.1.1
    14/10/19 10:45:59:179 -    SetRetorno(0, )
    14/10/19 10:46:00:966 - Finalizar
     

    a unica coisa que percebi foi nesta linha:

    14/10/19 11:00:05:012 - LIB_Inicializar( , *** )
    tem ***

     

    este é o código:

    //---------------------------------------------

    Function ACBrLibConfig()
       local nfe
       nfe := ACBrNFe():New( "", "" )

       // Salvando configurações
       nfe:ConfigGravar("")
       nfe:Inicializar()
       nfe:DesInicializar()
       nfe:Destroy()
       nfe := nil
    return NIL

    //--------------------------------------------

    a classe não fiz nenhuma alteração, é a mesmo da demonstração somente o nome dos comandos de SAT_ para NFE_.

    se puderam me dar uma luz, agradeço

    Não entendi?  Pq vc não usa CFe que é o documento do Sat ao invés de nfe? Vc quer dizer o retorno do comando? Experimente enviar este comando:   nfe:ConfigGravarValor("SAT", "ArqLog", "path do log") e nfe:ExtrairLogs("nome do arquivo). De qualquer forma vou testar este trecho que vc postou, mas seria interessante vc postar todo o processo..

  12. 14 horas atrás, BRIZOLLA disse:

    Obrigado Jorge, o erro era meu, fiz pela classe mas não coloquei estas dlls na pasta do executavel:

    libeay32.dll
    libexslt.dll
    libiconv.dll
    libxml2.dll
    libxslt.dll
    msvcr120.dll
    ssleay32.dll

     

    Só tinha colocado esta ACBrSAT32.dll.

    Já conseguir criar o ini, agora vamos prosseguir o projeto

    Amigo bom dia. Maravilha, por favor, documente aqui a evolução, possíveis problemas e soluções para que sirvam de apoio para os demais colegas do fórum e qeum sabe possíveis melhorias na CLASSE criada pelo Rafael.

    [],

    • Like 1
  13. Boa tarde amigo,

     

    Vc está usando a CLASSE desenvolvida pelo Rafael ou a DLL direta? Se for a CLASSE , além do exemplo que ele disponibilizou, para o formato INI, eu fiz alguns exemplos xHarbour usando a CLASSE,  só que eu gero o XML e não arquivo INI, mas de qualquer forma vou disponibilizar alguma coisa aqui, segue abaixo:

     

    Exemplos de comando e  configuração

     

       sat := ACBrSat():New("", "")
       sat:ConfigGravarValor("Principal", "LogNivel", "4")
       sat:ConfigGravarValor("SAT", "Modelo", "2")

       sat:ConfigGravarValor("SAT", "ArqLog", "C:\windows\temp\satlog")
       sat:ConfigGravarValor("SAT", "NomeDLL", "C:\ACBrMonitorPLUS\SAT\elgin\dllsat.dll")
       sat:ConfigGravarValor("SAT", "CodigoDeAtivacao", "123456789")
       sat:ConfigGravarValor("SAT", "SignAC", "SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT")
       sat:ConfigGravarValor("SATConfig", "ide_numeroCaixa", "3") //ide_numeroCaixa Define o numero de caixa padrão da CFe.
       sat:ConfigGravarValor("SATConfig", "ide_tpAmb", "0") //ide_tpAmb  taProducao = 0  taHomologacao = 1
       sat:ConfigGravarValor("SATConfig", "EhUTF8", "") //EhUTF8 Define se devemos utilizar codificação UTF8 ao se comunicar com o SAT.
       sat:ConfigGravarValor("SATConfig", "infCFe_versaoDadosEnt", "0,07") //infCFe_versaoDadosEnt Define qual será a versão do CFe utilizada.Ex.: 0,07 ou 0,08
       sat:ConfigGravarValor("SATConfig", "PaginaDeCodigo", "0") //PaginaDeCodigo Define a pagina de código que se deve utilizar ao se comunicar com o SAT.

       sat:ConfigGravarValor("SATConfigArquivos", "PastaCFeVenda", "X:\acbr\NFESAI\AUTORIZA\59") //PastaCFeVenda Define o caminho onde será salvos os arquivos de venda.
       sat:ConfigGravarValor("SATConfigArquivos", "SalvarCFe","0" ) //SalvarCFe Define se será salvo o arquivo de venda.
       sat:ConfigGravarValor("SATConfigArquivos", "SalvarCFeCanc", "0") //SalvarCFeCanc Define se será salvo o arquivo de cancelamento.
       sat:ConfigGravarValor("SATConfigArquivos", "SalvarEnvio", "0") //SalvarEnvio Define se será salvo o arquivo de envio para o sat.

      //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorCNPJ", "0") //SepararPorCNPJ Define se deverá separar os arquivos por CNPJ.
      //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorModelo", "0") //SepararPorModelo Define se deverá separar os arquivos por modelo.
      //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorAno", "0") //SepararPorAno Define se deverá separar os arquivos por ano.
      //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorMes", "0") //SepararPorMes Define se deverá separar os arquivos por mês.
      //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorDia", "0") //SepararPorDia Define se deverá separar os arquivos por dia.

       sat:ConfigGravarValor("SATConfig", "ide_CNPJ", "14200166000166") //ide_CNPJ Exemplo da elgin: 16716114000172 Define o padrão CNPJ do emitente da CFe.
       sat:ConfigGravarValor("SATConfig", "emit_IE", "144842258111") //emit_IE Define o IE padrão do emitente do CFe.
       //sat:ConfigGravarValor("SATConfig", "emit_IM", "inscricao municipal do emitente") //emit_IM Define o IM padrão do emitente do CFe.
       sat:ConfigGravarValor("SATConfig", "emit_cRegTrib","0") //emit_cRegTrib RTSimplesNacional = 0 RTRegimeNormal = 1
       sat:ConfigGravarValor("SATConfig", "emit_cRegTribISSQN", "6") //emit_cRegTribISSQN RTISS MicroempresaMunicipal = 0
       sat:ConfigGravarValor("SATConfig", "emit_indRatISSQN", "0") //emit_indRatISSQN  Define indicador de rateio do desconto sobre subtotal entre itens sujeitos a

       sat:ConfigGravarValor("SATConfig", "emit_CNPJ", "16716114000172") //emit_CNPJ Exemplo da elgin: 14200166000166 Define o CNPJ padrão do emitente da CFe.

       sat:ConfigGravarValor("SATRede", "tipoInter", "0") //0 = infETHE
       sat:ConfigGravarValor("SATRede", "tipoLan", "0")  
       
       sat:ConfigGravarValor("Extrato", "LarguraBobina", "302") //LarguraBobina Define a largura da bobina.
        sat:ConfigGravarValor("Extrato", "MargemSuperior", "2") //MargemSuperior Define a margem superior da impressão.
       sat:ConfigGravarValor("Extrato", "MargemInferior", "4") //MargemInferior Define a margem inferior da impressão.
        sat:ConfigGravarValor("Extrato", "MargemEsquerda", "2") //MargemEsquerda Define a margem esquerda da impressão.
        sat:ConfigGravarValor("Extrato", "MargemDireita", "2") //MargemDireita Define a margem direita da impressão.
       sat:ConfigGravarValor("Extrato", "Tipo", "0") //TipoDefine o tipo de impressão a ser utilizada.tpFortes = 0 tpEscPos = 1
       //sat:ConfigGravarValor("Extrato", "Impressora", "nome a impressora para emissão do cupom") //Impressora Define o nome da impressora padrão a ser utilizada pela impressão.
       sat:ConfigGravarValor("Extrato", "ImprimeChaveEmUmaLinha", "0") //ImprimeChaveEmUma Define se deve imprimir a chave do CFe em apenas uma linha.

     

     

     

    Dll's Necessárias , a quais podem ser baixadas por qualquer usuário Sac do Acbr.

    ACBrSAT32.dll
    ACBrSAT64.dll

    libeay32.dll
    libexslt.dll
    libiconv.dll
    libxml2.dll
    libxslt.dll
    msvcr120.dll
    ssleay32.dll

     

     

    Espero que seja útil.

     

    []s,

    • Like 4
  14. Pessoal boa tarde

     

    O @Rafael Dias, desenvolveu uma classe e demo da lib acima para HARBOUR, a qual estou testando e fazendo ajustes para xHARBOUR, o empenho que ele dispôs nesse projeto,  é algo imensurável em termos de dedicação e conhecimento.

    Com isso, acredito que esta classe , deva alavancar a adesão e migração de muitos assinantes FREE para SAC, pois o uso da DLL, trará muitas vantagens para todos, com maior controle dos seus aplicativos, sombreamento de suas aplicações e quiçá ,  independência em relação ao MONITOR, sem contar a economia, da não necessidade de assinaturas  de DLL's de terceiros por CNPJ.

    Logo devo repassar ao Rafael os testes e os ajustes que fiz, a fim de atender também ao xHARBOUR, que passará pelo crivo dos seus conhecimentos para análise e demais ajustes que se fizerem necessários.

    Estarei envolvendo usuários em geral dos grupos/fóruns de HARBOUR, xHARBOUR  e FIVEWIN, assinantes ou não do ACBR no intuito da difusão desta facilidade e de agregar colaboradores.

    Obs: Está a caminho as demais classes de HARBOUR/xHARBOUR para ACBREMAIL, NFE e etc...

    • Like 7
    • Thanks 1
  15. Galera boa noite

    Antes que me detonem por informações repetidas, a intenção é informar, como estou sem tempo pra pesquisar, fica as desculpas.

     
     
     
     
    Conheça a PLAC Fat-e, plataforma para Antecipações de Recebíveis

    A PLAC Fat-e disponibiliza para as empresas que trabalham com antecipações de recebíveis serviços úteis para a verificação e autenticidade das NFes. Saiba mais:

    Foi lançada a Plataforma de Consultas  da Fatura Eletrônica para Antecipações de Recebíveis dos Estados (PLAC Fat-e) no dia 13 de Dezembro em Salvador (BA), que também está sendo operacionalizada na Sefaz virtual da Bahia. O lançamento foi feito pelas Secretarias de Fazenda dos estados . Essa plataforma colabora com a redução dos juros no mercado e o aumento da oferta de crédito. Tais contribuições cooperam principalmente com as micro e pequenas empresas.

    A PLAC Fat-e realiza consultas e registros de informações de vendas a prazo a partir das notas fiscais eletrônicas (NFe) e consolida tais dados nas Faturas Eletrônicas (Fat-e). Além disso, a plataforma está interligada com  a agenda pública do Banco Central (BC) que possui  ações relacionadas ao mercado financeiro e formas de proporcionar segurança jurídica e operacional.

     

    Teste na PLAC Fat-e

    A Plataforma está sincronizada com as bases de dados das seguintes secretarias da Fazenda:

      • Alagoas;
      • Bahia;
      • Distrito Federal;
      • Espírito Santo;
      • Paraíba;
      • Piauí;
      • Rondônia;
      • Rio Grande do Sul;
      • Sergipe.
    •  
    •  

    As Empresas do Segmento financeiro desses estados já podem fazer testes na plataforma neste link.

    A maioria dos estados brasileiros não estão sincronizados com a PLAC Fat-e. Porém, só durante outubro e novembro, meses que fazem parte dos testes, foram registrados mais de 50 milhões de faturas eletrônicas com um montante aproximado em R$ 244 bilhões em vendas a prazo.

     

    Como contratar o PLAC Fat-e?

    Apenas em janeiro de 2020 a plataforma estará disponível para o uso. É necessário que antes da sua liberação as demais secretarias da Fazenda se sincronizem com a PLAC Fat-e.

     

    Como a PLAC Fat-e funciona?

    Com a PLAC Fat-e, as Secretarias de Fazenda atendem a necessidade de criação das registradoras de ativos financeiros e Duplicata Eletrônica. Isso é possível porque a plataforma disponibiliza para as empresas que trabalham com antecipação de recebíveis lastreados por NFe (Duplicatas) vários serviços relacionados a verificação  da autenticidade das NFes. Além disso, a PLAC Fat-e também monitora os eventos vinculados a NFe até a liquidação da operação de crédito.

    Assim, a plataforma ajuda as empresas em suas operações de vendas a prazo a confirmar a autenticidade de uma nota fiscal e verificar se aquela venda ocorreu.

    Dessa forma, através dos eventos vinculados a NFe e suas faturas, a Plataforma disponibiliza a opção de checar se o destinatário está ciente da obrigação contraída, se a mercadoria já foi encaminhada ou entregue, se houve devoluções ou sinistro na carga.

    O emissor da NFe também não é permitido cancelar as notas fiscais que estão vinculadas a operações de crédito, após o registro da cessão. Além disso, a PLAC Fat-e evita a apresentação de NFes repetidas, por parte do emissor, como comprovação de operações de antecipação para mais de uma instituição do sistema financeiro.

     

    Eventos NFe monitorados pela PLAC Fat-e

     

     

    Vantagens da Plataforma dos Estados (PLAC Fat-e)

      • Maior segurança para as operações de antecipações de recebíveis;
      • Disponibilização dos processos fiscais de forma centralizada;
      • Acesso restrito;
      • Sigilo fiscal;
      • Conexão instantânea com os atores da operação;
      • Redução de custos de comunicação;
      • Redução de protestos indevidos;
      • Capital de giro com menores taxas de juros para as empresas.
    •  

     

     

    Ferramentas da PLAC Fat-e

      • Consulta: Verificação da autenticidade da NFe e recebimento do XML e eventos da NFe;
      • Recebível em Avaliação: Monitoramento dos eventos vinculados a NFe, até as parcelas das duplicatas vencerem;
      • Registro de Cessão de Parcela de Fat-e por IMF: Informação dada para uso exclusivo de Registradores de Ativos Financeiros;
      • Transferência de Parcela de Fat-e por IMF: Evento de uso exclusivo de Registradora de Ativos Financeiros, para informar sobre a ocorrência de endosso de parcela da Fat-e para um novo endossatário;
      • Envio de parcela de Fat-e para Cobrança Judicial por IMF: Evento de uso exclusivo de Registradora de Ativos Financeiros, com o objetivo de informar a transferência da parcela para cobrança judicial.
    Créditos: Oobj

    []s,
    • Like 2
  16.  

    Substituição de NFCe

    No dia 21 de Dezembro foi divulgada a Nota Técnica 2018.004 que cria uma nova forma de cancelamento: o Cancelamento por Substituição. Esse evento deve ser utilizado apenas quando existir outra NFCe em duplicidade, que tenha sido emitida e autorizada em contingência anteriormente e acoberte a mesma operação. O prazo da autorização não pode ser superior a 168 horas (7 dias).

    O novo cancelamento tem previsão para implantação em ambiente de teste até dia 25 de Fevereiro de 2019 e sua Produção iniciará a partir do dia 29 de Abril de 2019.

    Leia mais

     

    Créditos: OOBJ

     

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.