Ir para conteúdo
  • Cadastre-se

dev botao

Tef No Sat


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

Recommended Posts

  • Fundadores

o SAT não tem qualquer vinculo com o TEF...

 

Você deve fazer a homologação de TEF para impressoras não fiscais

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.

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Daniel, fiz uso o AcbrECFVirtual no meu PAF transformando em um PDV -SAT todas as funções foram possiveis.

O Tef faz todos os procedimentos, so nao imprime, gostaria de saber se tem alguma rotina de impressão para impressora nao fiscal no ACBR?

Ja estive analisando a rotina de impressão para adaptar alguma cosa mas acaso ja exista agradeço.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Você está usando o "Trunk2" ??

Há um problema conhecido nos fontes do "trunk" que impossibilita a impressão de outros documentos que não venda

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.

Link para o comentário
Compartilhar em outros sites

Não estou usando o Trunk2 mas não tive problemas!

Consegui fazer meu paf funcionar 100% com o ACBrECFVirtualNaoFiscal+ACBrECF , nao usei o ACBrECFVirtualSAT.

Fiz pequenos ajustes no synaser,ACBRECFVirtual assim o aplicativo funcionou 100%  adaptei o SATTeste  apos todas as formas de pagamento serem executadas.

Eu precisava fazer o TEF imprimir os comprovantes antes da transmissão do CUPOM ao analisar o ACBrTEFD fiz a seguinte modificação:

Improvisei com um componente que utilizo mas pode ser adaptado melhor veja a baixo adaptação dentro de uma Função do ACBrTEFD.

Caso seja possivel criar algo definitivo nesta função com parametros para diferenciar quando for ACBRECFVirtual sera otimo acredito que muitos poderão utilizar.

function TACBrTEFD.ECFImprimeVia( TipoRelatorio : TACBrTEFDTipoRelatorio;
   Via : Integer; ImagemComprovante : TStringList) : Integer;
Var
   Erro : String ;
   Linha,I,I2:Integer;
begin
  fTefClass.GravaLog( fTefClass.Name +' ECFImprimeVia: '+
    GetEnumName( TypeInfo(TACBrTEFDTipoRelatorio), Integer(TipoRelatorio) ) +
    ' Via: '+IntToStr(Via) ) ;

  Result := -1 ;  // -1 = Não tratado

 

////////////////////////////////////////////////////////////////////////////////////
//////////IMPRIME EXTRATO TEF COM SAT////////////////
  if FDataModule.ACBrECF.Modelo=ecfECFVirtual then
     begin
     with FDataModule.RDprint_CFe do
     begin
     FDataModule.RDprint_CFe.SetPrinterbyName(FDataModule.IMPRESSORA_SAT); //NOME DA IMPRESSORA NA REDE
     abrir;
     FDataModule.RDprint_CFe.TamanhoQteColunas     :=45;
     FDataModule.RDprint_CFe.OpcoesPreview.Preview := False;
     //--
     linha:=1;
    if Via=1 then
      begin
      for I := 0 to ImagemComprovante.Count - 1 do
      begin
      impc(linha,01,ImagemComprovante,[]);//Imprime o TEF linha a linha
      inc(linha);
      end;
      end;
      /////////////ESPAÇO ENTRE COMPROVANTE TEF/////////////
      if Via=1 then
      begin
      for I := 0 to 8 do
      begin
      impc(linha,01,' ',[]);//Imprime espaço TEF
      inc(linha);
      end;
      end;
      //--
      OnComandaECFImprimeVia( TipoRelatorio, Via, ImagemComprovante, Result ) ;

  // Coloquei ao centro para mostrar as mensagens de destaque a via do cliente
      //--
      if Via=2 then
      begin
       for I := 0 to ImagemComprovante.Count - 1 do
      begin
      impc(linha,01,ImagemComprovante,[]);//Imprime o TEF linha a linha
      inc(linha);
      end;
      end;
     //--
      /////////////ESPAÇO APOS SEGUNDA VIA TEF/////////////
      if Via=2 then
      begin
      for I := 0 to 8 do
      begin
      impc(linha,01,' ',[]);//Imprime espaço Apos TEF
      inc(linha);
      end;
      end;
      //--
       fechar;
      end;
//////////////////////////////////////////////////
////////////FIM IMPRIME EXTRATO TEF COM  SAT///////////////


  if Result < 1 then
  begin
     if Result = 0 then
        Erro := 'Erro ao executar "OnComandaECFImprimeVia"'
     else
        Erro := '"OnComandaECFImprimeVia" não tratado' ;

     fTefClass.GravaLog(Erro);

     raise EACBrTEFDECF.Create( ACBrStr( Erro ) )
  end;
end;

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Não compreendi o seu raciocínio... Os fontes acima são modificação para qual Unit ?  Há uma dependência de uma variável interna do seu projeto (FDataModule) ?

