Ir para conteúdo
  • Cadastre-se

dev botao

Crt Não É Executado


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

Recommended Posts

Postado

Olá pessoal, estou enviando o seguinte comando:

if DataM.ACBrECF1.Estado <> estPagamento then begin

   DataM.ACBrECF1.SubtotalizaCupom(0,EdtMensagemRodape.Text);
FVenda.ACBrTEFD1.CRT( StringToFloatDef('10.00', 0) ,'02', FVenda.ACBrECF1.NumCOO);

 

No arquivo de logo ele me mostra o seguinte:

-- 28/07 11:04:56:320 - TEF_DIAL IniciarRequisicao: ATV
-- 28/07 11:04:58:066 - TEF_DIAL FinalizarRequisicao: ATV, Fechando arquivo: C:\TEF_DIAL\req\intpos.tmp
-- 28/07 11:04:58:068 - TEF_DIAL FinalizarRequisicao: ATV, Renomeando: C:\TEF_DIAL\req\intpos.tmp para: C:\TEF_DIAL\req\intpos.001
-- 28/07 11:04:58:514 - TEF_DIAL FinalizarRequisicao: ATV, Aguardando: C:\TEF_DIAL\resp\intpos.sts
-- 28/07 11:05:11:476 - TEF_DIAL FinalizarRequisicao: ATV, Fim da Espera de: C:\TEF_DIAL\resp\intpos.sts Recebido
-- 28/07 11:05:12:346 - TEF_DIAL FinalizarRequisicao: ATV, Verificando conteudo de: C:\TEF_DIAL\resp\intpos.sts
-- 28/07 11:05:13:930 - InfoECF: ineEstadoECF
-- 28/07 11:05:15:354 -     Ret: P
-- 28/07 11:05:15:355 - InfoECF: ineSubTotal
-- 28/07 11:05:16:755 -     Ret: 2
-- 28/07 11:05:16:756 - InfoECF: ineTotalAPagar
 
 
Já mexi um monte no código, e não consegui fazer ele executar o CRT, o que posso estar esquecendo ou fazendo errado?
 
Obrigado.
Rafa
 
Postado

Olá Régys, sim, coloquei um ponteiro (showmessage) e o comando CRT é executado no delphi, mas depois dele ele entra em loop nesse evento: 

procedure TFVenda.ACBrTEFD1InfoECF(Operacao: TACBrTEFDInfoECF; var RetornoECF: string);
var
ASubTotal: Double;
begin
case Operacao of
 ineSubTotal : begin
         ASubTotal := ACBrECF1.Subtotal ;
         if StrTOFloat(EdtAcrescimoRS.Text) > 0  then
            ASubTotal := ASubTotal - ACBrECF1.TotalPago + StringToFloatDef(EdtAcrescimoRS.Text, 0);
         if StrTOFloat(EdtDescontoRS.Text) > 0  then
            ASubTotal := ASubTotal - ACBrECF1.TotalPago + StringToFloatDef('-'+EdtAcrescimoRS.Text, 0);
 
         RetornoECF := FloatToStr( ASubTotal ) ;
Showmessage(' retorno = ' + RetornoECF);
end;
ineEstadoECF : begin
Case ACBrECF1.Estado of
 estLivre     : RetornoECF := 'L' ;
 estVenda     : RetornoECF := 'V' ;
 estPagamento : RetornoECF := 'P' ;
 estRelatorio : RetornoECF := 'R' ;
 estNaoFiscal : RetornoECF := 'N' ;
else begin
 RetornoECF := 'O' ;
end;
end;
end;
end;
end;
 
Ele entra em loop no showmessage.
Obrigado desde já.
Rafa
  • Moderadores
Postado

Veja primeiro ele vai entrar em ineSubTotal, onde você informa o subtotal, depois ele chama ineTotaPagar, onde você informaria o total pago ai sim ele continua.

 

Isso acontece somente na sua aplicação ou no demo do ACBrTEFD também? Porque aqui está tudo normal, tanto no meu app quanto no demo.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

Olá Régys, no demo funciona legal com exceção se eu der desconto, se colocar desconto mesmo no demo ele não imprime nada, ele para depois que a transação é aprovada pela operadora, mas isso vou ver depois, agora não estou nem conseguindo chamar o GP, no caso agora estou usando V$Pague, estou tentando achar onde ele tá parando, pra ter ideia ondem apaguei tudo o que tinha feito de tef e comecei tudo do zero hj copiando os códigos do demo, mesmo assim não chama o GP.

Depois desse evento ele parte pra qual evento?

Se conseguir me dar uma luz do que pode ser vou mexendo, porque já revisei tudo umas 5 vezes já e nada.

Obrigado.

Rafa

  • Solution
Postado (editado)

teve alguma alteração depois da última atualização.

 

No evento TEFInfoECF adicione.

 

      ineTotalAPagar :
        RetornoECF := FloatToStr( xECF.TotalPago );
Editado por joseadolfojr
Postado

Obrigado JoseadolFojr e Régys, ao menos consegui agora fazer a chamada do GP, estou com problema ao iniciar a impressão do CCD fica dizendo:

Erro na impressão.
Deseja tentar novamente ?
 
Vou resolver isso qualquer coisa posto novamente, coloquei o comando acima e funcionou perfeitamente, agora, não entendi porque copiei extamente igual ao fonte do Demo e mesmo assim não funcionou, enfim, agradeço a ajuda.
Obrigado.
Rafa
  • 2 meses depois ...
Postado

Pessoal, realmente, eu estava utilizando uma versão um pouco antiga dos fontes, então logo que fiz a atualização começou o problema de loop infinito quando eu ia chamar o gerenciador padrão através do .CRT com os parametros e etc... dai através do código do nosso amigo Jose Adolfo Jr. que foi simplesmente colocar no case operação que deu certo!!! super certo!   

        ineTotalAPagar :

        RetornoECF := FloatToStr( xECF.TotalPago );
 
OBS. Não apaguei nada do case, só adicionei.
 
Abraços,
Valeu!
  • Este tópico foi criado há 3698 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.