public double CalcularDesconto(Orcamento.Orcamento orcamento)
 {
     if (orcamento.Valor >= 500)
     {
         orcamento.Desconto += orcamento.Valor * 0.07;
     }
     return(ProximoDesconto.CalcularDesconto(orcamento));
 }
 public double CalcularDesconto(Orcamento.Orcamento orcamento)
 {
     if (orcamento.Produtos.Count > 5)
     {
         orcamento.Desconto += orcamento.Valor * 0.05;
     }
     return(ProximoDesconto.CalcularDesconto(orcamento));
 }
 public double Calcular(Orcamento.Orcamento orcamento)
 {
     if (DeveUsarTaxacaoMaxima(orcamento))
     {
         return(TaxacaoMaxima(orcamento));
     }
     return(TaxacaoMinima(orcamento));
 }
Example #4
0
 private bool possuiItemMaiorQue100Reais(Orcamento.Orcamento orcamento)
 {
     foreach (var item in orcamento.Produtos)
     {
         if (item.Valor > 100)
         {
             return(true);
         }
     }
     return(false);
 }
Example #5
0
        public double CalcularDesconto(Orcamento.Orcamento orcamento)
        {
            bool possuiCaneta = orcamento.Produtos.Any(x => x.Descricao == "CANETA");
            bool possuiLapis  = orcamento.Produtos.Any(x => x.Descricao == "LAPIS");

            if (possuiCaneta && possuiLapis)
            {
                orcamento.Desconto += orcamento.Valor * 0.05;
            }
            return(ProximoDesconto.CalcularDesconto(orcamento));
        }
Example #6
0
        public double CalcularDesconto(Orcamento.Orcamento orcamento)
        {
            DescontoOrcamentoMaiorQue500Reais d1 = new DescontoOrcamentoMaiorQue500Reais();
            DescontoPorMaisDeCincoItens       d2 = new DescontoPorMaisDeCincoItens();
            DescontoPorVendaCasada            d3 = new DescontoPorVendaCasada();
            DescontoZerado descontoFinal         = new DescontoZerado();

            d1.ProximoDesconto = d2;
            d2.ProximoDesconto = d3;
            d3.ProximoDesconto = descontoFinal;

            return(d1.CalcularDesconto(orcamento));
        }
Example #7
0
 public double Calcular(Orcamento.Orcamento orcamento)
 {
     return(orcamento.Valor * 0.18);
 }
Example #8
0
 public double CalcularDesconto(Orcamento.Orcamento orcamento)
 {
     return(0);
 }
Example #9
0
 public override bool DeveUsarTaxacaoMaxima(Orcamento.Orcamento orcamento)
 {
     return(orcamento.Valor > 500 && possuiItemMaiorQue100Reais(orcamento));
 }
Example #10
0
 public override double TaxacaoMinima(Orcamento.Orcamento orcamento)
 {
     return(orcamento.Valor * 0.04);
 }
Example #11
0
 public override bool DeveUsarTaxacaoMaxima(Orcamento.Orcamento orcamento)
 {
     return(orcamento.Valor > 500);
 }
 public abstract double TaxacaoMinima(Orcamento.Orcamento orcamento);
 public abstract bool DeveUsarTaxacaoMaxima(Orcamento.Orcamento orcamento);