Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia

depois que atualizei o ACBr não consigo mais concluir uma venda

Quando executo a finalização do cupom ele entra na rotina abaixo de "FinalizarCupom) e fica em um loop infinito, em todos os "For"

procedure TACBrTEFD.FinalizarCupom;

Var

I, J, Ordem : Integer;

Est, EstNaoFiscal : AnsiChar;

ImpressaoOk : Boolean ;

GrupoFPG : TACBrTEFDArrayGrupoRespostasPendentes ;

begin

ImpressaoOk := False ;

fTefClass.GravaLog( 'FinalizarCupom ') ;

try

while not ImpressaoOk do ( este estado nunca muda)

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

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;

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 ;

'N' : // Usado apenas no Fechamento de NaoFiscal

begin

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 ;

else

raise Exception.Create(

ACBrStr('ECF deve estar em Venda ou Pagamento'));

end;

except

{ A condição abaixo, será True se não for Cupom Nao Fiscal,

ou se já tentou todas as fases do Cupom Nao Fiscal

(SubTotaliza, Pagamento, Fechamento)...

Se for NaoFiscal não deve disparar uma exceção até ter

tentado todas as fases descritas acima, pois o ACBrECF

não é capaz de detectar com precisão a fase atual do

Cupom Não Fiscal (poucos ECFs possuem flags para isso) }

if EstNaoFiscal = 'N' then

raise ;

end ;

Est := EstadoECF;

end;

ImpressaoOk := True ;

finally

BloquearMouseTeclado( False );

end;

except

on EACBrTEFDECF do ImpressaoOk := False ;

else

raise ;

end;

if not ImpressaoOk then

begin

if DoExibeMsg( opmYesNo, CACBrTEFD_Erro_ECFNaoResponde ) <> mrYes then

begin

try ComandarECF(opeCancelaCupom); except {Exceção Muda} end ;

break ;

end;

end;

end;

finally

if not ImpressaoOk then

CancelarTransacoesPendentes;

end;

end;

  • Consultores
Postado

E o que deveria ser feito?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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.
  • 4 semanas depois ...
  • Este tópico foi criado há 4421 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.