Exemplo n.º 1
0
        public IHttpActionResult GetAssign(int funcionario)
        {
            try {
                // Verificar se este funcionario ainda tem waves pendentes
                // Se tem, retornar essa wave
                dynamic pendingWave = PriIntegration.GetWaveActual(funcionario);
                if (pendingWave != null)
                {
                    return(Ok(pendingWave));
                }

                // Verificar se existem replenishment lines pendentes
                // Se sim, retorna uma nova replenishment wave
                Wave <ReplenishmentLine> pendingReplenishmentWave = PriIntegration.GetProximaReplenishmentOrder(funcionario);
                if (pendingReplenishmentWave != null)
                {
                    return(Ok(pendingReplenishmentWave));
                }

                // Por fim, verificar se existem picking waves pendentes
                // Se sim, retorna uma nova picking wave
                Wave <PickingLine> pendingPickingWave = PriIntegration.GetProximaPickingWave(funcionario);
                if (pendingPickingWave != null)
                {
                    return(Ok(pendingPickingWave));
                }
            } catch (InvalidOperationException invalidOperation) {
                return(BadRequest(invalidOperation.Message));
            } catch (Exception e) {
                return(InternalServerError(e));
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }