Exemplo n.º 1
0
        private static DatosParaLaInversion DetermineElTipo(TipoDeInversion elTipoDeInversion)
        {
            DatosParaLaInversion losDatos;

            switch (elTipoDeInversion)
            {
            case TipoDeInversion.ConTratamientoFiscal:
                losDatos = new DatosParaLaInversionConTratamiento();
                break;

            case TipoDeInversion.SinTratamientoFiscal:
                losDatos = new DatosParaLaInversionSinTratamiento();
                break;

            case TipoDeInversion.Tratamiento360:
                losDatos = new DatosParaLaInversion360();
                break;

            default:
                throw new ArgumentException("Error: tipo de inversion invalido.");
            }
            return(losDatos);
        }
Exemplo n.º 2
0
        public static Inversion GenereLaInversion(double elValorFacial,
                                                  double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion)
        {
            DatosParaLaInversion losDatos = ObtengaLosDatos(elValorFacial, elValorTransadoNeto, elPlazoEnDias, elTipoDeInversion);

            return(ObtengaLaInversion(losDatos));
        }
Exemplo n.º 3
0
        public static Inversion GenereLaInversion(double elValorFacial,
                                                  double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion)
        {
            //VALIDACION DE LOS DATOS

            if (elValorFacial <= 100000)
            {
                throw new ArgumentException("Error: El valor facial es invalido.");
            }

            if (elValorTransadoNeto <= 100000)
            {
                throw new ArgumentException("Error: El valor transado neto es invalido.");
            }

            if (elPlazoEnDias < 1)
            {
                throw new ArgumentException("Error: El plazo en dias es invalido.");
            }

            //DEPENDENCIAS CON RECURSOS EXTERNOS

            DateTime laFechaActual    = DateTime.Now;
            double   laTasaDeImpuesto = new RepositorioDeParametros().ObtengaLaTasaDeimpuestoVigente(laFechaActual);
            int      elConsecutivo    = new RepositorioDeParametros().ObtengaElConsecutivoParaElCodigoDeReferencia(laFechaActual);

            //ASIGNACION DE LAS PROPIEDADES

            DatosParaLaInversion losDatos;

            switch (elTipoDeInversion)
            {
            case TipoDeInversion.ConTratamientoFiscal:
                losDatos = new DatosParaLaInversionConTratamiento();
                break;

            case TipoDeInversion.SinTratamientoFiscal:
                losDatos = new DatosParaLaInversionSinTratamiento();
                break;

            case TipoDeInversion.Tratamiento360:
                losDatos = new DatosParaLaInversion360();
                break;

            default:
                throw new ArgumentException("Error: tipo de inversion invalido.");
            }

            //ASIGNACION DE TODOS LOS DATOS PARA LA INVERSION
            losDatos.ValorFacial       = elValorFacial;
            losDatos.ValorTransadoNeto = elValorTransadoNeto;
            losDatos.TasaDeImpuesto    = laTasaDeImpuesto;
            losDatos.FechaActual       = laFechaActual;

            DateTime laFechaDeVencimiento = laFechaActual.AddDays(elPlazoEnDias);

            losDatos.FechaDeVencimiento = laFechaDeVencimiento;

            string elConsecutivoComoTexto = elConsecutivo.ToString();

            losDatos.ConsecutivoParaElCodigoDeReferencia = elConsecutivoComoTexto;

            return(new Inversion(losDatos));
        }
Exemplo n.º 4
0
        private static DatosParaLaInversion ObtengaLosDatos(double elValorFacial, double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion)
        {
            DatosParaLaInversion losDatos = DetermineElTipo(elTipoDeInversion);

            DateTime laFechaActual = ObtengaLaFechaActual();

            losDatos.ValorFacial        = elValorFacial;
            losDatos.ValorTransadoNeto  = elValorTransadoNeto;
            losDatos.TasaDeImpuesto     = ObtengaLaTasaDeImpuesto(laFechaActual);
            losDatos.FechaActual        = laFechaActual;
            losDatos.FechaDeVencimiento = ObtengaLaFechaDeVencimiento(elPlazoEnDias, laFechaActual);
            losDatos.ConsecutivoParaElCodigoDeReferencia = ObtengaElConsecutivoComoTexto(laFechaActual);

            return(losDatos);
        }
Exemplo n.º 5
0
 public InversionFinal(double elValorFacial,
                       double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion)
 {
     losDatos = ObtengaLosDatos(elValorFacial, elValorTransadoNeto, elPlazoEnDias, elTipoDeInversion);
 }