Ir para conteúdo
  • Cadastre-se

dev botao

Bloco X e desconto/acréscimo proporcional sobre itens


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

Recommended Posts

Bom dia pessoal.

 

É normal acontecer em meus clientes, por exemplo, o total do cupom ficar em 151,63 e o operador dar 1,63 de desconto sobre o total do cupom para fins de facilitar o pagamento e troco.

Agora com esse maldito BLOCO X que está aqui em Santa Catarina (PAF-ECF 🤬), se não conseguirmos calcular corretamente esses descontos proporcionais para os itens, vamos ter problemas de transmissão relacionados aos valores das alíquotas vs produtos vendidos.

Tivemos um cliente que já teve problema com isso. Nosso sistema atualmente fazia o seguinte: 

- Calcula a proporção de desconto para cada item

- O residual, o sistema distribui de centavo em centavo, item a item ( exemplo: residual de 0,10 com 4 itens, o primeiro e segundo item recebem 0,03 e o outros 2 itens recebem 0,02)

No fim, o fisco acaba rejeitando o arquivo XML de redução Z pois a soma dos valores líquidos dos itens não bate com o valor apurado na redução Z. Isso tudo por causa desse "rateio" proporcional que é feito dentro da ECF de forma "secreta".

Encontrei então esta fórmula da Bematech ( http://bematechpartners.com.br/wiki/index.php/2017/12/05/cupom-fiscal-exemplo-de-calculo-de-rateio-de-desconto-2/ ) e implementei. Gerei novamente os XMLs de um cliente que só tem uma Bematech MP 4200 TH FI para que a rotina fosse idêntica à documentada pela própria Bematech. Mesmo assim ainda estou com 4 centavos de diferença.

 

O que vocês dizem a respeito (assumindo-se de que eu preciso ter suporte à desconto no total do cupom) ?

Como posso resolver isso?

 

Neste tópico também foi debatido isso, mas achei melhor criar um novo, pois esse assunto vai dar dor de cabeça para os estados que tem PAF-ECF.

 

 

 

Link para o comentário
Compartilhar em outros sites

Meu problema não é arredondamento, meu problema é saber quanto é o valor proporcional de acréscimo e desconto cada item recebeu pela ECF.

Por exemplo, leia o cenário descrito pela bematech sobre estes cálculos http://bematechpartners.com.br/wiki/index.php/2017/12/05/cupom-fiscal-exemplo-de-calculo-de-rateio-de-desconto-2/

Digamos, o cupom dá um total de  2.021,67. O operador dá um desconto de 100,00, que equivale à 4,94% (100,00 dividido por 2.021,67  = 0,0494640569430224) do valor total.

Sendo assim, cada item deve receber 4,94% de desconto proporcional. Aqui mora o problema.....

Vai ser bem comum ter um residual do desconto, por causa das decimais, que deve ser "jogado" em algum ou alguns itens. E isso quem decide é a MARCA e MODELO da ECF, se bobiar até a versão do SB.

Piore o caso, adicionando vários itens com alíquotas diferentes no cupom.

E na hora de exportar o Bloco X Redução Z, tenho que listar todos os itens e seus valores de venda (com os proporcionais considerados).

Aí o fisco começa a rejeitar o XML (ridiculamente) porque a soma dos itens não bate com o valor apurado na alíquota.

Editado por jjw.roberto
Link para o comentário
Compartilhar em outros sites

11 minutos atrás, jjw.roberto disse:

Meu problema não é arredondamento, meu problema é saber quanto é o valor proporcional de acréscimo e desconto cada item recebeu pela ECF.

Por exemplo, leia o cenário descrito pela bematech sobre estes cálculos http://bematechpartners.com.br/wiki/index.php/2017/12/05/cupom-fiscal-exemplo-de-calculo-de-rateio-de-desconto-2/

Digamos, o cupom dá um total de  2.021,67. O operador dá um desconto de 100,00, que equivale à 4,94% (100,00 dividido por 2.021,67  = 0,0494640569430224) do valor total.

Sendo assim, cada item deve receber 4,94% de desconto proporcional. Aqui mora o problema.....

Vai ser bem comum ter um residual do desconto, por causa das decimais, que deve ser "jogado" em algum ou alguns itens. E isso quem decide é a MARCA e MODELO da ECF, se bobiar até a versão do SB.

Piore o caso, adicionando vários itens com alíquotas diferentes no cupom.

E na hora de exportar o Bloco X Redução Z, tenho que listar todos os itens e seus valores de venda (com os proporcionais considerados).

Aí o fisco começa a rejeitar o XML (ridiculamente) porque a soma dos itens não bate com o valor apurado na alíquota.

Posso estar errado, mas ao meu ver o fisco não deveria fazer a validação e então ter 3 campos:
- valor de venda líquida do item = aqui ficaria o valor do item lançado na ECF

- valor proporcional desconto = aqui ficaria o valor proporcional do desconto sobre o cupom que o sistema calculou

- valor proporcional acréscimo  = aqui ficaria o valor proporcional do acréscimo sobre o cupom que o sistema calculou

Link para o comentário
Compartilhar em outros sites

Cara, me desculpe mas isso não tem nada haver com Arredondamento ABNT.

Não tenho problemas com os valores (valor unitario x quantidade) de itens lançados.

Tenho problemas é com o valor total do item  e o valor de desconto proporcional vindo do cupom.

Veja o exemplo abaixo e responda: 

CUPOM FISCAL
ITEM CÓDIGO DESCRIÇÃO QTD.UN.VL UNIT(R$$) ST VL ITEM(R$$)
————————————————
001 0293116 ALMOF FUZZI PTO 70CM
1UN T18,00%      119,90G
002 0400180 KIT POTE DOBRAVEL SILICONE PRE
1UN F1  89,99G
003 0331032 CABIDE GRAVATA HUG PTO
1UN T18,00%     35,99G
004 0309409         ORGANIZADOR PREMIUM PTO 11CM
1UN X 25,99      T18,00%           25,99G
005 0394031       POLTRONA RECLI EGG II JEANS AZ
1UN X 1499,90    T12,00%         1499,90G
006 0402574       MESA LATERAL HARIPUR MARSALA D
1UN X 249,90     T12,00%          249,90G
——————
Subtotal R$$                           2.021,67
desconto                               -100,00
——————
TOTAL R$$                              1.921,67
CARTAO DE CRED                         1.921,67

 

Quanto é o valor de venda líquida da alíquota 12% ?

 

Editado por jjw.roberto
Link para o comentário
Compartilhar em outros sites

  • Fundadores
8 minutos atrás, jjw.roberto disse:

Cara, me desculpe mas isso não tem nada haver com Arredondamento ABNT.

Pelo jeito... você  já sabe de tudo... não parece precisar de ajuda 

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

7 minutos atrás, Daniel Simoes disse:

Pelo jeito... você  já sabe de tudo... não parece precisar de ajuda 

Não é o caso de "eu já saber tudo". Quero então que você explique como "Arredondamento ABNT" resolve o meu caso.

Tem um cenário descrito acima, mostre-me aonde e como devo aplicar as regras ABNT para que eu resolva o problema citado.

Link para o comentário
Compartilhar em outros sites

  • Fundadores
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

  • Consultores
Em 30/05/2019 at 09:17, jjw.roberto disse:

Nosso sistema atualmente fazia o seguinte: 

- Calcula a proporção de desconto para cada item

- O residual, o sistema distribui de centavo em centavo, item a item ( exemplo: residual de 0,10 com 4 itens, o primeiro e segundo item recebem 0,03 e o outros 2 itens recebem 0,02) 

Não sei se essa rotina de lançar residuais itens a itens é apropriada. Me parece que o correto seria executar o arredondamento/truncamento conforme o caso.

Eu consigo entender quando sobra "um centavo" e se distribui em um item (ex.: ou o último, ou o de maior valor, etc...). Mas vários centavos complica...

Em 30/05/2019 at 09:17, jjw.roberto disse:

Encontrei então esta fórmula da Bematech ( http://bematechpartners.com.br/wiki/index.php/2017/12/05/cupom-fiscal-exemplo-de-calculo-de-rateio-de-desconto-2/ ) e implementei. Gerei novamente os XMLs de um cliente que só tem uma Bematech MP 4200 TH FI para que a rotina fosse idêntica à documentada pela própria Bematech. Mesmo assim ainda estou com 4 centavos de diferença.

Ué... então tem alguma coisa errada... Se você seguiu a orientação do fabricante e não deu certo o mais provável é que, descartando defeitos nos equipamentos, ou eles te deram uma orientação incorreta, ou a implementação está incorreta.

Daí é preciso analisar com bastante calma e se for o caso, trabalhar em conjunto com eles pra entender o que está acontecendo.

Em 30/05/2019 at 09:17, jjw.roberto disse:

O que vocês dizem a respeito (assumindo-se de que eu preciso ter suporte à desconto no total do cupom) ? 

Como posso resolver isso? 

Pra resolver, primeiro você precisa realmente entender qual a fonte do problema. Isso é a metade do caminho.

  • De onde vem as diferenças dos cálculos?
  • É a forma de arredondamento usado pelo equipamento? É forma de arredondamento da linguagem utilizada?
  • É algum passo que não está sendo realizado da forma correta?
  • Eles te passaram a orientação correta?
  • O equipamento está com problemas talvez precisando de uma atualização do Software Base/Firmware?

Encontrar as respostas pode não ser muito fácil, por isso monte um aplicativo simples que reproduz o problema para que você possa entender o que está acontecendo.

Ele poderá ser usado também para mostrar pra qualquer pessoa que você contate buscando ajuda o problema. Por exemplo, nós... :)

  • Curtir 2

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

  • Moderadores

Boa tarde,

 

a um tempo atrás eu sofria com o mesmo problema para ratear desconto/acréscimo dado no subtotal do cupom. Até que vi um post uma sugestão do Daniel... na verdade uma regra que as ECFs seguem para calcular o total de cada alíquota na redução. Apliquei ao meu PAF-ECF e desde então não tenho tido mais problemas.

consegui encontrar o link...

 

http://partners.bematech.com.br/bemacast/Paginas/post.aspx?idPost=5790

  • Curtir 1

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

5 horas atrás, EMBarbosa disse:

Não sei se essa rotina de lançar residuais itens a itens é apropriada. Me parece que o correto seria executar o arredondamento/truncamento conforme o caso.

Eu consigo entender quando sobra "um centavo" e se distribui em um item (ex.: ou o último, ou o de maior valor, etc...). Mas vários centavos complica...

Ué... então tem alguma coisa errada... Se você seguiu a orientação do fabricante e não deu certo o mais provável é que, descartando defeitos nos equipamentos, ou eles te deram uma orientação incorreta, ou a implementação está incorreta.

Daí é preciso analisar com bastante calma e se for o caso, trabalhar em conjunto com eles pra entender o que está acontecendo.

Pra resolver, primeiro você precisa realmente entender qual a fonte do problema. Isso é a metade do caminho.

  • De onde vem as diferenças dos cálculos?
  • É a forma de arredondamento usado pelo equipamento? É forma de arredondamento da linguagem utilizada?
  • É algum passo que não está sendo realizado da forma correta?
  • Eles te passaram a orientação correta?
  • O equipamento está com problemas talvez precisando de uma atualização do Software Base/Firmware?

Encontrar as respostas pode não ser muito fácil, por isso monte um aplicativo simples que reproduz o problema para que você possa entender o que está acontecendo.

Ele poderá ser usado também para mostrar pra qualquer pessoa que você contate buscando ajuda o problema. Por exemplo, nós... :)

