Beispiel #1
0
        private static ICMSBasico InformarICMS(Csticms CST, VersaoServico versao)
        {
            ICMS20 icms20 = new ICMS20
            {
                orig       = OrigemMercadoria.OmNacional,
                CST        = Csticms.Cst20,
                modBC      = DeterminacaoBaseIcms.DbiValorOperacao,
                vBC        = 1.1m,
                pICMS      = 18,
                vICMS      = 0.20m,
                motDesICMS = MotivoDesoneracaoIcms.MdiTaxi
            };

            if (versao == VersaoServico.Versao310)
            {
                icms20.vICMSDeson = 0.10m; //V3.00 ou maior Somente
            }

            switch (CST)
            {
            case Csticms.Cst00:
                return(new ICMS00
                {
                    CST = Csticms.Cst00,
                    modBC = DeterminacaoBaseIcms.DbiValorOperacao,
                    orig = OrigemMercadoria.OmNacional,
                    pICMS = 18,
                    vBC = 1.1m,
                    vICMS = 0.20m
                });

            case Csticms.Cst20:
                return(icms20);
                //Outros casos aqui
            }

            return(new ICMS10());
        }
Beispiel #2
0
        protected virtual ICMSBasico InformarICMS(Csticms CST, VersaoServico versao)
        {
            var icms20 = new ICMS20
            {
                orig       = OrigemMercadoria.OmNacional,
                CST        = Csticms.Cst20,
                modBC      = DeterminacaoBaseIcms.DbiValorOperacao,
                vBC        = 1,
                pICMS      = 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 = 17,
                    vBC = 1,
                    vICMS = decimal.Parse("0,17")
                });

            case Csticms.Cst20:
                return(icms20);
                //Outros casos aqui
            }

            return(new ICMS10());
        }
Beispiel #3
0
        /// <summary>
        /// Obtém um objeto ICMSBasico com base nos dados do objeto ICMSGeral e da CRT informada no parâmetro.
        /// Esse método pode devolver, por exemplo, um objeto ICMS00, ICMS10, ICMSSN101, etc.
        /// </summary>
        /// <param name="crt"></param>
        /// <returns></returns>
        public ICMSBasico ObterICMSBasico(CRT crt)
        {
            ICMSBasico icmsBasico;

            switch (crt)
            {
            case CRT.SimplesNacional:
                switch (CSOSN)
                {
                case Csosnicms.Csosn101:
                    icmsBasico = new ICMSSN101();
                    break;

                case Csosnicms.Csosn102:
                case Csosnicms.Csosn103:
                case Csosnicms.Csosn300:
                case Csosnicms.Csosn400:
                    icmsBasico = new ICMSSN102();
                    break;

                case Csosnicms.Csosn201:
                    icmsBasico = new ICMSSN201();
                    break;

                case Csosnicms.Csosn202:
                case Csosnicms.Csosn203:
                    icmsBasico = new ICMSSN202();
                    break;

                case Csosnicms.Csosn500:
                    icmsBasico = new ICMSSN500();
                    break;

                case Csosnicms.Csosn900:
                    icmsBasico = new ICMSSN900();
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                break;

            case CRT.SimplesNacionalExcessoSublimite:
            case CRT.RegimeNormal:
                switch (CST)
                {
                case Csticms.Cst00:
                    icmsBasico = new ICMS00();
                    break;

                case Csticms.Cst10:
                    icmsBasico = new ICMS10();
                    break;

                case Csticms.CstPart10:
                case Csticms.CstPart90:
                    icmsBasico = new ICMSPart();
                    break;

                case Csticms.Cst20:
                    icmsBasico = new ICMS20();
                    break;

                case Csticms.Cst30:
                    icmsBasico = new ICMS30();
                    break;

                case Csticms.Cst40:
                case Csticms.Cst41:
                case Csticms.Cst50:
                    icmsBasico = new ICMS40();
                    break;

                case Csticms.CstRep41:
                    icmsBasico = new ICMSST();
                    break;

                case Csticms.Cst51:
                    icmsBasico = new ICMS51();
                    break;

                case Csticms.Cst60:
                    icmsBasico = new ICMS60();
                    break;

                case Csticms.Cst70:
                    icmsBasico = new ICMS70();
                    break;

                case Csticms.Cst90:
                    icmsBasico = new ICMS90();
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                break;

            default:
                throw new ArgumentOutOfRangeException("crt", crt, null);
            }

            icmsBasico.CopiarPropriedades(this);
            return(icmsBasico);
        }