/** * Consolida las requisiciones correspondientes y mueve las solicitudes en EF * @return Array */ public function consolidarRequisiciones() { $returnArray = array('status' => true, 'message' => ''); $input = Request::createFromGlobals(); $requestCore = new \RequestCore(); $flow = $_SESSION['user_flow']; $step = FlowSettings::get($_SESSION['user_flow'], 'ADQ_STEP_CONSOLIDATION'); $requisiciones = Requisicion::getRequisicionesParaConsolidar(); $ordenescompra = OrdenCompra::getOrdenesCompraParaConsolidar(); // Tomar la tarea actual, si no está completada salir foreach ($requisiciones as $requisicion) { if ($requisicion->asignada_totalmente == 0) { $returnArray['status'] = false; $returnArray['message'] = 'La requisición ' . $requisicion->id . ' no se encuentra asignada por completo. No se puede continuar'; return $returnArray; } } // Cambiar estado de las ordenes de compra cuyas requisiciones estén totalmente asignadas foreach ($ordenescompra as $ordencompra) { $ordencompra->estado = 'C'; $ordencompra->save(); } foreach ($requisiciones as $requisicion) { // Solo completar tareas de requisiciones asignadas totalmente if ($requisicion->asignada_totalmente == 1) { // Cambiar estado a 'C' (Consolidada) $requisicion->estado = 'C'; $requisicion->save(); $task = $requisicion->ef_request->open_tasks[0]; // Completar tareas diferentes a la actual // (No se completa la actual porque EF lo hace por default) if ($task->task_id != $input->task_id) { $requestCore->completeTask($task->task_request, $task->task_id, $input->flow_id, $input->step_id, $input->user_id, 'Requisición consolidada por el usuario ' . $_SESSION['user_id'], 'next'); } } } return $returnArray; }
/** * Devuelve las ordenes de compra correspondientes * @return Array */ public function getOrdenesCompra() { $input = Request::createFromGlobals(); $ordenes_compra = OrdenCompra::getOrdenesCompraParaConsolidar($input->id); return $ordenes_compra; }