public async Task <IActionResult> DesasociarSupervisor(int numeroOrden) { var usuario = await ObtenerUsuario(); var specOrden = new OrdenConEstadoActivaOPausadaYNumero(numeroOrden); var orden = await _unitOfWork.Repository <OrdenDeProduccion>().GetEntityWithSpec(specOrden); if (orden != null && usuario.Empleado != null) { orden.DesasociarSupervisor(usuario.Empleado); await _unitOfWork.Complete(); } return(RedirectToAction("IniciarAsociacion")); }
public async Task <IActionResult> AsociarSupervisor(int numeroOrden) { var usuario = await ObtenerUsuario(); var specOrden = new OrdenConEstadoActivaOPausadaYNumero(numeroOrden); var orden = await _unitOfWork.Repository <OrdenDeProduccion>().GetEntityWithSpec(specOrden); var specLineas = new AddLineasIncludesSpecification(); var lineas = await _unitOfWork.Repository <LineaDeTrabajo>().ListAsync(specLineas); var supervisorValido = 0; var hayActivasOPausadas = 0; if (orden != null && usuario.Empleado != null && lineas != null) { foreach (var linea in lineas) { if (linea.OrdenesDeProduccion.All(o => o.Estado == EstadoOrden.Finalizada)) { } else { hayActivasOPausadas++; var supervisorDispo = linea.ValidarSupervisor(usuario.Empleado); if (supervisorDispo) { supervisorValido++; } } } if (supervisorValido == hayActivasOPausadas) { orden.AsociarSupervisor(usuario.Empleado); await _unitOfWork.Complete(); } } return(RedirectToAction("IniciarAsociacion")); }