Ejemplo n.º 1
0
        public static Emision GenereLaEmision(TipoDeIdentificacion elTipoDeIdentificacion,
                                              string laIdentificacion,
                                              string elNombre,
                                              string elPrimerApellido,
                                              string elSegundoApellido)
        {
            // Las dependencias con recursos externos
            string   laDireccionDeRevocacion = new RepositorioDeParametros().ObtengaLaDireccionDeRevocacion();
            int      losAñosDeVigencia       = new RepositorioDeParametros().ObtengaLosAñosDeVigencia();
            DateTime laFechaActual           = DateTime.Now;

            // 1. Genere la fecha de generacion
            Emision laEmision = new Emision();

            laEmision.FechaDeGeneracion = laFechaActual;

            // 2. Genere el certificado de autenticacion
            DatosParaUnCertificadoDigital losDatosDeAutenticacion;

            if (elTipoDeIdentificacion == TipoDeIdentificacion.Cedula)
            {
                losDatosDeAutenticacion = new DatosParaUnCertificadoDigitalNacionalDeAutenticacion();
            }
            else
            {
                losDatosDeAutenticacion = new DatosParaUnCertificadoDigitalExtranjeroDeAutenticacion();
            }

            losDatosDeAutenticacion.Nombre                = elNombre;
            losDatosDeAutenticacion.Identificacion        = laIdentificacion;
            losDatosDeAutenticacion.PrimerApellido        = elPrimerApellido;
            losDatosDeAutenticacion.SegundoApellido       = elSegundoApellido;
            losDatosDeAutenticacion.FechaActual           = laFechaActual;
            losDatosDeAutenticacion.DireccionDeRevocacion = laDireccionDeRevocacion;
            losDatosDeAutenticacion.AñosDeVigencia        = losAñosDeVigencia;

            laEmision.CertificadoDeAutenticacion = new CertificadoDigital(losDatosDeAutenticacion);

            // 3. Genere el certificado de firma
            DatosParaUnCertificadoDigital losDatosDeFirma;

            if (elTipoDeIdentificacion == TipoDeIdentificacion.Cedula)
            {
                losDatosDeFirma = new DatosParaUnCertificadoDigitalNacionalDeFirma();
            }
            else
            {
                losDatosDeFirma = new DatosParaUnCertificadoDigitalExtranjeroDeFirma();
            }

            losDatosDeFirma.Nombre                = elNombre;
            losDatosDeFirma.Identificacion        = laIdentificacion;
            losDatosDeFirma.PrimerApellido        = elPrimerApellido;
            losDatosDeFirma.SegundoApellido       = elSegundoApellido;
            losDatosDeFirma.FechaActual           = laFechaActual;
            losDatosDeFirma.DireccionDeRevocacion = laDireccionDeRevocacion;
            losDatosDeFirma.AñosDeVigencia        = losAñosDeVigencia;

            laEmision.CertificadoDeFirma = new CertificadoDigital(losDatosDeFirma);

            return(laEmision);
        }
Ejemplo n.º 2
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));
        }