Ir para conteúdo
  • Cadastre-se

dev botao

Problema Com A Emissão Do Cupom Após Atualização


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

Recommended Posts

Postado

Primeiramente bom dia...
Estou com um problema que vem me intrigando já tem quase uma semana, recentemente atualizei meu ACBR que estava com data de aproximadamente dia 03/06/2014 para a versão mais recente, porque tive que fazer uma alteração no ACBR Boleto mais especificamente nos boletos da Caixa, que inclusive estou aguardando retorno para poder enviar para o projeto. Mas enfim, Sexta feira atualizei um cliente que usa TEF e na segunda feira fui surpreendido com uma mensagem de erro: Meio de Pagamento Não Permite TEF
O Engraçado é que se eu pegar a versão antiga(Pois sempre manteio Backup antes de atualizar) Funciona, já na nova versão tenho este problema, percebi que isto ocorre quando chamo a função CupomVinculado
O engraçado é que está tudo certo, o código de pagamento que passo para impressora é "02" que está cadastrado como "cartão crédito" e este meio de pagamento permite vinculado, a impressora fica em um tratamento Impressora não responde, deseja continuar sim ou não, se eu reenviar o comando CupomVinculado ai vai, só na segunda vez forçada que funciona, onde antes era de primeira.
 
Ai vem a parte mais intrigante.
Em 2 clientes acontece este problema, então instalei o modulo Paygo em homologação e usei um emulador para o teste, para minha surpresa funcionou normalmente, então mais intrigado, peguei uma impressora fiscal que possuimos para teste, e nela também funcionou.
 
Então resumindo, na versão antiga funciona normalmente, com esta versão nova estou com este problema, alguém passou por algo parecido?
Estou anexando algumas imagens para demonstrar o problema...

 

Só uma Resalva, uso o AcbrECF, mas não uso o componente AcbrTEF, tenho uma classe para o TEF mas que envia os comandos para o corretamente para o AcbrECF, só que ao chamar a rotina citada acima dá este erro.

print_1.png
 
Read_X.png

Delphi And Web Develloper, Designer

 

Postado (editado)

Então Juliomar muito obrigado pela rapidez, então até cogitei esta hipótese, inclusive alterei duas propriedades de arredondamento do ACBR para 2 casas decimais que são as seguintes: DecimaisPreco e DecimaisQtd Sem sucesso, se eu pegar a release do começo de junho funciona que é uma maravilha mas a nova dá este probleminha, pelo que percebi é quando ele chama a rotina para imprimir o cupom vinculado(Justamente o que você disse do relatório gerencial), quando ele vai iniciar a primeira via já dá problema, ai coloquei um tratamento no meu try except para retornar a mensagem informada acima, caso contrário ele já me informava a mensagem de tratamento falando que a impressora não responde e se quer tentar novamente...

Já estou desde segunda quebrando a cabeça aqui, até cheguei a revisar com o Turtoise o que mudou de lá pra ca mas sem solução...

Então minha última alternativa é pedir o Help srsrsr.

 

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

PS: Em breve mandarei uma pequena correção referente a Caixa como Citado Acima, aguardando somente homolagação do banco...

 

[EDITED]

 

Você me falando sobre esta questão de valor, olhando os logs do Turtoise, eu li algo sobre arredondamento e TEF e que foi mudado, será que não é isto....

E sobre a segunda chamada, ele retenta a mesma rotina que deu problema, O CupomVinculado

Editado por Denis Queiroz

Delphi And Web Develloper, Designer

 

Postado

Ok Juliomar, vou habilitar o Log e dar uma olhadinha, e se possível postarei aqui também caso alguém tenha uma luz, estou revisando novamente as alterações que foram implantadas no SVN, acho que alguma coisinha esteja causando isto...

Estou suspeitando de uma alteração que foi revisada em uma parte do TEF que tem justamente o conteúdo levantado por você na questão de valores.

O que me intriga é que na segunda tentativa da função passa.

Daqui uns instantes irei reverter esta alteração e testar, posto o resultado se obtiver sucesso ou se alguém responder ao tópico.

Agradeço pela atenção.

  • Curtir 1

Delphi And Web Develloper, Designer

 

  • Consultores
Postado

