Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2002 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Pessoal, boa tarde.

Peguei uma situação estranha em um cliente com uma Epson e também ocorreu com uma Bematech.

O cliente emitiu um cupom fiscal aonde havia um desconto (9.95) sobre o total (59.95) do cupom.

Ao finalizar o cupom emiti o ECF.SubtotalizaCupom(-9.95) e bem ao emitir esse comando ocorreu o erro de FIM DE PAPEL.

O operador trocou a bobina e mandou o meu programa continuar. 

Aqui começou o problema, ao emitir o comando ECF.Estado o ACBr retornou o estado como sendo estPagamento. Meu programa então assume que o cupom já foi subtotalizado, pois se não tivesse o estado estaria em estVenda.

Sendo assim, meu programa não enviou o comando de subtotalizar o cupom novamente, o que fez com que o valor total a ser pago ficasse sem o desconto (59.95).

E logo em seguida o cupom foi pago e fechado, então ocorre um erro informando que a mensagem promocional não pode ser impressa (decorrente do comando ECF.FechaCupom), logicamente pois ainda falta 9.95 a ser pago já que o desconto não foi comandado em subtotalização.

Segue aqui o log do ECF gerado pelo acbrmonitor plus:

-- 20/05 14:00:45:547 NumSerie
-- 20/05 14:00:45:547                 TX -> [STX][130][4][ESC][STX][FS][NUL][NUL][ETX]00C4
-- 20/05 14:00:45:559     RX <- ACK = 6
-- 20/05 14:00:45:650     RX <- [STX][130][NUL][NUL][FS][192][128][FS][FS][NUL][NUL][FS][FS]EP081300000000000001[FS]MFD0000000000000001[FS]EPSON[FS]TM-T81 FBIII[FS]ECF-IF[FS]01.00.04[FS]99[FS]99[FS]30012013[ETX]1519
-- 20/05 14:00:45:655 AbreCupom( , ,  )
-- 20/05 14:00:45:655                 TX -> [STX][131][LF][SOH][FS][NUL][NUL][FS][FS][ETX]00E7
-- 20/05 14:00:45:725     RX <- ACK = 6
-- 20/05 14:00:45:783     RX <- [STX][131][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][ETX]0239
-- 20/05 14:00:45:787 NumCupom
-- 20/05 14:00:45:787                 TX -> [STX][132][TAB][7][FS][NUL][NUL][ETX]00B5
-- 20/05 14:00:45:819     RX <- ACK = 6
-- 20/05 14:00:45:886     RX <- [STX][132][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][FS]000115[FS]0012[FS]001[FS]000036[FS]0002[FS]0000[FS]000019[FS]000045[FS]0004[FS]000000[FS]0009[FS]0000[FS]000114[FS]000015[ETX]10F4
-- 20/05 14:00:45:888 DataHora
-- 20/05 14:00:45:888                 TX -> [STX][133][ENQ][ESC][STX][FS][NUL][NUL][ETX]00C8
-- 20/05 14:00:45:961     RX <- ACK = 6
-- 20/05 14:00:45:987     RX <- [STX][133][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][FS]20052019[FS]140045[ETX]0534
-- 20/05 14:00:46:017 NumCCF
-- 20/05 14:00:46:018                 TX -> [STX][134][4][ESC][STX][FS][NUL][NUL][ETX]00C8
-- 20/05 14:00:46:062     RX <- ACK = 6
-- 20/05 14:00:46:169     RX <- [STX][134][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][FS]EP081300000000000001[FS]MFD0000000000000001[FS]EPSON[FS]TM-T81 FBIII[FS]ECF-IF[FS]01.00.04[FS]99[FS]99[FS]30012013[ETX]151E
-- 20/05 14:00:46:173 GrandeTotal
-- 20/05 14:00:46:173                 TX -> [STX][135][TAB][ACK][FS][NUL][NUL][ETX]00B7
-- 20/05 14:00:46:244     RX <- ACK = 6
-- 20/05 14:00:46:270     RX <- [STX][135][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][FS]206410[FS]52920[FS]39435[FS]995[FS]0[FS]0[FS]0[FS]12490[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[ETX]0C67
-- 20/05 14:00:46:275 VendeItem( 01080151 , 6 JOGOS CLASSICOS TOP LINE GALA , 17.00T , 1 , 59,95 , 0 , PC , $ , D , -1 )
-- 20/05 14:00:46:276                 TX -> [STX][136][LF][18][FS][NUL][NUL][FS]01080151[FS]6 JOGOS CLASSICOS TOP LINE GALA[FS]1000[FS]PC[FS]5995[FS]Tc[FS]3[FS]2[FS]S[FS]N[ETX]0F86
-- 20/05 14:00:46:320     RX <- ACK = 6
-- 20/05 14:00:46:374     RX <- [STX][136][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][FS]1[ETX]028B
-- 20/05 14:00:46:378 GrandeTotal
-- 20/05 14:00:46:378                 TX -> [STX][137][TAB][ACK][FS][NUL][NUL][ETX]00B9
-- 20/05 14:00:46:449     RX <- ACK = 6
-- 20/05 14:00:46:476     RX <- [STX][137][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][FS]212405[FS]58915[FS]39435[FS]995[FS]0[FS]0[FS]0[FS]12490[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[FS]0[ETX]0C74
-- 20/05 14:01:14:696 SubtotalizaCupom( -9,95 ,  )
-- 20/05 14:01:14:696                 TX -> [STX][138][LF][4][FS][NUL][ACK][FS]995[ETX]0182
-- 20/05 14:01:14:730     RX <- ACK = 6
-- 20/05 14:01:14:756     RX <- [STX][138][NUL][ESC][STX][FS][192][129][FS][FS][ESC][ETX][4][FS][ETX]027F
-- 20/05 14:01:14:756 
----------------- ERRO -----------------
FIM DE PAPEL
----------------------------------------

-- 20/05 14:01:51:793 Estado
-- 20/05 14:01:51:793                 TX -> [STX][139][BS][16][FS][NUL][NUL][ETX]00C4
-- 20/05 14:01:51:819     RX <- ACK = 6
-- 20/05 14:01:51:819                 RI-
-- 20/05 14:01:51:893     RX <- [STX][139][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][FS]1[ETX]028E
-- 20/05 14:01:51:893 
-- 20/05 14:01:51:893                 TX -> [STX][140][LF][LF][FS][NUL][NUL][ETX]00C1
-- 20/05 14:01:51:968     RX <- ACK = 6
-- 20/05 14:01:51:996     RX <- [STX][140][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][FS]45[FS]5995[FS]0[FS]1[FS]999[FS]998[FS]1[FS]18[FS]0[FS]20[FS]1[ETX]07CE
-- 20/05 14:01:51:996   estPagamento
-- 20/05 14:09:29:071 EfetuaPagamento( 1 , 50 , , 0, 0 )
-- 20/05 14:09:29:071                 TX -> [STX][141][LF][ENQ][FS][NUL][NUL][FS]1[FS]5000[FS][FS][ETX]0223
-- 20/05 14:09:29:084     RX <- ACK = 6
-- 20/05 14:09:29:112     RX <- [STX][141][NUL][NUL][FS][192][129][FS][FS][NUL][NUL][FS][FS]995[FS]0[ETX]0352
-- 20/05 14:09:29:158 FechaCupom( MD-5:02cb531c0d2201b601105463e539f0e8[LF]Trib aprox R$: Tabela Desatualizada![LF]Fonte: IBPT/FECOMERCIO SC[LF] )
-- 20/05 14:09:29:158                 TX -> [STX][142][LF]"[FS][NUL][NUL][FS]MD-5:02cb531c0d2201b601105463e539f0e8[FS]Trib aprox R$: Tabela Desatualizada![FS]Fonte: IBPT/FECOMERCIO SC[FS][FS][FS][FS][FS][ETX]1EA0
-- 20/05 14:09:29:187     RX <- ACK = 6
-- 20/05 14:09:29:213     RX <- [STX][142][NUL][NUL][FS][192][129][FS][FS][LF]'[FS][ETX]0275
-- 20/05 14:09:29:213 
----------------- ERRO -----------------
Erro retornado pela Impressora: Epson

Erro: 0A27 - Mensagem promocional não pode ser impressa.
----------------------------------------

 

Gostaria de saber se isso é um problema do ECF, ou do ACBr, ou do meu programa. E como eu poderia resolver isso?

 

 

  • Consultores
Postado
Em 20/05/2019 at 14:16, jjw.roberto disse:

Gostaria de saber se isso é um problema do ECF, ou do ACBr, ou do meu programa. E como eu poderia resolver isso?

Você pode resolver isso por verificar se o retorno do ECF é consistente com o retorno do ACBr.

Você pode para isso usar um aplicativo do fabricante para verificar o retorno do estado do ECF.

Se ao acontecer o problema o ECF estiver retornando estado como em estPagamento, então o ACBr está correto. Nesse caso você precisará verificar o seu software ou com o suporte do fabricante.

Caso ao acontecer o problema o ECF esteja retornando que o seu estado é estVenda mas o ACBrECF está informando que o estado é estPagamento, então o problema é no componente do ACBrECF.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado (editado)

Bom dia!

Então, fiz o teste que você pediu.

Utilizando a ECF Epson MT-T900F fiz a emissão da subtotalização faltando papel, e o ACBR ficou retornando o estado estPagamento nas tentativas subsequentes.

Deixei o ECF com esse cupom do modo em que estava, finalizei o programa PDV.

Então abri o utilitário da Epson o EPmfd e cliquei em Verificar estado da impressora. O retorno foi este:

Impressora na porta: USB 
Data/hora da impressora: 27/05/2019  08:44:13 

Impressora Online 
Modo fiscalizado 
Modo de operação normal 
Período de vendas aberto 
Cupom Fiscal aberto 

E consultando o comando Estado do Cupom dentro do EPmfd, foi retornado o seguinte:

image.png.7fa8994744afdc163d6f576838ac4d7f.png

 

Depois fechei e abri novamente o ACBR Monitor Plus e consultei o estado da ECF novamente pelo comando ECF.Estado, e o retorno foi estVenda.

Será que é um problema de estado interno do ACBR Monitor Plus, pois reabrindo ele o estado da ECF volta a retornar estVenda.

Editado por jjw.roberto
  • Consultores
Postado
9 horas atrás, jjw.roberto disse:

Depois fechei e abri novamente o ACBR Monitor Plus e consultei o estado da ECF novamente pelo comando ECF.Estado, e o retorno foi estVenda. 

Será que é um problema de estado interno do ACBR Monitor Plus, pois reabrindo ele o estado da ECF volta a retornar estVenda. 

Pode ser um problema do ACBrECF. Para confirmar poderia por favor alterar o arquivo ACBrECFEpson.pas na seguinte procedure, TACBrECFEpson.SubtotalizaCupom:

procedure TACBrECFEpson.SubtotalizaCupom(DescontoAcrescimo: Double;
       MensagemRodape : AnsiString);
begin
  fsTotalPago := 0 ;

  if DescontoAcrescimo = 0 then
     exit ;

  EpsonComando.Comando  := '0A04' ;
  if DescontoAcrescimo < 0 then
     EpsonComando.Extensao := '0006'
  else
     EpsonComando.Extensao := '0007' ;
  EpsonComando.AddParamDouble( abs(DescontoAcrescimo), 2 );
  EnviaComando ;

  ZeraCache;
  RespostasComando.AddField( 'SubTotal', EpsonResposta.Params[0] );
  fsEmPagamento := True ;
end;

E depois refazer os testes?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Consultores
Postado
1 hora atrás, jjw.roberto disse:

Cara, resolvido!

Era isso mesmo o problema. 

 

Mas tem o caso da bematech , será que é a mesma solução?

 

Se for uma ECF MP4200 TH-FI é possível que seja sim. Só que a alteração será no outro arquivo (ACBrECFEscECF.pas).

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado
14 horas atrás, EMBarbosa disse:

Se for uma ECF MP4200 TH-FI é possível que seja sim. Só que a alteração será no outro arquivo (ACBrECFEscECF.pas).

Seria assim ?

 

procedure TACBrECFEscECF.SubtotalizaCupom(DescontoAcrescimo: Double;
       MensagemRodape : AnsiString );
begin
  if DescontoAcrescimo = 0 then 
  begin
    fsEmPagamento := True ;
    exit ;
  end;
  
  with EscECFComando do
  begin
     CMD := 29 ;
     AddParamInteger( ifthen(DescontoAcrescimo < 0,0,1) );
     AddParamInteger( 1 );
     AddParamDouble( abs(DescontoAcrescimo) );
  end ;
  EnviaComando ;

  if (EscECFResposta.Params.Count > 0) then
    RespostasComando.AddField( 'SubTotal', EscECFResposta.Params[0] );

  SalvaRespostasMemoria(False);

  fsEmPagamento := True ;
end;

 

 

  • Consultores
Postado
1 hora atrás, jjw.roberto disse:

Seria assim ? 

Olá,

   Eu acabei de enviar ao SVN (revisão 17083) uma correção para os ECF de modelos que utilizam o protocolo ESCECF, FiscNet e Epson.

   Você pode atualizar o seu código e testar novamente. Queira, por favor, reportar qualquer problema.

  

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Boa Noite. (De já hoje ter enviado uma mensagem direto e tu barbosa).

A versão encaminhada, esta com problema, no meu cenario, quanto ao uso em tef, para escecf, epson, e fiscnet, esta entrando em loop (não indo para estado de pagamento) a função subtotalizaCupom pois ao mandar "0", no desconto acrescimo, já entra em exit;

Acabei apenas colocando o código "fsEmPagamento := True ;" novamente no início da função 

 

Mais creio que o esquemo do roberto passado tbm serveria.... 

  if DescontoAcrescimo = 0 then 
  begin
    fsEmPagamento := True ;
    exit ;
  end;

 

  • Consultores
Postado
25 minutos atrás, schrsistemas disse:

Boa Noite. (De já hoje ter enviado uma mensagem direto e tu barbosa).

A versão encaminhada, esta com problema, no meu cenario, quanto ao uso em tef, para escecf, epson, e fiscnet, esta entrando em loop (não indo para estado de pagamento) a função subtotalizaCupom pois ao mandar "0", no desconto acrescimo, já entra em exit;

Acabei apenas colocando o código "fsEmPagamento := True ;" novamente no início da função 

 

Mais creio que o esquemo do roberto passado tbm serveria.... 


  if DescontoAcrescimo = 0 then 
  begin
    fsEmPagamento := True ;
    exit ;
  end;

 

Olá,

   Creio que você está correto.

Muito obrigado pela contribuição.
Fiz a implementação baseada nela.
Subi as alterações para o SVN na Revisão  17115.
Pelo que vi está tudo certo.
Queira por favor atualizar, testar e reportar qualquer problema.

Mais uma vez obrigado.

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado
Em 29/05/2019 at 09:37, EMBarbosa disse:

Olá,

   Eu acabei de enviar ao SVN (revisão 17083) uma correção para os ECF de modelos que utilizam o protocolo ESCECF, FiscNet e Epson.

   Você pode atualizar o seu código e testar novamente. Queira, por favor, reportar qualquer problema.

  

Amigo, até agora 100% resolvido nas ECFs que tenho aqui: Epson TM-T81FB III, Epson TM-T900F e Bematech MP 4000 TH FI.

 

Obrigado até o momento.

  • Curtir 2
  • Este tópico foi criado há 2002 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.