Ir para conteúdo
  • Cadastre-se

dev botao

Quantidade De Vias


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

Recommended Posts

  • Fundadores

Verifique no Log do ACBrTEFD se ele realmente está devolvendo várias vezes a mesma via...

 

Tente com o TEFDDemo e veja se ocorre o mesmo problema

 

Nota: Observe pelos posts aqui desse forum, que o SiTEF modular tem problemas de compatibilidade com o ACBrTEFD referente ao Cielo Premia... Provavelmente será necessário criar uma nova classe para ele

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

  • 8 meses depois ...
  • Membros Pro

    Boa tarde pessoal, estamos tentando efetuar a impressão de mais de 2 vias quando a forma de recebimento especificada for CARTÃO DE CRÉDITO TEF(Por exemplo).

 

    Temos uma tela de configuração onde o usuário pode configurar a quantidade de vias para esta determinada forma de recebimento. O TEF funciona perfeitamente, comparei o nosso source para os tratamentos com o do ECFTeste e está tudo normal sem discrepâncias significativas.

 

    Setei no nosso source as seguintes opções:

with ACBrTEFD do
begin
  NumVias             := QVias;
  TEFCliSiTef.NumVias := QVias;
end;

    Mas não imprime de modo algum a quantidade especificada, sempre imprimindo a primeira via(cliente) e a segunda via(estabelecimento) e pronto. Chega a aparecer na tela a mensagem Destaque a Via 4 de 4 em contagem regressiva respeitando a configuração que setei, mas nada é impresso no ECF.

 

    Estávamos debugando e no souce da unit  ACBrTEFDClass.pas, na procedure TACBrTEFDClass.ImprimirRelatorio é utilizada a quantidade de vias. Pelo que percebemos, só passa nessa procedure quando chamo o TEF pelo menu administrativo, sendo que no fluxo normal de venda com fechamento em CARTÃO TEF o mesmo não ocorre.

 

    Postamos um log completo do fluxo do TEF. Entramos em contato com o pessoal da Software Express, para verificar se o simulador do TEF tinha alguma limitação em relação a vias, mas eles confirmaram que não há nenhuma limitação.

 

    Gostaríamos da opinião de vocês sobre esse assunto.

CLISITEF_20150122.rar

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Esse é o comportamento esperado, conforme manual do TEF as vias impressas são retornadas pelo TEF e não podemos alterar isso, sempre teremos a via do cliente e do estabelecimento, ambas retornadas pelo TEF e devem ser impressas como retornadas.

 

Já no menu administrativo existe a opção de escolha pois o mesmo retorna somente uma via e não há restrição quanto a impressão da quantidade.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

    Agradeço o esclarecimento Régys. No menu ADM eu pedi para reimprimir o último comprovante do TEF. Setei no meu source:

      with dmVenda.ACBrTEFD do
      begin
        NumVias             := 4;
        TEFCliSiTef.NumVias := 4;
        TEFCliDTEF.NumVias  := 4;
      end;

      dmVenda.ACBrTEFD.ADM(dmVenda.ACBrTEFD.GPAtual);

    Na linha 2359 da unit ACBrTEFDClass.pas temos:

     while I <= self.NumVias do
     begin
         if I = 1 then
            ImagemComprovante := Self.Resp.ImagemComprovante1aVia
         else
            ImagemComprovante := Self.Resp.ImagemComprovante2aVia ;

         if ImagemComprovante.Count > 0 then...

    Ao executar, percebi que a propriedade self.NumVias ainda estava com o valor 2 setada. Quando I era igual a 1 temos ImagemComprovante.Count maior que zero. Ao incrementar I, ImagemComprovante.Count vêm com valor zero, sendo que mesmo que eu sete manualmente:

I <= 4 /* self.NumVias */

    Só irá efetuar a reimpressão da segunda via uma única vez.

 

    Eu não sei se estaria correto a idéia acima ou eu estou acessando algum item do menu TEF errado.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Não fui capaz de compreender o problema...

 

Poderia por favor postar um "passo a passo" de como reproduzir o problema, usando o TEFDDemo ?

