예제 #1
0
        public async Task <IActionResult> FinalizarOrden(int numeroLinea)
        {
            var usuario = await ObtenerUsuario();

            if (usuario != null)
            {
                var specLinea   = new LineaConNumeroYEmpleadoSpecification(numeroLinea, usuario.Empleado);
                var lineaValida = await _unitOfWork.Repository <LineaDeTrabajo>().GetEntityWithSpec(specLinea);

                if (lineaValida != null)
                {
                    var specOrden           = new OrdenesConOrdenActivaYPausadaConLineaSpecification(lineaValida);
                    var ordenActivaOPausada = await _unitOfWork.Repository <OrdenDeProduccion>().GetEntityWithSpec(specOrden);

                    var horaActual = _unitOfWork.GetHora();

                    if (ordenActivaOPausada != null)
                    {
                        lineaValida.FinalizarOrden(horaActual, ordenActivaOPausada);
                        await _unitOfWork.Complete();
                    }
                    ModelState.AddModelError("", "Orden ya finalizada");
                }
            }

            return(RedirectToAction("ObtenerLineas"));
        }
예제 #2
0
        public async Task <IActionResult> ReanudarOrden(int numeroLinea)
        {
            var usuario = await ObtenerUsuario();

            if (usuario != null)
            {
                var specLinea   = new LineaConNumeroYEmpleadoSpecification(numeroLinea, usuario.Empleado);
                var lineaValida = await _unitOfWork.Repository <LineaDeTrabajo>().GetEntityWithSpec(specLinea);

                if (lineaValida != null)
                {
                    var specOrden   = new OrdenConEstadoABuscarSpecification(lineaValida, EstadoOrden.Pausada);
                    var ordenActiva = await _unitOfWork.Repository <OrdenDeProduccion>().GetEntityWithSpec(specOrden);

                    var horaActual = _unitOfWork.GetHora();
                    var turnos     = await _unitOfWork.Repository <Turno>().ListAllAsync();


                    if (ordenActiva != null && turnos != null && usuario != null)
                    {
                        lineaValida.ReanudarOrden(turnos, horaActual, ordenActiva);
                        await _unitOfWork.Complete();
                    }
                }
            }
            return(RedirectToAction("ObtenerLineas"));
        }