Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Estou tendo problemas com as impressoras FiscNet quando é utilizado o comando IdentificaPAF na inicialização do sistema. Ao emitir a Sangria, o sistema dá erro na parte do fechamento do cupom não fiscal, mesmo executando o IdentificaPAF('', ''); o ACBr tenta enviar um #$A para o rodapé do cupom não fiscal.

Alguém saberia me dizer o que está acontecendo, se o problema é do meu ECF ou se realmente a Sangria não aceita rodapé na FiscNet?

Obs: Depurando e setando o conteúdo da variável para vazio a sangria é realizada.

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Membros Pro
Postado

Ninguém teve esse problema? Gostaria que alguém que utilize IdentificaPAF e Sangria na FiscNet postasse um parecer sobre o assunto. Será que somente eu estou tendo esse problema?

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Membros Pro
Postado

O ACBr está utilizando o comando ImprimeTexto para a impressão do rodapé da Sangria, isso está ocasionando erro. O correto é utilizar o parâmetro TextoPromocional do comando EncerraDocumento.

Gostaria de saber se é possível fazerem essa alteração.

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • Consultores
Postado

Você pode anexar aí as alterações sugeridas?

[]'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.
Postado

Esse é o Código Antigo


procedure TACBrECFFiscNET.FechaCupom(Observacao: AnsiString; IndiceBMP : Integer);

var

  Obs: AnsiString;

