Ir para conteúdo
  • Cadastre-se

dev botao

Problema Para Imprimir Serviço Com Aliquota Na Impressora Bematech


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

Recommended Posts

Olá, 

 

Uso a ECF Bematech MP-25-FI 

 

 

Quando peço para imprimir Serviço com alíquota de ISSQN não consegue imprimir, 

 

Quanto o ISSQN é isento ou não tributado funciona perfeitamente, o problema é só quando tem alíquota

A alíquota utilizada esta cadastrada.

 

Eu sou novo no projeto ACBr e ainda não tenho permissões para efetuar commit.

 

Quem puder dar essa força de verificar e  aplicar a devida correção, agradeço.

 

ACBrECFBematech.pas

Verificando o código encontrei o problema.

 

 

Unit ACBrECFBematech 

arquivo fisico: \ACBr\Fontes\ACBrSerial\ACBrECFBematech.pas

Método: function TACBrECFBematech.AchaICMSAliquota( var AliquotaICMS: String):   TACBrECFAliquota;

quando é serviço e tem aliquota, retorna S1 ou S0 e deve retornar o índice da alíquota.
 
Linha com Bug
//    'S' : AliquotaStr  := PadL( AliquotaICMS, 2, 'N') ;  { SN, SF, SI }
 
Sugestão de correção
    'S' : if (Length(AliquotaICMS) > 1) and (AliquotaICMS[2] in ['N', 'F', 'I']) then
            AliquotaStr := padL(AliquotaICMS, 2, 'N')
          else
            AliquotaStr := padR(copy(AliquotaICMS,2,2),2,'0') ; {Indice}
 
 
 
=======================================
Metodo completo para melhor visualização 
=====================================
 
function TACBrECFBematech.AchaICMSAliquota( var AliquotaICMS: String):
   TACBrECFAliquota;
  Var AliquotaStr : String ;
begin
  Result      := nil ;
  AliquotaStr := ''  ;
 
  AliquotaICMS := UpperCase( Trim( AliquotaICMS ) ) ;
  case AliquotaICMS[1] of
    'I' : AliquotaStr  := 'II' ;
    'N' : AliquotaStr  := 'NN' ;
    'F' : AliquotaStr  := 'FF' ;
    'T' : AliquotaICMS := 'T'+padR(copy(AliquotaICMS,2,2),2,'0') ; {Indice}
//    'S' : AliquotaStr  := PadL( AliquotaICMS, 2, 'N') ;  { SN, SF, SI }              // código anterior que deve ser melhorado.
    'S' : if (Length(AliquotaICMS) > 1) and (AliquotaICMS[2] in ['N', 'F', 'I']) then  // sugestão do novo código.
            AliquotaStr := padL(AliquotaICMS, 2, 'N')
          else
            AliquotaStr := padR(copy(AliquotaICMS,2,2),2,'0') ; {Indice}
 
  end;
 
  if AliquotaStr = '' then
     Result := inherited AchaICMSAliquota( AliquotaICMS )
  else
     AliquotaICMS := AliquotaStr ;
end;
================================
 
 
em anexo a unit completa.
 
Link para o comentário
Compartilhar em outros sites

Vamos avaliar sua implementação, e se não houver algum imprevisto subiremos, obrigado por sua contribuição.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Continuo sem compreender a necessidade da modificação....

 

Qual foi o problema enfrentado ?

Qual comando você enviou ?

Qual a mensagem de erro ?

Qual é o LOG gerado pelo ACBrECF ?

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

Olá Daniel, 

 

Respondendo as perguntas.

 

 

Qual foi o problema enfrentado ?

Preciso imprimir Serviço com Alíquota e não imprime, ocorre erro informando que não existe a alíquota S0 (ou S1) depende do índice que esta cadastrada a alíquota de ICMS.

Quando peço pra imprimir um serviço (ISSQN) com isenção de tributação (SI), não tributado (SN) ou substituição tributária (SF) funciona normalmente.

Proposta é se existir alíquota para Serviço (ISSQN) as variáveis sejam alimentas com o indices e NÃO S0 ou S1;

 

 

