-
Notifications
You must be signed in to change notification settings - Fork 476
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Como informar a Base de Calculo do ICMS para cada produto #9
Comments
A classe ICMS possui a propriedade TipoICMS que é do tipo abstrato ICMSBasico. Note que todas as classes concretas ICMS00, ICMS10, ICMS20, ICMS30, ICMS40, ICMS51, ICMS60, ICMS70, ICMS90, ICMSPart, ICMSST, ICMSSN101, ICMSSN102, ICMSSN201, ICMSSN202, ICMSSN500 e ICMSSN900 herdam dessa classe, portanto qualquer objeto de uma dessas classes pode ser passado para a propriedade TipoICMS da classe ICMS. Considere o exemplo que foi dado em MainWindow.xaml.cs, onde tem: ICMS = new ICMS
{
TipoICMS = InformarCSOSN(Csosnicms.Csosn102)
}, Em MainWindow.xaml.cs também já existe uma função chamada InformarICMS com o seguinte corpo: [02] protected virtual ICMSBasico InformarICMS(Csticms CST, VersaoServico versao)
{
var icms20 = new ICMS20
{
orig = OrigemMercadoria.OmNacional,
CST = Csticms.Cst20,
modBC = DeterminacaoBaseIcms.DbiValorOperacao,
vBC = decimal.Parse("1,00"),
pICMS = decimal.Parse("17"),
vICMS = decimal.Parse("0,17"),
motDesICMS = MotivoDesoneracaoIcms.MdiTaxi
};
if (versao == VersaoServico.ve310)
icms20.vICMSDeson = decimal.Parse("0,10"); //V3.00 ou maior Somente
switch (CST)
{
case Csticms.Cst00:
return new ICMS00
{
CST = Csticms.Cst00,
modBC = DeterminacaoBaseIcms.DbiValorOperacao,
orig = OrigemMercadoria.OmNacional,
pICMS = decimal.Parse("17.0"),
vBC = decimal.Parse("1,00"),
vICMS = decimal.Parse("0,17,00")
};
case Csticms.Cst20:
return icms20;
//Outros casos aqui
}
return new ICMS10();
} Para informar o ICMS ao invés do CSOSN substitua o trecho em [01] por: ICMS = new ICMS
{
TipoICMS = InformarICMS(Csticms.Cst00, VersaoServico.ve310)
}, Claro que os valores a serem colocados nos campos vc deve buscar de um banco de dados, por exemplo, ou devem ser informados pelo usuário... Para todo o efeito vou estar enviando um exemplo de uso informando o ICMS ou CSOSN de acordo com a CRT da empresa |
Me ajudou muito amigo. Outra dúvida, no AppTeste que você disponibiliza tem um exemplo no imposto colocando o IPI. Porém esta comentado, eu descomentei e tentei gerar, deu erro de validação de schema. Essa parte esta finalizada? |
Sim está finalizada e funcional 100%. Estou utilizando em produção. As únicas coisas que não estão prontas, são informadas nos 7 issues que coloquei aqui no git. Para o caso do IPI já te mando um exemplo |
ok, fico muito grato. Implantei sua biblioteca no meu sistema sem maiores dificuldades, apenas surgiram essas dúvidas quanto a maneira correta de usar. |
Pronto atualizei o aplicativo de exemplo para considerar o CRT do emitente e, automaticamente enviar o ICMS ou CSOSN. Se estiver tudo Ok, avise aqui que fecho este caso. |
Amigo, deu tudo certo. |
This issue was moved to #9 |
Olá amigo,
primeiramente venho agradecer pela colaboração que você vem dando a comunidade liberando o projeto.
Estou com um problema. A classe "imposto", que pertence a "prod" possui a propriedade "ICMS". Porém só permite informar o "TipoICMS" CSOSN. Como faço pra informar a base de calculo do ICMS para cada produto?
Pergunto pois no totalizador da NF eu calculo a base de calculo em cima dos meus produtos informados, porém esta dando erro pq nao informei individualmente esses valores, ai da divergencia.
Mto obrigado novamente.
The text was updated successfully, but these errors were encountered: