Ir para conteúdo
  • Cadastre-se

dev botao

Erro De Índice De Bitmap No Ecf Daruma


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

Recommended Posts

  • Membros Pro

Bom dia pessoal, estamos com um problema na implantação do nosso sistema em um dos nossos clientes, utilizando a Daruma MACH 1.

 

Quando vai ser efetuado a impressão de um comprovante não-fiscal referente a recebimento é lançado a exceção:

procedure TACBrECFDaruma.VerificarBmpTexto(var IndiceBMP: Integer; const ATexto: String);
begin
//20140327 - Comentado para fazer testes pois não estava conseguindo imprimir COMPROVANTE NÃO FISCAL com indice maior que 05 - INICIO
  if IndiceBMP > 5 then
     raise EACBrECFERRO.Create( ACBrStr('Indice do bitmap deve ser um valor entre 1 e 5, ou 0 para nenhum.') );
//20140327 - Comentado para fazer testes pois não estava conseguindo imprimir COMPROVANTE NÃO FISCAL com indice maior que 05 - TERMINO

  // Se possui código de barras e Bitmap no texto remover o bitmap,
  // porque a Daruma imprime um em cima do outro
  if TACBrECF(fpOwner).ECF.PossuiTagCodBarra(ATexto) and (IndiceBMP > 0) then
    IndiceBMP := 0;
end;

Analisando o código o problema se refere a essa procedure acima. Na leitura X desse ECF no cliente, o totalizador não-fiscal de recebimento é 7.

 

Gostaria que vocês na medida do possível me informasse o que seria esse IndiceBMP que foi tratado para lançar exceção no source da ACBr. Comentamos esse 'raise' e fizemos um teste rápido e passou a imprimir normalmente, mas estamos inseguros se não vai dar problema em outras situações ou no futuro.

 

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Como está a sua chamada do Comando ?

 

Acho que você está chamando o comando de forma errada... IndiceBMP é a imagem que deve ser impressa no rodapé do comprovante... e o ECF consegue armazenar apenas 5

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.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Daniel. No source onde está ocorrendo o problema temos o seguinte protótipo:

function TdmVenda.OperacaoNaoFiscal(IdFpg, IdTurno, Valor : Currency; TipoCupom, Fator : Integer; Observ, SeqFpg: String) : Boolean;

Ela é chamada na parte de recebimento do sistema da seguinte forma:

if dmVenda.OperacaoNaoFiscal(IdRecEasy, dm.cdsTurnoAbertoIDTURNO.AsCurrency, Nominal, 5, 1, Observ, SeqFpg) then (...)

Na procedure acima, a parte de impressão no ECF é:

        //Imprimindo comprovante NÃO FISCAL no ECF
        if (TipoCupom = 2) then //Sangria
           ecf.AcbrEcf.Sangria(Valor, Observ)
        else if (TipoCupom = 3) then //Suprimento
           ecf.AcbrEcf.Suprimento(Valor, Observ)
        else if (TipoCupom = 4) then //Pagamento
        begin
           Indice := ecf.BuscarIndiceComprovNaoFiscal(3);
           ecf.AcbrEcf.NaoFiscalCompleto(LZPad(IntToStr(Indice), 2), Valor, SeqFpg, Observ, Indice)
        end
        else if (TipoCupom = 5) then //Recebimento
        begin
           Indice := ecf.BuscarIndiceComprovNaoFiscal(4);
           ecf.AcbrEcf.NaoFiscalCompleto(LZPad(IntToStr(Indice), 2), Valor, SeqFpg, Observ, Indice);
        end;

A variável TipoCupom pode assumir um dos seguintes valores:

// Tipos:
// 1 - Venda
// 2 - Sangria
// 3 - Suprimento
// 4 - Outros Pagamentos
// 5 - Outros Recebimentos

No source:

Indice := ecf.BuscarIndiceComprovNaoFiscal(4);

Enviamos (4) que no nosso banco representa o totalizador não-fiscal de recebimento e a procedure retorna o índice do ECF correspondente ao mesmo. Existe um form para fazermos essa associação.

 

Estamos tentando obter junto ao cliente o log da ACBr para postarmos aqui também.

Link para o comentário
Compartilhar em outros sites

  • Fundadores
  • Solution

Mude para:

ecf.AcbrEcf.NaoFiscalCompleto(LZPad(IntToStr(Indice), 2), Valor, SeqFpg, Observ);

( Não informe o último parâmetro... pois ele não é igual ao primeiro)

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.

Link para o comentário
Compartilhar em outros sites

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