public static void main(String[] args) { CalculadorDeDescontos calculador = new CalculadorDeDescontos(); Orcamento orcamento = new Orcamento(501.0); orcamento.adicionaItem(new Item("Caneta", 250.0)); orcamento.adicionaItem(new Item("Caneta", 250.0)); double desconto = calculador.calcula(orcamento); System.out.println(desconto); }
public static void main(String[] args) { Imposto icpp = new ICPP(); Imposto ikcv = new IKCV(); Imposto ihit = new IHIT(); Orcamento orcamento = new Orcamento(100); orcamento.adicionaItem(new Item("CANETA", 400)); orcamento.adicionaItem(new Item("CANETA", 100)); orcamento.adicionaItem(new Item("CADERNO", 5)); orcamento.adicionaItem(new Item("CANETA", 5)); double valorICPP = icpp.calcula(orcamento); double valorIKCV = ikcv.calcula(orcamento); double valorIHIT = ihit.calcula(orcamento); System.out.printf("Valor do ICPP: %.2f\n", valorICPP); System.out.printf("Valor do IKCV: %.2f\n", valorIKCV); System.out.printf("Valor do IHIT: %.2f\n", valorIHIT); }
private boolean temItemMaiorQue100ReaisNo(Orcamento orcamento) { for (Item item : orcamento.getItens()) { if (item.getValor() > 100.0) { return true; } } return false; }
@Override public double calcula(Orcamento orcamento) { return orcamento.getValor() * 0.06; }
public double calcula(Orcamento orcamento) { return orcamento.getValor() * 0.06 + calculoDoOutroImposto(orcamento); }
@Override public void aplicaDescontto(Orcamento orcamento) { orcamento.valor -= orcamento.valor * 0.02; // Desconto de 2% caso esteja nos estado APROVADO }
@Override public void finaliza(Orcamento orcamento) { orcamento.estadoAtual = new Finalizado(); }
@Override double PrimeiraRegraImposto(Orcamento orcamento) { return orcamento.getValorTotal() * 0.05; }
@Override boolean condicaoSatisfeita(Orcamento orcamento) { return orcamento.getValorTotal() < 500; }
@Override double SegundaRegraImposto(Orcamento orcamento) { return orcamento.getValorTotal() * 0.07; }
@Override public void aprova(Orcamento orcamento) { orcamento.estadoAtual = new Aprovado(); }
@Override public void aplicaDescontoExtra(Orcamento orcamento) { orcamento.valor = orcamento.valor * 0.05; }
@Override void reprova(Orcamento orcamento) { orcamento.estadoAtual = new Reprovado(); }
@Override public double minimaTaxacao(Orcamento orcamento) { return orcamento.getValor() * 0.06; }
@Override public boolean deveUsarMaximaTaxacao(Orcamento orcamento) { return orcamento.getValor() > 500 && temItemMaiorQue100ReaisNo(orcamento); }
public double calcula(Orcamento orcamento) { return orcamento.getValor() * 0.1; }