Ir para conteúdo
  • Cadastre-se

dev botao

Tefclidtef


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

Recommended Posts

  • Respostas 50
  • Created
  • Última resposta

Top Posters In This Topic

  • Moderadores

Vocês tem um PDV em delphi? não era Java?

Bom o comando está enviando para que a transação seja confirmada!

esse micro é de desenvolvimento? caso positivo tentou executar em outro?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

No log do ACBr consta um erro na impressão do comprovante. Você já tentou debugar o seu código para verificar onde ocorre esse erro?

11:23:11:037 RX <- ACK = 6 Falha: 0
11:23:11:070 VerificaFimImpressao: Pedindo o Status (19)
11:23:11:175 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
11:23:12:106 RX <- @[NUL][NUL][NUL]

Márcio D. Carvalho

Link para o comentário
Compartilhar em outros sites

Desculpe. Olhei errado. Na verdade não ocorreu erro. No entanto o log do DTEF indica que a transação ocorreu com sucesso. A sua rotina de fechamento é que deve estar solicitando o cancelamento. Realmente você vai ter que tentar debugar a rotina de fechamento da venda para localizar onde está ocorrendo o cancelamento.

-- 15/12 11:23:08:143 - CliDTEF DoExibeMsg: Oper: opmExibirMsgOperador Mensagem: IMPRIMINDO...
-- 15/12 11:23:08:144 - CliDTEF ECFAbreVinculado: COO: 008051 Indice: 04 Valor: 4,14
-- 15/12 11:23:10:363 - CliDTEF ECFImprimeVia: trVinculado Via: 1
-- 15/12 11:23:14:363 - CliDTEF DoExibeMsg: Oper: opmRemoverMsgOperador Mensagem: 
-- 15/12 11:23:14:365 - CliDTEF DoExibeMsg: Oper: opmRemoverMsgCliente Mensagem: 
-- 15/12 11:23:14:365 - CliDTEF ComandarECF: Oper: opeFechaVinculado
-- 15/12 11:23:16:864 - ConfirmarTransacoesPendentes
-- 15/12 11:23:16:865 - *** FinalizaTransacaoDPOS. Confirma: SIM Documento: 008051 Data: 20141215 Hora: 112316
-- 15/12 11:23:50:454 - BloquearMouseTeclado: NAO

Márcio D. Carvalho

Link para o comentário
Compartilhar em outros sites

consegui descobrir onde estava gerando este erro

no evento tef1CliDTEFObtemInformacao(var ItemSelecionado: Integer);

porem nao sei a melhor forma de resolver pois ele esta passando duas vezes por este metodo

ai na segunda vez eu etava enviando -1

e por isso dava este erro

agora passei a passar 0 ai funcionou nao deu mais aquele erro

agora como resolver isso é que nao sei

alguem ja trabalhou com este gerenciador e tem uma dica melhor pra me ajudar ?

Link para o comentário
Compartilhar em outros sites

Esse evento é para indicar o tipo de transação do cartão. Você deve obter essa informação no momento que a forma de pagamento for selecionada e gravar em uma variável que será lida quando ocorrer o evento.

 

Crédito - ItemSelecionado = 1

Débito - ItemSelecionado = 2
Voucher - Selecionado = 3
PrivateLabel - ItemSelecionado = 4
Cheque - ItemSelecionado = 5
ControleFrota - ItemSelecionado = 10

Márcio D. Carvalho

Link para o comentário
Compartilhar em outros sites

sim blz,

mas meu problema é o seguinte

percebi que passa duas vezes por este evento

se for apenas um cartao blz

mas qundo usar multiplos cartoes como vou controlar isso

por exemplo 

tres cartoes

credito, debito, credito

nao vai dar confusao ai quando passar pela segunda vez

pois esta variavel por exemplo vai estar com a ultima opcao (cartao) selecionada

e a segunda que era debito 

sera que nao vai asumir como credito tambem,

entendeu o que quero dizer?

Link para o comentário
Compartilhar em outros sites