Qual comando você enviou ?

VendeItem(.... ) - depurando. chegou a classe: TACBrECFBematech.VendeItem

Codigo do Produto=1
Descricao=DESPESAS COM DIARIAS
Quantidade=12
Valor Unitario=1
Valor Acrescimo=0
Valor Desconto=0
% Desconto=0
% Acrescimo=0
Aliquota=17
Totalizador=FS1
Unidade de Medida=UN
Valor Unitario Final=1
 

Qual a mensagem de erro ?

(não recordo bem se era Alíquota não cadastrada ou Alíquota não encontrada): S0   ou S1 (dependendo da alíquota)

* A alíquota de 17% e 12 % ocorre erro  (ambas estão cadastradas no ECF).

Depurando a rotina e ela retorna a variável tem a letra S + índice da alíquota {S01, S02, S03, ... S15}

Logo, quando existe alíquota a variável/parâmetro deveria ser alimentada com o índice {01, 02, 03.. 15} 

e com a codificação original variável/parâmetro é alimentada com S0 ou , S1)

 

Qual é o LOG gerado pelo ACBrECF ?

Não consultei o log.

 

 

 

 

Desde já agradeço a atenção, 

 

Atenciosamente, 

 

Ricardo Pires

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Sem o LOG não dá pra analisar...

 

Você não consegue reproduzir o problema usando o ECFTeste e o emulador da Bematech ?

 

Isso lhe daria a chance de prover um LOG

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

  • 4 semanas depois ...

Olá Daniel Simões,

 

Conforme solicitado, em anexo encontra-se o log gerado pelo ECFTeste (de 01/04/2014) usando o simulador Bematech.

 

Quando peço pra imprimir um item passando como alíquota S01, não tenho o resultado esperado, o método exposto anteriormente não encontra a alíquota.

 

----

No simulador tenho cadastrado as aliquotas:

Aliquota: 01 Indice: 01 -> 18 Tipo: T
Aliquota: 02 Indice: 02 -> 18 Tipo: T
Aliquota: 03 Indice: 03 -> 17 Tipo: T
Aliquota: 04 Indice: 04 -> 17 Tipo: T
Aliquota: 05 Indice: 05 -> 2 Tipo: S
Aliquota: 06 Indice: 06 -> 3 Tipo: T
Aliquota: 07 Indice: 07 -> 3 Tipo: T
Aliquota: 08 Indice: 08 -> 3 Tipo: S
Aliquota: 09 Indice: 09 -> 3 Tipo: S
 

=====

 

Colco-me a disposição para eventuais dúvidas, 

 

Espero poder sempre contribuir para este precioso projeto.

 

 

 

acbrlog.txt

acbrlog.txt

Link para o comentário
Compartilhar em outros sites

  • Consultores

Me pareceu que no arquivo anexado não dá pra ver o ACBrECF listando as alíquotas e suas descrições...

[]'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.
Link para o comentário
Compartilhar em outros sites

  • Fundadores

A sintaxe "S01" não é válida para informar uma alíquota...

 

cAliquotaICMS - Texto com a representação da Alíquota do ICMS.

- As alíquotas podem ser informadas em Valor (mesmo sendo texto). Exemplos: "18", "2.46".

- Se no ECF existem alíquotas iguais para ICMS e ISS, use o sufixo "T" para informar que a alíquota é do ICMS ou "S" para alíquotas do ISS. Exemplo: "18T" = alíquota de 18% do ICMS; "2.5S" alíquota de 2,5% do ISS

- As alíquotas podem ser informadas em índice, de acordo com a Tabela de alíquotas do ECF, nesse caso use a letra "T", seguida da posição da Alíquota: Exemplo: "T01", "T10"

- Existem alíquotas internas do ECF para tratar produtos Isentos, nesse caso use: "FF" para Substituição Tributária, "NN" = Não incidência ou "II" = Isento

 

http://acbr.sourceforge.net/ACBrMonitor/ACBrMonitor.html

 

Você precisaria usar T05 (quinto Totalizador) ou 02S   2% e ISS

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