示例#1
0
        private static void PeriodChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SemiTrimesterViewModel semiTrimester = (SemiTrimesterViewModel)d;

            if (semiTrimester.Period1 != null)
            {
                semiTrimester.FromDate = semiTrimester.Period1.FromDate;
                if (semiTrimester.Period2 != null)
                {
                    semiTrimester.ToDate = semiTrimester.Period2.ToDate;
                }
                else
                {
                    semiTrimester.ToDate = semiTrimester.Period1.ToDate;
                }
                semiTrimester.Name = MonthUtils.Name(semiTrimester.ToDate.Month);
            }
        }
示例#2
0
        public ActionResult Save(Flujo flujo)
        {
            //si el periodo es ninguno
            if (flujo.PeriodoId == 1)
            {
                flujo.FechaFin = flujo.Fecha;
            }

            if (flujo.Id == 0)
            {
                //tabla flujos
                var userId      = User.Identity.GetUserId();
                var tipoIngreso = _context.Tipos.Single(t => t.Nombre == "Ingreso");
                flujo.Tipo = tipoIngreso;
                flujo.ApplicationUserId = userId;
                _context.Flujos.Add(flujo);


                //para obtener el id
                _context.SaveChanges();

                //tabla flujos mesuales

                var monthUtils = new MonthUtils();
                var montos     = monthUtils
                                 .GetMonthList(flujo.Fecha, flujo.FechaFin, flujo.PeriodoId - 1, Convert.ToDecimal(flujo.Monto));


                for (var mes = 0; mes < 12; mes++)
                {
                    if (montos[mes] == 0)
                    {
                        continue;
                    }

                    var newFlujoMensual = new FlujoMensual()
                    {
                        FlujoId = flujo.Id,
                        MesId   = Convert.ToByte(mes + 1),
                        Monto   = montos[mes]
                    };

                    _context.FlujosMensuales.Add(newFlujoMensual);
                }
            }
            else
            {
                var flujoInDb = _context.Flujos.Single(f => f.Id == flujo.Id);
                flujoInDb.Nombre    = flujo.Nombre;
                flujoInDb.Monto     = flujo.Monto;
                flujoInDb.Fecha     = flujo.Fecha;
                flujoInDb.PeriodoId = flujo.PeriodoId;
                flujoInDb.FechaFin  = flujo.FechaFin;

                //tabla flujomensual
                var monthUtils = new MonthUtils();
                var montos     = monthUtils
                                 .GetMonthList(flujo.Fecha, flujo.FechaFin, flujo.PeriodoId - 1, Convert.ToDecimal(flujo.Monto));

                var flujosMensualesInDb = _context.FlujosMensuales
                                          .Where(fm => fm.FlujoId == flujo.Id).ToList();
                for (var mes = 0; mes < 12; mes++)
                {
                    var flujoMensualInDb = _context.FlujosMensuales
                                           .Where(fm => fm.MesId == (mes + 1) && fm.FlujoId == flujoInDb.Id)
                                           .DefaultIfEmpty(null)
                                           .Single();

                    if (flujoMensualInDb == null)
                    {
                        if (montos[mes] == 0)
                        {
                            continue;
                        }

                        var newFlujoMensual = new FlujoMensual()
                        {
                            FlujoId = flujoInDb.Id,
                            MesId   = Convert.ToByte(mes + 1),
                            Monto   = montos[mes]
                        };

                        _context.FlujosMensuales.Add(newFlujoMensual);
                    }
                    else
                    {
                        flujoMensualInDb.Monto = montos[mes];
                    }
                }
            }

            _context.SaveChanges();

            return(RedirectToAction("Index", "Ingresos"));
        }