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)); }
private bool possuiItemMaiorQue100Reais(Orcamento.Orcamento orcamento) { foreach (var item in orcamento.Produtos) { if (item.Valor > 100) { return(true); } } return(false); }
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)); }
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)); }
public double Calcular(Orcamento.Orcamento orcamento) { return(orcamento.Valor * 0.18); }
public double CalcularDesconto(Orcamento.Orcamento orcamento) { return(0); }
public override bool DeveUsarTaxacaoMaxima(Orcamento.Orcamento orcamento) { return(orcamento.Valor > 500 && possuiItemMaiorQue100Reais(orcamento)); }
public override double TaxacaoMinima(Orcamento.Orcamento orcamento) { return(orcamento.Valor * 0.04); }
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);