public ICMS10(int origem, string cst, int modBC, double pICMS, int modBCST, string pMVAST, string pRedBCST, double pICMSST, DetalhesProdutos prod) : base(origem, cst, false) { var vBC = CalcularBC(prod); var vICMS = vBC * pICMS / 100; bool usarpMVAST = TryParse(pMVAST, out double pMVASTd); bool usarpRedBCST = TryParse(pRedBCST, out double pRedBCSTd); var vBCST = (vBC + ObterIPI(prod)) * (100 + pMVASTd) / 100; vBCST *= 1 - (pRedBCSTd / 100); var vICMSST = (vBCST * pICMSST / 100) - vICMS; this.modBC = modBC.ToString(); this.vBC = ToStr(vBC); this.pICMS = ToStr(pICMS, "F4"); this.vICMS = ToStr(vICMS); this.modBCST = modBCST.ToString(); this.pMVAST = usarpMVAST ? ToStr(pMVASTd, "F4") : null; this.pRedBCST = usarpRedBCST ? ToStr(pRedBCSTd, "F4") : null; this.vBCST = ToStr(vBCST); this.pICMSST = ToStr(pICMSST, "F4"); this.vICMSST = ToStr(vICMSST); }
public DadosAdicaoProduto(ProdutoDI auxiliar) { Completo = new DetalhesProdutos { Produto = auxiliar.ToProdutoOuServico() }; Auxiliar = auxiliar; ImpostosPadrao = Auxiliar.GetImpostosPadrao(); }
public ICMS00(int origem, string cst, int modBC, double pICMS, DetalhesProdutos prod) : base(origem, cst, false) { var vBC = CalcularBC(prod); var vICMS = vBC * pICMS / 100; this.modBC = modBC.ToString(); this.vBC = ToStr(vBC); this.pICMS = ToStr(pICMS, "F4"); this.vICMS = ToStr(vICMS); }
public override object Processar(DetalhesProdutos prod) { if (Calcular) { return(new ICMS51(Origem, CST, modBC, pICMS, pRedBC, pDif, prod)); } else { return(new ICMS51(Origem, CST)); } }
public IImposto[] Processar(DetalhesProdutos prod) { var resultado = new DadosNT { CST = Detalhamento.CST.ToString("00"), PreImposto = Conjunto }.Processar(prod.Produto); return(new IImposto[1] { (IPI)resultado }); }
public IImposto[] Processar(DetalhesProdutos prod) { return(new IImposto[1] { new ICMS { Corpo = (ComumICMS) new DadosSN.TipoNT { CSOSN = CSOSN, Origem = Origem }.Processar(prod) } }); }
protected double ObterIPI(DetalhesProdutos detalhes) { var impCriados = detalhes.Impostos.impostos; for (int i = 0; i < impCriados.Count; i++) { if (impCriados[i] is IPI ipi && ipi.Corpo is IPITrib trib && !string.IsNullOrEmpty(trib.ValorIPI)) { return(Parse(trib.ValorIPI)); } } return(0); }
public IImposto[] Processar(DetalhesProdutos prod) { var resultado = new DadosTrib() { CST = Detalhamento.CST.ToString("00"), Valor = ValorUnitario, PreImposto = Conjunto, TipoCalculo = TiposCalculo.PorValor }.Processar(prod.Produto); return(new IImposto[1] { (IPI)resultado }); }
public override object Processar(DetalhesProdutos prod) { if (CST == "40") { return(new ICMS40(Origem, CST, vICMSDeson, motDesICMS)); } else if (CST == "41") { return(new ICMS41(Origem, CST, vICMSDeson, motDesICMS)); } else { return(new ICMS50(Origem, CST, vICMSDeson, motDesICMS)); } }
public IImposto[] Processar(DetalhesProdutos prod) { var dados = new DadosSN.Tipo201(this) { CSOSN = Detalhamento.TipoICMSSN, Origem = Detalhamento.Origem }; var imposto = new ICMS { Corpo = (ComumICMS)dados.Processar(prod) }; return(new IImposto[1] { imposto }); }
public IImposto[] Processar(DetalhesProdutos prod) { var dados = new DadosRN.Tipo90(this) { CST = Detalhamento.TipoICMSRN.Substring(0, 2), Origem = Detalhamento.Origem }; var imposto = new ICMS { Corpo = (ComumICMS)dados.Processar(prod) }; return(new IImposto[1] { imposto }); }
protected double CalcularBC(DetalhesProdutos detalhes) { var impCriados = detalhes.Impostos.impostos; var vIPI = 0d; for (int i = 0; i < impCriados.Count; i++) { if (impCriados[i] is IPI ipi && ipi.Corpo is IPITrib trib) { vIPI = Parse(trib.ValorIPI); } } return(detalhes.Produto.ValorTotal + detalhes.Produto.Frete + detalhes.Produto.Seguro + detalhes.Produto.DespesasAcessorias - detalhes.Produto.Desconto + vIPI); }
public ICMS51(int origem, string cst, int modBC, double pICMS, double pRedBC, double pDif, DetalhesProdutos prod) : base(origem, cst, false) { var vBC = CalcularBC(prod); vBC *= 1 - (pRedBC / 100); var vICMSOp = vBC * pICMS / 100; var vICMSDif = vBC * (100 - pDif) / 100; var vICMS = vICMSOp - vICMSDif; this.modBC = modBC.ToString(); this.vBC = ToStr(vBC); this.pICMS = ToStr(pICMS, "F4"); this.vICMS = ToStr(vICMS); this.pRedBC = ToStr(pRedBC, "F4"); this.vICMSOp = ToStr(vICMSOp); this.pDif = ToStr(pDif, "F4"); this.vICMSDif = ToStr(vICMSDif); }
public IImposto[] Processar(DetalhesProdutos prod) { var resultado = new DadosAliq() { Aliquota = Aliquota, CST = Detalhamento.CST.ToString("00") }.Processar(prod.Produto); if (resultado is IImposto[] list) { return(list); } else { return new IImposto[1] { (COFINS)resultado } }; } }
public IImposto[] Processar(DetalhesProdutos prod) { var resultado = new DadosQtde() { Valor = Valor, CST = Detalhamento.CST.ToString("00") }.Processar(prod.Produto); if (resultado is IImposto[] list) { return(list); } else { return new IImposto[1] { (PIS)resultado } }; } }
public ICMS20(int origem, string cst, int modBC, double pICMS, double pRedBC, string motDesICMS, DetalhesProdutos prod) : base(origem, cst, false) { var vBC = CalcularBC(prod); var valorSemReducao = vBC * pICMS / 100; vBC *= 1 - (pRedBC / 100); var vICMS = vBC * pICMS / 100; var vICMSDeson = valorSemReducao - vICMS; bool infDeson = vICMSDeson > 0 && !string.IsNullOrEmpty(motDesICMS); this.modBC = modBC.ToString(); this.vBC = ToStr(vBC); this.pICMS = ToStr(pICMS, "F4"); this.vICMS = ToStr(vICMS); this.pRedBC = ToStr(pRedBC, "F4"); this.vICMSDeson = infDeson ? ToStr(vICMSDeson) : null; this.motDesICMS = infDeson ? motDesICMS : null; }
public override object Processar(DetalhesProdutos prod) { return(new ICMS60(Origem, CST, vBCSTRet, pST, vICMSSTRet)); }
public override object Processar(DetalhesProdutos prod) { return(new ICMS90(Origem, CST, modBC, vBC, pICMS, vICMS, modBCST, pMVAST, pRedBCST, vBCST, pICMSST, vICMSST, pRedBC, vICMSDeson, motDesICMS)); }
public ICMSSN202(int origem, string csosn, int modBCST, string pMVAST, string pRedBCST, double pICMSST, DetalhesProdutos prod) : base(origem, csosn, true) { bool usarpMVAST = TryParse(pMVAST, out double pMVASTd); bool usarpRedBCST = TryParse(pRedBCST, out double pRedBCSTd); var vBCST = CalcularBC(prod) * (100 + pMVASTd) / 100; vBCST *= 1 - (pRedBCSTd / 100); var vICMSST = vBCST * pICMSST / 100; this.modBCST = modBCST.ToString(); this.pMVAST = usarpMVAST ? ToStr(pMVASTd, "F4") : null; this.pRedBCST = usarpRedBCST ? ToStr(pRedBCSTd, "F4") : null; this.vBCST = ToStr(vBCST); this.pICMSST = ToStr(pICMSST, "F4"); this.vICMSST = ToStr(vICMSST); }
public override object Processar(DetalhesProdutos prod) { return(new ICMS00(Origem, CST, modBC, pICMS, prod)); }
public ICMS30(int origem, string cst, int modBCST, string pMVAST, string pRedBCST, double pICMSST, string motDesICMS, DetalhesProdutos prod) : base(origem, cst, false) { bool usarpMVAST = TryParse(pMVAST, out double pMVASTd); bool usarpRedBCST = TryParse(pRedBCST, out double pRedBCSTd); var vBCST = (CalcularBC(prod) + ObterIPI(prod)) * (100 + pMVASTd) / 100; var valorSemReducao = vBCST * pICMSST / 100; vBCST *= 1 - (pRedBCSTd / 100); var vICMSST = vBCST * pICMSST / 100; var vICMSDeson = valorSemReducao - vICMSST; bool infDeson = vICMSDeson > 0 && !string.IsNullOrEmpty(motDesICMS); this.modBCST = modBCST.ToString(); this.pMVAST = usarpMVAST ? ToStr(pMVASTd, "F4") : null; this.pRedBCST = usarpRedBCST ? ToStr(pRedBCSTd, "F4") : null; this.vBCST = ToStr(vBCST); this.pICMSST = ToStr(pICMSST, "F4"); this.vICMSST = ToStr(vICMSST); this.vICMSDeson = infDeson ? ToStr(vICMSDeson) : null; this.motDesICMS = infDeson ? motDesICMS : null; }
public override object Processar(DetalhesProdutos prod) { return(new ICMSPart(Origem, "90", modBC, vBC, pICMS, vICMS, modBCST, pMVAST, pRedBCST, vBCST, pICMSST, vICMSST, pRedBC, pBCOp, UFST)); }
public override object Processar(DetalhesProdutos prod) { return(new ICMSST(Origem, "41", vBCSTRet, vICMSSTRet, vBCSTDest, vICMSSTDest)); }
public DadosAdicaoProduto(ProdutoDI auxiliar, DetalhesProdutos completo) { Completo = completo; Auxiliar = auxiliar; ImpostosPadrao = Auxiliar.GetImpostosPadrao(); }
protected double CalcularBC(DetalhesProdutos detalhes) => detalhes.Produto.ValorTotal + detalhes.Produto.Frete + detalhes.Produto.Seguro + detalhes.Produto.DespesasAcessorias - detalhes.Produto.Desconto;
public RoteiroAdicaoImpostos(IDetalhamentoImposto[] impostos, DetalhesProdutos prod) { Produto = prod; Telas = new UserControl[impostos.Length]; Processamentos = new IProcessamentoImposto[impostos.Length]; for (int i = 0; i < impostos.Length; i++) { var atual = impostos[i]; if (atual is DetalhamentoCOFINS.Detalhamento cofins) { switch (cofins.TipoCalculo) { case TiposCalculo.PorAliquota: var aliq = new DetalhamentoCOFINS.DetalharAliquota(cofins); Telas[i] = aliq; Processamentos[i] = aliq; break; case TiposCalculo.PorValor: var qtde = new DetalhamentoCOFINS.DetalharQtde(cofins); Telas[i] = qtde; Processamentos[i] = qtde; break; default: Telas[i] = null; Processamentos[i] = new DetalhamentoCOFINS.DetalharVazio(cofins.CST); break; } } else if (atual is DetalhamentoPIS.Detalhamento pis) { switch (pis.TipoCalculo) { case TiposCalculo.PorAliquota: var aliq = new DetalhamentoPIS.DetalharAliquota(pis); Telas[i] = aliq; Processamentos[i] = aliq; break; case TiposCalculo.PorValor: var qtde = new DetalhamentoPIS.DetalharQtde(pis); Telas[i] = qtde; Processamentos[i] = qtde; break; default: Telas[i] = null; Processamentos[i] = new DetalhamentoPIS.DetalharVazio(pis.CST); break; } } else if (atual is DetalhamentoIPI.Detalhamento ipi) { switch (ipi.TipoCalculo) { case TiposCalculo.PorAliquota: var aliq = new DetalhamentoIPI.DetalharAliquota(ipi); Telas[i] = aliq; Processamentos[i] = aliq; break; case TiposCalculo.PorValor: var qtde = new DetalhamentoIPI.DetalharQtde(ipi); Telas[i] = qtde; Processamentos[i] = qtde; break; case TiposCalculo.Inexistente: var simp = new DetalhamentoIPI.DetalharSimples(ipi); Telas[i] = simp; Processamentos[i] = simp; break; } } else if (atual is DetalhamentoICMSUFDest.Detalhamento icmsUFDest) { var icms = new DetalhamentoICMSUFDest.Detalhar(); Telas[i] = icms; Processamentos[i] = icms; } else if (atual is DetalhamentoICMS.Detalhamento icms) { var normal = DefinicoesTemporarias.EmitenteAtivo.RegimeTributario == 3; if (normal) { var cst = int.Parse(icms.TipoICMSRN); var norm = AssociacoesICMS.GetRegimeNormal(cst, icms); Telas[i] = norm; Processamentos[i] = (IProcessamentoImposto)norm; } else { var csosn = int.Parse(icms.TipoICMSSN); var simp = AssociacoesICMS.GetSimplesNacional(csosn, icms); Telas[i] = simp as UserControl; Processamentos[i] = simp; } } else if (atual is ImpostoArmazenado pronto) { switch (pronto.Tipo) { case PrincipaisImpostos.ICMS: Processamentos[i] = new DetalhamentoICMS.DetalharArmazenado((ICMSArmazenado)pronto); break; case PrincipaisImpostos.IPI: Processamentos[i] = new DetalhamentoIPI.DetalharArmazenado((ImpSimplesArmazenado)pronto); break; case PrincipaisImpostos.PIS: Processamentos[i] = new DetalhamentoPIS.DetalharArmazenado((ImpSimplesArmazenado)pronto); break; case PrincipaisImpostos.COFINS: Processamentos[i] = new DetalhamentoCOFINS.DetalharArmazenado((ImpSimplesArmazenado)pronto); break; } } } }
public abstract object Processar(DetalhesProdutos prod);
public override object Processar(DetalhesProdutos prod) { return(new ICMSSN202(Origem, CSOSN, modBCST, pMVAST, pRedBCST, pICMSST, prod)); }
public override object Processar(DetalhesProdutos prod) { return(new ICMS30(Origem, CST, modBCST, pMVAST, pRedBCST, pICMSST, motDesICMS, prod)); }
public override object Processar(DetalhesProdutos prod) { return(new ICMSSN102(Origem, CSOSN)); }