Ir para conteúdo
  • Cadastre-se

dev botao

Homologação Sitef


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

Recommended Posts

  • Membros Pro
Postado

Estou em sao paulo homologando o sitef,

 

e aqui no serverPDV pede que a forma de pagamento DINHEIRO sempre fique na ultima posicao do cupom

ex

 

CARTAO

DINHEIRO

 

 

mesmo que eu passa primiero o dinheiro e depois o cartao o dinheiro sempre tem que aparece por ultimo,

como façor isso , esotu usando o ACBRTEFD

 

coloco o primeiro dinheiro 01|2,00 no mPagamento 

e depois cartao  02|3,00

 

como façor para no cupom imprimir o dinheiro por ultimo, sabendo qu eestou usando a funcao 

Autoefetuarpagamento,

 

muito obrigado pela atencao estou aqui na server PDV

  • Membros Pro
Postado (editado)

eu optei por AutoEfetuarPagamento

com isso o pagamento de cartao nao mostra no memu mPagamentos

entao como vou opnar qual pagamento imprimir primeiro, sabendo que o acbrtefd imprimi sempre o cartao por ultimo ?

 

 

---------fis umas mudanca so pra homologa amanha na serverPDV sitef -------------

 

desabilitei em

procedure TForm1TEFD.ACBrTEFD1ComandaECF(

      opeImprimePagamentos :
        begin

          {  desabilitei

 

        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 );
                ShowMessage(CodFPG+' - '+FloatToStr(ValorFPG));
                if (CodFPG <> '') and (ValorFPG > 0) then
                   Form1_ACBrECF.ACBrECF1.EfetuaPagamento( CodFPG, ValorFPG );
             end;
             mPagamentos.Lines.Delete(0);
          end;

 

       }  desabilitei

        end;

 

 

/////////////////

e adicionei em

 

