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); } }
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")); }