Ir para conteúdo
  • Cadastre-se

dev botao

ACBrECF fechando cupom quando forma de pg. inválida.


Ver Solução Respondido por eneias.carvalho,
  • Este tópico foi criado há 4549 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia, estava passando uma forma de pagamento errada para o componente(Nome da forma diretamente) o mesmo me retorna um except, porem o componente fecha o cupom com o primeiro indice cadastrado na impressora, há como mudar isso para que o mesmo não feche o cupom e apenas retorne a excessão?

Postado

Regys estou tratando da seguinte maneira:

try

dm.formapagto.Close;

dm.formapagto.SQL.Clear;

dm.formapagto.SQL.Add('Select * From formapagto');

dm.formapagto.Open;

dm.formapagto.Locate('Codigo', Copy(cbformapgto.Text, 1, 2), []);

ecf.EfetuaPagamento(dm.formapagtoindiceEcf.Value, StringToFloat(recebido));

retornoImpressora := True;

except

on e : EACBrECFErro do

begin

retornoImpressora := False;

ShowMessage(e.Message);

end;

end;

Atualmente estou passando o indice cadastrado, mas em caso de não haver cadastro está sendo impresso a forma que consta no primeiro indice.

Aproveitando o tópico outra coisa que observei foi o seguinte, se eu não passar nenhum código para a unidade é impresso UN no cupom fiscal, se eu passar algum valor vazio tambem imprime UN, como não imprimir unidade?

  • Moderadores
Postado

Veja ai, se você colocar o fechamento depois do except de tratamento realmente vai fechar o cupom na primeira forma cadastrada, isso é normal, você precisa colocar toda a lógica dentro do try..except ou efetuar algum controle para não fechar se deu algum erro durante o registro das formas de pagamento.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

Correto, pesso desculpas, de fato a lógica que está errada.

Obrigrado!

Aproveitando o tópico outra coisa que observei foi o seguinte, se eu não passar nenhum código para a unidade é impresso UN no cupom fiscal, se eu passar algum valor vazio tambem imprime UN, como não imprimir unidade?

Outra coisa, eu utilizava a função Bematech_FI_MarcaModeloTipoImpressoraMFD, no acbr identifiquei: .ModeloStr, .SubModeloECF, porem não identifiquei uma função ou propriedade que retorne o tipo da impressora.

  • Fundadores
Postado

A Unidade é obrigatória em vários arquivos do fisco, como por exemplo, SPED, Nota Fiscal Paulista...

Na dúvida abra os fontes e verifique, lembre-se que o ACBr é Open Source

Trecho de ACBrECF.pas, linha: 2511

  { Usando unidade Default "UN" para evitar problemas em RFD e alguns ECFs que exigem Unidade }
if Trim( Unidade ) = '' then
Unidade := 'UN' ;
[/code]

O que você chama de "Tipo" da impressora ?

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.

Postado

Tipo da impressora seria uma string do tipo: ECF-IF, quando utilizo a função Bematech_FI_MarcaModeloTipoImpressoraMFD(varMarca, varModelo, varTipo), tenho seguinte retorno:

varMarca = 'BEMATECH'

varModelo = 'MP-2100 TH FI'

varTipo = 'ECF-IF'

e como havia dito anteriormente, identificar a marca e o modelo já consegui com o componente, porem o tipo não encontrei, sei que o tipo retornado deve ser 'ECF-IF', porem gostaria de saber se o componente tem algum metodo que retorne essa informação.

  • Este tópico foi criado há 4549 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.