Ir para conteúdo
  • Cadastre-se

dev botao

Tratar corte de papel no comando ACBrECF1.EfetuaPagamento


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

Recommended Posts

Bom dia a todos;

Estou com dificuldades no tratamento do corte de papel e desligamento do ECF ao enviar o comando ACBrECF1.EfetuaPagamento:

Estou tentando passar da seguinte forma, porém não estou obtendo o resultado

try

ACBrECF1.EfetuaPagamento('01','1,00'+'','',false);

except

ShowMessage('Verifique o ECF');

end;

Agradeço desde já a atenção dispensada.

Genilson

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Por favor forneça mais informações:

- Qual a IDE e S.O. ?

- Qual o ECF, Marca / modelo / versão ?

- Qual o problema com o comando acima ?

Ative o LOG do ACBrECF e analise o mesmo, copiando-o aqui se necessário

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

Olá Daniel, vamos lá então:

Estou programando em Delphi 2009, o ECF é uma Daruma FS-600 Versão 01.05.00.

O problema que estou tendo é o seguinte:

try

   try

    //desligo o ecf para o teste de linha e o fluxo está parando aqui retornando a mensagem "Impressora Daruma FS-600 MFD não está em linha", sedo que deveria seguir para o finally

    ACBrECF1.EfetuaPagamento(dd.CUPOMRECECF.AsString,dd.CUPOMRECVALOR.AsFloat+finalizadoras.recebidoTroco,'',false);

    ecfPassou:=true;

   except

    ecfPassou:=false;

   end;

  finally

 if ecfPassou=false then begin

    ShowMessage('ECF não responde, aplicação será encerrada!');

    Application.Terminate;

   end;

  end;
segue o logo do ecf durante o teste executado:
-- 09:04:36 25/02/2011 Ativar

            TX -> [28]R[200]082[188]

   09:04:36 RX <- :[200]082010053[CR][194]

-- 09:04:36 

            TX -> [28]R[200]083[189]

   09:04:36 RX <- :[200]083010500[CR][192]

-- 09:04:36 

            TX -> [28]R[200]139[189]

   09:04:36 RX <- :[200]13932[CR][197]

-- 09:04:36 

            TX -> [29][8][CR]

   09:04:36 RX <- :[CR]

-- 09:04:36 Estado

            TX -> [28]R[200]056[181]

   09:04:36 RX <- :[200]0560[CR][252]

-- 09:04:36 

            TX -> [29][ACK][ESC]

   09:04:36 RX <- :0030B08000C100[CR]<

-- 09:04:36 IdentificaOperador()

            TX -> [28]C[209]                    [142]

   09:04:37 RX <- :0000000[209][CR][214]

-- 09:04:37 Estado

            TX -> [28]R[200]056[181]

   09:04:37 RX <- :[200]0560[CR][252]

-- 09:04:37 

            TX -> [29][ACK][ESC]

   09:04:37 RX <- :0030B08000C100[CR]<

-- 09:04:37 NumSerie

            TX -> [28]R[200]078[185]

   09:04:37 RX <- :[200]078DR0209BR000000176556 [CR][235]

-- 09:04:43 TestaPodeAbrirCupom

            TX -> [28]R[200]056[181]

   09:04:43 RX <- :[200]0560[CR][252]

-- 09:04:43 

            TX -> [29][ACK][ESC]

   09:04:43 RX <- :0030B08000C100[CR]<

-- 09:04:43 AbreCupom( , ,  )

            TX -> [28]F[200][FF][FF][FF]m

   09:04:44 RX <- :0000000[200]002059001415[CR][192]

-- 09:04:44 NumCupom

            TX -> [28]R[200]026[178]

   09:04:44 RX <- :[200]026002059[CR][197]

-- 09:04:45 Subtotal

            TX -> [28]R[200]047[181]

   09:04:45 RX <- :[200]047000000000000[CR][204]