Você não informou as marcas e modelos dos ECFs. É uma informação importante.

[]'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

Obrigado por lembrar, e peço desculpas por não lembrar...

Enfim é uma Bematech MP 2100. Especificamente este cliente só tem um terminal, minha ECF de teste também é uma Bematech do mesmo modelo, o engraçado é que aqui eu testei e funcionou e lá não, mas tem um porem, aqui o módulo Paygo é de homologação e lá não.

Esta é a única diferença de estrutura além da impressora, mas resalto, que com uma release anterior eu não tinha problema algum, já revisei novamente

as atualizações do ACBR e até agora não achei nada que possa estar causando este problema.

Delphi And Web Develloper, Designer

 

  • Consultores
Postado

Pois é. Eu dei uma olhada aqui no log dos commits e apesar de não ter visto o código das alterações, também não localizei nada que poderia influenciar esse comportamento numa Bematech, pelo menos desde outubro de 2013.

 

O que seria bom é você gerar o log tanto da versão anterior como da atual para comparar o que está acontecendo. Acho que seria mais fácil para identificar o problema.

[]'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

Certo EMBarbosa irei fazer isto, até cheguei a cogitar algo de Timeout no começo, revisei as alterações que teve na classe ECF e na da Bematech e também acho que não tem nada que influencie, mas realmente é estranho, porque a versão que tenho de Junho funciona de boa, já a atualizada, é retornado este erro pela ECF na primeira tentativa, por um tratamento que tenho no sistema ele pergunta se quero tentar novamente, na segunda chamada funciona, é isto que me deixa confuso.

 

Enfim, Irei ativar os log's, para mim este é um processo novo, pelo que li é só preencher a propriedade ArqLog, irei fazer isto e ver se sai algo diferente.

 

Como o Juliomar citou, poderia ser algo com valor, vi que até teve uma mudança no TEFD nos seguintes pas(ACBrTEFD, ACBrTEFDClass, ACBrTEFDCliSiTef) mas por não utilizar o componente pelo fato de o sistema aqui da empresa tem uma classe de TEF que já fáz as requisições para a ECF usando o AcbrECF, creio que estas alterações não me afetem, já não tenho ideia do que pode ser, o engraçado que é justamente isto, quando vai imprimir os pagamentos dá esta mensagem.

Delphi And Web Develloper, Designer

 

Postado (editado)

Desculpem o pequeno Flood, mas vamos lá....

Depois de muito tempo quebrando a cabeça descobri a solução.

 

Em vários trechos da Unit ACBrECFClass.pas

Foi substituido a linha

TACBrECF( fpOwner ).CarregaFormasPagamento ;
Para
CarregaFormasPagamento;

 

Analisando mais a fundo, a primeira leva para a Unit ACBrECF.pas que tem um tratamento

e que retorna os dados creio que do ECF, não análisei a fundo, mas é o processo correto.

 

Já a segunda, ele verifica na própria classe se a mesma já foi predefinida(Usando Assigned) e se for da um free e cria novamente.

 

Este processo não sei se é correto, mas com esta alteração me gerou este problema, fazendo a impressora retornar o

código 29 - Forma de pagamento não permite tef

Enfim, reverti esta alteração e voltou a funcionar normalmente, inclusive algumas funções como CarregarTributacao teve a mesma

alteração e também mexi.

Gostaria de saber o porque que foi feito desta forma, pois eu não consegui compreender, por não ter tempo de estudar todo o projeto ECF.

 

Segue em anexo a UNIT funcional depois da alteração pra análise.

ACBrECFClass.pas

Editado por Denis Queiroz

Delphi And Web Develloper, Designer

 

  • Consultores
Postado

Desculpem o pequeno Flood, mas vamos lá....

   Não é um flood se o post agrega mais informações sobre o problema ou correção. Flood significa inundação o que é comumente chamado enchente. Que nada mais é do que, dito de modo simples, a "repetição" fora de controle do mesmo material em local indevido, a saber: água.

 

   No nosso contexto, a repetição descontrolada de informação idêntica, sem nexo ou desnecessária é considerada flood, pois inunda o fórum. Não é o seu caso.

 

Depois de muito tempo quebrando a cabeça descobri a solução.

 

Em vários trechos da Unit ACBrECFClass.pas

