Jump to content

Compre o Delphi
Com até 30% de desconto
e parcelado em até 12x sem juros

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

ALA

ANSWERED Coleta de CPF no PinPad, segunda parte

Recommended Posts

Senhores, bom dia. Estou enfrentando um problema na coleta dos doados direto no pinpad. Como já foi dito em outro tópico o TEF deve estar inicializado. Até ai tudo bem. Mas quando tento acionar a função g.ACBrTEFD.TEFCliSiTef.ObtemDadoPinPadDiretoEx(2, ' ', ' ' )  antes de realizar uma venda, ocorre erro -100 na função e não aciona o pinpad..

   if Trim( dmst_TEF_DLL ) = dmco_Sim then
   begin
      g.ACBrTEFD.DesInicializar( TACBrTEFDTipo( gpCliSiTef ) );
      // Configura TEF //
      g.ACBRTEFD.SuportaSaque               := False;
      g.ACBRTEFD.SuportaDesconto            := False;
      g.ACBRTEFD.SuportaReajusteValor       := False;
      g.ACBRTefD.NumVias                    := dmin_NViasTef;
      g.ACBRTefD.EsperaSTS                  := dmin_ContadorTEF;
      g.ACBRTefD.TEFCliSiTef.EnderecoIP     := dmst_TEF_Endereco_IP;
      g.ACBRTefD.TEFCliSiTef.CodigoLoja     := dmst_TEF_IDLoja;
      g.ACBRTefD.TEFCliSiTef.NumeroTerminal := g.FormataIDTerminal( dmst_TEF_IdTerminal );
      if dmst_TEF_MultiplosCartoes = dmco_Sim then
      begin
         g.ACBRTefD.MultiplosCartoes := True
      end
      else
      begin
         g.ACBRTefD.MultiplosCartoes := False;
      end;

      if dmst_TEF_AutoAtivarGP = dmco_Sim then
      begin
         g.ACBRTefD.AutoAtivarGP := True
      end
      else
      begin
         g.ACBRTefD.AutoAtivarGP := False;
      end;

      g.ACBRTefD.AutoEfetuarPagamento := False; // sempre falso //
      g.ACBRTefD.AutoFinalizarCupom   := False; // sempre falso //

      // ** //
      lcst_estadoSimuladoEcf:= tpsVenda; // CANCELA PENDENTE
      // ala 21/08/2017 se ocorrer prolema retornar com essa linha lcst_estadoSimuladoEcf := tpsLivre;
      if not( g.ACBrTEFD.Inicializado(TACBrTEFDTipo( gpCliSiTef ))) then
      begin
         g.ACBrTEFD.Inicializar( TACBrTEFDTipo( gpCliSiTef ) );
      end;
      // ** //

      // *** 1 CPF, 2 CNPJ *** //
      try
         if not(InputQuery( 'PDV NFC-e', 'Informe: 1-CPF, 2-CNPJ', lcst_Opcao )) then
         begin
             ShowMessage( 'Opção inválida.' );
             Abort;
         end;
         if StrtoInt( lcst_Opcao ) = 1 then // CPF //
         begin
            lbl_Mensagem1.Caption := 'AGUARDANDO DIGITAÇÃO DO CPF NO PINPAD...';
            lbl_Mensagem1.Refresh;
            lcst_Retorno          := g.ACBrTEFD.TEFCliSiTef.ObtemDadoPinPadDiretoEx(1, ' ', ' ' );
         end
         else if StrtoInt( lcst_Opcao ) = 2 then // CNPJ //
         begin
            lbl_Mensagem1.Caption := 'AGUARDANDO DIGITAÇÃO DO CNPJ NO PINPAD...';
            lbl_Mensagem1.Refresh;
            lcst_Retorno          := g.ACBrTEFD.TEFCliSiTef.ObtemDadoPinPadDiretoEx(2, ' ', ' ' );
         end
         else
         begin
             Abort;
         end;
      except
         begin
            ShowMessage( 'Opção inválida.' );
            Abort;
         end;
      end;

      if Trim( lcst_Retorno ) <> EmptyStr then
      begin
         if not UTIL.Validar_CNPJ_CPF( lcst_Retorno ) then
         begin
            lbl_Mensagem1.Caption := EmptyStr;
            ShowMessage( 'CPF/CNPJ inválido' );
         end
         else
         begin
             lbl_Mensagem1.Caption := 'CPF/CNPJ: ' + lcst_Retorno;
             ShowMessage( 'CPF/CNPJ: ' + lcst_Retorno );
             DMXML.DS_VENDA.DataSet.Edit;
             DMXML.DS_VENDA.DataSet.FieldByName( 'VEN_CNPJ_CIC' ).AsString := lcst_Retorno;
             DMXML.DS_VENDA.DataSet.Post;
             DMXML.DS_VENDA.DataSet.Edit;
         end;
      end
      else
      begin
         lbl_Mensagem1.Caption := EmptyStr;
         ShowMessage( 'CPF/CNPJ Não informado' );
      end;
      lcst_estadoSimuladoEcf := tpsLivre;
   end
   else
   begin
      ShowMessage( 'Opção disponível apenas para SkyTef');
   end;
 

 

Share this post


Link to post
Share on other sites
Em 29/10/2019 at 11:34, ALA disse:

ocorre erro -100 na função e não aciona o pinpad..

Se você ler a documentação verá que erro -100 é "Erro interno no módulo".

Isso quer dizer que você precisa do suporte da Software Express para configurar o módulo de coleta de dados pelo pinpad.

 

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...