begin

  Obs := Observacao ;


  if not Consumidor.Enviado then

  begin

     { Removendo o Consumidor da Observação, pois vai usar comando próprio }

     Obs := StringReplace(Obs,#10+'CPF/CNPJ consumidor: '+Consumidor.Documento,'',[]) ;

     Obs := StringReplace(Obs,#10+'Nome: '+Consumidor.Nome,'',[]) ;

     Obs := StringReplace(Obs,#10+'Endereco: '+Consumidor.Endereco,'',[]) ;

     try

        { Se tiver Observações no rodape, deve enviar antes do consumidor }

        if Obs <> '' then

        begin

          FiscNETComando.NomeComando := 'ImprimeTexto' ;

          FiscNETComando.AddParamString('TextoLivre',Obs);

          EnviaComando ;

        end ;


        FiscNETComando.NomeComando := 'IdentificaConsumidor' ;

        FiscNETComando.AddParamString('IdConsumidor',LeftStr(Consumidor.Documento,29)) ;

        if Consumidor.Nome <> '' then

           FiscNETComando.AddParamString('NomeConsumidor',LeftStr(Consumidor.Nome,30)) ;

        if Consumidor.Nome <> '' then

           FiscNETComando.AddParamString('EnderecoConsumidor',LeftStr(Consumidor.Endereco,80)) ;

        EnviaComando ;

        Consumidor.Enviado := True ;

     except

//        Obs := Observacao ;

     end ;

  end ;


     { Tem PAF ? }     { PAF ainda não está na Obs ?}

  if (fsPAF <> '') and (pos(fsPAF,Obs) = 0) then

     if Obs = '' then

        Obs := fsPAF

     else 

        Obs := fsPAF + #10 + Obs ;


  if (Obs <> '') then

  begin

     FiscNETComando.NomeComando := 'ImprimeTexto' ;

     FiscNETComando.AddParamString('TextoLivre',Obs);

     EnviaComando ;

  end else


  FiscNETComando.NomeComando := 'EncerraDocumento' ;

  FiscNETComando.TimeOut     := 5 ;

  FiscNETComando.AddParamString('Operador',Operador) ;

  EnviaComando ;


  fsEmPagamento := false ;

end;

Com as devidas Alterações ficou Assim
procedure TACBrECFFiscNET.FechaCupom(Observacao: AnsiString; IndiceBMP : Integer);

var

  Obs: AnsiString;

begin

  Obs := Observacao ;


  if not Consumidor.Enviado then

  begin

     { Removendo o Consumidor da Observação, pois vai usar comando próprio }

     Obs := StringReplace(Obs,#10+'CPF/CNPJ consumidor: '+Consumidor.Documento,'',[]) ;

     Obs := StringReplace(Obs,#10+'Nome: '+Consumidor.Nome,'',[]) ;

     Obs := StringReplace(Obs,#10+'Endereco: '+Consumidor.Endereco,'',[]) ;

     try

        { Se tiver Observações no rodape, deve enviar antes do consumidor }

        if Obs <> '' then

        begin

          FiscNETComando.NomeComando := 'EncerraDocumento' ;

          FiscNETComando.AddParamString('TextoPromocional',Obs);

          EnviaComando ;

        end ;


        FiscNETComando.NomeComando := 'IdentificaConsumidor' ;

        FiscNETComando.AddParamString('IdConsumidor',LeftStr(Consumidor.Documento,29)) ;

        if Consumidor.Nome <> '' then

           FiscNETComando.AddParamString('NomeConsumidor',LeftStr(Consumidor.Nome,30)) ;

        if Consumidor.Nome <> '' then

           FiscNETComando.AddParamString('EnderecoConsumidor',LeftStr(Consumidor.Endereco,80)) ;

        EnviaComando ;

        Consumidor.Enviado := True ;

     except

//        Obs := Observacao ;

     end ;

  end ;


     { Tem PAF ? }     { PAF ainda não está na Obs ?}

  if (fsPAF <> '') and (pos(fsPAF,Obs) = 0) then

     if Obs = '' then

        Obs := fsPAF

     else 

        Obs := fsPAF + #10 + Obs ;


  if (Obs <> '') then

  begin

     FiscNETComando.NomeComando := 'EncerraDocumento' ;

     FiscNETComando.AddParamString('TextoPromocional',Obs);

     EnviaComando ;

  end else

  begin

    FiscNETComando.NomeComando := 'EncerraDocumento' ;

    FiscNETComando.TimeOut     := 5 ;

    FiscNETComando.AddParamString('Operador',Operador) ;

    EnviaComando ;

  end;


  fsEmPagamento := false ;

end;

  • Membros Pro
Postado
procedure TACBrECFFiscNET.FechaCupom(Observacao: AnsiString; IndiceBMP : Integer);

var

  Obs: AnsiString;

begin

  Obs := Observacao ;


  if not Consumidor.Enviado then

  begin

     { Removendo o Consumidor da Observação, pois vai usar comando próprio }

     Obs := StringReplace(Obs,#10+'CPF/CNPJ consumidor: '+Consumidor.Documento,'',[]) ;

     Obs := StringReplace(Obs,#10+'Nome: '+Consumidor.Nome,'',[]) ;

     Obs := StringReplace(Obs,#10+'Endereco: '+Consumidor.Endereco,'',[]) ;

     try

        { Se tiver Observações no rodape, deve enviar antes do consumidor }

        if Obs <> '' then

        begin

          FiscNETComando.NomeComando := 'EncerraDocumento' ;

          FiscNETComando.AddParamString('TextoPromocional',Obs);

          EnviaComando ;

        end ;


        FiscNETComando.NomeComando := 'IdentificaConsumidor' ;

        FiscNETComando.AddParamString('IdConsumidor',LeftStr(Consumidor.Documento,29)) ;

        if Consumidor.Nome <> '' then

           FiscNETComando.AddParamString('NomeConsumidor',LeftStr(Consumidor.Nome,30)) ;

        if Consumidor.Nome <> '' then

           FiscNETComando.AddParamString('EnderecoConsumidor',LeftStr(Consumidor.Endereco,80)) ;

        EnviaComando ;

        Consumidor.Enviado := True ;

     except

//        Obs := Observacao ;

     end ;

  end ;


     { Tem PAF ? }     { PAF ainda não está na Obs ?}

  if (fsPAF <> '') and (pos(fsPAF,Obs) = 0) then

     if Obs = '' then

        Obs := fsPAF

     else

        Obs := fsPAF + #10 + Obs ;


  FiscNETComando.NomeComando := 'EncerraDocumento' ; 

  if (Obs <> '') then 

     FiscNETComando.AddParamString('TextoPromocional',Obs); 

  FiscNETComando.TimeOut     := 5 ; 

  FiscNETComando.AddParamString('Operador',Operador) ; 

  EnviaComando ; 


  fsEmPagamento := false ;

end;

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • 4 semanas depois ...
  • Fundadores
Postado

Lembro que já mudei isso uma vez.. justamente por não funcionar em algumas situações...

Observe que esse método não é usado apenas na Sangria, mas tb no fechamento de cupom...

A modificação sugerida é compatível com todas as rotinas que chamam esse método ?

Veja como era na revisão: 1890

http://acbr.svn.sourceforge.net/viewvc/ ... threv=1890

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

A questão Daniel, é se foi testado essa modificação após a alteração 1890 para Sangria com IdentificaPAF. Pois do jeito que está hoje, não funciona, funciona somente a Sangria se não tiver sido executado o IdentificaPAF. Agora, com a versão 1890 funciona todos os comandos.

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

  • 2 semanas depois ...
  • Fundadores
Postado

Por favor me envie o LOG onde o erro ocorria...

Estou modificando a Unit para que ela seja esperta o suficiente para tentar as duas formas, caso uma delas falhe:


try
FiscNETComando.NomeComando := 'EncerraDocumento' ;
if (Obs '') then
FiscNETComando.AddParamString('TextoPromocional',Obs);
FiscNETComando.TimeOut := 5 ;
FiscNETComando.AddParamString('Operador',Operador) ;
EnviaComando ;

except
on E : Exception do
begin
if (pos('ErroProtSequenciaComando',E.Message) 0) then
begin
if (Obs '') then
begin
FiscNETComando.NomeComando := 'ImprimeTexto' ;
FiscNETComando.AddParamString('TextoLivre',Obs);
EnviaComando ;
end ;

FiscNETComando.NomeComando := 'EncerraDocumento' ;
FiscNETComando.TimeOut := 5 ;
FiscNETComando.AddParamString('Operador',Operador) ;
EnviaComando ;
end ;
end ;
end ;
[/code]

Eu preciso saber qual é exatamente a mensagem de erro que será disparada na sua situação, para possivelmente substituir a expressão "ErroProtSequenciaComando" no código acima.

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á 4804 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.