示例#1
0
        public NuevaInversion(DatosDeLaInversion losDatos)
        {
            FechaDeValor = losDatos.FechaActual;

            laFechaDeVencimiento = CalculeFechaDeVencimiento(losDatos);
            FechaDeVencimiento   = laFechaDeVencimiento;

            laTasaBruta = ObtengaTasaBruta(losDatos);
            TasaBruta   = laTasaBruta;

            elValorTransadoBruto = ObtengaValorTransadoBruto(losDatos);
            ValorTransadoBruto   = elValorTransadoBruto;

            losDatosDeImpuesto = new DatosDeImpuesto();
            losDatosDeImpuesto.TratamientoFiscal  = losDatos.TratamientoFiscal;
            losDatosDeImpuesto.ValorTransadoBruto = ValorTransadoBruto;
            losDatosDeImpuesto.ValorTransadoNeto  = losDatos.ValorTransadoNeto;

            elImpuestoPagado = ObtengaImpuestoPagado(losDatosDeImpuesto);
            ImpuestoPagado   = elImpuestoPagado;

            losDatosDeRendimiento                    = new DatosDeRendimiento();
            losDatosDeRendimiento.ValorFacial        = losDatos.ValorFacial;
            losDatosDeRendimiento.ValorTransadoBruto = ValorTransadoBruto;

            elRendimientoPorDescuento = ObtengaRendimientoPorDescuento(losDatosDeRendimiento);
            RendimientoPorDescuento   = elRendimientoPorDescuento;
        }
示例#2
0
 private static decimal DetermineTasaNeta(DatosDeLaInversion losDatos)
 {
     //TODO Más de una Operacion
     if (DateTime.IsLeapYear(losDatos.FechaActual.Year))
     {
         return((losDatos.ValorFacial - losDatos.ValorTransadoNeto) / (losDatos.ValorTransadoNeto * ((decimal)losDatos.PlazoEnDias / 366)) * 100);
     }
     else
     {
         return((losDatos.ValorFacial - losDatos.ValorTransadoNeto) / (losDatos.ValorTransadoNeto * ((decimal)losDatos.PlazoEnDias / 365)) * 100);
     }
 }
示例#3
0
 private decimal DetermineValorTransadoBruto(DatosDeLaInversion losDatos)
 {
     //TODO: Mas de una operación
     if (DateTime.IsLeapYear(losDatos.FechaActual.Year))
     {
         return(losDatos.ValorFacial / (1 + ((TasaBruta) / 100) * ((decimal)losDatos.PlazoEnDias / 366)));
     }
     else
     {
         return(losDatos.ValorFacial / (1 + ((TasaBruta) / 100) * ((decimal)losDatos.PlazoEnDias / 365)));
     }
 }
示例#4
0
 private decimal ObtengaValorTransadoBruto(DatosDeLaInversion losDatos)
 {
     //TODO: Mas de una operación
     if (losDatos.TratamientoFiscal)
     {
         return(DetermineValorTransadoBruto(losDatos));
     }
     else
     {
         return(losDatos.ValorTransadoNeto);
     }
 }
示例#5
0
 public TasaBruta(DatosDeLaInversion losDatos)
 {
     TasaNeta       = DetermineTasaNeta(losDatos);
     TasaDeImpuesto = losDatos.TasaDeImpuesto;
 }
示例#6
0
 private decimal ObtengaTasaBruta(DatosDeLaInversion losDatos)
 {
     return(new TasaBruta(losDatos).ComoNumero());
 }
示例#7
0
 private DateTime CalculeFechaDeVencimiento(DatosDeLaInversion losDatos)
 {
     return(losDatos.FechaActual.AddDays(losDatos.PlazoEnDias));
 }