Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

boa tarde a todos, Daniel ou quem possa ajudar.

Você mais acima sugeriu disse que não poderia usar ACBrECF1.SubtotalizaCupom e que fosse utilizado o ACBrTEFD1.FinalizarCupom, pois o mesmo ja SubtotalizaCupom e faz o fechamento. Mas e quando for feito pagamento com cartão + outra forma de pagamento, no caso teria que deixar a forma de pagamento com cartão por último pois ele que finalizará o cupom ou como poderia ser feito.

Postado

É possível "acumular" informações no ACBrTEF/ACBrNFe para posterior uso no ECF? Pergunto isso pelo seguinte fato, no Cielo Premia não pode-se totalizar o cupom até que se tenha o retorno do Cielo Premia, com desconto, saque ou nenhuma das opções, até ai isso não é problema, desde que a forma de pagamento passada para o ECF seja relacionada à TEF, más no caso de aplicações que fazem uso de multiplas formas o mesmo tambem não pode ser totalizado.

O consultor TEF ao qual a empresa que trabalho contratou, me informou que nossa aplicação tem esse problema ainda, quando ele lança a forma de pagamento Dinheiro imediatamente o sistema sutotaliza, em seguida ele lança cartão e o resultado da tranzação já não será correto, pois pode haver desconto com o Cielo Premia, então alguem tem alguma dica de como eu posso controlar isso de forma mais dinâmica? Sei que poderia guardar as informações lançadas e após o retorno do Cielo Premia poderia subtotlizar, lançar as formas de pagamento e em seguida imprimir o vinculado, porem gostaria de gerenciar tudo isso com o componente.

Postado

Regys, segui o que me disse e até ai tudo bem, pelo seguinte fato, faço uma venda de 1,05, utilizarei 3 formas de pagamento: DINHEIRO(0,50), FATURADO(0,30) E CARTÃO(0,25), criei uma classe(TCachePay) para guardar os pagamentos até que se chegue ao valor, quando chega ao mesmo eu subtotalizo(já passando o desconto da venda) em seguida um loop dentro de uma propriedade da classe para passar as formas de pagamento para o ECF, isso ocorre de forma normal.

O problema vem a ser justamente quando há desconto ou saque com o Cielo premia, pois não posso subtotalizar, utilizo apenas a função ACBrTEF.FinalizarCupom, e no evento ComandaECFSubtotaliza eu faço o seguinte:


try

    Est                                         :=  ecf.Estado;


    if Est = estNaoFiscal then

       ecf.SubtotalizaNaoFiscal( DescAcre + (StringToFloat(eddescontoR.Text) * (-1)), mensagem )

    else

       ecf.SubtotalizaCupom( DescAcre + (StringToFloat(eddescontoR.Text) * (-1)), mensagem );


    RetornoECF                                  :=  1;

  except

    RetornoECF                                  :=  0;

  end;

O problema como é que se mando o ACBrTEF finalizar o cupom, o mesmo irá imprimir apenas a forma referente ao cartão, como devo fazer para imprimir todas as formas, somar o desconto da venda ao desconto do cielo premia?

Postado

Daniel fiz um pequeno roteiro de testes para o Cielo Premia, me deparei com uma situação que sinceramente não sei se pode ocorrer em um caixa no momento do pagamento, más prevendo isso no Demo vi que não foi atendido, veja só, fiz uma venda de R$ 1,03, realizei o pagamento de R$ 0,50 em DINHEIRO, em seguida passei para o CRT R$ 0,53, quando estou no Cielo eu seleciono Débito+Saque, comando o saque de R$ 2,00, após isso finalizo o cupom em seguida imprimo as tranzações pendentes, ocorre que no ECF não é impressa a forma de pagamento DINHEIRO, somente a CARTÃO, acredito que isso ocorra por que forma CARTÃO já é superior ao total da compra, sendo assim o componente nem imprime a outra forma lançada, poderia confirmar isso para mim?

  • Fundadores
Postado

A dinheiro deve sempre vir antes...

Você pode enviá-las para o ECF juntamente com a chamada de OnComandaECFSubtotaliza

Acho que o demo não demonstra isso muito bem... talvez uma observação nos fontes....

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.

Postado

Você diz algo do tipo:

o código do OnComandaECF:


          while mPagamentos.Lines.Count > 0 do

          begin

            Linha := mPagamentos.Lines[0] ;

            P     := pos('|',Linha) ;

            if P > 0 then

            begin

                CodFPG   := Trim(copy(Linha,1,P-1)) ;

                ValorFPG := StringToFloatDef( copy(Linha, P+1, Length(Linha) ), 0 );

                if (CodFPG <> '') and (ValorFPG > 0) then

                   ACBrECF1.EfetuaPagamento( CodFPG, ValorFPG );

            end;

             mPagamentos.Lines.Delete(0);

          end;

mudar para o OnComandaECFSubtotaliza? Se sim quanto à operação(TACBrTEFDOperacaoECF) do ECF? Procurei alguma propriedade que me retorna-se à mesma porem não encontrei nada.

  • 3 semanas depois ...
Postado

A dinheiro deve sempre vir antes...

Você pode enviá-las para o ECF juntamente com a chamada de OnComandaECFSubtotaliza

Acho que o demo não demonstra isso muito bem... talvez uma observação nos fontes....

O dinheiro na verdade não pode vir antes... se você finalizar com dinheiro, e o valor em dinheiro for igual ou maior que o valor da venda, o ECF finaliza o cupom fiscal automaticamente.

Postado

Estou com a seguinte dúvida, no teste de pouco papel quando o componente envia a mensagem de pouco papel antes da impressão do comprovante de crédito, o teclado e mouse ficam bloqueados, forçando assim o ctrl + alt + del, como eu faria para que quando essa mensagem apareça meu BloqueiaMouseTeclado receba o valor False e após confirmar a mensagem o mesmo receba o valor anterior no caso True?

Postado

Opa encontrei a resposta em outro tópico:

Necessitou apenas de uma pequena alteração:


procedure TFrmCheckout.ecfMsgPoucoPapel(Sender: TObject);

  var

    OldTecladoBloqueado : Boolean ;

begin

  OldTecladoBloqueado                           :=  tef.TecladoBloqueado;


  try

    //Parte editada

    if (OldTecladoBloqueado) then

      tef.BloquearMouseTeclado( False );

    //fim edição


    ShowMessage('Detectado pouco papel');

  finally

    tef.BloquearMouseTeclado( OldTecladoBloqueado );

  end ;

end;

  • 4 semanas depois ...
Postado

Bom dia!

Sou novo por aqui. Iniciei a implementação do Premia para a Clisitef, e tudo ainda parece bem confuso, e estou perdedinho. Alguem poderia mim orientar de acordo com as implementações? Obrigado!

Postado

Obrigado amigo! Estava verificando outros tópicos e estou implementado.

Uma dúvida: e algunns dos tópicos deste forum a respeito deste assunto, informa que tem que implementar essa String -> [10]{TipoTratamento=4}"

Onde implementa-lá? Seria o tipo de GP ?

  • Moderadores
Postado

Bom confere mas esse tópico deve de estar falando do VSpague e não do tef discado

então tem que também conferir isso

mas de uma forma simples e rápida, seu fechamento do cupom tem que esperar para subtotalizar somente após executar todas

as transações tef, onde no retorno você tem o campo desconto que vem com o valor e campo valor total com o valor já alterado

para só então vc subtotalizar o cupom para aplicar o desconto, e depois registrar as formas de pagamento

e fechar o cupom fiscal, não podendo utilizar autofinalizarcupom

acho que é isso

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
 

 

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