public static CalculoIrpf createInstance(TipoCalculo t, int cpf)
        {
            switch (t)
            {
            case TipoCalculo.SIMPLIFICADO:
                return(new CalculoIrpfSimplificado(cpf));

            case TipoCalculo.COMPLETO:
                return(new CalculoIrpfCompleto(cpf));
            }
            return(null);
        }
Exemple #2
0
        public static ITipoCalculoService Obter(TipoCalculo tipoCalculo)
        {
            switch (tipoCalculo)
            {
            case TipoCalculo.Capsula:
                return(new CapsulaService(new Preco(), new Validade()));

            case TipoCalculo.Creme:
                return(new CremeService(new Preco(), new Validade()));

            case TipoCalculo.Homeopatia:
                return(new HomeopatiaService(new PrecoHomeopatia(), new Validade()));

            default:
                throw new ArgumentException("Tipo de calculo nao encontrado");
            }
        }
        static void Main(string[] args)
        {
            // este valor es ingresado o obtenido de alguna forma
            TipoCalculo tipoCalculo = TipoCalculo.Resta;

            // suponiendo estos numeros los ingresa el usuario
            int numero1 = 2;
            int numero2 = 5;

            var contexto = new CalculadoraContext(tipoCalculo);

            var resultado = contexto.EjecutarCalculo(numero1, numero2);

            Console.WriteLine($"el resultado es: { resultado }");

            Console.ReadLine();
        }
Exemple #4
0
        public CalculadoraContext(TipoCalculo tipoCalculo)
        {
            switch (tipoCalculo)
            {
            case TipoCalculo.Suma:
                _calculoStrategy = new Suma();
                break;

            case TipoCalculo.Resta:
                _calculoStrategy = new Resta();
                break;

            case TipoCalculo.Multiplicacion:
                _calculoStrategy = null;
                break;

            default:
                break;
            }
        }
        public IDescontoAcrescimoStrategy RecuperaEstrategia(TipoCalculo tipo, TipoAplicacao aplicacao)
        {
            IDescontoAcrescimoStrategy estrategia = null;

            switch (tipo)
            {
            case TipoCalculo.Acrescimo:
                estrategia = RecuperaEstrategiaAcrescimo(aplicacao);
                break;

            case TipoCalculo.Desconto:
                estrategia = RecuperaEstrategiaDesconto(aplicacao);
                break;

            case TipoCalculo.Comissao:
                estrategia = RecuperaEstrategiaComissao(aplicacao);
                break;
            }

            return(estrategia ?? SemAlteracaoStrategy.Instance);
        }
Exemple #6
0
        public double calcula(TipoCalculo t, String cpf)
        {
            Contribuinte contribuinte;

            try
            {
                contribuinte = cadContribuinte.buscar(cpf);
            }
            catch (DAOException ex)
            {
                throw new IrpfException("Erro: " + ex.Message);
            }
            if (contribuinte == null)
            {
                throw new IrpfException("CPF inexistente: " + cpf);
            }
            CalculoIrpf ir = CalculoIrpfFactory.createInstance(t);

            contribuinte.defineCalculo(ir);
            return(contribuinte.getImpostoDevido());
        }
