Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        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"));
        }