Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membros Pro
Postado

Bom dia, pessoal!

 

Estou com o seguinte problema: ao realizar uma transação com n cartões, depois de desligar a impressora no momento da impressão do CF e clicar em "não", para a impressora não prosseguir, as transações devem ser canceladas.

 

O cancelamento é iniciado, mas fica sempre tentando cancelar o mesmo cartão "infinitamente".

 

OSB.: Estou usando Client Sitef Modular, modelo gptefdial.

 

Vocês tem algum posicionamento a respeito disso?

 

Obrigado!

  • Membros Pro
Postado

Observei que a procedure CancelarTransacoesPendentesClass do ACBrTEFDClass deveria excluir os arquivos referentes às transações, que estão dentro da pasta temp, mas isso não está acontecendo corretamente.

 

No caso de dois cartões ou mais, o que ocorre é que o arquivo referente à última transação é excluído, mas ao repetir o looping para tratar o arquivo referente à primeira transação, o arquivo deletado é recriado com as informações referentes ao primeiro arquivo. Sendo assim, não é possível sair desse looping.

  • Moderadores
Postado

Werner

fiz a  homologação do sitef e de dos discados com múltiplos e não obtive o problema mencionado!

tente refazer o teste com o Demo do tefd e verifique senão está esquecendo de algum evento do componente ou algum código necessário no seu sistema!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

  • Membros Pro
Postado

Juliomar, acontece que o DEMO não chama Client Sitef Modular, evitando assim a criação e deleção dos arquivos referentes às transações.

 

Você usou a dll ou o Client Sitef Modular?

  • Membros Pro
Postado

Observei que um o evento AntesCancelarTransacao usa o evento ChangeEstado. Esse último possui apenas um cometário: //ACBrTEFD.EstadoECF.

 

Essa linha é para estar realmente comentada?

  • Membros Pro
Postado

Ainda continuo com o problema.

 

Não faz sentindo eu fazer o teste no demo, se ele não usa o Client Sitef Modular e nem gera os arquivos referentes às transações dentro da pasta temp, no disco local.

 

Enfim, como eu já falei, está acontecendo uma criação desnecessária do arquivo temporário do primeiro cartão. Sempre que o último arquivo é excluído, uma cópia do primeiro é criada, e dessa forma a procedure fica em loop infinito. Lembrando que isso ocorre no momento do cancelamento das transações, quando eu desligo a ECF e clico em não.

 

Outra coisa: qual a diferença entre NCN e CNC?

  • Membros Pro
Postado (editado)

Esse é o teste que deve ser realizado:

 

Realizar uma transação de Crédito no valor de R$ 900,00,utilizando dois cartões. Após a transação ser aprovada (mensagem “APROVADA 123456 ”), a ECF totalizar o Cupom Fiscal (CF ) e imprimir a primeira  forma de pagamento Cartão,desligar a ECF. A automação deverá  exibir a mensagem “Erro na impressão. Deseja tentar novamente? <SIM> <NÃO>. ” Continuar com a ECF desligada e optar pelo <NÃO>.

A automação deve enviar o desfazimento das Transações TEF e exibir a seguinte mensagem “Transação TEF Não efetuada. Favor Reter o Cupom.”

Editado por Werner_Marques
  • Consultores
Postado

Rapaz,

   acho que vai ser difícil você obter uma resposta satisfatória se não tivermos uma base em comum. Como temos certeza que você não vai disponibilizar o seu código fonte a outros, o único meio é usando o DEMO do ACBrTEFD.

   Agora se você está alterando o código para fazer funcionar algo que não foi projetado pra isso, fica muito difícil lhe ajudar sem saber o 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.
  • Consultores
Postado

   Note que isso não invalida o que eu disse no primeiro parágrafo, pois o segundo parágrafo começa com "Agora", isto é, "No entanto", "Contudo", "Mas se o caso é diferente e...", etc...

   Se você não precisa fazer nenhuma alteração, fica mais fácil usar o programa de exemplo do ACBrTEFD para descrever o passo a passo para reproduzir 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.
  • Fundadores
Postado

O fato é... que o ACBrTEFD não está preparado para usar a SiTef Modular (usando o programa Cliente)

 

Parece que a SiTef Modular não emula corretamente o antigo TEF discado, mas sim tem algumas regras próprias...

 

o componente ACBrTEFD nunca foi testado ou homologado para trabalhar com a SiTEF Modular

 

Acredito que você gastará muito menos tempo e terá um resultado muito melhor se adotar a CliSiTef32 (comunicação com o servidor pela DLL)...

O ACBrTEFD suporta (e muito bem) a CliSiTef32, através do modelo TEFCliSiTEF

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.

  • Membros Pro
Postado

Obrigado por responder, Daniel.

 

A DLL funciona de uma forma, quando o sistema é discado, e de outra, quando o sistema é dedicado.

 

Sendo assim, terei que fazer dois sistemas para tratar essas diferenças? Confere?

  • Moderadores
Postado

Obrigado por responder, Daniel.

 

A DLL funciona de uma forma, quando o sistema é discado, e de outra, quando o sistema é dedicado.

 

Sendo assim, terei que fazer dois sistemas para tratar essas diferenças? Confere?

 

O componente ACBrTEFD abstrai o processo de TEF, então basta programar normalmente e mudar o modelo quando necessário, não há necessidade de dois sistemas para atender TEF Discado e Dedicado.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • Consultores
Postado

Tem, o Demo.

  • Curtir 1

[]'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.
  • Fundadores
Postado

Você não precisa se preocupar com a carga da DLL... isso é feito pelo componente ACBrTEFD de forma dinâmica...

 

Você precisará programar todos os eventos do subcomponente TEFDCliSitef... Os formulários do Demo para perguntar "campo" e "menu" podem servir de ponto de partida...

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.

  • Fundadores
Postado

Todos os menus e campos são montados dinamicamente por esses eventos que você mesmo mencionou...

 

Rode o Demo, faça algumas transações, e observe o funcionamento desses formulários

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.

  • Membros Pro
Postado

Obrigado mais uma vez, Daniel!

 

Bem, fiz alguns testes aqui com o demo do ACBrTEFD, mas não consegui reproduzir o teste da homologação cielo.

 

Esse é o teste que deve ser realizado:

 

Realizar uma transação de Crédito no valor de R$ 900,00,utilizando dois cartões. Após a transação ser aprovada (mensagem “APROVADA 123456 ”), a ECF totalizar o Cupom Fiscal (CF ) e imprimir a primeira  forma de pagamento Cartão,desligar a ECF. A automação deverá  exibir a mensagem “Erro na impressão. Deseja tentar novamente? <SIM> <NÃO>. ” Continuar com a ECF desligada e optar pelo <NÃO>.

A automação deve enviar o desfazimento das Transações TEF e exibir a seguinte mensagem “Transação TEF Não efetuada. Favor Reter o Cupom.”

 

Quando eu desliguei a impressora, a aplicação não cancelou as transações.

 

Alguém conseguiu reproduzir esse teste com o demo?

 

OBS.: Não estou conseguindo fazer uma transação com cartão de crédito magnético. A mensagem pra inserir/passar o cartão nem mesmo aparece.

Só estou conseguindo efetuar transações em dinheiro e com cartão digitado.

  • Fundadores
Postado

O ACBrTEFD irá por padrão agrupar todas as formas de pagamento TEF na mesma Finalizadora...  Após o fechamento do cupom, ele irá imprimir as 2 vias, de ambas as transações, dentro do mesmo CCD.... Esse operacional é utilizado pelo ACBrTEFD a anos...

 

Provavelmente você não configurou corretamente a CliSiTef32.INI, onde deve indicar a porta do PinPad

 

Pelo que você descreveu, a aplicação não deve cancelar os TEFs, e sim entrar no fluxo "Deseja tentar novamente ?"

 

Mesmo que o ACBrTEFD abstraia grande parte da complexidade é fundamental que você tenha conhecimento da documentação técnica... Por favor leia o documento: SiTef - Interface Simplificada com a aplicação(VRS-129).pdf

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.

  • Membros Pro
Postado (editado)

Olá, pessoal, boa tarde!

 

Bem, ainda tentei utilizar a DLL no meu sistema, mas devido às dificuldades e ao pouco tempo que tenho, decidi continuar com o Client Sitef Modular.

 

 

Bem, no demo existe este trecho de código que se encontra no evento OnExibeMsg:

 

opmYesNo :
       AModalResult := MessageDlg( Mensagem, mtConfirmation, [mbYes,mbNo], 0);

 

Gostaria de saber em qual momento o demo identifica o botão NÃO e chama o cancelamento. Primeiramente, achei que tal chamada acontecesse no evento OnComandaECF, mas estava enganado.

Editado por Werner_Marques
  • Moderadores
Postado

Ao programar esse evento você começou a receber a mensagem de sim e não ao clicar em cancelar no pin-pad certo?

o que você está perguntando ocorre dentro do componente ao receber as informações do evento

veja que o AModalResult fica esperando o retorno e assim ele vai tratar 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

  • Membros Pro
Postado (editado)

Ok, entendi. Obrigado!

 

Mas em qual local/evento do componente o demo está tratando o valor passado pelo OnExibeMsg através do AModalResult?

Editado por Werner_Marques
  • Este tópico foi criado há 3849 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.