示例#1
0
        public virtual void InformarImposto(Enumeradores.TipoDeImposto tipoDeImposto, decimal aliquota)
        {
            AtualizarImposto(tipoDeImposto, aliquota);

            CalculaValorComImpostos();
            CalculaCusto();
        }
示例#2
0
 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());
 }
示例#4
0
        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();
            }
        }
示例#5
0
        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);
            }
        }
示例#6
0
        public virtual decimal ValorDoImposto(Enumeradores.TipoDeImposto tipoDeImposto)
        {
            var imposto = Imposto(tipoDeImposto);

            return(imposto != null ? imposto.Valor : 0);
        }
示例#7
0
 public virtual Imposto Imposto(Enumeradores.TipoDeImposto tipo)
 {
     return(Impostos.SingleOrDefault(x => x.Tipo == tipo));
 }