Ir para conteúdo
  • Cadastre-se

Leonardo Fossati Silveira

Membros Pro
  • Total de ítens

    19
  • Registro em

  • Última visita

Sobre Leonardo Fossati Silveira

Contact Methods

  • Website URL
    http://www.intelsystems.com.br

Últimos Visitantes

738 visualizações

Leonardo Fossati Silveira's Achievements

Apprentice

Apprentice (3/14)

  • Dedicated Rare
  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done

Recent Badges

3

Reputação

  1. Olá pessoal, sabem me informar qual o comando hexadecimal para a abertura de gaveta utilizando a impressora TecToy Q4?
  2. Boa tarde pessoal, estamos iniciando a implementação do TEF através do ACBR. Somos do Rio Grande do Sul e tem uma grande chance de se tornar obrigatório no inicio de abril. Como temos muitos mini-mercados pequenos, a escolha da melhor intermediária em termos de custo mensal para o cliente final é muito importante. Vocês tem uma idéia de valores para me passar, ou se sabem de alguma solução que seja gratuíta? Ou todas são compatíveis em termos de valores? Tenho medo de integrar com uma determinada solução e perder para um concorrente que tenha um tef mais barato. Obrigado.
  3. Boa tarde, estamos atrasados com o tef e nossa solução aqui no rio grande do sul. Gostaria que me orientassem com um pequeno checklist sobre o que precisamos fazer para utilizar a solução do acbr integrada com o tef pay go. Obs. Eu tentei contato com o tef pay de todas as formas mas não consegui. Obrigado
  4. Ola, obrigado pelo retorno. Adicionei o parâmetro, mas mesmo assim o problema ocorre. Até mesmo se eu não chamar os métodos de imprimir texto, como no exemplo abaixo: ETQ.Ativar() ETQ.IniciarEtiqueta() ETQ.Imprimir(1) ETQ.FinalizarEtiqueta(1,0) ETQ.Desativar()
  5. Boa tarde, pessoal, estamos iniciando o uso da acbr. Nossos primeiros testes foram como MonitorPlus e comandos de etiquetas. O erro ue aparece é "ERRO: "" is an invalid integer" no comando ETQ.Imprimir(). Isto ocorre até mesmo com os exempos da documentação. Segue abaixo em anexo como configuramos o monitor.
  6. Certo, obrigado pela atenção. Vou entrar em contato com eles e qualquer coisa, reporto aqui.
  7. Sim, foi isto que pensei. Mas não é o que o roteiro solicita e por isso fiquei em dúvida. Pelo que entendi, eles querem que a transação seja RECUPERADA, já que ficou pendente mas foi aprovada e neste caso,bastaria finalizar e reimprimir. Faz sentido isso?
  8. Pessoal, estou implementando o roteiro de homologação TEF junto a Cappta, e estou com a seguinte dúvida: Na sequência 19, solicitam o desligamento do computador, ligar o pc e manter a impressora desligada e tentar enviar o comando "Finalizar" e posteriormente tentar reimprimir o cupom. Pelo que entendi, o objetivo do teste é tentar "recuperar" a transação abortada pelo desligamento. Entretanto, utilizando os componentes acbr, o mecanismo naturalmente chama o "cancelamento" da operação pendente (ao iniciar a aplicação e ativar o componente). A implementação que desenvolvi, seguiu os padrões sugeridos nos exemplos tef constantes no svn da acbr. Gostaria de uma orientação inicial: existe algum mecanismo pronto para este teste (seq. 19) ? Porque o cancelamento é invocado? Se existe algum procedimento que devo implementar, peço orientações. Segue abaixo a descrição do roteiro seq. 19. -Realize uma transação com cartão de crédito. -Opção À Vista -Após receber o Retorno de aprovação, no momento em que começar a imprimir o cupom, reset o computador, logo após desligue a impressora. -Ligue o computador, deixando desligada a impressora. -Abra a Automação envie a função de “Finalizar” para que a transação seja confirmada. -Após tratar a transação ligue a impressora. -Acesse as funções administrativas do Gerenciador Cappta através da Automação e solicite a reimpressão do último comprovante. Leonardo
  9. Talvez possa ser alguma versão nova da Cappta, alguma configuração específica que eles fizeram no meu ambiente ou por ser um ambiente de testes. A alteração que fiz foi no arquivo ACBrTEFDClass.pas, linha 1341 (em anexo). Gostaria de saber se esta modificação está correta ou se pode quebrar alguma outra parte do código visto que ainda não domino todos os fontes. ACBrTEFDClass.pas
  10. Consegui descobrir, e acho que isso vai colaborar com todos: Imagino que o problema estava no padrão utilizado para a geração do arquivo intpos, pelo gerenciador padrão. Usamos a solução Cappta, que intermedia e encapsula os demais gerenciadores padrões. Talvez a forma como eles criaram este arquivo, não esteja sendo tratada pelas classes acbrtef. Vamos aos fatos: 1. Problema: o método "ImprimirRelatorio" não era chamado de forma alguma. Como o envio CNF está dentro do método "ImprimirRelatorio" então a transação também não estava sendo confirmada.; Veja o método ProcessarResposta (ACBrTEFDClass.pas, linha 2042) : procedure TACBrTEFDClass.ProcessarResposta ; var RespostaPendente: TACBrTEFDRespTXT; begin VerificarIniciouRequisicao; GravaLog( Name +' ProcessarResposta: '+Req.Header ); TACBrTEFD(Owner).EstadoResp := respProcessando; if Resp.QtdLinhasComprovante > 0 then begin { Cria cópia do Objeto Resp, e salva no ObjectList "RespostasPendentes" } RespostaPendente := TACBrTEFDRespTXT.Create ; try RespostaPendente.Assign( Resp ); TACBrTEFD(Owner).RespostasPendentes.Add( RespostaPendente ); ImprimirRelatorio ; with TACBrTEFD(Owner) do begin if Assigned( OnDepoisConfirmarTransacoes ) then OnDepoisConfirmarTransacoes( RespostasPendentes ); end ; finally TACBrTEFD(Owner).RespostasPendentes.Clear; end; end else if Resp.TextoEspecialOperador <> '' then TACBrTEFD(Owner).DoExibeMsg( opmOK, Resp.TextoEspecialOperador ) end; Percebi que Resp.QtdLinhasComprovante estava zerado. Logo imaginei que o comprovante não estava sendo gerado. Então fui mais a fundo, em busca dos locais onde o comprovante é montado e enviado para a impressão. Encontrei o método "ConteudoToProperty" (ACBrTEFDClass.pas, linha 1252) e percebi que é este método que lê o arquivo de resposta do gerenciador padrão (intpos) e monta os resultados nas estruturas em mémória do objeto da classe ACBrTEFDClass. As identificações do arquivo intpos que interferem no atributo QtdLinhasComprovante são: 28, 710,712. Compreendi, então que 710 é o cupom reduzido. E o 712 é um comprovante que só é impresso caso NÃO exista cupom reduzido. Para identificar se tem ou não cupom reduzido, o algorítmo utiliza a variável TemReduzido. Esta variável é preenchida no seguinte momento: (ACBrTEFDClass.Pas, linha 1339) 710 : begin TemReduzido := True; fpImagemComprovante1aVia.Clear; fpQtdLinhasComprovante := Linha.Informacao.AsInteger; end; Se o algorítmo entrar neste bloco de código (710), então a varíavel será marcada como true e o bloco 712 será ignorado. Veja o bloco 712: 712 : begin if not TemReduzido then begin fpImagemComprovante1aVia.Clear; fpQtdLinhasComprovante := Linha.Informacao.AsInteger; end; end; Agora posso explicar o que estava acontecendo comigo: 1. o meu arquivo intpos, contém o bloco 710, MESMO NÃO TENDO CUPOM REDUZIDO. Ele apenas gera as linhas, mas deixa em branco. A linha que indica o número de linhas do comprovante (710) informa o valor ZERO. Como a váriavel "TemReduzido" é setada para true sempre que entra no bloco 710, no meu caso ela era interpretada como se o cupom existisse, pois o bloco 710 existe no meu intpos, apesar de estar vazio. No bloco 710 a variável lfpQtdLinhasComprovante é setada para zero. Isso faz com que o bloco 712 seja ignorado e na rotina ProcessarResposta, o método "ImprimriRelatorio" seja ignorado também. Resumo: a classe ACBRTEFdclass considera que TEM cupom reduzido sempre que existir o 710 no intpos, independente do seu conteúdo. No meu caso, o arquivo contém o 710, mesmo não tendo cupom reduzido, apenas indicando zero linhas de comprovante. Veja o intpos.001 gerado pelo meu gerenciador padrão (observe o 710): 000-000 = ADM 001-000 = 59707 004-000 = 0 009-000 = 0 010-000 = REDECARD-L0500 011-000 = 99 012-000 = 017546 013-000 = 017546 015-000 = 2012163546 016-000 = 2012163548 022-000 = 20122013 023-000 = 163546 027-000 = 12015647028 028-000 = 17 029-001 = "" 029-002 = "" 029-003 = "---------------------------------------" 029-004 = " EMPRESA 1 FILIAL 1" 029-005 = " 00.000.000/0000-00" 029-006 = "" 029-007 = " CUPOM DO CLIENTE" 029-008 = "---------------------------------------" 029-009 = " REDECARD" 029-010 = " CANCELAMENTO" 029-011 = "COMPROV: 123456789 VALOR: 9.999,99" 029-012 = "" 029-013 = " CUPOM DA LOJA" 029-014 = "---------------------------------------" 029-015 = " REDECARD" 029-016 = " CANCELAMENTO" 029-017 = "COMPROV: 123456789 VALOR: 9.999,99" 030-000 = APROVADA: 017546 IMPRIMINDO... 040-000 = MAESTRO 710-000 = 0 711-001 = "" 712-000 = 6 713-001 = "" 713-002 = " CUPOM DO CLIENTE" 713-003 = "---------------------------------------" 713-004 = " REDECARD" 713-005 = " CANCELAMENTO" 713-006 = "COMPROV: 123456789 VALOR: 9.999,99" 714-000 = 5 715-001 = " CUPOM DA LOJA" 715-002 = "---------------------------------------" 715-003 = " REDECARD" 715-004 = " CANCELAMENTO" 715-005 = "COMPROV: 123456789 VALOR: 9.999,99" 999-999 = 0 SOLUÇÃO A variável TemReduzido somente será setada para TRUE se existir o bloco 710 e TAMBÉM o número nele indicado for MAIOR QUE ZERO: 710 : begin TemReduzido := True; TemReduzido := Linha.Informacao.AsInteger >0; fpImagemComprovante1aVia.Clear; fpQtdLinhasComprovante := Linha.Informacao.AsInteger; end; Fiz esta correção na classe e passou a funcionar perfeitamente. Se minha conclusão estiver errada, por favor, me informem. Leonardo
  11. Sim, estou realizando os seguintes passos: 1. abro o programa TEFdemo.exe; 2. inicializo a impressora e o gerenciador padrão tefdial; 3. clico no botão "ADM"; 4. o gerenciador padrão é invocado na tela administrativa; 5. escolho a opção "Cancelamentos"; 6. informo senha, valor, n. controle e insiro e retiro o cartão; 7. neste momento, o gerenciador padrão abre uma tela informando que a transação foi aprovada e o metodo "OnExibeMensagem" é chamado. A mensagem é "APROVADA: 017503 IMPRIMINDO..."; 8. mensagem "adm executada com cesso"; 9. Neste momento, a tela do gerenciador padrão segue aberta e nada foi impresso. Se eu clicar no botão "Imprimir Transações Pendentes", nada acontece pois avariável RespostasPendentes.Count está igual a zero. 10. Se eu clicar no botão CNF, o comando de confirmação é invocado, o gerenciador padrão se fecha (o que está correto), mas nada foi impresso.
×
×
  • 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.