Amigo muito obrigado pelo retorno. 

O  caso realmente é que não quero ficar fazendo "IF ECF = XXXXX" para mudar o cálculo de rateio. 

Acho que isso é realmente um problema mais sério pertinente ao fisco, pois são eles que estão fazendo a validação do "o total da aliquota = soma dos itens vendidos" sendo que não existe padronização/regra entre as marcas.

O que estou pensando em fazer é:

- ao fazer a redução Z, e ao gerar o Bloco X ver se o total da aliquota bate com o total da soma dos itens, se "faltar" ou "sobrar" fazer o acerto do valor no último item e vida que segue!

Link para o comentário
Compartilhar em outros sites

  • Fundadores
Agora, jjw.roberto disse:

O  caso realmente é que não quero ficar fazendo "IF ECF = XXXXX" para mudar o cálculo de rateio. 

Você não precisa... Todo ECF ou Trunca, ou arredonda, conforme a ABNT... basta saber se ele está configurado para Truncar ou arredondar...

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

Link para o comentário
Compartilhar em outros sites

Daniel, tá então vamos la:
 

Ecf vende um item 2050,27 na aliquota 18% e depois um item a 1288,43 na aliquota 7%.

Dou um desconto de 298,82 sobre o total que é 3338,70.

A ECF está no formato ARREDONDAMENTO.

