Ir para conteúdo
  • Cadastre-se

jjw.roberto

Membros
  • Total de ítens

    176
  • Registro em

  • Última visita

Posts postados por jjw.roberto

  1. Pessoal, bom dia.

    Estou com uma Epson TM-T81F USB, só que para utilizá-la com o ACBr tenho que instalar o emulador de Serial, que baixo aqui https://download.epson-biz.com/modules/pos/index.php?page=single_soft&cid=5485&scat=36&pcat=3

    Só que está acontecendo algo estranho, depois que configuro a USB para a Serial que desejo, fecho o programa e utilizo a ECF normalmente.

    Só que depois que o cliente reinicia o PC, a configuração se perde e tenho que reinistalar tudo novamente.

    Alguém já passou por isso ou sabe o que posso fazer para resolver?!

  2. Estou tendo problemas de entendimento referente à 3 campos do Bloco X de estoque, que na época em que fiz nossa homologação PAF-ECF tais campos não existiam.

    Segundo o XSD https://tributario.sef.sc.gov.br/tax.NET/sat.dfe.siv.web/xsd/estoque.xsd  os campos são:

    • ValorTotalICMSDebitoFornecedor
    • ValorBaseCalculoICMSST
    • ValorTotalICMSST

    Entrei em contato com o pessoal da receita federal, minha pergunta foi:

    Citar

     

    Somos empresa desenvolvedora de sistema e estamos com dúvida quanto ao Bloco X nos seguintes campos:
    - ValorTotalICMSDebitoFornecedor
    - ValorBaseCalculoICMSST
    - ValorTotalICMSST

    O contribuinte poderia adquirir a mesma mercadoria para revenda de fornecedores distintos, com valores diferentes mas o layout é por tipo de produto.
    Como faremos para informar tais campos a nível de fornecedor se o Bloco X não possibilita?
    Estes campos seriam destinados a uma operação específica? Ex: Postos de combustíveis.


     

    A resposta

    Citar

     

    Prezado sr. Fabiano,

    Boa tarde! Os valores informados nos campos são os que constam e estão registrados na contabilidade de custos de cada estabelecimento. Sugiro que verifique com o contador para verificar o critério de custeio utilizado.

    Saudações,


    Leandro Luí­s Darós
    Auditor Fiscal da Receita Estadual
    Secretaria de Estado da Fazenda


     

     

    Bem, pelo meu entendimento, somente precisarei informar esses campos caso meu cliente faça contabilidade de custos. No meu caso, nenhum deles faz, então não precisarei informá-los (basta zerá-los).

    Minha questão aqui é, na opinião de vocês estou correto em meu entendimento?

     

     

  3. Gente, eu estava com o mesmo problema esses dias, e meu problema era que eu não estava enviando o Número do Credenciamento correto no XML.

    Para resolver eu acessei o menu "CEI - Manutenção de Autorização de Uso de PAF-ECF" em https://sathomologa.sef.sc.gov.br/tax.NET/sat.cei.web/pafecf/manutencao.aspx

    image.thumb.png.3405bb38518fc16544a70113cc6e7abf.png

     

    Também verifiquei se o número de fabricação do ECF em questão estava cadastrado junto à este aplicativo.

    Resumidamente é isso!

     

  4. Pessoal, estou com um cliente com uma ECF da daruma.

    Eventualmente ocorre um erro de comunicação no fechamento do cupom fiscal, porém a ECF fecha o cupom corretamente e contabiliza ele. Em meu sistema eu só marco o cupom fiscal como "100% correto" depois que o "ECF.FechaCupom" retorna com sucesso.

    Resumindo minha aplicação está ficando com cupons fiscais marcados como não concluídos mas na ECF estão certos.

     

    Alguém sabe me dizer o porque disso? 

     

    Estava pensando em resolver fazendo uma consulta na base de dados e verificando se o ultimo cupom está marcado como "nao concluído" e verificar pela ECF o ultimo cupom emitido para então marcar na base de dados o cupom com o status certo. Não sei se é uma boa, ao meu ver não é pois não resolve o problema de comunicação.

  5. Pessoal, boa tarde.

    Estou utilizando o Acbr Monitor Plus para comunicar com uma ECF DARUMA FS800i fornecida para desenvolvimento por uma empresa terceira.

    Toda vez que emito uma sangria, suprimento ou até um cupom fiscal com comprovante de crédito, não consigo fazer o seu cancelar posterior.

    Ocorre o seguinte erro:

    03/07/2017 15:14:50 - ECF.CancelaNaoFiscal
    03/07/2017 15:14:50 - ERRO: Erro retornado pela Impressora: DARUMA AUTOMAÇÃO
    
    Categoria: 16-Erro específico do Fabricante
    Motivo: 146-Documento especificado não foi encontrado
    

    Se for um cupom fiscal normal, por exemplo com pagamento em dinheiro, aí consigo fazer o cancelamento posteriormente.

    Alguém pode dar uma luz do que possa ser? Problema na ECF talvez?

  6. Resolvido o problema da ultima linha de compilação do ACBR monitor plus

     

    @echo off
    
    setlocal EnableDelayedExpansion
    
    echo.
    echo. UTILITARIO PARA BAIXAR E COMPILAR O ACBR MONITOR PLUS
    echo. 
    echo. PARA PROSSEGUIR VOCE PRECISARA:
    echo. - GIT INSTALADO
    echo. - SVN COM COMMAND LINE TOOLS
    echo. - LAZARUS 1.6 INSTALADO EM C:\LAZARUS
    echo.
    PAUSE
    
    set lazarus_home=c:\lazarus
    set path=%path%;%lazarus_home%
    set opts=--build-all --quiet --lazarusdir=%lazarus_home%
    set projects=^
    fortesreport-ce\Packages\frce.lpk,^
    powerpdf\pack_powerpdf.lpk,^
    acbr\Pacotes\Lazarus\synapse\laz_synapse.lpk,^
    acbr\Pacotes\Lazarus\ACBrComum\ACBrComum.lpk,^
    acbr\Pacotes\Lazarus\ACBrDiversos\ACBrDiversos.lpk,^
    acbr\Pacotes\Lazarus\PCNComum\PCNComum.lpk,^
    acbr\Pacotes\Lazarus\ACBrOpenSSL\ACBrOpenSSL.lpk,^
    acbr\Pacotes\Lazarus\ACBrSerial\ACBrSerial.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrTXTComum.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrConvenio115\ACBr_Convenio115.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrLFD\ACBr_LFD.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrPAF\ACBr_PAF.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrSEF2\ACBr_SEF2.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrSintegra\ACBr_Sintegra.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrSPED\ACBr_SPED.lpk,^
    acbr\Pacotes\Lazarus\ACBrTCP\ACBrTCP.lpk,^
    acbr\Pacotes\Lazarus\ACBrTEFD\ACBr_TEFD.lpk,^
    acbr\Pacotes\Lazarus\ACBrBoleto\ACBr_Boleto.lpk,^
    acbr\Pacotes\Lazarus\ACBrBoleto\FC\Fortes\ACBr_BoletoFC_Fortes.lpk,^
    acbr\Pacotes\Lazarus\ACBrBoleto\FC\Laz\ACBr_BoletoFC_LazReport.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrDFeComum.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\ACBr_NFe.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\ACBr_CTe.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\ACBr_GNRE.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\ACBr_MDFe.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFSe\ACBr_NFSe.lpk,^
    acbr\Pacotes\Lazarus\ACBrSAT\ACBr_SAT.lpk,^
    acbr\Pacotes\Lazarus\ACBrSAT\Extrato\EscPos\ACBr_SAT_Extrato_ESCPOS.lpk,^
    acbr\Pacotes\Lazarus\ACBrSAT\Extrato\Fortes\ACBr_SAT_Extrato_Fortes.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrBlocoX\ACBr_BlocoX.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\DAMDFE\Fortes\ACBr_MDFe_DAMDFeRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Fortes\ACBr_GNREGuiaRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Laz\ACBr_GNREGuiaLazReport.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\DACTE\Fortes\ACBr_CTe_DACTeRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\Fortes\ACBr_NFCe_DanfeRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFe\Fortes\ACBr_NFe_DanfeRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\EscPos\ACBr_NFe_DanfeESCPOS.lpk,^
    "--build-mode=release acbr\Projetos\ACBrMonitorPLUS\Lazarus\ACBrMonitor.lpi"
    
    :init0 (
        echo.
        choice /c SN /n /m "Deseja fazer o checkout dos fontes (apaga e baixa) ? [S/N]"
        if %errorlevel% EQU 1 goto :checkout
        if %errorlevel% EQU 2 goto :make
    )
    
    :checkout (
        rd /s /q fortesreport-ce
        git clone https://github.com/fortesinformatica/fortesreport-ce.git
        if %errorlevel% NEQ 0 goto :error
    
        rd /s /q powerpdf
        svn co svn://svn.code.sf.net/p/lazarus-ccr/svn/components/powerpdf powerpdf
        if %errorlevel% NEQ 0 goto :error
    
        rd /s /q acbr
        svn co svn://svn.code.sf.net/p/acbr/code/trunk2 acbr
        if %errorlevel% NEQ 0 goto :error
    )
    
    :make (
        for %%a in (%projects%) do (
            call :compile %%~a
            if !RESULT! NEQ 0 goto :error
        )
    )
        
    echo. OK
    goto :eof
    
    :compile (
        lazbuild %opts% %*
        set RESULT=%ERRORLEVEL%
        EXIT /B
    )
    
    :error (
        echo. FALHOU !
        goto :EOF
    )

     

    • Curtir 4
  7. Pessoal bom dia, gostaria de compartilhar o utilitário que criei para:

    • Baixar os fontes do ACBR + fortes report ce + powerpdf
    • Compilar o ACBRMonitorPlus utilizando o Lazarus

    É bom ressaltar que você precisará:

    Segue abaixo o script completo

    @echo off
    
    setlocal EnableDelayedExpansion
    
    echo.
    echo. UTILITARIO PARA BAIXAR E COMPILAR O ACBR MONITOR PLUS
    echo. 
    echo. PARA PROSSEGUIR VOCE PRECISARA:
    echo. - GIT INSTALADO
    echo. - SVN COM COMMAND LINE TOOLS
    echo. - LAZARUS 1.6 INSTALADO EM C:\LAZARUS
    echo.
    PAUSE
    
    set lazarus_home=c:\lazarus
    set path=%path%;%lazarus_home%
    set opts=--build-all --quiet --lazarusdir=%lazarus_home%
    set projects=^
    fortesreport-ce\Packages\frce.lpk,^
    powerpdf\pack_powerpdf.lpk,^
    acbr\Pacotes\Lazarus\synapse\laz_synapse.lpk,^
    acbr\Pacotes\Lazarus\ACBrComum\ACBrComum.lpk,^
    acbr\Pacotes\Lazarus\ACBrDiversos\ACBrDiversos.lpk,^
    acbr\Pacotes\Lazarus\PCNComum\PCNComum.lpk,^
    acbr\Pacotes\Lazarus\ACBrOpenSSL\ACBrOpenSSL.lpk,^
    acbr\Pacotes\Lazarus\ACBrSerial\ACBrSerial.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrTXTComum.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrConvenio115\ACBr_Convenio115.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrLFD\ACBr_LFD.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrPAF\ACBr_PAF.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrSEF2\ACBr_SEF2.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrSintegra\ACBr_Sintegra.lpk,^
    acbr\Pacotes\Lazarus\ACBrTXT\ACBrSPED\ACBr_SPED.lpk,^
    acbr\Pacotes\Lazarus\ACBrTCP\ACBrTCP.lpk,^
    acbr\Pacotes\Lazarus\ACBrTEFD\ACBr_TEFD.lpk,^
    acbr\Pacotes\Lazarus\ACBrBoleto\ACBr_Boleto.lpk,^
    acbr\Pacotes\Lazarus\ACBrBoleto\FC\Fortes\ACBr_BoletoFC_Fortes.lpk,^
    acbr\Pacotes\Lazarus\ACBrBoleto\FC\Laz\ACBr_BoletoFC_LazReport.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrDFeComum.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\ACBr_NFe.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\ACBr_CTe.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\ACBr_GNRE.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\ACBr_MDFe.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFSe\ACBr_NFSe.lpk,^
    acbr\Pacotes\Lazarus\ACBrSAT\ACBr_SAT.lpk,^
    acbr\Pacotes\Lazarus\ACBrSAT\Extrato\EscPos\ACBr_SAT_Extrato_ESCPOS.lpk,^
    acbr\Pacotes\Lazarus\ACBrSAT\Extrato\Fortes\ACBr_SAT_Extrato_Fortes.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrBlocoX\ACBr_BlocoX.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\DAMDFE\Fortes\ACBr_MDFe_DAMDFeRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Fortes\ACBr_GNREGuiaRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Laz\ACBr_GNREGuiaLazReport.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\DACTE\Fortes\ACBr_CTe_DACTeRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\Fortes\ACBr_NFCe_DanfeRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFe\Fortes\ACBr_NFe_DanfeRL.lpk,^
    acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\EscPos\ACBr_NFe_DanfeESCPOS.lpk,^
    --build-mode=release acbr\Projetos\ACBrMonitorPLUS\Lazarus\ACBrMonitor.lpi
    
    :init0 (
        echo.
        choice /c SN /n /m "Deseja fazer o checkout dos fontes (apaga e baixa) ? [S/N]"
        if %errorlevel% EQU 1 goto :checkout
        if %errorlevel% EQU 2 goto :make
    )
    
    :checkout (
        rd /s /q fortesreport-ce
        git clone https://github.com/fortesinformatica/fortesreport-ce.git
        if %errorlevel% NEQ 0 goto :error
    
        rd /s /q powerpdf
        svn co svn://svn.code.sf.net/p/lazarus-ccr/svn/components/powerpdf powerpdf
        if %errorlevel% NEQ 0 goto :error
    
        rd /s /q acbr
        svn co svn://svn.code.sf.net/p/acbr/code/trunk2 acbr
        if %errorlevel% NEQ 0 goto :error
    )
    
    :make (
        for %%a in (%projects%) do (
            echo. %%a
            call :compile %%a
            if !RESULT! NEQ 0 goto :error
        )
    )
        
    echo. OK
    goto :eof
    
    :compile (
        lazbuild %opts% %*
        set RESULT=%ERRORLEVEL%
        EXIT /B
    )
    
    :error (
        echo. FALHOU !
        goto :EOF
    )

     

  8. Barbosa, obrigado pelo retorno!

    Bem, agora você levantou a mesma questão que levantei ao homologador, e segundo ele (homologador) ele estava pedindo isso com base no REQUISITO LVIII - itens 2 e 3 ( link ER ).

    2. O Arquivo com Informações da Redução Z do PAF-ECF deve ser gerado automaticamente quando o PAF-ECF comandar a emissão do documento Redução Z.
    
    3. O Arquivo com Informações da Redução Z do PAF-ECF deve ser gerado automaticamente também quando houver a emissão automática do documento Redução Z pelo ECF.

    Questionei ele sobre a parte do item 2 que diz "quando o PAF-ECF comandar a emissão do documento Redução Z", logo, se o RZ não foi feita por dentro do programa não teria como fazer a geração. Por isso acho que ele se baseou mais pelo item 3 para obrigarmos a recuperar a RZ emitida por fora do programa. 

    A questão é, existe ECF que emite redução z sozinha? Não é o programa que deve implementar essa "emissão automática da RZ" ?

    Eu particularmente acho que o homologador estava meio bravo (hahahahahahahaha) pois não estava encontrando inconformidades no nosso programa, já estávamos perto das 12:00 horas e já tínhamos feito uns 80% do testes. Depois que ele inventou esse requisito acabamos atendendo ele por meio de um arquivo .INI em que nós (empresa desenvolvedora) ficaríamos responsáveis por criar e importar "Reduções Z emitidas externamente".

    O que nos deixou mais bravos, foi que perdemos umas 2~3 horas para resolver o problema e tudo baseado nos requisitos do BlocoX que ainda nem estão em vigor.

     

  9. Pessoal, boa tarde.

    Acabei de baixar a última versão dos fontes do acbr do SVN.

    Depois de compilar tudo notei que alguns caracteres estavam vindo errados durante a comunicação do ACBrMonitorPlus, enviando o comando "teste" (que não existe) o retorno foi esse:

    teste
    ERRO: Comando inv�lido (teste)

    Note que o "á" está com um caracter errado.

    Foi quando resolvi pegar uma versão antiga dos fontes do ACBR que eu tinha em minha máquina e verifiquei que todos os arquivos em "Projetos\ACBrMonitorPLUS\Lazarus" estão em encoding UTF-8, já os demais fontes ainda continuam em ANSI, sendo que a versão antiga dos fontes que eu tinha guardada estavam todos em ANSI.

     

    O que mudou? Preciso configurar algo no lazarus para compilar corretamente?

     

     

  10. Pessoal, bom dia.

    Esta semana, na segunda e terça feira (dia 13 e 14) realizamos (com sucesso) nossa Homologação PAF-ECF.

    Porém, durante a homologação o homologador fez o seguinte teste:

    • Emitir um cupom fiscal
    • Fazer intervenção na ECF
    • Fazer a redução Z em modo de intervenção
    • Sair da intervenção
    • Reabrir o programa PAF-ECF
    • Verificar se foi recuperada a Redução Z (que não foi emitida/comandada pelo aplicativo PAF-ECF)
    • Verificar se foi gerado automaticamente o arquivo de exportação da Redução Z para o Bloco X

    Quando o homologador descreveu o teste, ficamos assustados pois sabíamos que o comando "ECF.DadosUltimaReducaoZ" não era compatível com todas as ECFs.

    Para piorar quando fomos testar o comando, não estava retornando: data do movimento, valor da venda bruta, alíquotas todas zeradas e sem os totais por forma de pagamento.

    Minhas perguntas:

    • existe algum meio de se obter os dados de uma redução Z específica?
    • e se o homologador tivesse emitido mais de uma redução z em intervenção?
    • e se o homologador tivesse emitido um cupom fiscal antes de fazer a redução z em intervenção?

     

  11. Pessoal, bom dia.

    Estou tentando programar um relatório gerencial com uma descrição (ex: Identificação do Paf Ecf) porém, depois de programar ele está ficando com a descrição truncada "Identificação P".

    Isso é um limite da ECF em questão ou isso varia de ECF para ECF ?

    Esse foi o comando que emiti ao ACBrMonitorPlus:

    ECF.ProgramaRelatoriosGerenciais("Identificação Paf")

    O estranho é o retorno das descrições:

    ECF.CarregaRelatoriosGerenciais
    OK:    1                  Configuração00001|   2               Identificação P00000

    Note que a descrição retornada está alinhando à direita.

    Eu esperava que o retorno fosse algo assim:

    ECF.CarregaRelatoriosGerenciais
    OK:    1Configuração                  00001|   2Identificação P               00000

     

  12. Pois é, estou tendo um parto com esse assunto.

    • Ambiente de homologação estava fora até ontem, voltou hoje
    • Não tem XSD para validar os xmls de estoque e reducaoz
    • O validador só retorna "XML inválido: Schema inválido:"
    • Validar o próprio XML de exemplo disponível no despacho também não valida
    • Já tentei usar os XSD daqui 

    Não sei mais o que fazer com esse assunto.

    Minha homologação é em Março/2017, só espero que até lá esse negocio esteja redondo.

    Esse despacho parece ter sido feito nas cochas por parte do governo. Fora que estão "refazendo a roda", ao meu ver tudo isso seria resolvido se adotassem a NFc-e ou SAT de SP.

  13. 36 minutos atrás, Anderson Eccker disse:

    Bom dia,

    O arquivo registros do PAF-ECF são gerados de duas formas, ou pelo Menu Fiscal ou após a Redução Z,

    Após a Redução Z deve ser gerado no arquivo apenas os DAVs do movimento da RZ,
    Pelo menu fiscal deve ser gerado os DAVs no periodo informado pelo usuario.

    O DAV não pode ser cancelado, é um dos requisitos do PAF-ECF.

    Devem ser mostrados todos os DAVs, independente de serem impressos ou não Cupom Fiscal.

    Lembre que só pode ser atribuido um código para o DAV após a gravação do primeiro item.
     

    Anderson, obrigado pelo retorno.

    Sobre a sua afirmação na última linha sobre o DAV, é correto afirmar também que:

    • Não posso na tela para criar um novo DAV e ir adicionando os itens e no final descartar/cancelar tudo
    • Uma vez que um DAV tem o primeiro item lançado ele tem que ser gravado na base
    • A mesma coisa pode-se assumir para o Pré Venda?

    Tenho outra questão baseada no fluxo de tralhado de alguns de meus clientes:

    • O tele vendas de um cliente meu recebe N ligações por dia para fins de "orçamento/consulta de valores", os quais nem sempre convertem-se em vendas.
      • Mesmo nestes casos terei que gravar um DAV na base contendo todos os itens cancelados (bizarro)

     

  14. Pessoal, bom dia.

    Estou começando a gerar as maravilhosas exportações do PAF-ECF.

    No momento estou na geração do 6.6. REGISTRO TIPO D2 - RELAÇÃO DOS DAV EMITIDOS ( https://www.confaz.fazenda.gov.br/legislacao/atos/2016/ac014_16 ).

    Foi quando surgiu a seguinte dúvida...

    • Essa exportação é de TODOS os DAVs da empresa? Se sim, todos os ECFs vão ter este arquivo (REQUISITO XXVI - Item 5) com todos os DAVs da empresa?
    • Ou; Somente dos DAVs dois quais foram gerados Cupons Fiscais pelo ECF que está gerando a exportação?
    • Os DAVs cancelados ou não impressos ou não gerados cupons também devem sair nessa exportação?
  15. Acredito que o primeiro erro é decorrente do segundo erro, no caso, a DLL c:\windows\system32\libssl32.dll não existe realmente.

    Tenho uma versão mais recente instalada do OpenSSL (1.x) e notei que dentro do diretório de instalação dele existe esta dll (libssl32.dll).

    Outra coisa, no site oficial do OpenSSL a versão 9.x está descontinuada, será que não seria interessante atualizar para uma versão mais recente?

     

  16. Eu até arriscaria fazer uma sugestão de melhoria ao protocolo.

    Tanto para envio como recebimento, poderia seguir a seguinte premissa:

    [tamanho = 4 bytes] [byte1,byte2,byteN]

    Assim, ao enviar o comando, você enviaria ao servidor primeiramente a quantidade de bytes do comando (length) e depois os bytes do comando em si. Para a resposta, fazer o mesmo, o integrador deve ler 4 bytes para saber o tamanho do buffer de retorno e então lê-lo.

     

    Em uma visão mais técnica ficaria algo assim (programaticamente):

    // exemplo do integrador/cliente fazendo a comunicação com o ACBrMonitorPlus via TCP
    
    var cmd = "ECF.MFAdicional";
    socket.writeInteger(length(cmd)); // 4 bytes do tamanho do comando (15)
    socket.writeBuffer(cmd[1], length(cmd)); // 15 bytes do comando
    
    var resultLen = socket.readInteger; // espera o servidor responder com 4 bytes contratando o tamanho do retorno
    var result;
    setLength(result, resultLen); // aloca o buffer para fazer a leitura do retorno
    socket.readBuffer(result[1], resultLen); // faz a leitura dos bytes de retorno
    
    // O servidor faz o inverso, aguarda sempre 4 bytes que representarão o tamanho do comando que irá receber, e depois lê o buffer, por exemplo:
    var cmdLen = serverSocker.readInteger();
    var cmd;
    setLength(cmd, cmdLen);
    serverSocker.readBuffer(cmd[1], cmdLen);
    // cmd agora contém o comando recebido, no caso do exemplo acima seria "ECF.MFAdicional"

     

    Os benefícios seriam:

    • possibilidade de enviar comandos com múltiplas linhas contendo CR+LF+ . + CR+LF (sequencia que atualmente denota ao servidor o término do comando enviado);
    • possibilidade de possuir o caracter ASCII #3 na resposta, que hoje por padrão é eliminado da resposta pois é utilizado como demarcador de término da resposta;
    • padronização do protocolo;
    • diminuição da quantidade de bytes no envio do comando (de 5 para 4, não que seja significativo)

     

    Me prontifico à fazer a alteração e anexar um PATH caso tenham interesse.

     

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...