Para cada cartão que você passar, você seta a variável e chama o CRT para efetuar a transação. Após a impressão, confirma todas as transações se houver sucesso na impressão ou cancela todas se houver algum problema. Era assim que eu fazia quando utilizava esse TEF.

Márcio D. Carvalho

Link para o comentário
Compartilhar em outros sites

hoje eu faco assim 

por exemplo quatro forma de pagamento

cartao credito - cartao debito - cartao credito - dinheiro

eu vou buferizando as formas de pagamento selecionadas e ao final finalizo o cupom e imprimo as transacoes pendentes pra imprimir os comprmvantes CDC

exemplo 

selecionei primeiro pagamento cartao credito seto a propriedade itemSeleciona para 1 e chamo o CRT com o valor informado

selecionei segundo pagamento cartao debito seto a propriedade itemSeleciona para 2 e chamo o CRT com o valor informado

selecionei terceiro pagamento cartao credito seto a propriedade itemSeleciona para 1 e chamo o CRT com o valor informado

selecionei quarto pagamento dinheiro com o valor informado

finalizo o cupom no ECF e imprimo as trasacoes pedentes

porem ai que esta o problema pois ao imprimir as transacoes pendentes no caso vai ter tres ele vai passar novamente por este metodo

porem minha variavel itSelecionado vai estar com 1 pois foi o ultimo pagamento em cartao que fiz

ai vai dar problema

da erro Aquela imagem que mostrei la no inicio do post

se eu fazer com apenas um pagamento em cartao da certo

Link para o comentário
Compartilhar em outros sites

Se você falou que funcionou quando passou zero, é só setar esse valor após o fechamento da venda. Eu não tenho como testar aqui, pois a empresa não utiliza mais o TEFD e não tenho mais o emulador, por isso não tenho como lhe ajudar a partir desse ponto. Você vai ter que testar e, se necessário, corrigir ou alterar o fonte do ACBr.

Márcio D. Carvalho

Link para o comentário
Compartilhar em outros sites

elaborei meus testes aqui e nao obtive sucesso

tentei todas as formas possiveis 

nao sei mais o q fazer se alguem tiver uma ideia favor me ajudar

ja passei -1 nao deu certo

pasei 0 nao deu certo

nao passei nada tambem nao deu certo

 

Gostaria de algumas dicas do desenvolvedor desta classe (TACBrTEFDRespCliDTEF) se puder me esclarecer melhor como usa-la pois nao consegui entender direito seu funcionamento este metodo

 

procedure TACBrTEFDCliDTEF.FinalizarTransacao(Operacao : AnsiString; Confirma : Boolean;
   NSU : AnsiString; DocumentoVinculado : AnsiString);
Var
   DataStr, HoraStr : AnsiString;
   nStatus, TipoTransacao, ItemSelecionado : Integer;
begin
  fRespostas.Clear;
 
  ItemSelecionado := 0 ;
  fOnObtemInformacao( ItemSelecionado ) ;
 
  if ItemSelecionado >= 0 then
     TipoTransacao := ItemSelecionado
  else
     TipoTransacao := -1;
 
 { if pos(DocumentoVinculado, fDocumentosProcessados) > 0 then
     exit ;   }
 
  fDocumentosProcessados := fDocumentosProcessados + DocumentoVinculado + '|' ;
 
  DataStr := FormatDateTime('YYYYMMDD',Now);
  HoraStr := FormatDateTime('HHNNSS',Now);
 
  GravaLog( '*** FinalizaTransacaoDPOS. Confirma: '+IfThen(Confirma,'SIM','NAO')+
            ' Documento: ' +DocumentoVinculado+
            ' Data: '      +DataStr+
            ' Hora: '      +HoraStr ) ;
 
  if Operacao = '0' then
   exit;
 
  case TipoTransacao of
    -1 : nStatus := xFinalizaTransacao;
    0  : nStatus := xConfirmaCartao( PAnsiChar( NSU ) );
    1  : nStatus := xConfirmaCartaoCredito( PAnsiChar( NSU ) );
    2  : nStatus := xConfirmaCartaoDebito( PAnsiChar( NSU ) );
    3  : nStatus := xConfirmaCartaoVoucher( PAnsiChar( NSU ) );
  //4  : nStatus Private Label
  //5  : nStatus := xConfirmaCartao
    10 : nStatus := xConfirmaCartaoFrota( PAnsiChar( NSU ) );
  else
    nStatus := -1 ;
  end;
 
  if ((nStatus = 0) and Confirma) then
  begin
     xFinalizaTransacao;
  end;
 
  if (nStatus = 11) then
  begin
     TACBrTEFD(Owner).DoExibeMsg( opmOK, 'Transação não efetuada.' );
     NCN(Operacao, NSU, '');
  end;
 
