Impostos na NF-e

5 respostas
L

Alguém utiliza alguma biblioteca para calculo de impostos ou cadastro dos mesmos para emissão de nfes,
pois meu sistema está rodando certo, porém…esses calculos de impostos, é complicado de entender tuuuuddoooo…

No início, fiz o cadastro de imposto dos produtos no momento de cadastrar um produto, assim, quando um novo produto é incluído, é registrado seu imposto…
portanto na hora de emitir a nfe, o sistema busca toda a tributação registrada no produto para gerar os impostos do ítem da nfe…

porém esse negócio de imposto é meio complicado, pois se vender para um cliente de outro estado é um tipo de imposto, se vender para um cliente na mesma cidade, já é outro…

e para complicar mais um pouco,se pra achar , por exemplo, o valor do icms st de determinado produto fosse somente achar o percentual da base de calculo do ST ficaria menos difícil, porém em alguns casos tem que diminuir do valor do icms, e por aí vai…é uma loucura…

Gostaria de saber de alguém que já implementou essa parte de impostos …como fez…deixou tudo meio genérico para que o usuario digite a cada item informado como no emissor gratuíto, ou fez algo mais elaborado, quais bibliotecas usaram…?

5 Respostas

M

Beleza cara?

Então no caso do ICMS, é interessante você parametrizar por estado.
Cria uma classe que contenha uma lista de estados todos os dados necessários para o ICMS (alíquota (entrada e saída), base de cálculo (entrada e saída), CST do ICMS, alíquota de ST, etc, etc.
Então você terá tantas instâncias dessa classe quantas forem os tipos de produtos do sistema (produtos tributados, isentos, com redução de base, etc, etc), e associa uma instância dessa classe ao produto. Quais valores colocar para cada atributo… bem isso você tem que se inteirar com a contabilidade / consultoria contábil do usuário do sistema.

Quanto ao ICMS ST, o cálculo é bem simples, no caso de usar MVA / IVA:

mva = 45.0; //45% por exemplo
aliquotaIcmsST = 19.0; //19% por exemplo
icmsEstado = baseIcms * aliquotaEstado / 100;
baseIcmsST = baseIcms + (baseIcms * mva / 100);
valorIcmsST = (baseIcmsST * aliquotaIcmsST / 100) - icmsEstado;

Óbvio que há algumas regras de quando calcular a substituição tributária, mas geralmente, deve ser calculada caso o destinatário da nota vá usar a mercadoria para revenda.

Isso é só uma pincelada hehe, mas dá pra dar um pontapé inicial.

Abraço

L

Olá…obrigado pela resposta… o problema é que a legislação tem um moooonnntee de regrinhas. para impostos… e em determinadas situações é de um jeito o calculo…e em outras situações é de outro jeito…

Mas vou agregar sua idéia no sistema, vou deixar um prévio cadastro do imposto na hora de cadastrar o produto…porém vou dar a possiblidade do usuário, na hora de emitir a nfe, modificar o imposto do ítem como bem queira…

Então ao inserir um novo ítem na nfe…os calculos de icms, icmsst, ipi, pis, cofins, etc…vão sair pré-calculados, porém vai haver um botãozinho para que o usuario modifique os cálculos, dependendo da sua situação de venda… creio que essa seja uma maneira razoável de manter a estabilidade do sistema, pois cada caso é um caso, cada empresa usa um tipo de tributação, e se vende para fora do estado, já muda, se vende para dentro do estado muda também…

Valeu pela ajuda…

J

como vc está fazendo a ligação entre CFOP e tributação, pois existem tipos de cfop não tributado, como bonificação de produto, estravio e etc… To com um problema sério com isso, eu criei uma classe de históricos e outra de tributação, porém as regras estão me tirando o sono ;(

L

Essa parte de ligação entre cfop e tributação, eu deixo a cargo do usuário…cada vez que vai criar um novo item para nfe, o usuário informa o cfop …

Até daria, mas não creio que seja viável para o meu caso , cujo o software é um sistema de controle de estoque e emissão de nfes, pois se começar a tratar todas as regras possíveis, creio que vai ter um monte de restrições e outras mais complicando a sua vida e a vida do próprio usuário… transformando esse software em um “quase softare contábil” he he he…

Então optei por seguir a idéia do emissor gratuíto…(falando -se nessa parte de cfops) onde o usuário informa o cfop que convier para ele…

Mas caso queira, tem algumas regras de validação executadas pelos webServices…descrito no manual da nfe… tu podes implementar elas no seu sistema…caso queira…

J

Se você quiser que seu sistema valide tudo, você vai precisar de um contador, pois tem regra demais. Se você tiver um tipo mais específico de cliente emitindo notas, pode tirar algumas informações do contador dele também. Os WSs realmente fazem algumas validações, mas no geral servem apenas para evitar erros grosseiros ou quase óbvios (do ponto de vista contábil, não técnico)

Criado 30 de abril de 2013
Ultima resposta 14 de mai. de 2013
Respostas 5
Participantes 4