|
|
@@ -442,6 +442,7 @@ class ProcessManagementController extends Controller
|
|
|
// return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el historial de estados.", $th->getMessage(), 500);
|
|
|
// }
|
|
|
|
|
|
+ // Actualizar estado del workflow
|
|
|
try {
|
|
|
$validateUpdate = DB::table('S002V01TWORK')
|
|
|
->where('WORK_IDWO', '=', $requestData['ID_WORKFLOW'])
|
|
|
@@ -462,6 +463,31 @@ class ProcessManagementController extends Controller
|
|
|
return $this->responseController->makeResponse(true, "No se pudo cambiar el estado del workflow.", [], 500);
|
|
|
}
|
|
|
|
|
|
+ // Actualizar estado de las tareas relacionadas
|
|
|
+ $taskStatus = null;
|
|
|
+ if ($currentWorkflow['WORK_ESTA'] === 'Borrador' && $requestData['ESTADO'] === 'Activo') {
|
|
|
+ $taskStatus = 'Activo';
|
|
|
+ } elseif ($currentWorkflow['WORK_ESTA'] === 'Activo' && $requestData['ESTADO'] === 'Eliminado') {
|
|
|
+ $taskStatus = 'Eliminado';
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($taskStatus) {
|
|
|
+ try {
|
|
|
+ DB::table('S002V01TTAWO')
|
|
|
+ ->where('TAWO_IDWO', '=', $requestData['ID_WORKFLOW'])
|
|
|
+ ->where('TAWO_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->update([
|
|
|
+ 'TAWO_ESTA' => $taskStatus,
|
|
|
+ 'TAWO_USMO' => $user,
|
|
|
+ 'TAWO_FEMO' => $currentDate,
|
|
|
+ 'TAWO_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
|
|
|
+ ]);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "Ocurrió un error al actualizar el estado de las tareas.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
DB::commit();
|
|
|
return $this->responseController->makeResponse(false, "ÉXITO: Estado del workflow cambiado exitosamente");
|
|
|
}
|
|
|
@@ -660,6 +686,91 @@ class ProcessManagementController extends Controller
|
|
|
return $this->responseController->makeResponse(false, "ÉXITO: Tarea eliminada exitosamente");
|
|
|
}
|
|
|
|
|
|
+ public function updateTaskConfiguration(Request $request, $idTask) {
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ 'REQUIERE_VALIDACION' => 'nullable|boolean',
|
|
|
+ 'NOTIFICAR_USUARIOS' => 'array',
|
|
|
+ 'USUARIO_VALIDACION' => 'nullable|string',
|
|
|
+ 'REGLAS_VALIDACION' => 'string|in:Esperar,Ejecutar,NA',
|
|
|
+ 'ID_FUNCION' => 'nullable|string',
|
|
|
+ 'ID_MODULO' => 'nullable|string',
|
|
|
+ 'ID_WORKFLOW_EJECUTAR' => 'nullable|integer',
|
|
|
+ 'USUARIO' => 'required|string',
|
|
|
+ 'NUMERO_LINEA' => 'required|integer',
|
|
|
+ ]);
|
|
|
+
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->responseController->makeResponse(
|
|
|
+ true,
|
|
|
+ "Se encontraron uno o más errores.",
|
|
|
+ $this->responseController->makeErrors($validator->errors()->messages()),
|
|
|
+ 401
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::beginTransaction();
|
|
|
+ $requestData = $request->all();
|
|
|
+
|
|
|
+ $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
|
|
|
+ if ($arrResponseCheckUser['error']) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
|
|
|
+ }
|
|
|
+
|
|
|
+ $idTask = $this->encController->decrypt($idTask);
|
|
|
+ if (is_null($idTask)) {
|
|
|
+ return $this->responseController->makeResponse(true, 'El identificador no se encuentra encriptado correctamente.', [], 401);
|
|
|
+ }
|
|
|
+
|
|
|
+ $user = $arrResponseCheckUser['response'];
|
|
|
+
|
|
|
+ $decryptMod = null;
|
|
|
+ if (!empty($requestData['ID_MODULO'])) {
|
|
|
+ $decryptMod = $this->encController->decrypt($requestData['ID_MODULO']);
|
|
|
+ if (!$decryptMod) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ID_MODULO no fue desencriptada correctamente", [], 400);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $now = $this->functionsController->now();
|
|
|
+ $currentDate = $now->toDateTimeString();
|
|
|
+
|
|
|
+ $informacionExtra = null;
|
|
|
+ if ($requestData['REGLAS_VALIDACION'] === 'Ejecutar' && !empty($requestData['ID_WORKFLOW_EJECUTAR'])) {
|
|
|
+ $informacionExtra = json_encode(['workflow_id' => $requestData['ID_WORKFLOW_EJECUTAR']]);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateUpdate = DB::table('S002V01TTAWO')
|
|
|
+ ->where('TAWO_IDTA', '=', $idTask)
|
|
|
+ ->where('TAWO_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->update([
|
|
|
+ 'TAWO_RQVA' => $requestData['REQUIERE_VALIDACION'],
|
|
|
+ 'TAWO_USAN' => json_encode($requestData['NOTIFICAR_USUARIOS']),
|
|
|
+ 'TAWO_USAV' => $requestData['USUARIO_VALIDACION'],
|
|
|
+ 'TAWO_REVA' => $requestData['REGLAS_VALIDACION'],
|
|
|
+ 'TAWO_IDFU' => $requestData['ID_FUNCION'],
|
|
|
+ 'TAWO_IDMO' => $decryptMod,
|
|
|
+ 'TAWO_INEX' => $informacionExtra,
|
|
|
+ 'TAWO_USMO' => $user,
|
|
|
+ 'TAWO_FEMO' => $currentDate,
|
|
|
+ 'TAWO_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
|
|
|
+ ]);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "Ocurrió un error al actualizar la configuración de la tarea.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!$validateUpdate) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "No se pudo actualizar la configuración de la tarea.", [], 404);
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+ return $this->responseController->makeResponse(false, "ÉXITO: Configuración de tarea actualizada exitosamente");
|
|
|
+ }
|
|
|
+
|
|
|
//Submodulo de auditoria: Busqueda de flujos de trabajo y solicitudes de validacion
|
|
|
public function getProcessWorkflow($user, $line) {
|
|
|
$arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
|
|
|
@@ -2267,4 +2378,5 @@ class ProcessManagementController extends Controller
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
|