Neste caso o percentual proporcional de desconto para os itens é 8,950190193788001 que arredondando fica 8,95

Então para o item 2050,27 * 8,95%  fica 183,499165 que arredondando fica 183,50.

Então para o item 1288,43 * 8,95%  fica 115,314485 que arredondando fica 115,31.

 

Agora somando 183,50 + 115,31 fica 298,81

O que eu faço com o 0,01 que está faltando para fechar certinho o valor do desconto que é 298,82 ?

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Descubra usando um emulador de ECF...

- Usando um emulador...
- limpe a memória...
- programe as alíquotas necessárias
- Faça a venda exatamente como você descreveu...

- Comande uma LeituraX e verifique as alíquotas de impostos...

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

  • Moderadores
51 minutos atrás, jjw.roberto disse:

Amigo muito obrigado pelo retorno. 

O  caso realmente é que não quero ficar fazendo "IF ECF = XXXXX" para mudar o cálculo de rateio. 

Acho que isso é realmente um problema mais sério pertinente ao fisco, pois são eles que estão fazendo a validação do "o total da aliquota = soma dos itens vendidos" sendo que não existe padronização/regra entre as marcas.

O que estou pensando em fazer é:

- ao fazer a redução Z, e ao gerar o Bloco X ver se o total da aliquota bate com o total da soma dos itens, se "faltar" ou "sobrar" fazer o acerto do valor no último item e vida que segue!

