|
|
@@ -87,6 +87,76 @@ class ProcessManagementController extends Controller
|
|
|
return $this->responseController->makeResponse(false, "ÉXITO: Workflow registrado exitosamente", ['ID_WORKFLOW' => $workflowId]);
|
|
|
}
|
|
|
|
|
|
+ public function registerWorkflowTasks(Request $request) {
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ 'ID_WORKFLOW' => 'required|integer',
|
|
|
+ 'TAREAS' => 'required|array|min:1',
|
|
|
+ 'TAREAS.*.NOMBRE_TAREA' => 'required|string|max:50',
|
|
|
+ 'TAREAS.*.DESCRIPCION' => 'required|string',
|
|
|
+ 'TAREAS.*.SECUENCIA' => 'required|integer',
|
|
|
+ 'TAREAS.*.REQUIERE_VALIDACION' => 'nullable|boolean',
|
|
|
+ 'TAREAS.*.USUARIOS_NOTIFICAR' => 'nullable|array',
|
|
|
+ 'TAREAS.*.USUARIO_VALIDADOR' => 'nullable|integer',
|
|
|
+ 'TAREAS.*.REGLA_VALIDACION' => 'nullable|string|in:Esperar,Ejecutar',
|
|
|
+ 'TAREAS.*.ID_FUNCION' => 'nullable|string|max:25',
|
|
|
+ 'TAREAS.*.ID_MODULO' => 'nullable|string|max:25',
|
|
|
+ '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);
|
|
|
+ }
|
|
|
+ $user = $arrResponseCheckUser['response'];
|
|
|
+
|
|
|
+ $now = $this->functionsController->now();
|
|
|
+ $currentDate = $now->toDateTimeString();
|
|
|
+ $insertedTasks = [];
|
|
|
+
|
|
|
+ try {
|
|
|
+ foreach ($requestData['TAREAS'] as $tarea) {
|
|
|
+ $taskId = DB::table('S002V01TTAWO')->insertGetId([
|
|
|
+ 'TAWO_NULI' => $requestData['NUMERO_LINEA'],
|
|
|
+ 'TAWO_IDWO' => $requestData['ID_WORKFLOW'],
|
|
|
+ 'TAWO_NOTA' => $tarea['NOMBRE_TAREA'],
|
|
|
+ 'TAWO_DESC' => $tarea['DESCRIPCION'],
|
|
|
+ 'TAWO_SECU' => $tarea['SECUENCIA'],
|
|
|
+ 'TAWO_RQVA' => $tarea['REQUIERE_VALIDACION'] ?? null,
|
|
|
+ 'TAWO_USAN' => isset($tarea['USUARIOS_NOTIFICAR']) ? json_encode($tarea['USUARIOS_NOTIFICAR']) : null,
|
|
|
+ 'TAWO_USAV' => $tarea['USUARIO_VALIDADOR'] ?? null,
|
|
|
+ 'TAWO_REVA' => $tarea['REGLA_VALIDACION'] ?? null,
|
|
|
+ 'TAWO_IDFU' => $tarea['ID_FUNCION'] ?? null,
|
|
|
+ 'TAWO_IDMO' => $tarea['ID_MODULO'] ?? null,
|
|
|
+ 'TAWO_ESTA' => 'Borrador',
|
|
|
+ 'TAWO_USRE' => $user,
|
|
|
+ 'TAWO_FERE' => $currentDate,
|
|
|
+ 'TAWO_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
|
|
|
+ ]);
|
|
|
+ $insertedTasks[] = $taskId;
|
|
|
+ }
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "Ocurrió un error al registrar las tareas.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+ return $this->responseController->makeResponse(false, "ÉXITO: Tareas registradas exitosamente", ['TAREAS_REGISTRADAS' => count($insertedTasks)]);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
public function getWorkflows($user, $line) {
|