Beispiel #1
0
        public static void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            //CalculadoraDeImpostos apenas exibe um mensagem na tela, ela não é necessária.
            //Mas agora imagine que, além de calcular o imposto,
            //essa classe precisasse fazer mais alguma coisa,
            //como por exemplo, alterar o status do Orçamento, ou notificar algum outro objeto desse valor calculado.
            var valor = imposto.Calcula(orcamento);

            Console.Write(imposto.GetType().Name + ": ");
            Console.WriteLine(valor);
        }
        public NotaFiscal Gera(Fatura fatura, IImposto imposto)
        {
            double valor        = fatura.ValorMensal;
            double valorImposto = imposto.Calcula(fatura);

            var notaFiscal = new NotaFiscal(valor, valorImposto);

            ExecutaAcaoNota(notaFiscal);

            return(notaFiscal);
        }
Beispiel #3
0
        public double CalcularValorTotal(Cliente cliente)
        {
            double total = _itensPedido.Sum((item) => {
                return(item.Valor * item.Quantidade);
            });

            double taxas;
            // context
            IImposto imposto = _fabricaImposto.GetInstance();

            taxas = imposto.CalcularTaxas(cliente, total);
            total = total + taxas;
            return(total);
        }
Beispiel #4
0
        public double CalcularValorTotal(Cliente cliente)
        {
            double total = _itensPedido.Sum((item) => {
                return(item.Valor * item.Quantidade);
            });

            double taxas;
            // dependência concreta, fábrica de imposto
            // inverter a dependência ?
            IImposto imposto = _fabricaImposto.GetInstance();

            taxas = imposto.CalcularTaxas(cliente, total);
            total = total + taxas;
            return(total);
        }
Beispiel #5
0
        static public void MostraInformações(ItemNoEstoque item, IImposto imposto)
        {
            WriteLine("================================");

            WriteLine($"O valor do item sem impostos: ${item.Valor}");
            var valorDoCalculo = imposto.Calcular(item);

            if (valorDoCalculo != -1)
            {
                WriteLine($"Imposto a se pagar: {valorDoCalculo}");
                WriteLine($"O valor do item com impostos: ${item.Valor}");
            }
            else
            {
                WriteLine($"Este produto esta issento de tributação");
            }

            WriteLine("================================");
        }
        /// <summary>
        /// Método que independe do imposto para calcular o valor do mesmo.
        /// </summary>
        /// <param name="orcamento">Classe que representa o orçamento.</param>
        /// <param name="imposto">Interface que representa todos os impostos.</param>
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            #region Smell Bad - CÓDIGO PROBLEMÁTICO

            /*
             * if ("ICMS".Equals(imposto))
             * {
             *  //double icms = orcamento.Valor * 0.1;      //CODIGO PROBLEMÁTICO
             *  double icms = new ICMS().CalculaICMS(orcamento);
             *  Console.WriteLine(icms);
             * }
             * else if("ISS".Equals(imposto))
             * {
             *  //double iss = orcamento.Valor * 0.06;      //CODIGO PROBLEMÁTICO
             *  double iss = new ISS().CalculaISS(orcamento);
             *  Console.WriteLine(iss);
             * }*/
            #endregion

            Console.WriteLine(imposto.Calcula(orcamento));
        }
Beispiel #7
0
 public ImpostoMuitoAlto(IImposto outroImposto) : base(outroImposto)
 {
 }
 public TemplateDeImpostoCondicional(IImposto outroImposto)
     : base(outroImposto)
 {
 }
        // Passar a interface como parâmetro
        // Com este método genérico por mais que se crie vários outros impostos não precisamos mexer no Calculador de Impostos
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double resultado = imposto.Calcula(orcamento);

            Console.WriteLine(resultado);
        }
 public Imposto()
 {
     this.OutroImposto = null;
 }
 public ICPP(IImposto outroImposto)
     : base(outroImposto)
 {
 }
Beispiel #12
0
 public TemplateDeImpostoCondicional(IImposto outroImposto) : base(outroImposto)
 {
 }
Beispiel #13
0
 public double RealizarCalculo(Orcamento orcamento, IImposto imposto)
 {
     return(imposto.Calcular(orcamento));
 }
Beispiel #14
0
 public Icms(IImposto outroImposto) : base(outroImposto)
 {
     TaxaPadrao += _TAXA;
 }
Beispiel #15
0
 //no construtor eu carrego quem vai ser o imposto que vou chamar
 public CalculadorDeImpostos(IImposto _imposto)
 {
     this.imposto = _imposto;
 }
Beispiel #16
0
 public Salario Desconta(IImposto desconto)
 {
     SalarioAtual -= desconto.Calcula(SalarioAtual);
     return(this);
 }
 public double RealizarCalculo(IImposto imposto)
 {
     return(imposto.Calcular(_orcamento.Valor));
 }
 public ICMS(IImposto outroImposto)
     : base(outroImposto)
 {
 }
 public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
 {
     var calculo = imposto.Calcula(orcamento);
     Console.WriteLine("PadroesDeProjetos.Strategy: " + calculo);
 }
Beispiel #20
0
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double resultado = imposto.Calcula(orcamento);

            Console.WriteLine(resultado);
        }
        public static void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            var valor = imposto.CalcularImposto(orcamento);

            Console.WriteLine($"O imposto do orçamento é : {valor}");
        }
 public CalculadorDeImposto(Orcamento orcamento, IImposto imposto)
 {
     _orcamento = orcamento;
     _imposto   = imposto;
 }
 public decimal CalcularImpostos(Pedido pedido, IImposto imposto)
 {
     return(imposto.Calcular(pedido));
 }
Beispiel #24
0
        public decimal Calcular(Orcamento orcamento, IImposto imposto)
        {
            decimal resultado = imposto.Calcular(orcamento);

            return(resultado);
        }
Beispiel #25
0
 public double RealizaCalculoImposto(double orcamento, IImposto imposto)
 {
     return(imposto.Calcular(orcamento));
 }
Beispiel #26
0
 public double CalculaImposto(Orcamento orcamento, IImposto imposto)
 {
     return(imposto.Calcular(orcamento));
 }
Beispiel #27
0
 public double CalcularImpostos(Orcamento orcamento, IImposto Imposto)
 {
     return(Imposto.Calcular(orcamento));
 }
Beispiel #28
0
 public Alfandega(IImposto outroImposto) : base(outroImposto)
 {
     TaxaPadrao += _TAXA;
 }
Beispiel #29
0
        public void RealizarCalculo(Orcamento orcamento, IImposto imposto)
        {
            var valor = imposto.Calcular(orcamento);

            Console.WriteLine(valor);
        }
Beispiel #30
0
 public IHIT(IImposto outroImposto) : base(outroImposto)
 {
 }
Beispiel #31
0
 public ICPP(IImposto outroImposto) : base(outroImposto)
 {
 }
 public Imposto(IImposto outroImposto)
 {
     this.OutroImposto = outroImposto;
 }
Beispiel #33
0
 public ConditionalTaxTemplate(IImposto outroImposto) : base(outroImposto)
 {
 }
        public void RealizaCalculo(Orcamento orcamento, IImposto imposto)
        {
            double valor = imposto.Calcula(orcamento);

            Console.WriteLine(valor);
        }
 public double Calcular(double valor, IImposto imposto)
 {
     return(imposto.Calcular(valor));
 }
 public ICCC(IImposto outroImposto)
     : base(outroImposto)
 {
 }
 public ImpostoMuitoAlto(IImposto outroImposto)
     : base(outroImposto)
 {
 }