Kaynağa Gözat

actualizacion de estructura de datos en getWorkflows y getWorkflowById mas refactor de funcion checkLatestUpdate

EmilianoOrtiz 2 ay önce
ebeveyn
işleme
71a9f5d31e

+ 27 - 673
sistema-mantenimiento-back/app/Http/Controllers/ProcessManagementController.php

@@ -37,29 +37,33 @@ class ProcessManagementController extends Controller
     public function getWorkflows($user, $line) {
         $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
         if ($arrResponseCheckUser['error']) {
-            DB::rollBack();
+
             return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
         }
 
         try {
             $arrWorkflows = DB::table('S002V01TWORK')->select([
-                'WORK_IDWO AS ID_WORKFLOW',
-                'WORK_NOWO AS NOMBRE_WORKFLOW',
-                'WORK_DESC AS DESCRIPCION',
-                'WORK_MODU AS MODULO_WORKFLOW',
-                'MODU_NOMO AS NOMBRE_MODULO',
-                'WORK_AUTO AS AUTOMATICO',
-                'WORK_PRED AS PREDEFINIDO',
-                'WORK_ESTA AS ESTADO',
-                'WORK_USRE AS USUARIO_REGISTRA',
-                'WORK_FERE AS FECHA_REGISTRA',
-                'WORK_USMO AS USUARIO_MODIFICA',
-                'WORK_FEMO AS FECHA_MODIFICA',
+                'WORK_IDWO',
+                'WORK_NOWO',
+                'WORK_DESC',
+                'WORK_PRED',
+                'WORK_HICA',
+                'WORK_ESTA',
+                'WORK_VERS',
+                'WORK_INEX',
+                'WORK_USRE',
+                'WORK_FERE',
+                'WORK_USMO',
+                'WORK_FEMO',
+                'MODU_NOMO'
             ])->where('WORK_NULI', '=', $line)
-            ->join('S002V01TMODU', 'MODU_IDMO', '=', 'WORK_MODU')->get()->all();
+            ->leftJoin('S002V01WRMO', 'WRMO_IDWO', '=', 'WORK_IDWO')
+            ->leftJoin('S002V01TMODU', function($join) use ($line) {
+                $join->on('MODU_IDMO', '=', 'WRMO_IDMO')
+                     ->where('MODU_NULI', '=', $line);
+            })->get()->all();
             $arrWorkflows = json_decode(json_encode($arrWorkflows), true);
         } catch (\Throwable $th) {
-            DB::rollBack();
             return $this->responseController->makeResponse(true, "Ocurrió un error al obtener los flujos de trabajo.", $th->getMessage(), 500);
         }
 
@@ -69,29 +73,12 @@ class ProcessManagementController extends Controller
         }
         $arrWorkflows = $responseCheckLatestUpdate['response'];
 
-        foreach ($arrWorkflows as $key => $workflow) {
-            
-            if ($workflow['AUTOMATICO'] === 1) {
-                $workflow['AUTOMATICO'] = 'Si';
-            } else {
-                $workflow['AUTOMATICO'] = 'No';
-            }
-            
-            if ($workflow['PREDEFINIDO'] === 1) {
-                $workflow['PREDEFINIDO'] = 'Si';
-            } else {
-                $workflow['PREDEFINIDO'] = 'No';
-            }
-
-            $arrWorkflows[$key] = $workflow;
-        }
-
         return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrWorkflows);
     }
+    
     public function getWorkflowById($idWorkflow, $user, $line) {
         $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
         if ($arrResponseCheckUser['error']) {
-            DB::rollBack();
             return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
         }
 
@@ -107,654 +94,21 @@ class ProcessManagementController extends Controller
                 ->where('WORK_NULI', '=', $line)
                 ->where('WORK_ESTA', '=', 'Activo')
                 ->first([
-                    'WORK_NOWO AS NOMBRE_WORKFLOW',
-                    'WORK_DESC AS DESCRIPCION',
-                    'WORK_AUTO AS AUTOMATICO',
-                    'WORK_PRED AS PREDEFINIDO',
+                    'WORK_NOWO',
+                    'WORK_DESC',
+                    'WORK_PRED',
+                    'WORK_HICA',
+                    'WORK_VERS',
+                    'WORK_INEX'
                 ]);
         } catch (\Throwable $th) {
-            DB::rollBack();
             return $this->responseController->makeResponse(true, "Ocurrió un error al obtener los flujos de trabajo.", $th->getMessage(), 500);
         }
 
         return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrWorkflow);
     }
