Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado (editado)

Bom dia pessoal,

    Estamos com uma dúvida em relação ao COO inicial retornado pelo ECF. O nosso sistema, no método do ACBrECF, antes da emissão da redução Z, grava no banco de dados as informações do anexo banco_dados.png.

    Para gravar os campos COOINICIAL e COOFINAL(Colunas da tabela acima), utilizamos:

ecf.ACBrECF.DadosReducaoZ; //DadosReducaoStr := ecf.ACBrECF.DadosUltimaReducaoZ;
ReducaoZAtual := ecf.ACBrECF.DadosReducaoZClass;

COOInicial := ReducaoZAtual.NumeroCOOInicial;
COOFinal   := ecf.Acbrecf.NumCOO;

    Para gravar no banco de dados, enviamos:

StrToCurr(COOInicial)
StrToCurr(COOFinal) + 1 //Adicionamos +1 aqui para contar o COO da própria redução Z que será emitida em seguida

    No entanto, ao analisarmos os dados do banco de dados acima e o espelho do ECF do dia 22/07 e 23/07(Espelho.TXT), conforme em anexo, temos:

+ Dia 22/07:
- COO FINAL: 019207
+ Dia 23/07:
- COO INICIAL: 019208

    A dúvida seria a seguinte: O COO Inicial do dia 23/07 não seria 019208 ao invés de 019206? Uma vez que o 019206 seria um relatório gerencial emitido no dia 22/07 as 14:31:41 hrs ?

Espelho.TXT

banco_dados.png

Editado por Intelliware
Inserção de mais informações
  • Fundadores
Postado

Sua analise parece correta... Veja no Log do ACBrECF o que foi retornado pelo ECF, quando foi questionado o valor do COOInicial  ( RetCmd := RetornaInfoECF( '72' )  )

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 (editado)

Daniel, boa tarde. Não temos uma MP-4000 aqui na empresa, sendo que os dados acima obtivemos direto em cliente.

    Efetuei um debug utilizando a MP-2100, não sei se daria o mesmo resultado. Se precisar posso tentar efetuar um teste direto no cliente.

    Na MP-2100 efetuei um teste analisando os dados da redução Z atual, ainda a ser retirada no final do dia de hoje(29/07). Chamei a procedure abaixo no Delphi:

procedure TMainForm.bTesteZClick(Sender: TObject);
var
  COOInicial, COOFinal : string;
  ReducaoZAtual : TACBrECFDadosRZ;
begin
  try
    ecf.ACBrECF.DadosReducaoZ; 
    ReducaoZAtual := ecf.ACBrECF.DadosReducaoZClass;
    //
    COOInicial := ReducaoZAtual.NumeroCOOInicial;
    COOFinal   := ecf.Acbrecf.NumCOO;
    //
    IW_MessageDlg('COO INICIAL: ' + COOInicial + sLineBreak +
                  'COO FINAL: '   + COOFinal, mtWarning, [mbOK], 0);
  except
    on E:Exception do
    begin
      IW_MessageDlg('ERRO: ' + E.Message, mtWarning, [mbOK], 0);
    end;
  end;
end;

    Em debug, na function TACBrECFBematech.GetNumCOOInicial: String; obtive o seguinte resultado:

RetCmd         = '008567008569'
NumUltCOORzAnt = 8569
NumUltCOORzAnt = 8571

    Mas se tirarmos o espelho da data de hoje(29/07), o primeiro COO do dia é o 008584 que se refere a uma redução Z. O COO 008571 é uma leitura X de ontem(28/07) e o COO 008569 é o primeiro cupom fiscal não cancelado do dia(28/07) emitido pelo ECF.

log-ecf.TXT

Editado por Intelliware
Anexar log
  • Membros Pro
Postado

Daniel, estava verificando aqui no Manual do Usuário da MP-2100 Revisão 1.5 página 59, a variável '72' é descrita como:

COO do primeiro e do ultimo cupom fiscal da Redução Z 

6 Bytes 

BCD (12 dígitos) do dia anterior 6 primeiros dígitos ref. COO do
primeiro cupom e 6 últimos ref. COO do último cupom

    Será então que a mesma não pode ser utilizada com a função da ACBr:

ecf.ACBrECF.DadosReducaoZ; 
ReducaoZAtual := ecf.ACBrECF.DadosReducaoZClass;

    Que obtêm os dados da redução Z atual, ou seja, ainda a ser impressa?

  • Fundadores
Postado

ACBrECF.DadosREduçãoZ irá chamar a TACBrECFBematech.GetNumCOOInicial que já usa o 72... Parece que o ECF está retornando dados inválidos... (isso teria que ser questionado no suporte do fabricante)

No meu PDV, tenho uma rotina que "valida" o NumCOOInicial retornado pelo ECF... isso porque em alguns modelos de impressora simplesmente não retornam ele...

Em, suma, eu verifico se o NumCOOInicial é maior do que o COO da última ReduçãoZ gravada no BD...

 

  • Curtir 1
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á 3403 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.