public virtual void InformarImposto(Enumeradores.TipoDeImposto tipoDeImposto, decimal aliquota) { AtualizarImposto(tipoDeImposto, aliquota); CalculaValorComImpostos(); CalculaCusto(); }
public Imposto(CotacaoItem cotacaoItem, Enumeradores.TipoDeImposto tipo, decimal aliquota, decimal baseDeCalculo) { CotacaoItem = cotacaoItem; Tipo = tipo; Aliquota = aliquota; BaseDeCalculo = baseDeCalculo; CalculaValor(); }
public ICalculadorDeBaseDeCalculo Construir(Enumeradores.TipoDeImposto tipoDeImposto, Produto produto) { if (tipoDeImposto == Enumeradores.TipoDeImposto.Ipi && produto.MaterialPrima) { return(new CalculadorDeBaseDeCalculoComCreditoDeImpostos()); } return(new CalculadorDeBaseDeCalculoPadrao()); }
public override void InformarImposto(Enumeradores.TipoDeImposto tipoDeImposto, decimal aliquota) { base.InformarImposto(tipoDeImposto, aliquota); if (tipoDeImposto == Enumeradores.TipoDeImposto.IcmsSubstituicao && ValorDoImposto(Enumeradores.TipoDeImposto.IcmsSubstituicao) > 0 && (!Mva.HasValue || Mva.Value == 0)) { throw new MvaNaoInformadoException(); } }
private void AtualizarImposto(Enumeradores.TipoDeImposto tipoDeImposto, decimal aliquota) { ICalculadorDeBaseDeCalculo calculadorDeBaseDeCalculo = _calculadorDeBaseDeCalculoFactory.Construir(tipoDeImposto, ProcessoDeCotacaoItem.Produto); decimal baseDeCalculo = calculadorDeBaseDeCalculo.Calcular(this); Imposto imposto = Impostos.FirstOrDefault(x => x.Tipo == tipoDeImposto); if (imposto != null) { imposto.Atualizar(aliquota, baseDeCalculo); } else { imposto = new Imposto(this, tipoDeImposto, aliquota, baseDeCalculo); Impostos.Add(imposto); } }
public virtual decimal ValorDoImposto(Enumeradores.TipoDeImposto tipoDeImposto) { var imposto = Imposto(tipoDeImposto); return(imposto != null ? imposto.Valor : 0); }
public virtual Imposto Imposto(Enumeradores.TipoDeImposto tipo) { return(Impostos.SingleOrDefault(x => x.Tipo == tipo)); }