Exemple #7
0
        public bool ValidarCampos(string nome, string largura, string comprimento, string larguraEspacamento, string comprimentoEspacamento, TipoCalculo tipoCalculo)
        {
            if (string.IsNullOrEmpty(nome))
            {
                MessageBox.Show("Erro nos campos", "O campo nome deve ser preenchido");
                return(false);
            }

            double auxDouble;

            if (!double.TryParse(largura, out auxDouble))
            {
                MessageBox.Show("Erro nos campos", "O campo largura deve ser preenchido corretamente");
                return(false);
            }
            if (!double.TryParse(comprimento, out auxDouble))
            {
                MessageBox.Show("Erro nos campos", "O campo comprimento deve ser preenchido corretamente");
                return(false);
            }
            if (!double.TryParse(larguraEspacamento, out auxDouble))
            {
                MessageBox.Show("Erro nos campos", "O campo largura espaçamento deve ser preenchido corretamente");
                return(false);
            }
            if (!double.TryParse(comprimentoEspacamento, out auxDouble))
            {
                MessageBox.Show("Erro nos campos", "O campo comprimento espaçamento deve ser preenchido corretamente");
                return(false);
            }

            Nome                   = nome;
            Largura                = double.Parse(largura);
            Comprimento            = double.Parse(comprimento);
            LarguraEspacamento     = double.Parse(larguraEspacamento);
            ComprimentoEspacamento = double.Parse(comprimentoEspacamento);
            TipoCalculo            = tipoCalculo;

            return(true);
        }
        public Manipulacao Calcular(TipoCalculo tipoCalculo, Manipulacao manipulacao)
        {
            if (tipoCalculo == TipoCalculo.Capsula)
            {
                new Capsula().CalcularComponentes(manipulacao);
                new Preco().Calcular(manipulacao);
            }

            if (tipoCalculo == TipoCalculo.Creme)
            {
                new Creme().CalcularComponentes(manipulacao);
                new Preco().Calcular(manipulacao);
            }

            if (tipoCalculo == TipoCalculo.Homeopatia)
            {
                new Homeopatia().CalcularComponentes(manipulacao);
                new PrecoHomeopatia().Calcular(manipulacao);
            }

            new Validade().Calcular(manipulacao);

            return(manipulacao);
        }
 internal static CalculoIrpf createInstance(TipoCalculo t)
 {
     throw new NotImplementedException();
 }
Exemple #10
0
        public string ObterTextoRecortes(string padrao, Posicao posicao, ValorPorComodo valorComodo, bool porMilimetros, TipoCalculo tipoCalculo)
        {
            var retorno = padrao;

            var recortes = new List <Recorte>();

            recortes.AddRange(valorComodo.Recortes.Where(x => x.Posicao == posicao));

            if (recortes.Count == 0)
            {
                return("");
            }

            var recortesPrincipal      = recortes.Where(x => x.TipoRecorte == TipoRecorte.CortePrincipal).ToList();
            var recortesComplementares = recortes.Where(x => x.TipoRecorte == TipoRecorte.CorteComplementar).ToList();

            if (tipoCalculo == TipoCalculo.SentidoUnico)
            {
                if (recortesComplementares.Count > 0 && recortesPrincipal.Count > 0)
                {
                    recortesPrincipal.Add(recortesPrincipal.FirstOrDefault());
                }

                recortesComplementares = new List <Recorte>();
            }

            if (recortesPrincipal.Count > 0)
            {
                var recortePrincipal = recortesPrincipal.FirstOrDefault();

                retorno += recortesPrincipal.Count + " peças: " + (porMilimetros ? recortePrincipal.TamanhoX : recortePrincipal.TamanhoX / 1000) + "x" + (porMilimetros ? recortePrincipal.TamanhoY : recortePrincipal.TamanhoY / 1000);
                if (recortesComplementares.Count > 0)
                {
                    var recorteComplementar = recortesComplementares.FirstOrDefault();

                    retorno += " + complementar: " + (porMilimetros ? recorteComplementar.TamanhoX : recorteComplementar.TamanhoX / 1000) + "x" + (porMilimetros ? recorteComplementar.TamanhoY : recorteComplementar.TamanhoY / 1000);
                }
            }
            else if (recortesComplementares.Count > 0)
            {
                var recorteComplementar = recortesComplementares.FirstOrDefault();

                retorno += recortesComplementares.Count + " peças: " + (porMilimetros ? recorteComplementar.TamanhoX : recorteComplementar.TamanhoX / 1000) + "x" + (porMilimetros ? recorteComplementar.TamanhoY : recorteComplementar.TamanhoY / 1000);
            }

            return(retorno);
        }