-    public function getWorkflowActives($user, $line) {
-        $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
-        if ($arrResponseCheckUser['error']) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
-        }
-
-        try {
-            $arrWorkflows = DB::table('S002V01TWORK')
-                ->where('WORK_NULI', '=', $line)
-                ->get([
-                    'WORK_IDWO AS ID_WORKFLOW',
-                    'WORK_NOWO AS NOMBRE_WORKFLOW',
-                    'WORK_DESC AS DESCRIPCION',
-                ]);
-            $arrWorkflows = json_decode(json_encode($arrWorkflows), true);
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, "Ocurrió un error al obtener los flujos de trabajo.", $th->getMessage(), 500);
-        }
-
-        return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrWorkflows);
-    }
-    public function registerWorkflow(Request $request) {
-        $validator = Validator::make($request->all(), [
-            'NOMBRE_WORKFLOW' => 'required|string',
-            'DESCRIPCION' => 'required|string',
-            'AUTOMATICO' => 'required|boolean',
-            '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, 'ERR_WAREHOUSE_REG001:'.$arrResponseCheckUser['msg'], [], 401);
-        }
-        $user = $arrResponseCheckUser['response'];
-
-        $now = $this->functionsController->now();
-        $currentDate = $now->toDateTimeString();
-
-        try {
-            $validateInsert = DB::table('S002V01TWORK')->insert([
-                'WORK_NULI' => $requestData['NUMERO_LINEA'],
-                'WORK_NOWO' => $requestData['NOMBRE_WORKFLOW'],
-                'WORK_DESC' => $requestData['DESCRIPCION'],
-                'WORK_AUTO' => $requestData['AUTOMATICO'],
-                'WORK_USRE' => $user,
-                'WORK_FERE' => $currentDate,
-                'WORK_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
-            ]);
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, "Ocurrió un error al registrar los flujos de trabajo.", $th->getMessage(), 500);
-        }
-
-        if (!$validateInsert) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, "No se pudo registrar los flujos de trabajo.", [], 500);
-        }
-
-        DB::commit();
-        return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
-    }
-    public function updateWorkflow(Request $request, $idWorkflow) {
-        $validator = Validator::make($request->all(), [
-            'NOMBRE_WORKFLOW' => 'required|string',
-            'DESCRIPCION' => 'required|string',
-            'AUTOMATICO' => 'required|boolean',
-            '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
-            );
-        }
-
-        try {
-            $idWorkflow = $this->encController->decrypt($idWorkflow);
-        } catch (\Throwable $th) {
-            return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el ID del flujo de trabajo.', $th->getMessage(), 500);
-        }
-
-        DB::beginTransaction();
-        $requestData = $request->all();
-
-        $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
-        if ($arrResponseCheckUser['error']) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GETBY000:'.$arrResponseCheckUser['msg'], [], 401);
-        }
-        $user = $arrResponseCheckUser['response'];
-
-        try {
-            $workflow = (array) DB::table('S002V01TWORK')
-                ->where('WORK_IDWO', '=', $idWorkflow)
-                ->where('WORK_NULI', '=', $requestData['NUMERO_LINEA'])
-                ->where('WORK_ESTA', '=', 'Activo')
-                ->first([
-                    'WORK_IDWO AS ID_WORKFLOW',
-                    'WORK_NOWO AS NOMBRE_WORKFLOW',
-                    'WORK_DESC AS DESCRIPCION',
-                    'WORK_AUTO AS AUTOMATICO',
-                    'WORK_PRED AS PREDEFINIDO',
-                    'WORK_HICA AS HISTORIAL_CAMBIOS',
-                    'WORK_ESTA AS ESTADO',
-                    'WORK_USRE AS USUARIO_REGISTRA',
-                    'WORK_FERE AS FECHA_REGISTRA',
-                    'WORK_USMO AS USUARIO_MODIFICA',
-                    'WORK_FEMO AS FECHA_MODIFICA',
-                ]);
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del flujo de trabajo.', $th->getMessage(), 500);
-        }
-        if (empty($workflow)) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'El flujo de trabajo no existe.', [], 406);
-        }
-
-        $arrHistory = array();
-        if (is_null($workflow['HISTORIAL_CAMBIOS'])) {
-            unset($workflow['HISTORIAL_CAMBIOS']);
-            $arrHistory[] = $workflow;
-        } else {
-            $arrHistory = json_decode($workflow['HISTORIAL_CAMBIOS']);
-            unset($workflow['HISTORIAL_CAMBIOS']);
-            $arrHistory[] = $workflow;
-        }
-        $strHistory = json_encode($arrHistory);
-
-        $now = $this->functionsController->now();
-        $currentDate = $now->toDateTimeString();
-
-        try {
-            $validateUpdate = DB::table('S002V01TWORK')
-                ->where('WORK_IDWO', '=', $idWorkflow)
-                ->where('WORK_NULI', '=', $requestData['NUMERO_LINEA'])
-                ->where('WORK_ESTA', '=', 'Activo')
-                ->update([
-                    'WORK_NOWO' => $requestData['NOMBRE_WORKFLOW'],
-                    'WORK_DESC' => $requestData['DESCRIPCION'],
-                    'WORK_AUTO' => $requestData['AUTOMATICO'],
-                    'WORK_HICA' => $strHistory,
-                    'WORK_USMO' => $user,
-                    'WORK_FEMO' => $currentDate,
-                    'WORK_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
-                ]);
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'Ocurrió un error al modificar el flujo de trabajo.', $th->getMessage(), 500);
-        }
-        if (!$validateUpdate) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'No se pudo modificar el flujo de trabajo.', [], 500);
-        }
-
-
-        try {
-            $arrExecuteWorkflow = DB::table('S002V01TEJWO')
-                ->where('EJWO_NULI', '=', $requestData['NUMERO_LINEA'])
-                ->where('EJWO_IDWO', '=', $idWorkflow)
-                ->where('EJWO_ESTA', '=', 'En proceso')
-                ->get([
-                    'EJWO_IDEW AS ID_EJECUCION_WORKFLOW',
-                ]);
-            $arrExecuteWorkflow = json_decode(json_encode($arrExecuteWorkflow), true);
-            $arrExecuteWorkflow = array_column($arrExecuteWorkflow, 'ID_EJECUCION_WORKFLOW');
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener las ejecuciones pendientes.', $th->getMessage(), 406);
-        }
-
-        $arrResendNotificate = array();
-        foreach ($arrExecuteWorkflow as $executeWorkflow) {
-            try {
-                $arrExecuteTask = DB::table('S002V01TEJTW')
-                    ->where('EJTW_IDEW', '=', $executeWorkflow)
-                    ->where('EJTW_NULI', '=', $requestData['NUMERO_LINEA'])
-                    ->where('TAWO_ESTA', '=', 'Activo')
-                    ->where('TAWO_NULI', '=', $requestData['NUMERO_LINEA'])
-                    ->where('PRWO_ESTA', '=', 'Asignado')
-                    ->join('S002V01TTAWO', 'TAWO_IDTA', '=', 'EJTW_IDTA')
-                    ->join('S002V01TPRWO', 'PRWO_IDPR', '=', 'TAWO_IDPR')
-                    ->orderBy('TAWO_SECU', 'ASC')
-                    ->get([
-                        'EJTW_IDET AS ID_EJECUCION_TAREA',
-                        'TAWO_SECU AS SECUENCIA',
-                        'TAWO_IDWO AS ID_WORKFLOW',
-                        'TAWO_IDTA AS ID_TAREA',
-                        'PRWO_IDPR AS ID_PROCESO',
-                        'PRWO_NOPR AS NOMBRE_PROCESO'
-                    ]);
-                $arrExecuteTask = json_decode(json_encode($arrExecuteTask), true);
-            } catch (\Throwable $th) {
-                DB::rollBack();
-                return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener las ejecuciones de las tareas.', $th->getMessage(), 406);
-            }
-
-            foreach ($arrExecuteTask as $keyExecuteTask => $executeTask) {
-
-                if ($executeTask['SECUENCIA'] === 1) {
-                    
-                    $arrUpdate = [
-                        'EJTW_ESTA' => 'En proceso',
-                        'EJTW_USMO' => $user,
-                        'EJTW_FEMO' => $currentDate,
-                        'EJTW_FEAR' => DB::raw('CURRENT_TIMESTAMP')
-                    ];
-                } else {
-                    $arrUpdate = [
-                        'EJTW_INFO' => null,
-                        'EJTW_INRE' => null,
-                        'EJTW_ESTA' => 'En espera',
-                        'EJTW_USMO' => $user,
-                        'EJTW_FEMO' => $currentDate,
-                        'EJTW_FEAR' => DB::raw('CURRENT_TIMESTAMP')
-                    ];
-                }
-
-                try {
-                    $validateUpdate = DB::table('S002V01TEJTW')
-                        ->where('EJTW_IDEW', '=', $executeWorkflow)
-                        ->where('EJTW_IDET', '=', $executeTask['ID_EJECUCION_TAREA'])
-                        ->where('EJTW_NULI', '=', $requestData['NUMERO_LINEA'])
-                        ->update($arrUpdate);
-                } catch (\Throwable $th) {
-                    DB::rollBack();
-                    return $this->responseController->makeResponse(true, 'Ocurrió un error al modificar las ejecuciones de las tareas.', $th->getMessage(), 406);
-                }
-                if (!$validateUpdate) {
-                    DB::rollBack();
-                    return $this->responseController->makeResponse(true, 'No se pudo modificar las ejecuciones de las tareas.', [], 406);
-                }
-
-                try {
-                    $validateExists = DB::table('S002V01TEJNO')
-                        ->where('EJNO_IDET', '=', $executeTask['ID_EJECUCION_TAREA'])
-                        ->where('EJNO_NULI', '=', $requestData['NUMERO_LINEA'])
-                        ->exists();
-                } catch (\Throwable $th) {
-                    DB::rollBack();
-                    return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener las ejecuciones de las notificaciones.', $th->getMessage(), 406);
-                }
-                if ($validateExists) {
-                    try {
-                        $validateUpdate = DB::table('S002V01TEJNO')
-                            ->where('EJNO_IDET', '=', $executeTask['ID_EJECUCION_TAREA'])
-                            ->where('EJNO_NULI', '=', $requestData['NUMERO_LINEA'])
-                            ->update([
-                                'EJNO_ESTA' => 'Obsoleto',
-                                'EJNO_USMO' => $user,
-                                'EJNO_FEMO' => $currentDate,
-                                'EJNO_FEAR' => DB::raw('CURRENT_TIMESTAMP')
-                            ]);
-                    } catch (\Throwable $th) {
-                        DB::rollBack();
-                        return $this->responseController->makeResponse(true, 'Ocurrió un error al modificar las ejecuciones de las notificaciones.', $th->getMessage(), 406);
-                    }
-                    if (!$validateUpdate) {
-                        DB::rollBack();
-                        return $this->responseController->makeResponse(true, 'No se pudo modificar las ejecuciones de las notificaciones.', [], 406);
-                    }
-                }
-
-                if ($executeTask['SECUENCIA'] === 1) {
-                    $arrResendNotificate[] = [
-                        'ID_EJECUCION_WORKFLOW' => $executeWorkflow,
-                        'ID_WORKFLOW' => $executeTask['ID_WORKFLOW'],
-                        'ID_TAREA' => $executeTask['ID_TAREA'],
-                        'ID_EJECUCION_TAREA' => $executeTask['ID_EJECUCION_TAREA'],
-                        'ID_PROCESO' => $executeTask['ID_PROCESO'],
-                        'NOMBRE_PROCESO' => $executeTask['NOMBRE_PROCESO'],
-                    ];
-                }
-            }
-
-        }
-        
-        foreach ($arrResendNotificate as $resendNotificate) {
-            try {
-                $arrNotificate = DB::table('S002V01TNTWO')
-                    ->where('NTWO_IDTA', '=', $executeTask['ID_TAREA'])
-                    ->where('NTWO_NULI', '=', $requestData['NUMERO_LINEA'])
-                    ->where('NTWO_ESTA', '=', 'Activo')
-                    ->orderBy('NTWO_SECU', 'ASC')
-                    ->get([
-                        'NTWO_IDUS AS USUARIO_NOTIFICACION',
-                        'NTWO_TINO AS TIPO_NOTIFICACION',
-                        'NTWO_SECU AS SECUENCIA',
-                    ]);
-                $arrNotificate = json_decode(json_encode($arrNotificate), true);
-            } catch (\Throwable $th) {
-                DB::rollBack();
-                return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener las notificaciones.', $th->getMessage(), 406);
-            }
-            
-            $userValidate = null;
-            $notifacateUsers = array();
-            foreach ($arrNotificate as $notificate) {
-
-                try {
-                    $validateRegister = DB::table('S002V01TEJNO')->insert([
-                        'EJNO_NULI' => $requestData['NUMERO_LINEA'],
-                        'EJNO_IDET' => $resendNotificate['ID_EJECUCION_TAREA'],
-                        'EJNO_USNO' => $notificate['USUARIO_NOTIFICACION'],
-                        'EJNO_SECU' => $notificate['SECUENCIA'],
-                        'EJNO_TINO' => $notificate['TIPO_NOTIFICACION'],
-                        'EJNO_ESTA' => $notificate['SECUENCIA'] === 1 || $notificate['TIPO_NOTIFICACION'] === 'N'  ? 'Notificado' : 'En espera',
-                        'EJNO_USRE' => $user,
-                        'EJNO_FERE' => $currentDate,
-                        'EJNO_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
-                    ]);
-                } catch (\Throwable $th) {
-                    DB::rollBack();
-                    return $this->responseController->makeResponse(true, 'Ocurrió un error al registrar las notificaciones.', $th->getMessage(), 406);
-                }
-                if (!$validateRegister) {
-                    DB::rollBack();
-                    return $this->responseController->makeResponse(true, 'No se pudo registrar las notificaciones.', [], 406);
-                }
-                
-                if ($notificate['TIPO_NOTIFICACION'] === 'V' && $notificate['SECUENCIA'] === 1) {
-                    $userValidate = $notificate['USUARIO_NOTIFICACION'];
-                }
-
-                if ($notificate['TIPO_NOTIFICACION'] === 'N') {
-                    $notifacateUsers[] = $notificate['USUARIO_NOTIFICACION'];
-                }
-            }
-
-            if (is_null($userValidate)) {
-                DB::rollBack();
-                return $this->responseController->makeResponse(true, "No se encontró el usuario para enviar la notificación para la validación de la ejecución #{$resendNotificate['ID_EJECUCION_TAREA']}.", [], 406);
-            }
-            
-            $objExecute = [ 'ID' => $resendNotificate['ID_EJECUCION_WORKFLOW'], 'TYPE' => 'VALIDATE' ];
-            $strExecuteWorkflow = json_encode($objExecute);
-            $encExecuteWorkflow = $this->encController->encrypt($strExecuteWorkflow);
-
-            $this->notificationsController->emitNotification(
-                'S002V01M03GEPR',
-                'Flujo de trabajo modificado.',
-                "El flujo de trabajo #{$resendNotificate['ID_WORKFLOW']} ha sido modificado, por lo cual el proceso se ha reiniciado. Se le pide nuevamente realizar el proceso de validación.",
-                [[
-                    'BOTON' => 'Ver solicitud',
-                    'FUNCION' => 'openModule',
-                    'PARAMETROS' => json_encode([$this->encController->encrypt("GEPR/SFTR/GSFT/".$encExecuteWorkflow)]),
-                ]],
-                [$userValidate],
-                $user,
-                $requestData['NUMERO_LINEA'],
-                $this->socketClient,
-            );
-
-            if (!empty($notifacateUsers)) {
-                $objExecute = [ 'ID' => $resendNotificate['ID_EJECUCION_WORKFLOW'], 'TYPE' => 'NOTIFICATE' ];
-                $strExecuteWorkflow = json_encode($objExecute);
-                $encExecuteWorkflow = $this->encController->encrypt($strExecuteWorkflow);
-
-                $this->notificationsController->emitNotification(
-                    'S002V01M03GEPR',
-                    'Flujo de trabajo modificado',
-                    "El flujo de trabajo #{$resendNotificate['ID_WORKFLOW']} ha sido modificado, por lo cual el proceso se ha reiniciado.",
-                    [[
-                        'BOTON' => 'Ver solicitud',
-                        'FUNCION' => 'openModule',
-                        'PARAMETROS' => json_encode([$this->encController->encrypt("GEPR/SFTR/GSFT/".$encExecuteWorkflow)]),
-                    ]],
-                    [$notifacateUsers],
-                    $user,
-                    $requestData['NUMERO_LINEA'],
-                    $this->socketClient,
-                );
-            }
-        }
-
-
-        DB::commit();
-        return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
-    }
-    public function deleteWorkflow(Request $request, $idWorkflow) {
-        $validator = Validator::make($request->all(), [
-            '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();
-
-        try {
-            $idWorkflow = $this->encController->decrypt($idWorkflow);
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el nivel.', $th->getMessage(), 500);
-        }
-
-        $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'];
-
-        try {
-            $workflow = (array) DB::table('S002V01TWORK')
-                ->where('WORK_IDWO', '=', $idWorkflow)
-                ->where('WORK_NULI', '=', $requestData['NUMERO_LINEA'])
-                ->where('WORK_ESTA', '=', 'Activo')
-                ->first([
-                    'WORK_IDWO AS ID_WORKFLOW',
-                    'WORK_NOWO AS NOMBRE_WORKFLOW',
-                    'WORK_DESC AS DESCRIPCION',
-                    'WORK_AUTO AS AUTOMATICO',
-                    'WORK_PRED AS PREDEFINIDO',
-                    'WORK_HICA AS HISTORIAL_CAMBIOS',
-                    'WORK_ESTA AS ESTADO',
-                    'WORK_USRE AS USUARIO_REGISTRA',
-                    'WORK_FERE AS FECHA_REGISTRA',
-                    'WORK_USMO AS USUARIO_MODIFICA',
-                    'WORK_FEMO AS FECHA_MODIFICA',
-                ]);
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la información del flujo de trabajo.', $th->getMessage(), 500);
-        }
-        if (empty($workflow)) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'El flujo de trabajo no existe.', [], 406);
-        }
-
-        try {
-            $validateTask = DB::table('S002V01TTAWO')
-                ->where('TAWO_IDWO', '=', $idWorkflow)
-                ->where('TAWO_NULI', '=', $requestData['NUMERO_LINEA'])
-                ->where('TAWO_ESTA', '=', 'Activo')
-                ->exists();
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener las tareas relacionadas con el flujo de trabajo.', $th->getMessage(), 500);
-        }
-        if ($validateTask) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'Aún existen tareas relacionadas con el flujo de trabajo que está intentando eliminar.', [], 406);
-        }
-
-        $arrHistory = array();
-        if (is_null($workflow['HISTORIAL_CAMBIOS'])) {
-            unset($workflow['HISTORIAL_CAMBIOS']);
-            $arrHistory[] = $workflow;
-        } else {
-            $arrHistory = json_decode($workflow['HISTORIAL_CAMBIOS']);
-            unset($workflow['HISTORIAL_CAMBIOS']);
-            $arrHistory[] = $workflow;
-        }
-        $strHistory = json_encode($arrHistory);
-
-        $now = $this->functionsController->now();
-        $currentDate = $now->toDateTimeString();
-
-        try {
-            $validateUpdate = DB::table('S002V01TWORK')
-                ->where('WORK_IDWO', '=', $idWorkflow)
-                ->where('WORK_NULI', '=', $requestData['NUMERO_LINEA'])
-                ->where('WORK_ESTA', '=', 'Activo')
-                ->update([
-                    'WORK_ESTA' => 'Eliminado',
-                    'WORK_HICA' => $strHistory,
-                    'WORK_USMO' => $user,
-                    'WORK_FEMO' => $currentDate,
-                    'WORK_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
-                ]);
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'Ocurrió un error al eliminar el flujo de trabajo.', $th->getMessage(), 500);
-        }
-        if (!$validateUpdate) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, 'No se pudo eliminar el flujo de trabajo.', [], 500);
-        }
-
-        DB::commit();
-        return $this->responseController->makeResponse(false, "ÉXITO: Eliminación Exitosa");
-    }
-
-    public function restoreWorkflows(Request $request){
-        $validator = Validator::make($request->all(), [
-            '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'];
-        $defaultWorkflowsPath = str_replace('app\\Http\\Controllers', 'storage\\app\\public\\global_resources', __DIR__);
-        $defaultWorkflowsFile = $defaultWorkflowsPath . '\\default_workflows.sam';
-
-        if(!file_exists($defaultWorkflowsFile)){
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, "No fue posible encontrar el archivo 'default_workflows.sam' en el almacenamiento del sistema.", [], 500);
-        }
-
-        $defaultWorkflowsStr = file_get_contents($defaultWorkflowsFile);
-        $defaultWorkflowsDec = $this->encController->decrypt($defaultWorkflowsStr);
-        $defaultWorkflowsArr = json_decode($defaultWorkflowsDec, true);
-
-        foreach($defaultWorkflowsArr as $workflow){
-            $idwo = $workflow['workflow-id'];
-            $nowo = $workflow['workflow-name'];
-            $desc = $workflow['workflow-description'];
-            $auto = 1;
-            $pred = 0;
-
-            $workflowObj = DB::table('S002V01TWORK')->where([
-                ['WORK_IDWO', '=', $idwo],
-                ['WORK_NULI', '=', $requestData['NUMERO_LINEA']]
-            ])->first();
-
-            $vers = is_null($workflowObj) ? 1 : intval($workflowObj->WORK_VERS) + 1;
-            $hicaArr = is_null($workflowObj) ? [] : json_decode($workflowObj->WORK_HICA, true);
-
-            $now = $this->functionsController->now();
-            $nowStr = $now->toDateTimeString();
-            $hicaArr[] = [
-                "date" => $nowStr,
-                "vers" => $vers,
-                "data" => $workflow,
-            ];
-
-            $hica = json_encode($hicaArr);
-            if(is_null($workflowObj)){
-                DB::table('S002V01TWORK')->insert([
-                    "WORK_IDWO" => $idwo,
-                    "WORK_NULI" => $requestData['NUMERO_LINEA'],
-                    "WORK_NOWO" => $nowo,
-                    "WORK_DESC" => $desc,
-                    "WORK_AUTO" => $auto,
-                    "WORK_PRED" => $pred,
-                    "WORK_HICA" => $hica,
-                    "WORK_ESTA" => 'Activo',
-                    "WORK_VERS" => $vers,
-                    "WORK_USRE" => $user,
-                    "WORK_FERE" => $nowStr,
-                ]);
-            }else{
-                DB::table('S002V01TWORK')->where([
-                    ['WORK_IDWO', '=', $idwo],
-                    ['WORK_NULI', '=', $requestData['NUMERO_LINEA']]
-                ])->update([
-                    "WORK_NOWO" => $nowo,
-                    "WORK_DESC" => $desc,
-                    "WORK_AUTO" => $auto,
-                    "WORK_PRED" => $pred,
-                    "WORK_HICA" => $hica,
-                    "WORK_ESTA" => 'Activo',
-                    "WORK_VERS" => $vers,
-                    "WORK_USMO" => $user,
-                    "WORK_FEMO" => $nowStr,
-                ]);
-            }
-
-            DB::table('S002V01TTAWO')->where([
-                ['TAWO_NULI', '=', $requestData['NUMERO_LINEA']],
-                ['TAWO_IDWO', '=', $idwo]
-            ])->update(['TAWO_ESTA' => 'Eliminado']);
-
-            foreach($workflow['tasks'] as $task){
-                $nota = $task['task-name'];
-                $tdesc = $task['task-description'];
-                $secu = $task['task-order'];
-                $sies = $task['next-state'];
-                $auto = $task['automatic'] ? 1 : 0;
-                $usua = json_encode($task['users']);
-                $acci = json_encode($task['actions']);
-
-                DB::table('S002V01TTAWO')->insert([
-                    'TAWO_NULI' => $requestData['NUMERO_LINEA'],
-                    'TAWO_IDWO' => $idwo,
-                    'TAWO_NOTA' => $nota,
-                    'TAWO_DESC' => $tdesc,
-                    'TAWO_SECU' => $secu,
-                    'TAWO_SIES' => $sies,
-                    'TAWO_AUTO' => $auto,
-                    'TAWO_USUA' => $usua,
-                    'TAWO_ACCI' => $acci,
-                    'TAWO_USRE' => $user,
-                    'TAWO_FERE' => $nowStr,
-                ]);
-            }
-        }
-
-        DB::commit();
-        return $this->responseController->makeResponse(false, "ÉXITO: Restauración Exitosa");
-    }
 
