Ir para conteúdo
  • Cadastre-se

Arino

Membros
  • Total de ítens

    5
  • Registro em

  • Última visita

Últimos Visitantes

408 visualizações

Arino's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Recent Badges

0

Reputação

  1. Informação da Epson não encontrei a referente a esta situação. Porém, hoje da forma que está ocorre o erro que mencionei. Se passar uma condição de pagamento dinheiro + uma cartão, no ACBr quando passar o cartão ele gera um exceção que é capturada pelo try except, onde é verificado se é Epson e decrementa um na sequência que é mandado para a ECF. Ou seja, dinheiro sequência 1, cartão sequência 2 (ocorre a exceção que é tratada e decrementada ficando cartão sequência 1). Só que se tiver mais cartão esta abordagem não funciona e ocorre o erro. Foi seguindo esta linha de raciocínio que propus está solução. Nos testes que eu realizei, dinheiro sendo a primeira FPG e as próximas FPG sendo mescladas funciona. Porém, se o dinheiro não estiver nesta ordem pode gerar uma exceção realmente. Tens outra abordagem para este caso?
  2. Daniel testei com a versão anexa, porém, continuou ocorrendo o problema conforme o anexo. Eu desenvolvi uma maneira que resolveu o problema e pelos testes efetuados não prejudicou o andamento da Bematech 09/09. procedure TACBrECFEscECF.AbreCupomVinculado(COO, CodFormaPagto, CodComprovanteNaoFiscal: String; Valor: Double); Var Sequencia, NumPagtos, P : Integer ; APagto, CodPagto : String ; TemDinheiro: Boolean; procedure EnviaComandoCCD; begin with EscECFComando do begin CMD := 8; if (IsEpson) and (TemDinheiro) then AddParamInteger(Sequencia -1) else AddParamInteger(Sequencia); AddParamString(CodFormaPagto) ; AddParamInteger(1) ; // Qtd Parcelas ?? AddParamInteger(1) ; // Num Parcela ?? AddParamString(LeftStr(OnlyNumber(Consumidor.Documento),14)) ; AddParamString(LeftStr(Consumidor.Nome,30)) ; AddParamString(LeftStr(Consumidor.Endereco,79)) ; end; EnviaComando; end; begin // Achando a Sequencia do Pagamento de acordo com o Indice // Sequencia := 1; TemDinheiro := False; try NumPagtos := RespostasComando.FieldByName('NumPagtos').AsInteger; if NumPagtos > 1 then begin repeat APagto := RespostasComando.FieldByName('Pagto'+IntToStr(Sequencia)).AsString; P := pos('|',APagto); CodPagto := Copy(APagto,1,P-1); if CodPagto = '1' then TemDinheiro := True; if CodPagto = CodFormaPagto then begin APagto := '*'+APagto; // sinaliza que já usou; break; end ; Inc( Sequencia ); until (Sequencia >= NumPagtos); end ; except end ; try EnviaComandoCCD; except On Exception do begin // Woraround para Epson, que em algumas situações não reconhece o Nu. de Sequencia corretamente if IsEpson and (EscECFResposta.CAT = 16) and (EscECFResposta.RET.ECF = 11) then begin Dec(Sequencia); EnviaComandoCCD; end else raise; end; end; //... end; Adicionei esta verificação na EnviaComandoCCD: if (IsEpson) and (TemDinheiro) then AddParamInteger(Sequencia -1) else AddParamInteger(Sequencia); E verifico se tem uma condição em dinheiro nas formas de pagamento: if CodPagto = '1' then TemDinheiro := True; Porque se tem dinheiro, significa que a minha sequência na ECF EPSON tem que começar da sequência 1. ACBrLog.txt
  3. Boa tarde, estou com o seguinte problema na ECF Epson convênio 09/09: - Faço um cupom no valor de R$37,00 - Efetuo os pagamentos: (Dinheiro - RS10,00), (Cartão Débito - R$12,00), (Cartão Débito - R$15,00). Os CCDs são impressos corretamente, porém sempre no último CCD o ACBr volta esta mensagem : "Erro retornado pela Impressora: EPSON Categoria: 16-Erro específico do Fabricante Motivo: 11-Meio de pagamento não encontrado." Percebi que o problema é quando utiliza Dinheiro + Cartão. A ECF se perde na sequência dos CCDs. No arquivo de resposta do ACBr ele grava, no caso exposto acima, 3 pagamentos. (Dinheiro - Sequência 1), (Cartão Débito - Sequência 2), (Cartão Débito - Sequência 3). Quando estas informações são passadas para a ECF imprimir o Cupom Vinculado, o ACBr passa o primeiro Cartão Débito com sendo a sequência 2, que está correto, porém para a EPSON este cartão deve começar na sequência 1, onde ocorre o erro. Procurando no fórum encontrei este tópico: Epson Tm-T800F (Escecf) - Problemas Com Comprovante Ccd, que é a mesma situação, porém aqui foi utilizado apenas Dinheiro e Um cartão. Se fizer com mais acontece o problema. Neste tópico o Daniel fez um Merge na Unit e resolveu o problema. Só que com mais de um cartão e dinheiro da problema. Estou anexando o log. Alguém poderia me ajudar. Ah, lembrando que para a Bematech do convênio 09/09 a forma como esta programado no ACBr funciona. ACBrLog.txt
×
×
  • 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...