public async Task <ActionResult> CheckMantenimientoRealizado([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } HoteleriaContext _context2 = new HoteleriaContext(); var habitacion = await _context.Habitacion.FindAsync(id); var incidencia = _context.Incidencia.Where(i => i.Habitacion == habitacion.Numero).Last(); if (habitacion == null) { return(NotFound()); } if (incidencia == null) { return(BadRequest(new ErrorResponse() { messages = new string[] { "HABITACION.MISSING_ISSUE" } })); } var asignEmpleado = _asignacionesRepository.EmpleadoAsignadoPorRol(habitacion.HabitacionId, (int)RolEnum.AgenteDeLimpieza); if (asignEmpleado == null) { return(BadRequest(new ErrorResponse() { messages = new string[] { "HABITACION.MISSING_CLEANER" } })); } if (habitacion.EstadoHabitacionId != (int)HabitacionEstado.Bloqueado) { return(BadRequest(new ErrorResponse() { messages = new string[] { "HABITACION.ERROR_ON_CHECK_UPKEEP" } })); } habitacion.EstadoHabitacionId = (int)HabitacionEstado.Desocupado; _habitacionRepository.Edit(habitacion); incidencia.Estado = 1; incidencia.FechaCerrado = DateTime.Now; _context.Update(incidencia); var empleadoid = _context2.Empleado.Where(e => e.UsuarioNombre == _userManager.GetUserName(User)).First().EmpleadoId; var asignacion = _context2.AsignacionHabitacion.Where(a => a.EmpleadoId == empleadoid && a.HabitacionId == habitacion.HabitacionId).First(); _context2.Remove(asignacion); _habitacionRepository.SaveChanges(); _context.SaveChanges(); _context2.SaveChanges(); new NotificacionService().Notificar(asignEmpleado.Empleado, habitacion, ActividadTipo.Limpieza); return(Ok(habitacion)); }
public async Task <IActionResult> Edit(int id, [Bind("IncidenciaID,EmpleadoId,Habitacion,Prioridad,Descripcion,Encargado,Estado,FechaAbierto,FechaCerrado")] Incidencia incidencia) { if (id != incidencia.IncidenciaID) { return(NotFound()); } if (ModelState.IsValid) { try { HoteleriaContext _context2 = new HoteleriaContext(); HoteleriaContext _context3 = new HoteleriaContext(); Incidencia inc = _context2.Incidencia.Find(incidencia.IncidenciaID); if (incidencia.Encargado != null && incidencia.Estado == 0) { Empleado emp = _context2.Empleado.Where(e => e.UsuarioNombre == incidencia.Encargado).First(); Habitacion hab = _context2.Habitacion.Where(h => h.Numero == incidencia.Habitacion).First(); AsignacionHabitacion asignacionHabitacion = new AsignacionHabitacion { EmpleadoId = emp.EmpleadoId, HabitacionId = hab.HabitacionId, RolId = 4 }; if (inc.Encargado == null) { _context2.Add(asignacionHabitacion); } else { _context2.Update(asignacionHabitacion); } new NotificacionService().Notificar(emp, hab, ActividadTipo.Mantenimiento); } if (incidencia.Estado == 0) { incidencia.FechaCerrado = null; var habitacion = _context3.Habitacion.Where(a => a.Numero == incidencia.Habitacion).First(); if (habitacion.EstadoHabitacionId != 7) { habitacion.EstadoHabitacionId = 7; _context3.Update(habitacion); } } else if (incidencia.Estado == 1) { incidencia.FechaCerrado = DateTime.Now; var habitacion = _context3.Habitacion.Where(a => a.Numero == incidencia.Habitacion).First(); var limpiezaid = _context3.AsignacionHabitacion.Where(a => a.HabitacionId == habitacion.HabitacionId && a.RolId == 3).First().EmpleadoId; var emplimp = _context3.Empleado.Find(limpiezaid); habitacion.EstadoHabitacionId = 3; _context3.Update(habitacion); new NotificacionService().Notificar(emplimp, habitacion, ActividadTipo.Limpieza); var emp = _context2.Empleado.Where(e => e.UsuarioNombre == incidencia.Encargado).First(); var asignacionHabitacion = _context2.AsignacionHabitacion.Where(a => a.EmpleadoId == emp.EmpleadoId && a.HabitacionId == habitacion.HabitacionId).First(); _context2.Remove(asignacionHabitacion); } _context.Update(incidencia); await _context.SaveChangesAsync(); await _context2.SaveChangesAsync(); await _context3.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!IncidenciaExists(incidencia.IncidenciaID)) { return(NotFound()); } else { throw; } } alert("success", "Incidencia editada con exito", "Operacion exitosa"); return(RedirectToAction(nameof(Index))); } var estados = new SelectList( new List <SelectListItem> { new SelectListItem { Text = "1", Value = "Resuelto" }, new SelectListItem { Text = "0", Value = "Pendiente" } }, "Value", "Text"); ViewData["Estado"] = new SelectList(estados, estados.DataTextField, estados.DataValueField); var encargados = _userManager.GetUsersInRoleAsync("Mantenimiento").Result; ViewData["Encargado"] = new SelectList(encargados); List <string> prioridad = new List <string> { "Alta", "Media", "Baja" }; ViewData["Prioridad"] = new SelectList(prioridad); return(View(incidencia)); }