Skip to content
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

Closed
dzfweb opened this issue Apr 1, 2015 · 7 comments
Closed

Como informar a Base de Calculo do ICMS para cada produto #9

dzfweb opened this issue Apr 1, 2015 · 7 comments

Comments

@dzfweb
Copy link

dzfweb commented Apr 1, 2015

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.

@adeniltonbs
Copy link
Member

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:
[01]

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

@dzfweb
Copy link
Author

dzfweb commented Apr 1, 2015

Me ajudou muito amigo.
Consegui informar o ICMS, fiz a validação do CRT deu certinho.

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?

@adeniltonbs
Copy link
Member

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

@dzfweb
Copy link
Author

dzfweb commented Apr 1, 2015

ok, fico muito grato. Implantei sua biblioteca no meu sistema sem maiores dificuldades, apenas surgiram essas dúvidas quanto a maneira correta de usar.

@adeniltonbs
Copy link
Member

Pronto atualizei o aplicativo de exemplo para considerar o CRT do emitente e, automaticamente enviar o ICMS ou CSOSN.
Também incluí o exemplo de envio do IPI (note que o campo cEnq do IPI é de preenchimento obrigatório, conforme manual de orientação e deve ser preenchido com 999 enquanto a tabela não é criada).

Se estiver tudo Ok, avise aqui que fecho este caso.

@dzfweb
Copy link
Author

dzfweb commented Apr 1, 2015

Amigo, deu tudo certo.
Muito obrigado pela ajuda.

@adeniltonbs
Copy link
Member

This issue was moved to #9

robertorp pushed a commit that referenced this issue Nov 11, 2017
marcosgerene added a commit that referenced this issue Jun 14, 2018
marcosgerene pushed a commit that referenced this issue May 22, 2019
andrebts pushed a commit that referenced this issue May 14, 2024
Valmir-Cunha pushed a commit that referenced this issue Jul 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants