|
|
@@ -88,6 +88,19 @@ class ProcessManagementController extends Controller
|
|
|
}
|
|
|
|
|
|
DB::commit();
|
|
|
+ $this->functionsController->registerActivity(
|
|
|
+ $requestData['NUMERO_LINEA'],
|
|
|
+ 'S002V01M03GEPR',
|
|
|
+ 'S002V01F01GFTR',
|
|
|
+ 'S002V01P01PCIN',
|
|
|
+ 'Registro',
|
|
|
+ "El usuario (" . $user . ") registró un flujo de trabajo.",
|
|
|
+ $user,
|
|
|
+ $this->functionsController->now(),
|
|
|
+ null,
|
|
|
+ $workflowId
|
|
|
+
|
|
|
+ );
|
|
|
return $this->responseController->makeResponse(false, "ÉXITO: Workflow registrado exitosamente", ['ID_WORKFLOW' => $workflowId]);
|
|
|
}
|
|
|
|
|
|
@@ -183,6 +196,18 @@ class ProcessManagementController extends Controller
|
|
|
}
|
|
|
|
|
|
DB::commit();
|
|
|
+ $this->functionsController->registerActivity(
|
|
|
+ $requestData['NUMERO_LINEA'],
|
|
|
+ 'S002V01M03GEPR',
|
|
|
+ 'S002V01F01GETA',
|
|
|
+ 'S002V01P01PCIN',
|
|
|
+ 'Registro',
|
|
|
+ "El usuario (" . $user . ") registró una tarea.",
|
|
|
+ $user,
|
|
|
+ $this->functionsController->now(),
|
|
|
+ null,
|
|
|
+ $requestData['ID_WORKFLOW'] //EN ESTE ESPECIFICO CASO ID_WORKFLOW ES EL VALOR ANCLA
|
|
|
+ );
|
|
|
return $this->responseController->makeResponse(false, "ÉXITO: Tarea registrada exitosamente", ['ID_TAREA' => $taskId]);
|
|
|
}
|
|
|
|
|
|
@@ -509,6 +534,18 @@ class ProcessManagementController extends Controller
|
|
|
}
|
|
|
|
|
|
DB::commit();
|
|
|
+ $this->functionsController->registerActivity(
|
|
|
+ $requestData['NUMERO_LINEA'],
|
|
|
+ 'S002V01M03GEPR',
|
|
|
+ 'S002V01F01GSFT',
|
|
|
+ 'S002V01P01PCIN',
|
|
|
+ 'Registro',
|
|
|
+ "El usuario (" . $user . ") cambio el estado de un flujo de trabajo.",
|
|
|
+ $user,
|
|
|
+ $this->functionsController->now(),
|
|
|
+ null,
|
|
|
+ $request['ID_WORKFLOW']
|
|
|
+ );
|
|
|
return $this->responseController->makeResponse(false, "ÉXITO: Estado del workflow cambiado exitosamente");
|
|
|
}
|
|
|
|
|
|
@@ -3010,7 +3047,7 @@ class ProcessManagementController extends Controller
|
|
|
// Restricción: Si PREDETERMINADO = true, forzar USUARIO_REGISTRO = SAM
|
|
|
if (isset($requestData['PREDETERMINADO']) && $requestData['PREDETERMINADO']) {
|
|
|
$query->where('w.WORK_PRED', '=', 1)
|
|
|
- ->where('w.WORK_USRE', '=', '0000000001');
|
|
|
+ ->where('w.WORK_USRE', '=', '0000000001');
|
|
|
} else {
|
|
|
if (isset($requestData['PREDETERMINADO']) && !$requestData['PREDETERMINADO']) {
|
|
|
$query->where('w.WORK_PRED', '=', 0);
|
|
|
@@ -3056,9 +3093,9 @@ class ProcessManagementController extends Controller
|
|
|
DB::raw('COUNT(e.EJWO_IDEW) as EJECUCIONES'),
|
|
|
DB::raw('MAX(e.EJWO_FERE) as ULTIMA_EJECUCION')
|
|
|
)
|
|
|
- ->groupBy('w.WORK_IDWO', 'w.WORK_NOWO', 'w.WORK_DESC', 'w.WORK_ESTA', 'w.WORK_USRE', 'w.WORK_FERE')
|
|
|
- ->orderBy('w.WORK_FERE', 'desc')
|
|
|
- ->get();
|
|
|
+ ->groupBy('w.WORK_IDWO', 'w.WORK_NOWO', 'w.WORK_DESC', 'w.WORK_ESTA', 'w.WORK_USRE', 'w.WORK_FERE')
|
|
|
+ ->orderBy('w.WORK_FERE', 'desc')
|
|
|
+ ->get();
|
|
|
|
|
|
return $this->responseController->makeResponse(false, "ÉXITO: Búsqueda de workflows completada", $results);
|
|
|
} catch (\Throwable $th) {
|
|
|
@@ -3066,6 +3103,45 @@ class ProcessManagementController extends Controller
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function getWorkflowExecutionsHistory($idWorkflow, $user, $line)
|
|
|
+ {
|
|
|
+ $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
|
|
|
+ if ($arrResponseCheckUser['error']) {
|
|
|
+ return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $results = DB::table('S002V01TWORK as w')
|
|
|
+ ->join('S002V01TEJWO as ew', 'w.WORK_IDWO', '=', 'ew.EJWO_IDWO')
|
|
|
+ ->join('S002V01TEJTW as et', 'ew.EJWO_IDEW', '=', 'et.EJTW_IDEW')
|
|
|
+ ->join('S002V01TTAWO as ta', 'et.EJTW_IDTA', '=', 'ta.TAWO_IDTA')
|
|
|
+ ->where('w.WORK_IDWO', '=', $idWorkflow)
|
|
|
+ ->where('w.WORK_NULI', '=', $line)
|
|
|
+ ->select(
|
|
|
+ 'w.WORK_IDWO AS ID_WORKFLOW',
|
|
|
+ 'w.WORK_NOWO AS NOMBRE_WORKFLOW',
|
|
|
+ 'ew.EJWO_IDEW AS ID_EJECUCION_WORKFLOW',
|
|
|
+ 'et.EJTW_IDOJ AS OBJETO',
|
|
|
+ 'ew.EJWO_ESTA AS ESTADO_WORKFLOW',
|
|
|
+ 'ew.EJWO_FERE AS FECHA_INICIO',
|
|
|
+ 'ew.EJWO_FEMO AS FECHA_COMPLETADO',
|
|
|
+ 'et.EJTW_IDET AS ID_EJECUCION_TAREA',
|
|
|
+ 'ta.TAWO_NOTA AS NOMBRE_TAREA',
|
|
|
+ 'ta.TAWO_SECU AS SECUENCIA',
|
|
|
+ 'et.EJTW_ESTA AS ESTADO_TAREA',
|
|
|
+ 'et.EJTW_USAT AS USUARIO',
|
|
|
+ 'et.EJTW_FERE AS FECHA_EJECUCION'
|
|
|
+ )
|
|
|
+ ->orderBy('ew.EJWO_FERE', 'desc')
|
|
|
+ ->orderBy('ta.TAWO_SECU', 'asc')
|
|
|
+ ->get();
|
|
|
+
|
|
|
+ return $this->responseController->makeResponse(false, "ÉXITO: Historial de ejecuciones obtenido", $results);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ return $this->responseController->makeResponse(true, "Ocurrió un error al obtener el historial de ejecuciones.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Procesa la información extra según las reglas de validación Función privada en uso
|
|
|
*/
|