(por favor informe as propriedades que precisam ser ajustadas no projeto)

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

  • Membros Pro

    Bom dia Daniel. No componente ACBrTEFD1 eu setei Numvias igual a 4.

 

    Em seguida na interface do TEDDemo:

1) Configuração -> ECF: -> ecfDaruma -> Porta: COM1 -> Ativar
2) Configuração -> TEF -> GP: gpCliSiTef -> Inicializar
3) Operação -> TEF -> ADM -> 2:Reimpressão de comprovante -> OK -> 2:Ultimo comprovante -> OK -> OK -> Yes

    Neste caso efetuou a impressão de somente uma via, embora no componente tenha sido setado o valor 4.

 

    Na verdade, acreditamos que não seja um problema, estamos somente com dúvida em relação a quando as propriedades abaixo são utilizadas, para podermos inserir essa configuração no nosso sistema, se possível.

1) ACBrTEFD.NumVias
2) ACBrTEFD.TEFCliSiTef.NumVias
3) ACBrTEFD.TEFCliDTEF.NumVias

    Desde já agradecemos.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Demorei pra descobrir porque tinha inserido essa propriedade... ;)

 

Na verdade ela é mais útil para Imprimir apenas uma via (limitando o numero para 1)

 

E ela não tem sentido (uso) para todas as classes... Na classe da CliSiTef, ela simplesmente ignora o valor atribuído:

procedure TACBrTEFDCliSiTef.SetNumVias(const AValue : Integer);
begin
   fpNumVias := 2;
end;

Ocorre que em todos os casos.. ele sempre iria repetir apenas a segunda via... devido ao código em ACBrTEFDClass.pas:

 2363                  if I = 1 then
 2364                     ImagemComprovante := Self.Resp.ImagemComprovante1aVia
 2365                 else
 2366                     ImagemComprovante := Self.Resp.ImagemComprovante2aVia ;                                                                               

E no caso do SiTef, a reimpressão do Ultimo Comprovante, pode vir (vem) com o resposta do campo 132 "ImagemComprovante2aVia"  vazia,.... ou seja, ele nunca reimprimiria a segunda via porque ela não existe...

  • Curtir 1
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

  • 3 anos depois...

Boa noite.

Tive um problema com um cliente que utiliza Sitef Modular.

Desenvolvi utilizando ACBrTEFD e quando configurava para utilizar TEFDial, a impressão não separava os cupons.

Descobri que era porque no arquivo de resposta, os dois comprovantes vem no campo 29.

Para resolver, na classe ACBrTEFDClass.pas (em anexo), na procedure TACBrTEFDRespTXT.ConteudoToProperty,

fiz alteração à partir da linha 1516 para contemplar o campo 28 sequencia 1, assim consigo saber quantas linhas

tem o primeiro comprovante, e fazer a impressão separada de cada comprovante.

Se os administradores entenderem correta a alteração, poderão colocar no svn.

 

ACBrTEFDClass.pas

Editado por DonizeteFalcon
Link para o comentário
Compartilhar em outros sites

5 horas atrás, Daniel Simoes disse:

Parece correto... adicionado ao SVN, obrigado...

Boa tarde Daniel.

Desculpe-me o transtorno, mas precisei refatorar e fazer mais uma alteração na classe ACBrTEFDClass.pas.

Meu sistema é homologado com SiTef e PayGo, estava tudo certo, porém tive problema com uma cliente que utiliza o Cappta, Solicitei a documentação e me enviaram, então descobri que eles mandam as duas vias no registro 29, porém, diferente do SiTef, no registro 28 não vem a sequencia 001, que é a quantidade de linhas das vias do cliente 
e do estabelecimento, presentes no registro 29.

No arquivo, vem os registros 711 (via resumida do cliente), 713 (via completa do cliente) e 715 (via completa do estabelecimento).
Meu cliente quer imprimir a via completa do cliente, então a solução foi verificar se a quantidade de linhas do registro 712
é maior que zero, então não imprimo a via reduzida e sim a completa que está no registro 713.

Alterações à partir da linha 1516.

Seria interessante em uma melhoria futura, criar uma propriedade no ACBrTEFD onde possa ser configurado se imprime a via do cliente resumida(711) ou completa(713).

