Exemple #1
0
        public static Inversion GenereLaInversion(double elValorFacial,
                                                  double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion)
        {
            DatosParaLaInversion losDatos = ObtengaLosDatos(elValorFacial, elValorTransadoNeto, elPlazoEnDias, elTipoDeInversion);

            return(ObtengaLaInversion(losDatos));
        }
Exemple #2
0
        public void ComoTexto_FechaYConsecutivo_CodigoDeReferenciaCorrecto()
        {
            elResultadoEsperado = "20160303022058888888888887";

            losDatos             = new DatosParaLaInversion();
            losDatos.FechaActual = new DateTime(2016, 3, 3);
            losDatos.ConsecutivoParaElCodigoDeReferencia = "888888888888";

            elResultadoObtenido = new CodigoDeReferenciaParaInversion(losDatos).ComoTexto();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
Exemple #3
0
        private DatosParaLaInversion ObtengaLosDatos(DatosParaLaFecha losDatosParaLaFecha)
        {
            DatosParaLaInversion losDatos = losDatosParaLaFecha.TipoDeDatos;

            losDatos.ValorFacial        = losDatosParaLaFecha.ValorFacial;
            losDatos.ValorTransadoNeto  = losDatosParaLaFecha.ValorTransadoNeto;
            losDatos.TasaDeImpuesto     = losDatosParaLaFecha.TasaDeImpuesto;
            losDatos.FechaActual        = losDatosParaLaFecha.FechaActual;
            losDatos.FechaDeVencimiento = losDatosParaLaFecha.FechaDeVencimiento;
            losDatos.ConsecutivoParaElCodigoDeReferencia = losDatosParaLaFecha.ConsecutivoComoTexto;

            return(losDatos);
        }
        public void ComoNumero_DatosCorrectos_ValorTransadoBrutoCorrecta()
        {
            elResultadoEsperado = 298378.3783;

            losDatos                    = new DatosParaLaInversion();
            losDatos.ValorFacial        = 320000;
            losDatos.ValorTransadoNeto  = 300000;
            losDatos.TasaDeImpuesto     = 0.08;
            losDatos.FechaActual        = new DateTime(2016, 3, 3);
            losDatos.FechaDeVencimiento = new DateTime(2016, 10, 10);

            elResultadoObtenido = new ValorTransadoBrutoConTratamiento(losDatos).ComoNumero();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido, 0.0001);
        }
Exemple #5
0
        public static Inversion GenereUnaNuevaInversion(DatosParaLaInversion losDatos)
        {
            Inversion laNuevaInversion = new Inversion();

            laNuevaInversion.CodigoDeReferencia      = GenereElCodigoDeReferencia(losDatos);
            laNuevaInversion.TasaNeta                = losDatos.TasaNeta;
            laNuevaInversion.TasaBruta               = losDatos.TasaBruta;
            laNuevaInversion.ValorTransadoBruto      = losDatos.ValorTransadoBruto;
            laNuevaInversion.ImpuestoPagado          = losDatos.ImpuestoPagado;
            laNuevaInversion.RendimientoPorDescuento = losDatos.RendimientoPorDescuento;
            laNuevaInversion.FechaDeValor            = losDatos.FechaActual;
            laNuevaInversion.FechaDeVencimiento      = losDatos.FechaDeVencimiento;

            return(laNuevaInversion);
        }
Exemple #6
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);
        }
        public void GenereUnaNuevaInversion_SinTratamientoFiscal_ImpuestoPagado()
        {
            elResultadoEsperado = 0;

            losDatos                        = new DatosParaLaInversion();
            losDatos.ValorFacial            = 320000;
            losDatos.ValorTransadoNeto      = 300000;
            losDatos.TasaDeImpuesto         = 0.08;
            losDatos.FechaActual            = new DateTime(2016, 3, 3);
            losDatos.FechaDeVencimiento     = new DateTime(2016, 10, 10);
            losDatos.tieneTratamientoFiscal = false;
            losDatos.ConsecutivoParaElCodigoDeReferencia = "888888888888";
            laInversion = Calculos.GenereUnaNuevaInversion(losDatos);

            elResultadoObtenido = laInversion.ImpuestoPagado;

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
Exemple #8
0
        public void GenereUnaNuevaInversion_ConTratamientoFiscal_ValorTransadoBruto()
        {
            elResultadoEsperado = 298378.3784;

            losDatos                        = new DatosParaLaInversion();
            losDatos.ValorFacial            = 320000;
            losDatos.ValorTransadoNeto      = 300000;
            losDatos.TasaDeImpuesto         = 0.08;
            losDatos.FechaActual            = new DateTime(2016, 3, 3);
            losDatos.FechaDeVencimiento     = new DateTime(2016, 10, 10);
            losDatos.tieneTratamientoFiscal = true;
            losDatos.ConsecutivoParaElCodigoDeReferencia = "888888888888";
            laInversion = Calculos.GenereUnaNuevaInversion(losDatos);

            elResultadoObtenido = Math.Round(laInversion.ValorTransadoBruto, 4);

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
Exemple #9
0
        private DatosParaLaInversion ObtengaLosDatos(DatosParaLaInversionFinal losDatosFinales)
        {
            DatosParaLaInversion losDatos = DetermineElTipo(losDatosFinales);

            DateTime laFechaActual = ObtengaLaFechaActual();
            //TODO: ARREGLAR ESTOS DETALLES
            DatosParaLaFecha losDatosParaLaFecha = new DatosParaLaFecha();

            losDatosParaLaFecha.PlazoEnDias = losDatosFinales.PlazoEnDias;
            losDatosParaLaFecha.FechaActual = laFechaActual;

            losDatos.ValorFacial        = losDatosFinales.ValorFacial;
            losDatos.ValorTransadoNeto  = losDatosFinales.ValorTransadoNeto;
            losDatos.TasaDeImpuesto     = ObtengaLaTasaDeImpuesto(laFechaActual);
            losDatos.FechaActual        = laFechaActual;
            losDatos.FechaDeVencimiento = ObtengaLaFechaDeVencimiento(losDatosParaLaFecha);
            losDatos.ConsecutivoParaElCodigoDeReferencia = ObtengaElConsecutivoComoTexto(laFechaActual);

            return(losDatos);
        }
Exemple #10
0
        private DatosParaLaInversion DetermineElTipo(DatosParaLaInversionFinal losDatosFinales)
        {
            DatosParaLaInversion losDatos;

            switch (losDatosFinales.TipoDeInversion)
            {
            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);
        }
Exemple #11
0
 public InversionFinal(DatosParaLaFecha losDatosParaLaFecha)
 {
     losDatos = ObtengaLosDatos(losDatosParaLaFecha);
 }
Exemple #12
0
 public InversionFinal(DatosParaLaInversionFinal losDatosFinales)
 {
     losDatos = ObtengaLosDatos(losDatosFinales);
 }
Exemple #13
0
 private static string GenereElCodigoDeReferencia(DatosParaLaInversion losDatos)
 {
     return(new CodigoDeReferenciaParaInversion(losDatos).ComoTexto());
 }
Exemple #14
0
 private static Inversion ObtengaLaInversion(DatosParaLaInversion losDatos)
 {
     return(new Inversion(losDatos));
 }
Exemple #15
0
 public InversionFinal(double elValorFacial,
                       double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion)
 {
     losDatos = ObtengaLosDatos(elValorFacial, elValorTransadoNeto, elPlazoEnDias, elTipoDeInversion);
 }