+    //Submodulo de auditoria: Busqueda de flujos de trabajo y solicitudes de validacion
     public function getProcessWorkflow($user, $line) {
         $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
         if ($arrResponseCheckUser['error']) {

+ 20 - 20
sistema-mantenimiento-back/app/Http/Controllers/ResourcesController.php

@@ -460,50 +460,50 @@ class ResourcesController extends Controller
         $arrTemp = array();
         foreach ($arr as $keyValue => $value) {
             $value = (array) $value;
-            if (!array_key_exists('USUARIO_REGISTRA', $value)) {
+            if (!array_key_exists('WORK_USRE', $value)) {
                 $arrResponse['error'] = true;
-                $arrResponse['msg'] = 'La clave USUARIO_REGISTRA no existe en el arreglo.';
+                $arrResponse['msg'] = 'La clave WORK_USRE no existe en el arreglo.';
                 return $arrResponse;
             }
-            if (!array_key_exists('FECHA_REGISTRA', $value)) {
+            if (!array_key_exists('WORK_FERE', $value)) {
                 $arrResponse['error'] = true;
-                $arrResponse['msg'] = 'La clave FECHA_REGISTRA no existe en el arreglo.';
+                $arrResponse['msg'] = 'La clave WORK_FERE no existe en el arreglo.';
                 return $arrResponse;
             }
-            if (!array_key_exists('USUARIO_MODIFICA', $value)) {
+            if (!array_key_exists('WORK_USMO', $value)) {
                 $arrResponse['error'] = true;
-                $arrResponse['msg'] = 'La clave USUARIO_MODIFICA no existe en el arreglo.';
+                $arrResponse['msg'] = 'La clave WORK_USMO no existe en el arreglo.';
                 return $arrResponse;
             }
-            if (!array_key_exists('FECHA_MODIFICA', $value)) {
+            if (!array_key_exists('WORK_FEMO', $value)) {
                 $arrResponse['error'] = true;
-                $arrResponse['msg'] = 'La clave FECHA_MODIFICA no existe en el arreglo.';
+                $arrResponse['msg'] = 'La clave WORK_FEMO no existe en el arreglo.';
                 return $arrResponse;
             }
 
             foreach ($value as $keyItem => $item) {
                 if (
-                    $keyItem !== 'USUARIO_REGISTRA' &&
-                    $keyItem !== 'FECHA_REGISTRA' &&
-                    $keyItem !== 'USUARIO_MODIFICA' &&
-                    $keyItem !== 'FECHA_MODIFICA'
+                    $keyItem !== 'WORK_USRE' &&
+                    $keyItem !== 'WORK_FERE' &&
+                    $keyItem !== 'WORK_USMO' &&
+                    $keyItem !== 'WORK_FEMO'
                 ) {
                     $arrTemp[$keyValue][$keyItem] = $item;
                 }
             }
 
             $userNumber = '';
-            if (is_null($value['USUARIO_MODIFICA'])) {
-                $userNumber = $value['USUARIO_REGISTRA'];
+            if (is_null($value['WORK_USMO'])) {
+                $userNumber = $value['WORK_USRE'];
             } else {
-                $userNumber = $value['USUARIO_MODIFICA'];
+                $userNumber = $value['WORK_USMO'];
             }
 
             $lastUpdate = '';
-            if (is_null($value['FECHA_MODIFICA'])) {
-                $lastUpdate = $value['FECHA_REGISTRA'];
+            if (is_null($value['WORK_FEMO'])) {
+                $lastUpdate = $value['WORK_FERE'];
             } else {
-                $lastUpdate = $value['FECHA_MODIFICA'];
+                $lastUpdate = $value['WORK_FEMO'];
             }
 
             try {
@@ -519,7 +519,7 @@ class ResourcesController extends Controller
             if ( !is_null($user['USUA_APMA']) ) {
                 $nameUser .= ' '.$user['USUA_APMA'];
             }
-            $arrTemp[$keyValue]['USUARIO_MODIFICA'] = $nameUser.' ('.$userNumber.')';
+            $arrTemp[$keyValue]['WORK_USMO'] = $nameUser.' ('.$userNumber.')';
 
             $responseDatetime = $this->reformatDatetime($lastUpdate);
             if ($responseDatetime['error']) {
@@ -528,7 +528,7 @@ class ResourcesController extends Controller
                 return $arrResponse;
             }
 
-            $arrTemp[$keyValue]['FECHA_MODIFICA'] = $responseDatetime['response'];
+            $arrTemp[$keyValue]['WORK_FEMO'] = $responseDatetime['response'];
         }
 
         $arrResponse['response'] = $arrTemp;