Mais uma vez, se achar conveniente colocar esta alteração no SVN, estou enviando o arquivo em anexo.

ACBrTEFDClass.pas

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Daniel Simoes disse:

A nova proposta parece mais clara e acertada... porem fiquei na dúvida, em relação a essa modificação:

image.png

Aí ocorre o seguinte: um pouco antes, o 710 identifica quantas linhas tem no 711(via simplificada do cliente) e coloca true pra usar o 711.

Quando chega na 712 é identificado quantas linhas há no 713 (via completa do cliente), se houver a 713, então descartamos a 711(simplificada) setando para false e setamos true para utilizar a 713(completa).

No lugar deste teste no 712, futuramente pode entrar uma propriedade (Imprime Resumida).

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Boa Tarde

Fiz a alteração sugerida pelo Donizete e consegui imprimir a Via Completa do Cliente ( 713).

Acredito que esta seja a unica forma de fazer com que esta via seja gravada na propriedade fpImagemComprovante1aVia. 

Caso considerem, sugiro colocar esta modificação no SVN. Ou até criar uma propriedade, para definir qual das vias(711 ou 713) devem ser utilizadas.

ACBrTEFDClass.pas

Link para o comentário
Compartilhar em outros sites

Boa noite  a todos e especialmente ao  Whanderson e Guilhermefq, satisfação em poder ajudá-los.

Sou grato à comunidade do ACBr e, assim que der um tempinho irei ver se consigo implementar a propriedade que sugeri.

Qual via seria melhor Imprimir por default, a reduzida ou a completa? 

Editado por DonizeteFalcon
Link para o comentário
Compartilhar em outros sites

Em 11/05/2018 at 18:46, Daniel Simoes disse:

Desculpem pela demora  na resposta... os ajustes do @DonizeteFalcon, já estão no SVN... (Ver: 15128)

 

Daniel, obrigado pela atenção.

Como eu disse no post anterior vou tentar criar a propriedade para via Reduzida/Completa.

Gostaria de ter  a sua opinião sobre duas coisas:   

Qual via Imprimir por default? 

Qual nome fica melhor para a propriedade?  ImprimeViaClienteCompleta ou ImprimeViaClienteReduzida?

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Obrigado por se dispor a ajudar...

Vamos deixar como padrão a via completa (que é a mais usada)

Acho que faz mas sentido: ImprimeViaClienteReduzida: Boolean default False

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

  • 3 semanas depois ...
Em 14/05/2018 at 13:50, Daniel Simoes disse:

Obrigado por se dispor a ajudar...

Vamos deixar como padrão a via completa (que é a mais usada)

Acho que faz mas sentido: ImprimeViaClienteReduzida: Boolean default False

Boa noite Daniel.

Conforme combinei, estou enviando em anexo as alterações para contemplar a propriedade ImprimeViaClienteReduzida.

Por gentileza, dê uma analisada para ver se implementei no lugar correto(espero que sim, rsrs).

Fiz os testes utilizando Pay&Go e Cappta, funcionaram corretamente. No Sitef não faz efeito, pois eles não enviam os campos 710 e 711.

Alterei também no exemplo ACBrTEFD para testes em tempo de execução.

 

ACBrTEFD.pas

ACBrTEFDClass.pas

Unit1.dfm

Unit1.pas

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Fundadores
  • Solution

Obrigado, e desculpe-me pela demora na analise e resposta...

Enviei para o SVN, com pequenos ajustes

Citar

-- ACBrTEFD, ACBrTEFDClass --
[+] Adicionada a propriedade "ImprimirViaClienteReduzida: Boolean  Default False"
    Quando for True, o ACBrTEFD dará preferencia a Via reduzida, se a mesma
    existir na resposta do TEF.

 

  • Obrigado 1
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

Em 14/05/2018 at 13:50, Daniel Simoes disse:

Vamos deixar como padrão a via completa (que é a mais usada

 

Em 07/06/2018 at 23:06, Daniel Simoes disse:

Obrigado, e desculpe-me pela demora na analise e resposta...

Enviei para o SVN, com pequenos ajustes

 

Boa noite Daniel, obrigado pela atenção.

Link para o comentário
Compartilhar em outros sites

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