{  if not Confirma then
     TACBrTEFD(Owner).DoExibeMsg( opmOK, 'Transação TEF não efetuada.'+sLineBreak+
                                         'Favor reter o Cupom' );       }
end;
 
por que no meu micro da certo passando zero na segunda vez que chama o metodo funciona e em outro micro nao funciona
e por que chama duas vezes este metodo
ele é chamado no CRT e apos a impresao do comprovante é chamado novamente e ai eu estou passando zero (no micro de desenvolvimento onde tem  delphi instalado funciona ja em outra maquina onde só tenho o executavel nao funciona)
Link para o comentário
Compartilhar em outros sites

Pessoal quem tiver um tempinho pra me ajudar pois ja estou desisperado pois tenho q deixar issso funcionado pra inicio do ano e nao sei masi o que fazer 

pois na minha maquina de desenvolvimento funciona e em outra onde nao tem o delphi instalado nao funciona de jeito nenhum peco a gentileza de quem puder me ajudar por favor, pois caso contrario nao vou ter ferias  ..  ehehehhe

estou anexando uma pasta com os logs da maquina que tem o delphi e outro com logs da maquina onde nao tem o delphi instalado

pra porem analizar os dois pois a principio na minha visao nao consegui descobrir nada de erro ou diferente um do outro a nao ser é claro os valores mas isto nao tem nada a ver.

Link para o comentário
Compartilhar em outros sites

volmir, fui eu que fiz essa classe. Mas como falei anteriormente, atualmente não temos mais convênio com esse tef e não tenho mais a máquina virtual com o servidor DTEF. Logo, não tenho como testar. Se você puder me passar os arquivos de instalação eu posso tentar dar uma olhada.

Márcio D. Carvalho

Link para o comentário
Compartilhar em outros sites

hum, blz entao eu envio em anexo o instalador ai se vc puder me ajudar, pois tenho contato com o pessoal de suporte da Linx que é a responsavel por este TEF

e segundo ela o problema esta na automacao(ne meu sistema no caso). Porem nao consiguo descobrir o que estou fazendo de errado. ou se talvez seja algo no proprio componente nao sei. mas veja la se vc consegue fazer um teste.

Link para o comentário
Compartilhar em outros sites

o pessoal da Linx me repasoou isso apos ter enviado os logs que me solicitaram sao logs que o DPOS gera sistema deles

resposta:

"Volmir,

 

As duas transações estão sendo desfeitas,  NSU  003106 e 003109.

Favor revisar a confirmação dessas transações.

 

O log registrou a mensagem de desfazimento para as duas transações.

Você não está enviando a confirmacartaocredito, confirmacartaodebito."

 

ai agora nao sei onde esta o problema segundo o pessoal do suporte deles o erro esta na minha aplicacao nao estou enviando estes comandos que ela me passou ai no email o

(confirmacartaocredito ou confirmacartaodebito)

se alguem puder me dar uma luz

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • 3 meses depois ...

Caros amigos, eu uso ACBrTEFD chamando o gerenciador TEF_DIAL e roda bem com a integradora Direção. Não tenho problemas, mas, talvez seria interessante homologar com a Direção tb. O que vcs acham?

 

Baixei o material que vc disponibilizou no post, poderia mim enviar os instaladores tb.

 

Meu email: [email protected]

 

e... amigo volmir, conseguiu resolver essas broncas?

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...