procedure TACBrTEFD.FinalizarCupom(

 

                      'P' :
                        begin
                          if not AutoEfetuarPagamento then
                          begin
 

  
                             //FORMAS TEF
                             GrupoFPG := nil ;
                             AgruparRespostasPendentes( GrupoFPG );
                             Ordem := 0 ;

                             For I := 0 to Length( GrupoFPG )-1 do
                             begin
                                if GrupoFPG.OrdemPagamento = 0 then
                                 begin
                                   Inc( Ordem ) ;

                                   if InfoECFAsDouble(ineSubTotal) > 0 then
                                      ECFPagamento( GrupoFPG.IndiceFPG_ECF, GrupoFPG.Total );

                                   For J := 0 to RespostasPendentes.Count-1 do
                                      if RespostasPendentes[J].IndiceFPG_ECF = GrupoFPG.IndiceFPG_ECF then
                                      begin
                                        if (RespostasPendentes[J].Header = 'CHQ') and CHQEmGerencial then
                                         begin
                                           RespostasPendentes[J].OrdemPagamento := 999;
                                           Dec( Ordem ) ;
                                         end
                                        else
                                           RespostasPendentes[J].OrdemPagamento := Ordem;
                                      end;
                                 end
                                else
                                   Ordem := GrupoFPG.OrdemPagamento ;
                             end;



                             //////////////////////////////////////
                              //FORMA NAO TEF
                              while Form1TEFD.mPagamentos.Lines.Count > 0 do
                              begin
                                 Linha := Form1TEFD.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
                                       //Form1_ACBrECF.ACBrECF1.EfetuaPagamento( CodFPG, ValorFPG );
                                       //ShowMessage('desligue a impressora');
                                       ECFPagamento( CodFPG, ValorFPG );
                                 end;
                                 Form1TEFD.mPagamentos.Lines.Delete(0);
                              end;
                              //////////////////////////////////////



                          end;

                          if (InfoECFAsDouble(ineSubTotal) > 0) then
                          begin
                             if (InfoECFAsDouble(ineTotalAPagar,0) > 0) then
                             begin
                                ComandarECF( opeImprimePagamentos ) ;

                                if InfoECFAsDouble(ineSubTotal) > 0 then
                                   Break;
                              end
                             else
                                Break;
                          end ;

                          ComandarECF( opeFechaCupom )
                        end ;

 

 

 

////////////////////////////////////////////////////////

 

Com isso fis com que a forma de pagamento DINHEIRO SEMPRE FIQUE NA ULTIMA POSICAO

DA IMPRESSORA FISCAL EX:

 

CARTAO

DINHEIRO

 

mais depois queria saber a forma certa para isso,

sai de cuiaba para sao paulo e quase fiquei sem ser aprovado so por causa disso, que sufoco.

Editado por hetoandrade
  • Membros Pro
Postado

engraçado fui homologado com Autoefetuarpagamento como true

acho o comentario

Você precisará rever sua lógica de programação...

equivocado, deveriam respeita mais os mebros do forum.

nao sou contribuidor para ficar ouvindo isso.

estou aqui para tirar duvidas, se eu fosse iqual a vc nao taria aqui no forum e sim dando consultoria

com mais respeito.

  • Fundadores
Postado

Você mesmo disse que foi obrigado a modificar os fontes do ACBr... Por que será ??? Sendo que centenas ja homologaram sem nenhuma modificação ??

Você nao leu os fontes, nem o Changelog, caso contrario meu tópico anterior seria desnecessário.

Se nao estiver satisfeito com o forum ou a assinatura do SAC basta cancelar , nao pagando mais o boleto

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.

  • Membros Pro
Postado

desculpe se eu falei alguma bobagem, mais agora to precisando muito de vcs,

estou em sp e ontem foi aprovado na softwareexpress tef dll sitef

e estou aqui na certified e to travado em uma questao,

 

quando eu chamo um crt

escolho o cartao debito ou credito

vem a messagem

insira ou passe o cartao

neste momento clico em CancelarResp

mostrar a messagem

13 - Operacao Cancelada?

clico em Nao

em vem de continuar esperando o cartao ser inserido
fica em lupe na messagem
13 - Operacao Cancelada?

Sim / Nao

 

se eu aperta sim, blz cancela tudo, mais se eu aperta

Nao

 

nao para na messagem insira ou passe o cartao e sim mostra de novo a messagem

13 - Operacao Cancelada?

Sim / Nao

 

 

o que devo fazer testei tambem no demo acbrtefd e ta a mesma coisa.

  • Membros Pro
  • Solution
Postado (editado)

eu conseguir na verdade fis isso

fCancelado:=False; 

 

 

////////////////////////////////////////////////////

 

                 20 :
                   begin
                     if Mensagem = '' then
                        Mensagem := 'CONFIRMA ?';

                     Resposta := ifThen( (DoExibeMsg( opmYesNo, Mensagem ) = mrYes), '0', '1' ) ;
                     {Digitado := ( Resposta <> '1') ;}

                     fCancelado:=False;
                   end ;

 

 

 

//Cabei de ser homologado na Certified CIELO e com Cielo Premia

tive que fazer alguma modificacoes mais tudo ok.

 

fazer com que o dinheiro sempre seja imprimirdo por ultimo na impressora fiscal

desabilitei eta funcao

opeImprimePagamentos :

 

 

 

procedure TForm1TEFD.ACBrTEFD1ComandaECF(Operacao : TACBrTEFDOperacaoECF;
   Resp : TACBrTEFDResp; var RetornoECF : Integer );
Var
   Est : TACBrECFEstado ;
   P   : Integer;
   Linha, CodFPG : String ;
   ValorFPG : Double ;
begin
  Memo1.Lines.Add('ComandaECF: '+GetEnumName( TypeInfo(TACBrTEFDOperacaoECF), integer(Operacao) ));


  try
    Est := Form1_ACBrECF.ACBrECF1.Estado;

    case Operacao of
      opeAbreGerencial :
         Form1_ACBrECF.ACBrECF1.AbreRelatorioGerencial;

      opeCancelaCupom :
         if Est = estNaoFiscal then
         begin
            Form1_ACBrECF.ACBrECF1.CancelaNaoFiscal;
         end else
         begin
           Form1_ACBrECF.ACBrECF1.CancelaCupom;//2
           Form_PDV.Cancelar_Cupom_REGISTROS_TefFim(-1);
         end;


      opeFechaCupom :
         if Est = estNaoFiscal then
            Form1_ACBrECF.ACBrECF1.FechaNaoFiscal('') //'Projeto ACBr|http://acbr.sf.net'
         else
         begin
            Form_PDV.Finalizar_ACBrECF_Memo;
            Form1_ACBrECF.ACBrECF1.FechaCupom( Form_PDV.DBMemo2.Text);   //'Projeto ACBr|http://acbr.sf.net'
         end;


      opeSubTotalizaCupom :
         if Est = estNaoFiscal then
            Form1_ACBrECF.ACBrECF1.SubtotalizaNaoFiscal( 0, '' )  //'Projeto ACBr|http://acbr.sf.net'
         else
            Form1_ACBrECF.ACBrECF1.SubtotalizaCupom( 0, '' );  //'Projeto ACBr|http://acbr.sf.net'

      opeFechaGerencial, opeFechaVinculado :
        Form1_ACBrECF.ACBrECF1.FechaRelatorio ;

      opePulaLinhas :
        begin
          Form1_ACBrECF.ACBrECF1.PulaLinhas( Form1_ACBrECF.ACBrECF1.LinhasEntreCupons );
          Form1_ACBrECF.ACBrECF1.CortaPapel( True );
          //Sleep(200);
        end;

      opeImprimePagamentos :
        begin
          {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 );
                ShowMessage(CodFPG+' - '+FloatToStr(ValorFPG));
                if (CodFPG <> '') and (ValorFPG > 0) then
                   Form1_ACBrECF.ACBrECF1.EfetuaPagamento( CodFPG, ValorFPG );
             end;
             mPagamentos.Lines.Delete(0);
          end; }
        end;
    end;

    RetornoECF := 1 ;
  except
    RetornoECF := 0 ;
  end;
end;

 

 

 

//E COLOQUEI AQUI

                      'P' :
                        begin
                          if not AutoEfetuarPagamento then

 

 

 

 

procedure TACBrTEFD.FinalizarCupom(DesbloquearMouseTecladoNoTermino: Boolean);
Var
  I, J, Ordem : Integer;
  Est, EstNaoFiscal  : AnsiChar;
  ImpressaoOk : Boolean ;
  GrupoFPG    : TACBrTEFDArrayGrupoRespostasPendentes ;


   P   : Integer;
   Linha, CodFPG : String ;
   ValorFPG : Double ;

begin
  ImpressaoOk := False ;
  fTefClass.GravaLog( 'FinalizarCupom'+IfThen(DesbloquearMouseTecladoNoTermino,
                      ', DesbloquearMouseTecladoNoTermino','') ) ;

  try
     while not ImpressaoOk do
     begin
        try
           BloquearMouseTeclado( True );

           try
              EstNaoFiscal := 'N';
              Est          := EstadoECF;
              while Est <> 'L' do
              begin
                 // É não fiscal ? Se SIM, vamos passar por todas as fases...
                 if Est = 'N' then
                 begin
                    case EstNaoFiscal of
                      'N' : EstNaoFiscal := 'V' ;
                      'V' : EstNaoFiscal := 'P' ;
                      'P' : EstNaoFiscal := 'N' ;
                    end ;

                    Est := EstNaoFiscal ;
                 end ;

                 try
                    Case Est of
                      'V' : ECFSubtotaliza( RespostasPendentes.TotalDesconto );

                      'P' :
                        begin
                          if not AutoEfetuarPagamento then
                          begin
                             //FORMAS TEF
                             GrupoFPG := nil ;
                             AgruparRespostasPendentes( GrupoFPG );
                             Ordem := 0 ;

                             For I := 0 to Length( GrupoFPG )-1 do
                             begin
                                if GrupoFPG.OrdemPagamento = 0 then
                                 begin
                                   Inc( Ordem ) ;

                                   if InfoECFAsDouble(ineSubTotal) > 0 then
                                      ECFPagamento( GrupoFPG.IndiceFPG_ECF, GrupoFPG.Total );

                                   For J := 0 to RespostasPendentes.Count-1 do
                                      if RespostasPendentes[J].IndiceFPG_ECF = GrupoFPG.IndiceFPG_ECF then
                                      begin
                                        if (RespostasPendentes[J].Header = 'CHQ') and CHQEmGerencial then
                                         begin
                                           RespostasPendentes[J].OrdemPagamento := 999;
                                           Dec( Ordem ) ;
                                         end
                                        else
                                           RespostasPendentes[J].OrdemPagamento := Ordem;
                                      end;
                                 end
                                else
                                   Ordem := GrupoFPG.OrdemPagamento ;
                             end;



                              if vTEFDjaExPag<>1 then
                              begin
                              //////////////////////////////////////
                              //FORMA NAO TEF
                              while Form1TEFD.mPagamentos.Lines.Count > 0 do
                              begin
                                 Linha := Form1TEFD.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
                                    begin
                                       //Form1_ACBrECF.ACBrECF1.EfetuaPagamento( CodFPG, ValorFPG );
                                       //ShowMessage('desligue a impressora');
                                       vTEFDjaExPag:=1;
                                       ECFPagamento( CodFPG, ValorFPG );
                                    end;
                                 end;
                                 Form1TEFD.mPagamentos.Lines.Delete(0);
                              end;
                              //////////////////////////////////////
                              end;


                          end;

Editado por hetoandrade
×
×
  • 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.

The popup will be closed in 10 segundos...