public ActionResult Agregar(CompensacionViewModel model) { var compensacion = model.Compensacion; ModelState.Remove("Persona"); var persona = _context.Personal.FirstOrDefault(p => p.Id == compensacion.PersonaId); if (compensacion.HorasCompensadas <= persona.HorasExtraAcumuladas) { if (compensacion.Id == 0) { _context.Compensaciones.Add(compensacion); var horasExtra = new HorasExtra() { PersonaId = compensacion.PersonaId, Fecha = compensacion.Fecha, Motivo = "Compensación", Aumenta = false, HorasCantidad = compensacion.HorasCompensadas }; _context.HorasExtra.Add(horasExtra); } else { var compensacionInDb = _context.Compensaciones.Single(p => p.Id == model.Compensacion.Id); compensacionInDb.Fecha = compensacion.Fecha; compensacionInDb.HorasCompensadas = compensacion.HorasCompensadas; compensacionInDb.PersonaId = compensacion.PersonaId; var horasExtraInDb = _context.HorasExtra.FirstOrDefault(p => p.Fecha == compensacion.Fecha && p.PersonaId == compensacion.Id); if (horasExtraInDb != null) { horasExtraInDb.PersonaId = compensacion.PersonaId; horasExtraInDb.Fecha = compensacion.Fecha; horasExtraInDb.Motivo = "Compensación"; horasExtraInDb.Aumenta = false; horasExtraInDb.HorasCantidad = compensacion.HorasCompensadas; } } _context.SaveChanges(); var compensaciones = _context.Compensaciones.Include(m => m.Persona).ToList(); return(View("ListarCompensaciones", compensaciones)); } var viewModel = new CompensacionViewModel() { Personas = _context.Personal.ToList() }; ViewBag.Error = "Horas Extra Insuficientes"; return(View("AgregarCompensacion", viewModel)); }
public ActionResult AgregarCompensacion(int id = 0) { if (id == 0) { var viewModel = new CompensacionViewModel() { Personas = _context.Personal.ToList() }; return(View(viewModel)); } else { var compensacionInBd = _context.Compensaciones.Single(p => p.Id == id); var viewModelInDb = new CompensacionViewModel(); viewModelInDb.Compensacion = compensacionInBd; viewModelInDb.Personas = _context.Personal.ToList(); return(View(viewModelInDb)); } }