public ActionResult _AddEditIngreso(Int32?IngresoId, Int32 EdificioId) { AddEditIngresoViewModel ViewModel = new AddEditIngresoViewModel(); ViewModel.IngresoId = IngresoId; ViewModel.EdificioId = EdificioId; ViewModel.Fill(CargarDatosContext()); ViewModel.FillComboUnidadTiempo(CargarDatosContext()); return(PartialView(ViewModel)); }
public ActionResult AddEditIngreso(AddEditIngresoViewModel ViewModel) { if (!ModelState.IsValid) { ViewModel.Fill(CargarDatosContext()); ViewModel.FillComboUnidadTiempo(CargarDatosContext()); TryUpdateModel(ViewModel); return(View(ViewModel)); } try { if (ViewModel.IngresoId.HasValue) { var unidadDeTiempo = context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == ViewModel.UnidadTiempoId); if (context.Ingreso.Any(x => x.IngresoId != ViewModel.IngresoId && x.EdificioId == ViewModel.EdificioId && x.Estado.Equals(ConstantHelpers.EstadoActivo) && x.UnidadTiempo.Mes == unidadDeTiempo.Mes && x.UnidadTiempo.Anio == unidadDeTiempo.Anio)) { //Ya existe, retornar error de Already exist PostMessage(MessageType.AExist); return(RedirectToAction("LstIngresoAdmin", new { EdificioId = ViewModel.EdificioId })); } Ingreso ingreso = context.Ingreso.FirstOrDefault(x => x.IngresoId == ViewModel.IngresoId.Value); ingreso.UnidadTiempoId = ViewModel.UnidadTiempoId; context.Entry(ingreso).State = System.Data.Entity.EntityState.Modified; } else { var unidadDeTiempo = context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == ViewModel.UnidadTiempoId); if (context.Ingreso.Any(x => x.EdificioId == ViewModel.EdificioId && x.Estado.Equals(ConstantHelpers.EstadoActivo) && x.UnidadTiempo.Mes == unidadDeTiempo.Mes && x.UnidadTiempo.Anio == unidadDeTiempo.Anio)) { //Ya existe, retornar error de Already exist PostMessage(MessageType.AExist); return(RedirectToAction("LstIngresoAdmin", new { EdificioId = ViewModel.EdificioId })); } Ingreso ingreso = new Ingreso(); ingreso.EdificioId = ViewModel.EdificioId; ingreso.UnidadTiempoId = ViewModel.UnidadTiempoId; ingreso.FechaRegistro = DateTime.Now; ingreso.Estado = ConstantHelpers.EstadoActivo; context.Ingreso.Add(ingreso); context.SaveChanges(); //Copia de los ingresos de la unidad de tiempo antigua del mismo edificio Ingreso tempIngreso = context.Ingreso.FirstOrDefault(x => x.EdificioId == ingreso.EdificioId && (x.UnidadTiempoId != ingreso.UnidadTiempoId && x.UnidadTiempo.Estado.Equals(ConstantHelpers.EstadoActivo))); if (tempIngreso != null) { //List<DetalleIngreso> LstDetalleIngreso = context.DetalleIngreso.Where(x => x.IngresoId == tempIngreso.IngresoId).ToList().ForEach(x => { x.IngresoId = ingreso.IngresoId; context.DetalleIngreso.Add(x); } ); } } context.SaveChanges(); PostMessage(MessageType.Success); } catch { PostMessage(MessageType.Error); } return(RedirectToAction("LstIngresoAdmin", new { EdificioId = ViewModel.EdificioId })); }