Foi substituido a linha

TACBrECF( fpOwner ).CarregaFormasPagamento ;

Para

CarregaFormasPagamento;

 

Analisando mais a fundo, a primeira leva para a Unit ACBrECF.pas que tem um tratamento

e que retorna os dados creio que do ECF, não análisei a fundo, mas é o processo correto.

Pelo que vi no blame, o Daniel postou essas alterações na revisão 7014. E pelo log, pode estar relacionadas a três coisas:

1) A nova propriedade ECFVirtual

2) Refactoring do código

3) compatibilidade com Firemonkey (FMX)

 

Pelo que vi, o que não está sendo feito é a parte de o componente preencher a descrição do objeto interno FormasPagamento. Pois o seguinte código é que não é efetuado:

  For I := 0 to FormasPagamento.Count-1 do
    FormasPagamento[I].Descricao := DecodificarPaginaDeCodigoECF(
      FormasPagamento[I].Descricao );

Acho melhor esperarmos ele se manifestar sobre a possível revisão do código.

[]'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

Obrigado pela atenção... Bom vamos aguardar então, mas é isto, fiz os testes, e ao desfazer esta alteração mencionada funcionou perfeitamente.

Agora o que me intriga é que com emulador ou a minha ECF de homologação funciona perfeitamente, já na ECF lacrada para produção dá este erro.

Mas de qualquer forma, acho que realmente esteja faltando algo, vamos aguardar.

Delphi And Web Develloper, Designer

 

  • Consultores
Postado

É possível que seja problema da versão do Software Básico? Quais as versões nos ECFs testados? Você chegou a ver?

Outra coisa que esqueci de perguntar é: achou alguma coisa nos log gerado pelo 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)

Não EMBarbosa, não cheguei a analisar o Software do ECF, confesso que nem suspeitei disto.

Já a questão do LOG, devido a correria do tempo e já ciente de onde resolver o problema, acabei não analisando...

 

OBS: Falando da versão do ECF no cupom saiu como: 01.01.01

 

EDITADO

 

Desculpem pelo pequeno flood. Mas como ficou decidido este assunto?

Este pequeno detalhe está me gerando um problema enorme, creio que no refactoring possa ter passado este detalhe...

Editado por Denis Queiroz

Delphi And Web Develloper, Designer

 

Postado

Sim Daniel estavam todos atualizados, por isto fui pego até de surpresa pelo problema, analisando a fundo a minha versão anterior e a nova, cheguei nesta conclusão, o EMBarbosa até deu uma dica acima que creio que faça sentido, pois com a alteração até a presente data da criação do tópico tinha esta falha, enfim, como estava no retorno neste tópico não atualizei mais o ACBR para evitar problemas, conversando com o Juliomar, fui informado que houve atualização recentemente, enfim, assim que possível irei fazer um teste com a nova release, pois no momento estou alocado novamente no mesmo projeto..

 

O engraçado como disse, é que tanto com emulador e impressora de homologação funcionou perfeitamente(Usando módulo TEF também de homologação) já no cliente em produção deu este pequeno problema, o engraçado é que se reenviar o comando onde ele para citado acima funciona, mas fica chato esta mensagem sendo que funcionava diretamente, enfim com a reversão de um detalhe tudo voltou a normalidade.

Estarei então fazendo isto e testando novamente, darei o feedback do processo.

Grato pela atenção.

Delphi And Web Develloper, Designer

 

Postado (editado)

Beleza Daniel, então fica combinado assim, esta versão que estou mexendo já irei testar com o ACBR atualizado e reporto o resultado.

Agradeço pela atenção.

 

[edited]

Apenas reportando, o teste ainda está pendente, assim que tiver um feedback retorno.

Editado por Denis Queiroz

Delphi And Web Develloper, Designer

 

  • 2 semanas depois ...
Postado

Flood apenas para feedback.

 

Reportando que hoje atualizei meu cliente com a correção aplicada pelo Daniel e deu tudo certo, então Resolvido.

Obrigado pela atenção.

Delphi And Web Develloper, Designer

 

  • Consultores
Postado

Flood apenas para feedback.

Feedback não é flood. Na realidade, agradecemos o retorno.

[]'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.
  • Este tópico foi criado há 3773 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.