예제 #1
0
 private bool existe(String nomeDoItem, Orçamento orcamento)
 {
     foreach (Item item in orcamento.Itens)
     {
         if (item.Nome.Equals(nomeDoItem))
         {
             return(true);
         }
     }
     return(false);
 }
예제 #2
0
            public double Calcula(Orçamento orçamento)
            {
                Desconto d1 = new DescontoPorCincoItens();
                Desconto d2 = new DescontoPorMaisDeQuinhentosReais();
                Desconto d3 = new SemDesconto();

                d1.Proximo = d2;
                d2.Proximo = d3;

                return(d1.Desconta(orçamento));
            }
예제 #3
0
 public double Desconta(Orçamento orcamento)
 {
     if (orcamento.Valor > 500)
     {
         return(orcamento.Valor * 0.07);
     }
     else
     {
         return(Proximo.Desconta(orcamento));
     }
 }
예제 #4
0
 private bool TemItemMaiorQue100ReaisNo(Orçamento orçamento)
 {
     foreach (Item item in orçamento.Itens)
     {
         if (item.Valor > 100)
         {
             return(true);
         }
     }
     return(false);
 }
예제 #5
0
 public void AplicaDescontoExtra(Orçamento orçamento)
 {
     if (!descontoAplicado)
     {
         orçamento.Valor -= orçamento.Valor * 0.02;
     }
     else
     {
         throw new Exception("Desconto já aplicado");
     }
 }
예제 #6
0
 public double Calcula(Orçamento orcamento)
 {
     if (aconteceuVendaCasadaEm(orcamento))
     {
         return(orcamento.Valor * 0.05);
     }
     else
     {
         return(Proximo.Desconta(orcamento));
     }
 }
예제 #7
0
 public double Desconta(Orçamento orcamento)
 {
     if (orcamento.Itens.Count > 5)
     {
         return(orcamento.Valor * 0.1);
     }
     else
     {
         return(Proximo.Desconta(orcamento));
     }
 }
예제 #8
0
 public override double Calcula(Orçamento orçamento)
 {
     if (DeveUsarMaximaTaxacao(orçamento))
     {
         return(MaximaTaxacao(orçamento));
     }
     else
     {
         return(MinimaTaxacao(orçamento));
     }
 }
예제 #9
0
 public override double Calcula(Orçamento orçamento)
 {
     if (orçamento.Valor < 1000)
     {
         return(orçamento.Valor * 0.05);
     }
     else if (orçamento.Valor >= 1000 && orçamento.Valor <= 3000)
     {
         return(orçamento.Valor * 0.07);
     }
     else
     {
         return(orçamento.Valor * 0.08 + 30.00);
     }
 }
예제 #10
0
        static void Main(string[] args)
        {
            Imposto        iss        = new ISS();
            Imposto        icms       = new ICMS();
            Orçamento      orçamento  = new Orçamento(50.00);
            CalculaImposto calculador = new CalculaImposto();

            calculador.RealizaCalculo(orçamento, iss);
            calculador.RealizaCalculo(orçamento, icms);

            Orçamento reforma = new Orçamento(3000.0);

            Imposto novoImposto = new ICCC();

            Console.WriteLine(novoImposto.Calcula(reforma));
            Console.ReadLine();
        }
예제 #11
0
        public void RealizaCalculo(Orçamento orçamento, Imposto imposto)
        {
            double valor = imposto.Calcula(orçamento);

            Console.WriteLine(valor);
        }
예제 #12
0
 public void AplicaDescontoExtra(Orçamento orçamento)
 {
     throw new Exception("Orçamento Finalizado não recebe desconto");
 }
예제 #13
0
 public double Desconta(Orçamento orcamento)
 {
     return(0);
 }
예제 #14
0
 public abstract double MinimaTaxacao(Orçamento orcamento);
예제 #15
0
 public abstract double Calcula(Orçamento orçamento);
예제 #16
0
 protected double CalculaOutroImposto(Orçamento orçamento)
 {
     return(OutroImposto == null ? 0 : OutroImposto.Calcula(orçamento));
 }
예제 #17
0
        //public void AplicaDescontoExtra( )
        //{
        //    EstadoAtual.AplicaDescontoExtra(this);
        //}

        public void AplicaDesconto(Orçamento orçamento)
        {
            EstadoAtual.AplicaDesconto(this);
        }
예제 #18
0
 public void Finaliza(Orçamento orçamento)
 {
     orçamento.EstadoAtual = new Finalizado();
 }
예제 #19
0
 public abstract bool DeveUsarMaximaTaxacao(Orçamento orcamento);
예제 #20
0
 public void Finaliza(Orçamento orçamento)
 {
     throw new Exception("Orcamento em aprovação não podem ir para finalizado diretamente");
 }
예제 #21
0
 public void Aprova(Orçamento orçamento)
 {
     throw new Exception("Orçamento já reprovado");
 }
예제 #22
0
 public override bool DeveUsarMaximaTaxacao(Orçamento orçamento)
 {
     return(orçamento.Valor >= 500);
 }
예제 #23
0
 public override double Calcula(Orçamento orçamento)
 {
     return(orçamento.Valor * 0.05 + CalculaOutroImposto(orçamento));
 }
예제 #24
0
 public override double Calcula(Orçamento orçamento)
 {
     throw new NotImplementedException();
 }
예제 #25
0
 public void Reprova(Orçamento orçamento)
 {
     orçamento.EstadoAtual = new Reprovado();
 }
예제 #26
0
 public override bool DeveUsarMaximaTaxacao(Orçamento orçamento)
 {
     return(orçamento.Valor >= 500 && TemItemMaiorQue100ReaisNo(orçamento));
 }
예제 #27
0
 public void AplicaDesconto(Orçamento orçamento)
 {
     throw new NotImplementedException();
 }
예제 #28
0
 public override double MaximaTaxacao(Orçamento orçamento)
 {
     return(orçamento.Valor * 0.10);
 }
예제 #29
0
 public void Reprova(Orçamento orçamento)
 {
     throw new Exception("Orçamento ja finalizado");
 }
예제 #30
0
 public override double MinimaTaxacao(Orçamento orçamento)
 {
     return(orçamento.Valor * 0.06);
 }