Se deseja sugerir modificações aos fontes do ACBr, trunk2, favor anexar (zip) as Units modificadas

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.

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Daniel, preciso de uma ajuda!  Usei O AcbrEcvirtualNaofiscal para fazer meu paf rodar 100% e adaptar o SAT, isso na versao Trunk agora mudei para versao Trunk2.

Notei que o AcbrEcvirtualNaofiscal esta vinculado ao ACBrPosPrinter pelo menos para eu conseguir rodar tive de associar ou nao retornava todas as informações principalmente de porta etc. Ate ai tudo bem, o problema e que prende a porta, se o aplicativo esta ativo nao consegue imprimir nada em paralelo.

Como faço para desbloquear a porta em tempo de execução? Sei que o ideal seria o AcbrEcfvirtual SAT mas no meu caso especifico pretendia usar desta forma.

Desde ja agradeço

Link para o comentário
Compartilhar em outros sites

  • Fundadores

ACBrPosPrinter.ControlePorta := True

Mas você deveria redirecionar toda a impressão do seu aplicativo pelo TACBrPosPrinter, e com isso ter de benefício a possibilidade de usar as Tags que ele suporta...

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.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Daniel, fiz ajustes para meu aplicativo rodar com TACBrPosPrinter deu tudo certo, imprime super rapido excelente!

Porem estou tendo uma dificuldade estou usando o ACBrECFVirtualNaoFiscal +ACBrECF +TACBrPosPrinter ou seja o PAF ECF usando acbrvirtual.

Quando faço um cupom SAT imprime certo mas apos cortar o papel imprime um rascunho que vem provavelmente do Acbrvirtual, ja revirei as classes do acbr virual mas nao consegui descobrir onde posso remover o mesmo ocorrecom cancelamento imprime uma imagem de cupom fiscal cancelado antes de eu localizar o xml sat.

Vejo que nao tem nada haver com sat, nao removo a mnha função de cancelamento do cupom paf por que tambem armazeno informações do cancelamento etc.

Caso possa dar uma dica agradeço vou anexar as impressõescupom_sat.thumb.jpg.f3234a0e62b055b14ed6cancelamento.thumb.jpg.dbb2326b98968bb66

Link para o comentário
Compartilhar em outros sites

Consegui localizar onde estava imprimindo apos finalizar cupom sat ou cancelamento, podendo remover caso não seja utilizado para outra finalidade.

Desde ja agradeço.

 

procedure TACBrECFVirtualPrinterClass.Imprimir(AString: AnsiString);
Var
  OldAguardandoResposta : Boolean ;
begin
  OldAguardandoResposta := AguardandoResposta ;
  AguardandoResposta    := True ;
  try
  //  fsECFVirtualPrinter.PosPrinter.Imprimir(AString); //Imprime dados que deveria ser so virtualizado
 
    repeat
      Sleep(IntervaloAposComando);
    until Device.EmLinha() ;
  finally
    AguardandoResposta := OldAguardandoResposta ;
  end ;
end;
 
 
 
 
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Essa alteração pode quebrar todos os demais relatórios dos  ECFsVirtuais...

Nao compreendi muito bem o problema ... Preciso de um passo a passo de como reproduzi-lo

Consegue reproduzir o problema com a aplicação ECFTeste ? ( na versão Lazarus existem os virtuais )

Ou então crie um mini projeto, que demonstre o problema 

 

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.

Link para o comentário
Compartilhar em outros sites

Daniel, sendo assim deixa como esta mesmo ate por que creio que devo estar utilizando de maneira especifica.

Estou utilizando o ACBrECFVirtualNaoFiscal +ACBrECF +TACBrPosPrinter com isso consegui rodar o PAF nao adicionei o ecfvirtualSAT para conservar minhas formas de pagamentos inclusive o TEF que tambem esta funcional devo ainda homologar.

Apos finalizar todas as formas de pagamentos inclusive tef com transação e impressão ai chamo uma nova tela com as rotinas do sat envio e impressão o que ocorria e  imprimia em paralelo no caso eu comentando ficou ok.

Agradeço pela atenção 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Ola, Alfeu estou tentando tambem resolver o problema do TEF, mas estou meio enroscado, pois havia uma dependencia da ecf... entao gostaria de saber se conseguiu resolver como o Daniel sugeriu....alias acho que o Daniel poderia dar um help pra nos como fazer isso, como disse acima

Nesse caso, eu recomendaria criar um Virtual próprio, filho de ACBrECfVirtualBuffer

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Tudo que você precisa fazer é "enganar" o ACBrTEFD.. Observe que ele nunca fala com o ECF diretamente, mas ao invés disso, ele dispara eventos para a sua aplicação retornar os valores por parâmetros...

Então, quando ele perguntar Valores como o Subtotal, Estado, etc, retorne com valores computados de Registradores internos da sua aplicação (e não do ECF)

Quando ele pedir para executar um comando que não faça muito sentido para Impresssoras não fiscais, apenas retorne "True", informando que o comando já foi efetuado...

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.

Link para o comentário
Compartilhar em outros sites

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