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()); }
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()); }
/// <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); }