Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde!

Já faz uns 4 dias que um cliente me relata que não consegue emitir a redução z pelo sistema.

Olhando os logs notei que o retorno da impressora ao tentar emitir o z é o seguinte:

Categoria: 13-Relógio
Motivo: 3-Relógio com data/hora anterior ao último documento gravado na MFD.

Enquanto não pude analisar o problema com calma, emiti o z pelo programa da própria epson.

Hoje com tempo, atualizei os fontes (trunk2) para última versão e fiz o teste com o ECFTeste obtendo o mesmo retorno.

Como esse problema só foi relatado por esse cliente, desconfiei que fosse algo da impressora e entrei em contato com a epson.

Informei do acontecido e expliquei pro suporte que utilizava comunicação direta, driver para porta COM e o ACBr.

Pra minha surpresa, o suporte da epson me pediu para análise o log do ACBr mesmo, e percebeu que ao enviar o comando de redução z, tanto com a data/hora, como sem data/hora o retorno era o mesmo.

A diferença era que, ao emitir o z sem data/hora, automaticamente era enviada a data e hora 30/12/1899, o que segundo ele ocasiona o erro.

Ele me pediu para enviar o comando de redução z sem parâmetro algum.

Para fazer o teste, comentei as linhas no fonte (destacado abaixo) para enviar o comando sem parâmetro.

Dessa forma funcionou.

Questionei ele se era pra enviar sempre sem data/hora, e ele me informou que sim.

Vi que ali tem a chamada recursiva, para caso falhe o envio com data/hora, a tentativa seja feita sem data e hora, mas essa solução nesse caso não funcionou.

Como o cliente está usando a impressora agora, não tenho como depurar para ver o motivo da não chamada do método recursivo.

Vou aguardar até amanhã para fazer isso e tentar identificar onde ocorre o problema.

Em anexo segue o log gerado pelo ECFTeste.

procedure TACBrECFEscECF.ReducaoZ(DataHora : TDateTime) ;
begin
  if DataHora = 0 then  { Aparentemente a DataHora é obrigatória na EscECF }
     DataHora := now ;

  EscECFComando.CMD := 21;
  //if DataHora = -1 then  { Sem Data e Hora }
  //begin

     EscECFComando.AddParamString('');   // Sem Data
     EscECFComando.AddParamString('');   // Sem Hora
  //end
  //else
  //begin
    //EscECFComando.AddParamDateTime(DataHora, 'D' );
    //EscECFComando.AddParamDateTime(DataHora, 'H' );
  //end;


  EscECFComando.AddParamInteger(0); // Imprime no ECF

  try
     EnviaComando ;
     Sleep(800);  // intervalo para ECF ficar operacional...

     RespostasComando.Clear;
     SalvaRespostasMemoria(True);
  except
     on E : Exception do
     begin
        // Woraround para Epson, para Erro de data na Redução Z
        if IsEpson and (EscECFResposta.CAT = 16) and (EscECFResposta.RET.ECF = 3) then
         begin
           ReducaoZ(-1);
         end
        else if (pos('5-1',E.Message) <> 0) then    // Comando inválido para o documento atual.
         begin                                      //  Ficou algum Cupom aberto ?
           // Cancelando o Cupom em aberto
           EscECFComando.CMD := 31;
           EnviaComando;

           ReducaoZ(DataHora);
         end 
        else
           raise ;
     end ;
  end ;
end;

 

 

 

 

 

 

 

 

 

acbrlog2.txt

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

  • Fundadores
Postado

Apliquei correções nos fontes do SVN, que devem resolver esse problema...

-- ACBrECFEscECF --     (por: DSA)
[-] Ajuste para não enviar a Data e Hora do PC quando parâmetro DataHora informado for 0                                                             

  • Curtir 2
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.

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