-- 09:04:45 AchaICMSAliquota( 18,00 )

            TX -> [28]R[200]125[176]

   09:04:45 RX <- :[200]12500700012000180002500[FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][CR][195]

-- 09:04:45 VendeItem( 1 , AGUA MINERAL 500 ML , 18,00 , 1 , 1 , 0 , UN , % , D )

            TX -> [28]F[201]03000100000000100000000000000181             UN AGUA MINERAL 500 ML[FF]*

   09:04:45 RX <- :0000000[201]001000000000100[CR][254]

-- 09:04:45 Subtotal

            TX -> [28]R[200]047[181]

   09:04:46 RX <- :[200]047000000000100[CR][205]

-- 09:04:46 SubtotalizaCupom( 0 ,  )

            TX -> [28]F[206]1000000000000[165]

   09:04:46 RX <- :0000000[206]000000000100[CR][200]

-- 09:04:46 

            TX -> [28]R[200]047[181]

   09:04:46 RX <- :[200]047000000000100[CR][205]

----------------- ERRO -----------------

Impressora Daruma FS-600 MFD não está em linha

----------------------------------------


-- 09:05:13 NumCupom

            TX -> [28]R[200]026[178]

   09:05:13 RX <- :[200]026002059[CR][197]

-- 09:05:13 AchaFPGIndice( 01 )

            TX -> [28]R[200]126[179]

   09:05:13 RX <- :[200]126Dinheiro       Convenio       Cheque         Cheque-Pr[233]     C.Cr[233]dito      C.D[233]bito       C.Prefer[234]ncial Credi[225]rio      Faturado       Financiamento  [FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][CR][14]

-- 09:05:13 

            TX -> [28]R[200]127[178]

   09:05:13 RX <- :[200]127Sangria        Suprimento     Troco          Recebimento    [FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][FF][CR][152]

-- 09:05:13 EfetuaPagamento( 01 , 1 , , 0 )

            TX -> [28]F[209]01000000000100[FF]t

   09:05:13 RX <- :0000000[209]+000000000000[CR][253]

-- 09:05:15 FechaCupom( Obrigado e volte sempre )

            TX -> [28]F[210]0Obrigado e volte sempre[FF]A

   09:05:16 RX <- :0000040[210]002059000000000100[CR]


Bem é isso ai, de ante mão agradeço desde já a ajuda.

Genilson

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Há um erro na sua lógica de programação...

Vc capturou o Exception e não levantou ela novamente... por isso, ela nunca vai para o Finally, pois você "tratou" o Exception

Aparentemente o que vc pretende fazer poderia ser escrito de forma simplificada:

try
ACBrECF1.EfetuaPagamento(dd.CUPOMRECECF.AsString,dd.CUPOMRECVALOR.AsFloat+finalizadoras.recebidoTroco,'',false);
except
ShowMessage('ECF não responde, aplicação será encerrada!');
Application.Terminate;
end;[/code]

Entretanto essa lógica, não corresponde ao tratamento de erros recomendado pelo Guia Técnico do G.P.

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

Então Daniel de acordo com o guia Técnico do G.P. eu tenho que adicionar um loop questionando o se usuário quer continuar, até ai tudo bem pois eu tirei o loop para tentar resolver este problema e só assim dar continuidade nos testes, quanto ao código eu já fiz desta forma que você postou:

try

//acontece que não sei porque o programa para aqui ao invez de executar o except ao desligar o ECF

ACBrECF1.EfetuaPagamento(dd.CUPOMRECECF.AsString,dd.CUPOMRECVALOR.AsFloat+finalizadoras.recebidoTroco,'',false);

except

ShowMessage('ECF não responde, aplicação será encerrada!');

Application.Terminate;

end;

Estou vendo todo o código mas não estou achando onde o ACBr está trantando esta exeção, estou estudando os exemplos para ver se resolvo.

Att;

Genilson

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.