Eu não discrimino modelo. Até hoje tem funcionado para todas as marcas e modelos de ECF.

Editado por Cleber

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

Em 07/06/2019 at 18:28, Cleber disse:

Eu não discrimino modelo. Até hoje tem funcionado para todas as marcas e modelos de ECF.

Esse seu link é parecido com o artigo que eu cito no primeiro post aqui. A grande dúvida é quando se tem itens I1, S1, N1....

Vou fazer o que o Daniel sugeriu, utilizar um emulador para verificar como ele se comporta na LX...

Link para o comentário
Compartilhar em outros sites

Em 07/06/2019 at 18:28, Cleber disse:

Eu não discrimino modelo. Até hoje tem funcionado para todas as marcas e modelos de ECF.

Deixe-me pedir outra coisa....

E se eu tiver 2 itens um %7 e outro N1, aonde o item 7% tem o valor de 10,00 e o N1 tem o valor de 200,00 

No caso de aplicar um desconto, o residual vai para o N1 ou para o 7% ?

 

Na doc diz "somar este resíduo com o desconto da alíquota com maior valor acumulado", neste caso seria o N1, certo?

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, jjw.roberto disse:

Esse seu link é parecido com o artigo que eu cito no primeiro post aqui. A grande dúvida é quando se tem itens I1, S1, N1....

Vou fazer o que o Daniel sugeriu, utilizar um emulador para verificar como ele se comporta na LX...

bom dia,

o comportamento é o mesmo para as demais tributações. Vai para a de maior valor. No artigo mesmo cita isso.

Editado por Cleber
  • Curtir 1

Cleber C. Ferreira
Analista de Sistemas e Consultor
Email e
Skype: [email protected]
Formiga-MG

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
Em 10/09/2019 at 20:13, schrsistemas disse:

Boa noite.

Tbm estou a utilizar o arredondamento Abnt e vários bloco x está ocorrendo problema fizemos alguns xaxos para passar.

 

É possível tu estar postando seu código afim de ajudar e compartilharmos uma solução.

Olá. 

Amigo, como falei, você deve fazer esses cálculos para distribuir os descontos sobre os itens do cupom assim que o mesmo é fechado em seu sistema. 

Basicamente é pegar o desconto e acréscimo gerais dados no cupom e distribuí-los aplicando esta regra http://partners.bematech.com.br/bemacast/Paginas/post.aspx?idPost=5790 .

Depois, na hora de gerar o maldito BlocoX, basta exportar os valores salvos e ser feliz. Desde que implementei esse cálculo, só alegria.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Este tópico foi criado há 1491 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.