Browse Source

Merge branch 'workflow' of ITTEC/SistemaMantenimiento into master

EmilianoOrtiz 3 weeks ago
parent
commit
2120a724d4

+ 181 - 109
sistema-mantenimiento-back/app/Http/Controllers/AsyncValidateLoadArchivesController.php

@@ -24,7 +24,7 @@ class AsyncValidateLoadArchivesController extends Controller
     private $functionsController;
     private $notificationsController;
     private $socketClient;
-    
+
     // Expected headers in row 7 of Excel file with their corresponding column letters
     private $expectedHeaders = [
         ['letter' => 'D', 'category' => 'CÓDIGO DE EQUIPO'],
@@ -38,20 +38,41 @@ class AsyncValidateLoadArchivesController extends Controller
         ['letter' => 'V', 'category' => 'DOCUMENTOS ADICIONALES']
     ];
 
-     // Mapping of file extensions to their types for validation
+    // Mapping of file extensions to their types for validation
     private $extensionTypes = [
         // Archivos de almacenamiento
-        'zip' => 'STORAGE', 'rar' => 'STORAGE', 'tar' => 'STORAGE', '7z' => 'STORAGE',
+        'zip' => 'STORAGE',
+        'rar' => 'STORAGE',
+        'tar' => 'STORAGE',
+        '7z' => 'STORAGE',
         // Formatos de audio
-        'mp3' => 'AUDIO', 'mpeg' => 'AUDIO', 'wav' => 'AUDIO', 'ogg' => 'AUDIO', 'opus' => 'AUDIO',
+        'mp3' => 'AUDIO',
+        'mpeg' => 'AUDIO',
+        'wav' => 'AUDIO',
+        'ogg' => 'AUDIO',
+        'opus' => 'AUDIO',
         // Archivos de imagen
-        'jpeg' => 'IMG', 'jpg' => 'IMG', 'png' => 'IMG', 'gif' => 'IMG', 'bmp' => 'IMG', 'tiff' => 'IMG', 'svg' => 'IMG',
+        'jpeg' => 'IMG',
+        'jpg' => 'IMG',
+        'png' => 'IMG',
+        'gif' => 'IMG',
+        'bmp' => 'IMG',
+        'tiff' => 'IMG',
+        'svg' => 'IMG',
         // Archivos de texto
         'txt' => 'TEXT',
         // Archivos de video
-        'webm' => 'VIDEO', 'mpeg4' => 'VIDEO', 'mp4' => 'VIDEO', '3gpp' => 'VIDEO', 'mov' => 'VIDEO', 'avi' => 'VIDEO', 'wmv' => 'VIDEO', 'flv' => 'VIDEO',
+        'webm' => 'VIDEO',
+        'mpeg4' => 'VIDEO',
+        'mp4' => 'VIDEO',
+        '3gpp' => 'VIDEO',
+        'mov' => 'VIDEO',
+        'avi' => 'VIDEO',
+        'wmv' => 'VIDEO',
+        'flv' => 'VIDEO',
         // Planos de Auto CAD
-        'dwg' => 'CAD', 'dxf' => 'CAD',
+        'dwg' => 'CAD',
+        'dxf' => 'CAD',
         // Modelos de 3D Studio
         '3ds' => '3D',
         // Dibujos de Illustrator
@@ -61,13 +82,17 @@ class AsyncValidateLoadArchivesController extends Controller
         // Formato de documento portátil
         'pdf' => 'PDF',
         // Hoja de cálculo en Excel
-        'xls' => 'EXCEL', 'xlsx' => 'EXCEL',
+        'xls' => 'EXCEL',
+        'xlsx' => 'EXCEL',
         // Presentaciones de PowerPoint
-        'ppt' => 'POWERPOINT', 'pptx' => 'POWERPOINT',
+        'ppt' => 'POWERPOINT',
+        'pptx' => 'POWERPOINT',
         // Documentos de texto de Word
-        'doc' => 'WORD', 'docx' => 'WORD',
+        'doc' => 'WORD',
+        'docx' => 'WORD',
         // Dibujos de Visio
-        'vsd' => 'VISIO', 'vsdx' => 'VISIO'
+        'vsd' => 'VISIO',
+        'vsdx' => 'VISIO'
     ];
 
     public function __construct()
@@ -88,21 +113,23 @@ class AsyncValidateLoadArchivesController extends Controller
     /**
      * EmitNotification use  
      */
-    public function emitNotification(Request $request):bool{
+    public function emitNotification(Request $request): bool
+    {
+        Log::info($request);
         $module = $request['module'];
         $title = $request['title'];
         $content = $request['content'];
         $actions = is_string($request['actions']) ? json_decode($request['actions'], true) : $request['actions'];
-        $audience = [$request['audience']];
-        $idUser = $request['idUser'] ?? $request['audience'];
+        //$audience = [$request['audience']];
+        $audience = is_array($request['audience']) ? $request['audience'] : [$request['audience']];
+        $idUser = $request['idUser'] ?? 1;
         $line = $request['line'] ?? 1;
         $idOrder = $request['idOrder'] ?? null;
         $orderType = $request['orderType'] ?? null;
 
-        $this->notificationsController->emitNotification($module, $title, $content, $actions, $audience, $idUser, $line, $this->socketClient ,$idOrder, $orderType);
+        $this->notificationsController->emitNotification($module, $title, $content, $actions, $audience, $idUser, $line, $this->socketClient, $idOrder, $orderType);
 
         return true;
-
     }
 
 
@@ -111,19 +138,35 @@ class AsyncValidateLoadArchivesController extends Controller
      *
      */
 
-    public function encrypt(Request $request){
+    public function encrypt(Request $request)
+    {
         $encryptString = $this->encryptionController->encrypt($request['value']);
-         if(!$encryptString){
-             return $this->responseController->makeResponse(true, "La cadena no fue encriptada correctamente", [], 400);
-         }
-         return $this->responseController->makeResponse(false, "Cadena encriptada correctamente", ['encrypted' => $encryptString], 200);
+        if (!$encryptString) {
+            return $this->responseController->makeResponse(true, "La cadena no fue encriptada correctamente", [], 400);
+        }
+        return $this->responseController->makeResponse(false, "Cadena encriptada correctamente", ['encrypted' => $encryptString], 200);
+    }
+
+    /***
+     * Encryption endpoint
+     *
+     */
+
+    public function decrypt(Request $request)
+    {
+        $encryptString = $this->encryptionController->decrypt($request['value']);
+        if (!$encryptString) {
+            return $this->responseController->makeResponse(true, "La cadena no fue desencriptada correctamente", [], 400);
+        }
+        return $this->responseController->makeResponse(false, "Cadena desencriptada correctamente", ['decrypted' => $encryptString], 200);
     }
 
     /**
      * Validation endpoint that dispatches file process to bat job
      */
 
-    public function validateFilesWithBat(Request $request){
+    public function validateFilesWithBat(Request $request)
+    {
         $validator = Validator::make($request->all(), [
             'id_user' => 'required|string',
             'linea' => 'required|integer',
@@ -139,10 +182,10 @@ class AsyncValidateLoadArchivesController extends Controller
                 400
             );
         }
-        
+
         $jobId = Str::uuid();
         $userId = '0000000001';
-        
+
         // $idUser = $this->encryptionController->decrypt($request->input('id_user'));
         // if(!$idUser){
         //     return $this->responseController->makeResponse(true, "El id del usuario que realizó la petición no fue encriptado correctamente", [], 400);
@@ -154,7 +197,7 @@ class AsyncValidateLoadArchivesController extends Controller
             return $this->responseController->makeResponse(true, $excelValidation['message'], [], 400);
         }
 
-        
+
         // Validate ZIP file integrity
         $zipValidation = $this->validateZipFile($request->file('zip_file'));
         if ($zipValidation['error']) {
@@ -177,44 +220,44 @@ class AsyncValidateLoadArchivesController extends Controller
             return $this->responseController->makeResponse(true, $comparison['error'], [], 400);
         }
 
-        
+
         // Upload temp files
         $tempFiles = $this->uploadTempFiles($request);
         if ($tempFiles['error']) {
             return $this->responseController->makeResponse(
-                true, 
-                $tempFiles['message'], 
+                true,
+                $tempFiles['message'],
                 [
                     'valid' => false,
                     'missing_in_zip' => $comparison['missing_in_zip'] ?? [],
                     'extra_in_zip' => $comparison['extra_in_zip'] ?? []
-                ], 
+                ],
                 400
             );
         }
 
         if (!$comparison['valid']) {
             return $this->responseController->makeResponse(
-                true, 
-                'Los archivos no coinciden entre Excel y ZIP', 
+                true,
+                'Los archivos no coinciden entre Excel y ZIP',
                 [
                     'valid' => false,
                     'missing_in_zip' => $comparison['missing_in_zip'],
                     'extra_in_zip' => $comparison['extra_in_zip']
-                ], 
+                ],
                 400
             );
         }
 
 
-         $idFileZip = $this->encryptionController->decrypt($tempFiles['files']['zip']);
-         if(!$idFileZip){
-             return $this->responseController->makeResponse(true, "El id del archivo que desea eliminar no fue encriptado correctamente", [], 400);
-         }
-        
-         $idFileExcel = $this->encryptionController->decrypt($tempFiles['files']['excel']);
-         if(!$idFileExcel){
-             return $this->responseController->makeResponse(true, "El id del archivo que desea eliminar no fue encriptado correctamente", [], 400);
+        $idFileZip = $this->encryptionController->decrypt($tempFiles['files']['zip']);
+        if (!$idFileZip) {
+            return $this->responseController->makeResponse(true, "El id del archivo que desea eliminar no fue encriptado correctamente", [], 400);
+        }
+
+        $idFileExcel = $this->encryptionController->decrypt($tempFiles['files']['excel']);
+        if (!$idFileExcel) {
+            return $this->responseController->makeResponse(true, "El id del archivo que desea eliminar no fue encriptado correctamente", [], 400);
         }
 
         // Guardar en bd::S002V01TVAJO 
@@ -229,12 +272,12 @@ class AsyncValidateLoadArchivesController extends Controller
             'VAJO_FERE' => now(),
             'VAJO_FEMO' => now()
         ]);
-        
+
         return $this->responseController->makeResponse(
-            false, 
-            'Validación iniciada', 
+            false,
+            'Validación iniciada',
             [
-                'job_id' => $validationJobId, 
+                'job_id' => $validationJobId,
                 'status' => 'queued',
                 'valid' => $comparison['valid'],
                 'missing_in_zip' => $comparison['missing_in_zip'],
@@ -243,8 +286,8 @@ class AsyncValidateLoadArchivesController extends Controller
         );
     }
 
-        
-     /**
+
+    /**
      * Process endpoint that moves temp files to final storage
      */
     public function processLoadArchives(Request $request)
@@ -266,53 +309,53 @@ class AsyncValidateLoadArchivesController extends Controller
                 400
             );
         }
-        
+
         $form = $request->all();
         $idUser  = '0000000001';
-        
+
         // $idUser = $this->encryptionController->decrypt($form['id_user']);
         // if (!$idUser) {
         //     return $this->responseController->makeResponse(true, 'ID de usuario inválido.', [], 400);
         // }
-        
+
         $finalFiles = [];
-        
+
         try {
             // Verificar estado de archivos antes de procesarlos
             $tempFiles = [$form['temp_files']['excel'], $form['temp_files']['zip']];
             foreach ($form['individual_temp_files'] as $tempFile) {
                 $tempFiles[] = $tempFile['temp_id'];
             }
-            
+
             foreach ($tempFiles as $tempId) {
                 $tempIdDec = $this->encryptionController->decrypt($tempId);
                 if ($tempIdDec) {
                     $tempFile = DB::table('S002V01TARTE')->where('ARTE_IDAR', $tempIdDec)->first();
                     if ($tempFile && $tempFile->ARTE_ESTA === 'Eliminado') {
                         return $this->responseController->makeResponse(
-                            true, 
-                            'La acción no puede completarse porque uno o más archivos han sido eliminados lógicamente.', 
-                            [], 
+                            true,
+                            'La acción no puede completarse porque uno o más archivos han sido eliminados lógicamente.',
+                            [],
                             400
                         );
                     }
                 }
             }
-            
+
             // Move Excel to final
             $excelFinal = $this->moveToFinal($form['temp_files']['excel'], $form['linea'], $idUser);
             if (!$excelFinal) {
                 return $this->responseController->makeResponse(true, 'Error procesando Excel', [], 400);
             }
             $finalFiles['excel'] = $excelFinal;
-            
+
             // Move ZIP to final
             $zipFinal = $this->moveToFinal($form['temp_files']['zip'], $form['linea'], $idUser);
             if (!$zipFinal) {
                 return $this->responseController->makeResponse(true, 'Error procesando ZIP', [], 400);
             }
             $finalFiles['zip'] = $zipFinal;
-            
+
             // Move individual temp files to final storage
             $individualFiles = [];
             foreach ($form['individual_temp_files'] as $tempFile) {
@@ -326,13 +369,12 @@ class AsyncValidateLoadArchivesController extends Controller
             }
             $finalFiles['individual_files'] = $individualFiles;
             return $this->responseController->makeResponse(false, 'Archivos procesados exitosamente.', $finalFiles);
-            
         } catch (\Exception $e) {
             return $this->responseController->makeResponse(true, 'Error interno: ' . $e->getMessage(), [], 500);
         }
     }
 
-      /**
+    /**
      * Moves a temporary file to final storage using DocumentManagementController
      */
     private function moveToFinal($tempId, $line, $idUser)
@@ -342,20 +384,19 @@ class AsyncValidateLoadArchivesController extends Controller
             if (!$tempIdDec) {
                 return false;
             }
-            
+
             $tempFile = DB::table('S002V01TARTE')->where('ARTE_IDAR', $tempIdDec)->first();
             if (!$tempFile) {
                 return false;
             }
-            
+
             // Validar estado del archivo temporal
             if ($tempFile->ARTE_ESTA === 'Eliminado') {
                 return false;
             }
-            
+
             $result = $this->documentManagementController->moveFinalFile($line, 'ADSI', 'LA', $tempFile, $idUser);
             return $result[0] ? $result[1] : false;
-            
         } catch (\Exception $e) {
             return false;
         }
@@ -370,7 +411,7 @@ class AsyncValidateLoadArchivesController extends Controller
         try {
             $spreadsheet = IOFactory::load($file->getPathname());
             $worksheet = $spreadsheet->getActiveSheet();
-            
+
             // Check each expected header in row 7
             foreach ($this->expectedHeaders as $header) {
                 $cellValue = $worksheet->getCell($header['letter'] . '7')->getValue();
@@ -381,7 +422,7 @@ class AsyncValidateLoadArchivesController extends Controller
                     ];
                 }
             }
-            
+
 
             return ['error' => false];
         } catch (\Exception $e) {
@@ -396,21 +437,21 @@ class AsyncValidateLoadArchivesController extends Controller
     {
         $zip = new ZipArchive();
         $result = $zip->open($file->getPathname());
-        
+
         if ($result !== TRUE) {
             return ['error' => true, 'message' => 'No se pudo abrir el archivo ZIP.'];
         }
-        
+
         if ($zip->numFiles === 0) {
             $zip->close();
             return ['error' => true, 'message' => 'El archivo ZIP está vacío.'];
         }
-        
+
 
         $zip->close();
         return ['error' => false];
     }
-    
+
     /**
      * Extracts file listings from Excel starting from row 8
      * Validates file extensions and creates structured file list
@@ -423,30 +464,30 @@ class AsyncValidateLoadArchivesController extends Controller
             $worksheet = $spreadsheet->getActiveSheet();
             $highestRow = $worksheet->getHighestRow();
             $files = [];
-            
 
-            
+
+
             // Process each row starting from row 8 (data rows)
             for ($row = 8; $row <= $highestRow; $row++) {
                 $equipmentCode = trim($worksheet->getCell('D' . $row)->getValue());
                 if (empty($equipmentCode)) continue; // Skip rows without equipment code
-                
+
                 $hasFiles = false;
                 $rowFiles = [];
-                
+
                 // Check each file category column (excluding equipment code column D)
                 foreach ($this->expectedHeaders as $header) {
                     if ($header['letter'] === 'D') continue;
-                    
+
                     $cellValue = trim($worksheet->getCell($header['letter'] . $row)->getValue());
                     if (empty($cellValue)) continue;
-                    
+
                     // Handle multiple files separated by commas
                     $fileNames = explode(',', $cellValue);
                     foreach ($fileNames as $fileName) {
                         $fileName = trim($fileName);
                         if (empty($fileName)) continue;
-                        
+
                         // Validate file extension 
                         $extension = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
                         if (!isset($this->extensionTypes[$extension])) {
@@ -455,7 +496,7 @@ class AsyncValidateLoadArchivesController extends Controller
                                 'message' => "Extensión inválida '{$extension}' en archivo '{$fileName}' para equipo '{$equipmentCode}'"
                             ];
                         }
-                        
+
                         $rowFiles[] = [
                             'equipment_code' => $equipmentCode,
                             'file_name' => $fileName,
@@ -464,12 +505,12 @@ class AsyncValidateLoadArchivesController extends Controller
                         $hasFiles = true;
                     }
                 }
-                
+
                 if ($hasFiles) {
                     $files = array_merge($files, $rowFiles);
                 }
             }
-            
+
 
             return ['error' => false, 'files' => $files];
         } catch (\Exception $e) {
@@ -477,7 +518,7 @@ class AsyncValidateLoadArchivesController extends Controller
             return ['error' => true, 'message' => 'Error al extraer archivos del Excel: ' . $e->getMessage()];
         }
     }
-    
+
     /**
      * Compares file listings from Excel with actual files in ZIP
      * Returns validation status and lists of missing/extra files
@@ -486,20 +527,20 @@ class AsyncValidateLoadArchivesController extends Controller
     {
         $zip = new ZipArchive();
         $zip->open($zipFile->getPathname());
-        
 
-        
+
+
         // Extract all file names and sizes from ZIP
         $zipFiles = [];
         $zipFileSizes = [];
         for ($i = 0; $i < $zip->numFiles; $i++) {
             $fullPath = $zip->getNameIndex($i);
-            
+
             // Skip directories (entries ending with /)
             if (substr($fullPath, -1) === '/') {
                 continue;
             }
-            
+
             // Extract filename and size
             $fileName = basename($fullPath);
             if (!empty($fileName)) {
@@ -508,7 +549,7 @@ class AsyncValidateLoadArchivesController extends Controller
             }
         }
         $zip->close();
-        
+
         // Validate file sizes using FunctionsController
         foreach ($zipFileSizes as $fileName => $size) {
             $extension = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
@@ -520,17 +561,17 @@ class AsyncValidateLoadArchivesController extends Controller
                 ];
             }
         }
-        
+
         // Get file names from Excel listings
         $excelFileNames = array_column($excelFiles, 'file_name');
-        
+
         // Find discrepancies between Excel and ZIP
         $missingInZip = array_diff($excelFileNames, $zipFiles);
         $extraInZip = array_diff($zipFiles, $excelFileNames);
-        
+
         $isValid = empty($missingInZip) && empty($extraInZip);
 
-        
+
         return [
             'valid' => $isValid,
             'missing_in_zip' => array_values($missingInZip),
@@ -546,7 +587,7 @@ class AsyncValidateLoadArchivesController extends Controller
         try {
 
             $tempFiles = [];
-            
+
             // Upload Excel file
             $excelRequest = new Request();
             $excelRequest->files->set('file', $request->file('excel_file'));
@@ -554,18 +595,18 @@ class AsyncValidateLoadArchivesController extends Controller
                 'id_user' => $request->input('id_user'),
                 'linea' => $request->input('linea')
             ]);
-            
+
             $excelResponse = $this->documentManagementController->uploadTempFile($excelRequest);
             $excelData = json_decode($excelResponse->getContent());
-            
+
             if ($excelData->error) {
                 $errorMsg = isset($excelData->message) ? $excelData->message : 'Error desconocido subiendo Excel';
 
                 return ['error' => true, 'message' => 'Error subiendo Excel: ' . $errorMsg];
             }
-            
+
             $tempFiles['excel'] = $excelData->response->idArchivo;
-            
+
             // Upload ZIP file
             $zipRequest = new Request();
             $zipRequest->files->set('file', $request->file('zip_file'));
@@ -573,43 +614,74 @@ class AsyncValidateLoadArchivesController extends Controller
                 'id_user' => $request->input('id_user'),
                 'linea' => $request->input('linea')
             ]);
-            
+
             $zipResponse = $this->documentManagementController->uploadTempFile($zipRequest);
             $zipData = json_decode($zipResponse->getContent());
-            
+
             if ($zipData->error) {
                 $errorMsg = isset($zipData->message) ? $zipData->message : 'Error desconocido subiendo ZIP';
 
                 return ['error' => true, 'message' => 'Error subiendo ZIP: ' . $errorMsg];
             }
-            
+
             $tempFiles['zip'] = $zipData->response->idArchivo;
-            
+
 
             return ['error' => false, 'files' => $tempFiles];
-            
         } catch (\Exception $e) {
 
             return ['error' => true, 'message' => 'Error en uploadTempFiles: ' . $e->getMessage()];
         }
     }
-    
+
 
 
     /**
      * Gets file type based on extension
      */
-    private function getFileType($extension){
+    private function getFileType($extension)
+    {
         $typeMap = [
-            'zip' => 'STORAGE', 'rar' => 'STORAGE', 'tar' => 'STORAGE', '7z' => 'STORAGE',
-            'mp3' => 'AUDIO', 'mpeg' => 'AUDIO', 'wav' => 'AUDIO', 'ogg' => 'AUDIO', 'opus' => 'AUDIO',
-            'jpeg' => 'IMG', 'jpg' => 'IMG', 'png' => 'IMG', 'gif' => 'IMG', 'bmp' => 'IMG', 'tiff' => 'IMG', 'svg' => 'IMG',
+            'zip' => 'STORAGE',
+            'rar' => 'STORAGE',
+            'tar' => 'STORAGE',
+            '7z' => 'STORAGE',
+            'mp3' => 'AUDIO',
+            'mpeg' => 'AUDIO',
+            'wav' => 'AUDIO',
+            'ogg' => 'AUDIO',
+            'opus' => 'AUDIO',
+            'jpeg' => 'IMG',
+            'jpg' => 'IMG',
+            'png' => 'IMG',
+            'gif' => 'IMG',
+            'bmp' => 'IMG',
+            'tiff' => 'IMG',
+            'svg' => 'IMG',
             'txt' => 'TEXT',
-            'webm' => 'VIDEO', 'mpeg4' => 'VIDEO', 'mp4' => 'VIDEO', '3gpp' => 'VIDEO', 'mov' => 'VIDEO', 'avi' => 'VIDEO', 'wmv' => 'VIDEO', 'flv' => 'VIDEO',
-            'dwg' => 'CAD', 'dxf' => 'CAD', '3ds' => '3D', 'ai' => 'ILLUSTRATOR', 'psd' => 'PHOTOSHOP',
-            'pdf' => 'PDF', 'xls' => 'EXCEL', 'xlsx' => 'EXCEL', 'ppt' => 'POWERPOINT', 'pptx' => 'POWERPOINT',
-            'doc' => 'WORD', 'docx' => 'WORD', 'vsd' => 'VISIO', 'vsdx' => 'VISIO'
+            'webm' => 'VIDEO',
+            'mpeg4' => 'VIDEO',
+            'mp4' => 'VIDEO',
+            '3gpp' => 'VIDEO',
+            'mov' => 'VIDEO',
+            'avi' => 'VIDEO',
+            'wmv' => 'VIDEO',
+            'flv' => 'VIDEO',
+            'dwg' => 'CAD',
+            'dxf' => 'CAD',
+            '3ds' => '3D',
+            'ai' => 'ILLUSTRATOR',
+            'psd' => 'PHOTOSHOP',
+            'pdf' => 'PDF',
+            'xls' => 'EXCEL',
+            'xlsx' => 'EXCEL',
+            'ppt' => 'POWERPOINT',
+            'pptx' => 'POWERPOINT',
+            'doc' => 'WORD',
+            'docx' => 'WORD',
+            'vsd' => 'VISIO',
+            'vsdx' => 'VISIO'
         ];
         return $typeMap[$extension] ?? 'UNKNOWN';
     }
-}
+}

File diff suppressed because it is too large
+ 734 - 173
sistema-mantenimiento-back/app/Http/Controllers/FunctionsController.php


File diff suppressed because it is too large
+ 408 - 628
sistema-mantenimiento-back/app/Http/Controllers/ProcessManagementController.php


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

@@ -460,14 +460,14 @@ 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('USUARIO_REGISTRO', $value)) {
                 $arrResponse['error'] = true;
-                $arrResponse['msg'] = 'La clave USUARIO_REGISTRA no existe en el arreglo.';
+                $arrResponse['msg'] = 'La clave USUARIO_REGISTRO no existe en el arreglo.';
                 return $arrResponse;
             }
-            if (!array_key_exists('FECHA_REGISTRA', $value)) {
+            if (!array_key_exists('FECHA_REGISTRO', $value)) {
                 $arrResponse['error'] = true;
-                $arrResponse['msg'] = 'La clave FECHA_REGISTRA no existe en el arreglo.';
+                $arrResponse['msg'] = 'La clave FECHA_REGISTRO no existe en el arreglo.';
                 return $arrResponse;
             }
             if (!array_key_exists('USUARIO_MODIFICA', $value)) {
@@ -483,8 +483,8 @@ class ResourcesController extends Controller
 
             foreach ($value as $keyItem => $item) {
                 if (
-                    $keyItem !== 'USUARIO_REGISTRA' &&
-                    $keyItem !== 'FECHA_REGISTRA' &&
+                    $keyItem !== 'USUARIO_REGISTRO' &&
+                    $keyItem !== 'FECHA_REGISTRO' &&
                     $keyItem !== 'USUARIO_MODIFICA' &&
                     $keyItem !== 'FECHA_MODIFICA'
                 ) {
@@ -494,14 +494,14 @@ class ResourcesController extends Controller
 
             $userNumber = '';
             if (is_null($value['USUARIO_MODIFICA'])) {
-                $userNumber = $value['USUARIO_REGISTRA'];
+                $userNumber = $value['USUARIO_REGISTRO'];
             } else {
                 $userNumber = $value['USUARIO_MODIFICA'];
             }
 
             $lastUpdate = '';
             if (is_null($value['FECHA_MODIFICA'])) {
-                $lastUpdate = $value['FECHA_REGISTRA'];
+                $lastUpdate = $value['FECHA_REGISTRO'];
             } else {
                 $lastUpdate = $value['FECHA_MODIFICA'];
             }

+ 72 - 0
sistema-mantenimiento-back/bash/TimeoutValidator.php

@@ -0,0 +1,72 @@
+<?php
+
+require_once __DIR__ . '/../vendor/autoload.php';
+
+// Variables de conexión
+$host = 'localhost';
+$dbname = 'samqa';
+$username = 'root';
+$password = 'root';
+$log_file = __DIR__ . '/../storage/logs/timeout_validator.log';
+
+// Función de log
+function writeLog($message)
+{
+    global $log_file;
+    $timestamp = date('Y-m-d H:i:s');
+    file_put_contents($log_file, "[$timestamp] $message" . PHP_EOL, FILE_APPEND | LOCK_EX);
+}
+
+// Conexión a BD
+try {
+    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
+    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+    writeLog("Conexión a BD establecida correctamente");
+} catch (PDOException $e) {
+    writeLog("ERROR: Conexión a BD falló - " . $e->getMessage());
+    die("Error de conexión: " . $e->getMessage());
+}
+
+// Validar timeouts vencidos
+$stmt = $pdo->prepare("
+    SELECT s.SOVA_IDSV, s.SOVA_INEX, s.SOVA_FEEN, s.SOVA_IDET
+    FROM S002V01TSOVA s 
+    WHERE s.SOVA_ESTA = 'Pendiente'
+");
+$stmt->execute();
+$pendingSOVAs = $stmt->fetchAll(PDO::FETCH_ASSOC);
+writeLog("Validando timeouts de " . count($pendingSOVAs) . " SOVAs pendientes");
+
+foreach ($pendingSOVAs as $row) {
+    $sovaData = json_decode($row['SOVA_INEX'], true)[0];
+    $timeout = $sovaData['timeout'];
+
+    // Parsear timeout (ej: "30min", "2hr", "45seg", "6 min")
+    preg_match('/(\d+)\s*(seg|min|hr)/', $timeout, $matches);
+    if (count($matches) !== 3) continue;
+
+    $valor = (int)$matches[1];
+    $unidad = $matches[2];
+
+    // Convertir a DateInterval
+    $intervalSpec = match ($unidad) {
+        'seg' => "PT{$valor}S",
+        'min' => "PT{$valor}M",
+        'hr' => "PT{$valor}H"
+    };
+
+    $fechaEnvio = new DateTime($row['SOVA_FEEN']);
+    $fechaLimite = clone $fechaEnvio;
+    $fechaLimite->add(new DateInterval($intervalSpec));
+    $ahora = new DateTime();
+    //writeLog($fechaLimite);
+
+    if ($ahora >= $fechaLimite) {
+        $updateStmt = $pdo->prepare("UPDATE S002V01TSOVA SET SOVA_ESTA = 'Validada por timeout', SOVA_FERE = NOW() WHERE SOVA_IDSV = ?");
+        $updateStmt->execute([$row['SOVA_IDSV']]);
+        writeLog("SOVA autovalidada por timeout: ID {$row['SOVA_IDSV']} - Timeout: {$timeout}");
+    }
+}
+
+writeLog("Validación de timeouts completada");
+echo "Validación de timeouts completada\n";

+ 200 - 0
sistema-mantenimiento-back/bash/WorkflowNotificationsManager.php

@@ -0,0 +1,200 @@
+<?php
+
+require_once __DIR__ . '/../vendor/autoload.php';
+
+use ElephantIO\Client;
+use ElephantIO\Engine\SocketIO\Version4X;
+
+// Variables de conexión
+$host = 'localhost';
+$dbname = 'samqa';
+$username = 'root';
+$password = 'root';
+$api_url = 'http://192.168.2.25:8000/api/emitNotification';
+$socket_url = 'http://localhost:3200';
+$log_file = __DIR__ . '/../storage/logs/workflow_notifications.log';
+
+// Función de log
+function writeLog($message)
+{
+    global $log_file;
+    $timestamp = date('Y-m-d H:i:s');
+    file_put_contents($log_file, "[$timestamp] $message" . PHP_EOL, FILE_APPEND | LOCK_EX);
+}
+
+// Conexión a BD MySQL
+try {
+    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
+    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+    writeLog("Conexión a BD establecida correctamente");
+} catch (PDOException $e) {
+    writeLog("ERROR: Conexión a BD falló - " . $e->getMessage());
+    die("Error de conexión: " . $e->getMessage());
+}
+
+// Función para obtener conexiones activas del socket
+function getActiveConnections()
+{
+    global $socket_url;
+
+    try {
+        $client = new Client(new Version4X($socket_url));
+        $client->initialize();
+
+        $arrInfoConnection = array();
+        $client->emit('get_connections', []);
+        if ($packet = $client->wait('current_connections')) {
+            $data = json_decode($packet->data, true);
+            $arrInfoConnection = $data;
+        }
+
+        $client->close();
+        writeLog("Contenido raw del socket: " . json_encode($arrInfoConnection));
+        writeLog("Conexiones activas obtenidas: " . count($arrInfoConnection) . " usuarios");
+        return $arrInfoConnection;
+    } catch (Exception $e) {
+        writeLog("ERROR: No se pudo conectar al socket - " . $e->getMessage());
+        return [];
+    }
+}
+
+// Función para desencriptar ID
+function decryptId($encryptedId)
+{
+    $ch = curl_init('http://192.168.2.25:8000/api/decrypt');
+    curl_setopt($ch, CURLOPT_POST, true);
+    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['value' => $encryptedId]));
+    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
+    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+    $response = curl_exec($ch);
+    curl_close($ch);
+    $result = json_decode($response, true);
+    writeLog("API Response: " . substr($response, 0, 100));
+    $decrypted = $result['response']['decrypted'] ?? null;
+    writeLog("Desencriptando ID: $encryptedId -> $decrypted");
+
+    return $decrypted;
+}
+
+// Función para seleccionar usuario
+function selectUser($users)
+{
+    writeLog("Seleccionando usuario de: " . implode(',', $users));
+    $arrInfoConnection = getActiveConnections();
+
+    $arrUsersConnected = array();
+    foreach ($arrInfoConnection as $userConnection) {
+        $data = explode('.', $userConnection);
+        $userConnected = decryptId($data[0]);
+        if ($userConnected) {
+            $arrUsersConnected[] = $userConnected;
+        }
+    }
+
+    writeLog("Usuarios conectados: " . implode(',', $arrUsersConnected));
+
+    foreach ($users as $user) {
+        if (in_array($user, $arrUsersConnected)) {
+            writeLog("Usuario seleccionado: $user (conectado)");
+            return $user;
+        }
+    }
+
+    writeLog("Ningún usuario conectado, usando por defecto: 0000000001");
+    return '0000000001';
+}
+
+// Función para enviar notificación
+function emitNotinotification($module, $title, $content, $actions, $audience)
+{
+    global $api_url;
+
+    $data = [
+        'module' => $module,
+        'title' => $title,
+        'content' => $content,
+        'actions' => $actions,
+        'audience' => $audience
+    ];
+
+    $ch = curl_init($api_url);
+    curl_setopt($ch, CURLOPT_POST, true);
+    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
+    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
+    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+
+    $response = curl_exec($ch);
+    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+    curl_close($ch);
+
+    writeLog("API Response: HTTP $httpCode - " . substr($response, 0, 100));
+    return $httpCode === 200;
+}
+
+// Consulta SOVA
+$stmt = $pdo->prepare("
+    SELECT s.SOVA_IDSV, s.SOVA_INEX, t.TAWO_USAV, s.SOVA_IDET 
+    FROM S002V01TSOVA s 
+    JOIN S002V01TEJTW e ON s.SOVA_IDET = e.EJTW_IDET
+    JOIN S002V01TTAWO t ON e.EJTW_IDTA = t.TAWO_IDTA 
+    WHERE s.SOVA_ESTA = 'Pendiente de envio'
+");
+$stmt->execute();
+$sovaResults = $stmt->fetchAll(PDO::FETCH_ASSOC);
+
+foreach ($sovaResults as $row) {
+    $sovaData = json_decode($row['SOVA_INEX'], true)[0];
+    $users = json_decode($row['TAWO_USAV'], true);
+    $iduser = selectUser($users);
+
+    $success = emitNotinotification(
+        'S002V01M03GEPR',
+        "La tarea: {$sovaData['nombre_t']} secuencia {$sovaData['secuencia']} requiere validación",
+        "La tarea: {$sovaData['nombre_t']} secuencia {$sovaData['secuencia']} del workflow: {$sovaData['nombre_w']}, requiere validación timeout: {$sovaData['timeout']}.",
+        [
+            ['BOTON' => 'Ver todas las solicitudes', 'FUNCION' => 'getValidateApplications', 'PARAMETROS' => json_encode([$iduser, "1"])],
+            ['BOTON' => 'Validar', 'FUNCION' => 'asignStateToApplication', 'PARAMETROS' => json_encode([$iduser, "1", $sovaData['idtask'], "Aprobada"])],
+            ['BOTON' => 'Rechazar', 'FUNCION' => 'asignStateToApplication', 'PARAMETROS' => json_encode([$iduser, "1", $sovaData['idtask'], "Rechazada"])],
+            ['idtask' => $row['SOVA_IDET']]
+        ],
+        $iduser
+    );
+
+    if ($success) {
+        $updateStmt = $pdo->prepare("UPDATE S002V01TSOVA SET SOVA_ESTA = 'Pendiente', SOVA_IDUS = ? WHERE SOVA_IDSV = ?");
+        $updateStmt->execute([$iduser, $row['SOVA_IDSV']]);
+        writeLog("SOVA actualizada: ID {$row['SOVA_IDSV']} - Estado: Pendiente");
+    } else {
+        writeLog("ERROR: Falló envío SOVA ID {$row['SOVA_IDSV']}");
+    }
+}
+
+// Consulta NOWF
+$stmt = $pdo->prepare("SELECT NOWF_IDNE, NOWF_INEX, NOWF_USNO, NOWF_IDEJ FROM S002V01TNOEJ WHERE NOWF_ESTA = 'pendiente de envio'");
+$stmt->execute();
+$nowfResults = $stmt->fetchAll(PDO::FETCH_ASSOC);
+
+foreach ($nowfResults as $row) {
+    $nowfData = json_decode($row['NOWF_INEX'], true)[0];
+    $usersNoti = json_decode($row['NOWF_USNO'], true);
+
+    $success = emitNotinotification(
+        'S002V01M03GEPR',
+        "La tarea: {$nowfData['nombre_t']} secuencia {$nowfData['secuencia']} ha sido ejecutada",
+        "La tarea: {$nowfData['nombre_t']} secuencia {$nowfData['secuencia']} del workflow: {$nowfData['nombre_w']}, ha sido ejecutada.",
+        [['idtask' => $row['NOWF_IDEJ']]],
+        $usersNoti
+    );
+
+    if ($success) {
+
+        $updateStmt = $pdo->prepare("UPDATE S002V01TNOEJ SET NOWF_ESTA = 'Enviada' WHERE NOWF_IDNE = ?");
+        $updateStmt->execute([$row['NOWF_IDNE']]);
+        writeLog("NOWF actualizada: ID {$row['NOWF_IDNE']} - Estado: Enviada");
+    } else {
+        writeLog("ERROR: Falló envío NOWF ID {$row['NOWF_IDNE']}");
+    }
+}
+
+writeLog("Script ejecutado correctamente");
+echo "Script ejecutado correctamente\n";

+ 571 - 559
sistema-mantenimiento-back/routes/api.php

@@ -29,570 +29,582 @@ Route::get("/download-file/{token}/{idUser}/{line}",
 Route::get("/print-order-details/{idOrder}/{idUser}/{line}",                            "App\Http\Controllers\PreventiveMaintenanceController@printOrderDetails");          //
 
 //Route::middleware(['jwt.auth'])->group(function(){
-    //Endpoints PRTG
-    Route::get("/PRTG/get-report/{idReport}/{idUser}/{line}",                           "App\Http\Controllers\PRTGController@getReport");
-    Route::get("/PRTG/get-last-reports/{idUser}/{line}",                                "App\Http\Controllers\PRTGController@getLastReports");
-    //Endpoints generales
-    Route::get("/get-modules/{idUser}/{line}",                                          "App\Http\Controllers\UsersProfilesController@getModules");                         //Obtiene todos los módulos registrados en el sistema
-    Route::get("/get-module/{idModule}/{idUser}/{line}",                                "App\Http\Controllers\UsersProfilesController@getModule");                          //Obtiene un módulo a través de su ID
-    Route::get("/get-submodules/{idMod}/{idUser}/{line}",                               "App\Http\Controllers\UsersProfilesController@getSubmodules");                //Obtiene todos los submódulos pertenecientes a algún módulo
-    Route::get("/get-submodule/{idMod}/{idSub}/{idUser}/{line}",                        "App\Http\Controllers\UsersProfilesController@getSubmodule");                       //Obtiene un submódulo a través de su ID
-    Route::get("/get-function/{idMod}/{idSub}/{idFunc}/{id}/{line}",                    "App\Http\Controllers\UsersProfilesController@getFunction");                        //Obtiene una función a través de su ID
-    Route::get("/get-screen/{idFunc}/{idScr}/{id}/{line}",                              "App\Http\Controllers\UsersProfilesController@getScreen");                          //Obtiene una pantalla a través de su ID
-    Route::get("/get-material-icons/{id}/{line}",                                       "App\Http\Controllers\SystemAdministratorController@getMaterialIcons");             //Obtiene el arreglo de los iconos de Material Design
-    Route::get("/get-module-functions/{idMod}/{id}/{line}",                             "App\Http\Controllers\SystemAdministratorController@getModuleFunctions");           //Obtiene las funciones de un módulo
-    Route::get("/get-submodule-functions/{idMod}/{idSub}/{id}/{line}",                  "App\Http\Controllers\SystemAdministratorController@getSubmoduleFunctions");        //Obtiene todos los submódulos pertenecientes a algún módulo
-    Route::get("/get-notification/{idNotification}/{setRead}/{idUser}/{line}",          "App\Http\Controllers\NotificationsController@getNotification");        //Obtiene todos los submódulos pertenecientes a algún módulo
-    Route::get("/get-notifications-by-user/{idUser}/{line}",                            "App\Http\Controllers\NotificationsController@getNotificationsByUser");        //Obtiene todos los submódulos pertenecientes a algún módulo
-    //Módulo de usuarios y perfiles
-    Route::post("/create-user",                                                         "App\Http\Controllers\UsersProfilesController@createUser");                         //Registra nuevos usuarios en la base de datos
-    Route::post("/delete-user",                                                         "App\Http\Controllers\UsersProfilesController@deleteUser");                         //Cambia el estado de los usuarios a Eliminado
-    Route::post("/modify-user",                                                         "App\Http\Controllers\UsersProfilesController@updateUser");                         //Cambia los datos de un usuario en específico
-    Route::post("/modify-pass",                                                         "App\Http\Controllers\UsersProfilesController@updatePass");                         //Cambia la contraseña de un usuario en específico
-    Route::post("/block-user",                                                          "App\Http\Controllers\UsersProfilesController@blockUser");                          //Permite bloquear o desbloquear un usuario
-    Route::post("/modify-profile",                                                      "App\Http\Controllers\UsersProfilesController@updateProfile");                      //Cambia los datos de un perfil en específico
-    Route::post("/create-profile",                                                      "App\Http\Controllers\UsersProfilesController@createProfile");                      //Registra nuevos perfiles en la base de datos
-    Route::post("/delete-profile",                                                      "App\Http\Controllers\UsersProfilesController@deleteProfile");                      //Cambia el estado de un perfil a Eliminado
-    Route::post("/configure-user-organization",                                         "App\Http\Controllers\UsersProfilesController@configureUserOrganization");          //Cambia el estado de un perfil a Eliminado
-    Route::get("/get-users/{id}/{line}",                                                "App\Http\Controllers\UsersProfilesController@getUsers");                           //Obtiene todos los usuarios registrados
-    Route::get("/get-user/{id}/{idUser}/{line}",                                        "App\Http\Controllers\UsersProfilesController@getUser");                            //Obtiene un usuario en especifico
-    Route::get("/get-profiles/{id}/{line}",                                             "App\Http\Controllers\UsersProfilesController@getProfiles");                        //Obtiene todos los perfiles registrados
-    Route::get("/get-profile/{id}/{idUser}/{line}",                                     "App\Http\Controllers\UsersProfilesController@getProfile");                         //Obtiene un perfil en específico
-    Route::get("/get-initial-permissions/{id}/{line}",                                  "App\Http\Controllers\UsersProfilesController@buildInitialPermissions");            //Crea un json de permisos iniciales
-    Route::get("/get-menu/{id}/{line}",                                                 "App\Http\Controllers\UsersProfilesController@getMenu");                            //
-    //Módulo administrador del sistema 
-    Route::get("/get-last-connections/{id}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getLastConnections");           //
-    Route::get("/get-catalogues/{id}/{line}",                                           "App\Http\Controllers\SystemAdministratorController@getCatalogues");                //Obtiene todos los catálogos registrados
-    Route::get("/get-catalogue-history/{type}/{idUser}/{line}",                         "App\Http\Controllers\SystemAdministratorController@getCatalogueHistory");          //Obtiene todos los catálogos registrados
-    Route::get("/get-user-connections/{id}/{idUser}/{line}",                            "App\Http\Controllers\SystemAdministratorController@getUserConnections");           //
-    Route::get("/get-last-actions/{id}/{line}",                                         "App\Http\Controllers\SystemAdministratorController@getLastActions");               //
-    Route::get("/get-user-total-actions/{id}/{idUser}/{line}",                          "App\Http\Controllers\SystemAdministratorController@getUserTotalActions");          //
-    Route::get("/get-user-actions/{id}/{of}/{li}/{oc}/{di}/{idUs}/{line}",              "App\Http\Controllers\SystemAdministratorController@getUserActions");               //
-    Route::get("/read-catalogue/{id}/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@readCatalogue");                //
-    Route::get("/get-advices/{idUser}/{line}",                                          "App\Http\Controllers\SystemAdministratorController@getAdvices");                   //Obtiene todos los avisos registrados
-    Route::get("/get-advice/{id}/{idUser}/{line}",                                      "App\Http\Controllers\SystemAdministratorController@getAdvice");                    //Obtiene un aviso en específico
-    Route::get("/get-two-steps-auths/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getTwoStepsAuthUsers");         //Obtiene la lista de usuarios con autenticación en dos pasos
-    Route::get("/get-password-format/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getPasswordFormat");            //Obtiene el formato de configuración de contraseñas
-    Route::get("/get-sessions-duration/{idUser}/{line}",                                "App\Http\Controllers\SystemAdministratorController@getSessionsDuration");          //Obtiene la configuración de la duración de las sesiones
-    Route::get("/get-active-sessions-number/{idUser}/{line}",                           "App\Http\Controllers\SystemAdministratorController@getActiveSessionsNumber");      //Obtiene la configuración del número de sesiones máximas configuradas
-    Route::get("/get-maintenance-history/{idUser}/{line}",                              "App\Http\Controllers\SystemAdministratorController@getMaintenanceHistory");        //Obtiene la configuración del número de sesiones máximas configuradas
-    Route::get("/get-maintenance-status/{idUser}/{line}",                               "App\Http\Controllers\SystemAdministratorController@getMaintenanceStatus");         //Obtiene el estado actual del modo mantenimiento
-    Route::get("/get-email-servers/{idUser}/{line}",                                    "App\Http\Controllers\SystemAdministratorController@getEmailServers");              //Obtiene la lista de servidores de email registrados
-    Route::get("/get-email-server/{host}/{user}/{idUser}/{line}",                       "App\Http\Controllers\SystemAdministratorController@getEmailServer");               //Obtiene la información de un servidor en específico
-    Route::get("/get-email-templates/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getEmailTemplates");            //Obtiene las plantillas de correo electrónico registradas
-    Route::get("/get-email-template/{id}/{idUser}/{line}",                              "App\Http\Controllers\SystemAdministratorController@getEmailTemplate");             //Obtiene la información de una plantilla en específico
-    Route::get("/get-login-images/{idUser}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getLoginImages");               //Obtiene las imagenes configuradas para la vista de inicio de sesión
-    Route::get("/get-scada/{idSCADA}/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getSCADA");                     //Obtiene los SCADA registrados en el sistema
-    Route::get("/get-scada-list/{idUser}/{line}",                                       "App\Http\Controllers\SystemAdministratorController@getSCADAList");                 //Obtiene los SCADA registrados en el sistema
-    Route::get("/get-generated-tokens/{idUser}/{line}",                                 "App\Http\Controllers\SystemAdministratorController@getGeneratedTokens");           //Obtiene los tokens generados para el acceso de los SCADA
-    Route::get("/get-web-services/{idUser}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getWebServices");               //Obtiene la lista de servicios web registrados
-    Route::get("/get-routed-tokens/{idUser}/{line}",                                    "App\Http\Controllers\SystemAdministratorController@getRoutedTokens");              //Obtiene la lista de tokens enrutados
-    Route::get("/get-backups-list/{idUser}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getBackupsList");               //Obtiene la lista de tokens enrutados
-    Route::get("/get-order-priorities/{idUser}/{line}",                                 "App\Http\Controllers\SystemAdministratorController@getOrderPriorities");           //Obtiene la lista de tokens enrutados
-    Route::get("/get-countries-list/{idUser}/{line}",                                   "App\Http\Controllers\SystemAdministratorController@getCountriesList");             //Obtiene la lista de tokens enrutados
-    Route::get("/get-zip-codes/{idUser}/{line}",                                        "App\Http\Controllers\SystemAdministratorController@getZipCodes");                  //Obtiene la lista de tokens enrutados
-    Route::get("/get-zip-codes-total/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getZipCodesTotal");             //Obtiene la lista de tokens enrutados
-    Route::get("/get-zip-codes-page/{limit}/{offset}/{idUser}/{line}",                  "App\Http\Controllers\SystemAdministratorController@getZipCodesPage");              //Obtiene la lista de tokens enrutados
-    Route::get("/get-address-by-zip-code/{zipCode}/{idUser}/{line}",                    "App\Http\Controllers\SystemAdministratorController@getAddressByZipCode");          //Obtiene la lista de tokens enrutados
-    Route::get("/get-states-list/{idUser}/{line}",                                      "App\Http\Controllers\SystemAdministratorController@getStatesList");                //Obtiene la lista de tokens enrutados
-    Route::get("/get-cities-list/{idUser}/{line}",                                      "App\Http\Controllers\SystemAdministratorController@getCitiesList");                //Obtiene la lista de tokens enrutados
-    Route::get("/get-towns-list/{idUser}/{line}",                                       "App\Http\Controllers\SystemAdministratorController@getTownsList");                 //Obtiene la lista de tokens enrutados
-    Route::get("/get-coins-list/{idUser}/{line}",                                       "App\Http\Controllers\SystemAdministratorController@getCoinsList");                 //Obtiene la lista de tokens enrutados
-    Route::get("/get-settings-list/{idUser}/{line}",                                    "App\Http\Controllers\SystemAdministratorController@getSettingsList");              //Obtiene la lista de tokens enrutados
-    Route::get("/get-tax-regime-list/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getTaxRegimeList");             //Obtiene la lista de tokens enrutados
-    Route::get("/get-states-by-country-code/{countryCode}/{idUser}/{line}",             "App\Http\Controllers\SystemAdministratorController@getStatesByCountryCode");       //Obtiene la lista de tokens enrutados
-    Route::get("/get-cities-by-state-code/{stateCode}/{idUser}/{line}",                 "App\Http\Controllers\SystemAdministratorController@getCitiesByStateCode");         //Obtiene la lista de tokens enrutados
-    Route::get("/get-towns/{stateCode}/{cityCode}/{idUser}/{line}",                     "App\Http\Controllers\SystemAdministratorController@getTowns");                     //Obtiene la lista de tokens enrutados
-    Route::get("/get-city-settings/{stateCode}/{cityCode}/{townCode}/{idUser}/{line}",  "App\Http\Controllers\SystemAdministratorController@getCitySettings");              //Obtiene la lista de tokens enrutados
-    Route::get("/get-general-catalogue-info/{type}/{headerRow}/{idUser}/{line}",        "App\Http\Controllers\SystemAdministratorController@getGeneralCatalogueInfo");      //Obtiene la lista de tokens enrutados
-    Route::get ("/get-catalog-coins/{user}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getCatalogCoins");              //Actualiza el estado de un servicio web
-    Route::get("/get-tax-information/{line}",                                           "App\Http\Controllers\SystemAdministratorController@getTaxInformation");            //Actualiza el estado de un servicio web
-    Route::get("/get-station-planes/{idStation}/{idUser}/{line}",                       "App\Http\Controllers\SystemAdministratorController@getStationPlanes");             //Actualiza el estado de un servicio web
-    Route::post("/save-catalogue",                                                      "App\Http\Controllers\SystemAdministratorController@saveCatalogue");                //Registra un nuevo catalogo
-    Route::post("/publish-advice",                                                      "App\Http\Controllers\SystemAdministratorController@publishAdvice");                //Registra un nuevo aviso
-    Route::post("/update-advice",                                                       "App\Http\Controllers\SystemAdministratorController@updateAdvice");                 //Actualiza un aviso existente
-    Route::post("/delete-advice",                                                       "App\Http\Controllers\SystemAdministratorController@deleteAdvice");                 //Elimina un aviso existente
-    Route::post("/set-two-steps-auth",                                                  "App\Http\Controllers\SystemAdministratorController@setTwoStepsAuth");              //Actualiza la autenticación en dos pasos de un usuario en específico
-    Route::post("/save-password-format",                                                "App\Http\Controllers\SystemAdministratorController@savePasswordFormat");           //Actualiza el formato rquerido para la actualización de contraseñas
-    Route::post("/save-sessions-duration",                                              "App\Http\Controllers\SystemAdministratorController@saveSessionsDuration");         //Actualiza la configuración de duración de las sesiones
-    Route::post("/save-active-sessions-number",                                         "App\Http\Controllers\SystemAdministratorController@saveActiveSessionsNumber");     //Actualiza la configuración del número de sesiones máximas configuradas
-    Route::post("/activate-maintenance-mode",                                           "App\Http\Controllers\SystemAdministratorController@activateMaintenanceMode");      //Activa el modo mantenimiento
-    Route::post("/deactivate-maintenance-mode",                                         "App\Http\Controllers\SystemAdministratorController@deactivateMaintenanceMode");    //Desactiva el modo mantenimiento
-    Route::post("/register-email-server",                                               "App\Http\Controllers\SystemAdministratorController@registerEmailServer");          //Registra un nuevo servidor de envíos de correo
-    Route::post("/update-email-server",                                                 "App\Http\Controllers\SystemAdministratorController@updateEmailServer");            //Actualiza la información de un servidor en específico
-    Route::post("/delete-email-server",                                                 "App\Http\Controllers\SystemAdministratorController@deleteEmailServer");            //Realiza la eliminación logica del registro
-    Route::post("/deactivate-email-server",                                             "App\Http\Controllers\SystemAdministratorController@deactivateEmailServer");        //Realiza la activación/desactivación del registro
-    Route::post("/register-email-template",                                             "App\Http\Controllers\SystemAdministratorController@registerEmailTemplate");        //Registra una plantilla de correo electronico nueva
-    Route::post("/update-email-template",                                               "App\Http\Controllers\SystemAdministratorController@updateEmailTemplate");          //Actualiza la información de una plantilla de correo electronico
-    Route::post("/delete-email-template",                                               "App\Http\Controllers\SystemAdministratorController@deleteEmailTemplate");          //Elimina una plantilla de correo electronico en específico
-    Route::post("/save-login-image",                                                    "App\Http\Controllers\SystemAdministratorController@saveLoginImage");               //Actualiza una imagen específoca del login
-    Route::post("/update-module-icons",                                                 "App\Http\Controllers\SystemAdministratorController@updateModuleIcons");            //Actualiza los íconos de los módulos
-    Route::post("/update-submodule-icons",                                              "App\Http\Controllers\SystemAdministratorController@updateSubmoduleIcons");         //Actualiza los íconos de los submódulos
-    Route::post("/update-function-icons",                                               "App\Http\Controllers\SystemAdministratorController@updateFunctionIcons");          //Actualiza los íconos de las funciones
-    Route::post("/register-scada",                                                      "App\Http\Controllers\SystemAdministratorController@registerSCADA");                //Registra un nuevo SCADA
-    Route::post("/update-scada-password",                                               "App\Http\Controllers\SystemAdministratorController@updateSCADAPassword");          //Actualiza el nombre de un SCADA en específico
-    Route::post("/update-scada",                                                        "App\Http\Controllers\SystemAdministratorController@updateSCADA");                  //Actualiza el nombre de un SCADA en específico
-    Route::post("/delete-scada",                                                        "App\Http\Controllers\SystemAdministratorController@deleteSCADA");                  //Elimina un SCADA en específico
-    Route::post("/generate-scada-token",                                                "App\Http\Controllers\SystemAdministratorController@generateSCADAtoken");           //Asigna un token a un SCADA
-    Route::post("/revoke-token",                                                        "App\Http\Controllers\SystemAdministratorController@revokeToken");                  //Revoca un token en específico
-    Route::post("/register-web-service",                                                "App\Http\Controllers\SystemAdministratorController@registerWebService");           //Registra un nuevo servicio web
-    Route::post("/change-token-access",                                                 "App\Http\Controllers\SystemAdministratorController@changeTokenAccess");            //Cambia el estado de un token
-    Route::post("/change-web-service",                                                  "App\Http\Controllers\SystemAdministratorController@changeWebService");             //Cambia el servicio web ligado a un token
-    Route::post("/update-web-service",                                                  "App\Http\Controllers\SystemAdministratorController@updateWebService");             //Actualiza la información de un servicio web
-    Route::post("/change-ws-status",                                                    "App\Http\Controllers\SystemAdministratorController@changeWSstatus");               //Actualiza el estado de un servicio web
-    Route::post("/update-order-priorities",                                             "App\Http\Controllers\SystemAdministratorController@updateOrderPriorities");        //Actualiza el estado de un servicio web
-    Route::post("/save-catalogue-config",                                               "App\Http\Controllers\SystemAdministratorController@saveCatalogueConfig");          //Actualiza el estado de un servicio web
-    Route::post("/update-tax-information",                                              "App\Http\Controllers\SystemAdministratorController@saveTaxInformation");           //Actualiza el estado de un servicio web
-    Route::post("/validate-catalog",                                                    "App\Http\Controllers\SystemAdministratorController@validateCatalog");           //Actualiza el estado de un servicio web
-    Route::post("/save-station-plane",                                                  "App\Http\Controllers\SystemAdministratorController@saveStationPlane");           //Actualiza el estado de un servicio web
-    //Módulo gestión documental electrónica
-    Route::get("/get-file-info/{id}/{idUser}/{line}",                                   "App\Http\Controllers\DocumentManagementController@getFileInfo");                   //Obtiene la información de un archivo en específico
-    Route::get("/get-download-token/{idFile}/{idUser}/{line}",                          "App\Http\Controllers\DocumentManagementController@getDownloadToken");              //Permite generar un token para descargar un archivo
-    Route::get("/get-files/{mod}/{cla}/{sda}/{eda}/{dna}/{ext}/{mode}/{idUser}/{line}", "App\Http\Controllers\DocumentManagementController@getFiles");                      //Permite generar un token para descargar un archivo
-    Route::get("/get-public-document-url/{id}/{idUser}/{line}",                         "App\Http\Controllers\DocumentManagementController@getPublicDocumentURL");          //Permite generar un token para descargar un archivo
-    Route::get("/get-public-temp-document-url/{id}/{idUser}/{line}",                    "App\Http\Controllers\DocumentManagementController@getPublicTempDocumentURL");      //Permite generar un token para descargar un archivo
-    Route::get("/get-file-access/{id}/{idUser}/{line}",                                 "App\Http\Controllers\DocumentManagementController@getFileAccess");                 //Permite generar un token para descargar un archivo
-    Route::get("/get-associated-work-orders/{id}/{idUser}/{line}",                      "App\Http\Controllers\DocumentManagementController@getAssociatedWorkOrders");       //Permite generar un token para descargar un archivo
-    Route::post("/upload-temp-file",                                                    "App\Http\Controllers\DocumentManagementController@uploadTempFile");                //Permite subir un nuevo archivo de manera temporal
-    Route::post("/delete-temp-file",                                                    "App\Http\Controllers\DocumentManagementController@deleteTempFile");                //elimina un archivo del almacenamiento temporal
-    Route::post("/save-final-file",                                                     "App\Http\Controllers\DocumentManagementController@saveFinalFile");                 //elimina un archivo del almacenamiento temporal
-    Route::post("/update-file-permissions",                                             "App\Http\Controllers\DocumentManagementController@updateFilePermissions");         //elimina un archivo del almacenamiento temporal
-    Route::post("/delete-file",                                                         "App\Http\Controllers\DocumentManagementController@deleteFile");                    //elimina un archivo del almacenamiento temporal
-    Route::post("/change-association-status",                                           "App\Http\Controllers\DocumentManagementController@changeAssociationStatus");       //elimina un archivo del almacenamiento temporal
-    //Módulo gestión de mantenimiento preventivo
-    Route::get("/get-active-orders/{idUser}/{line}",                                    "App\Http\Controllers\PreventiveMaintenanceController@getActiveOrders");            //
-    Route::get("/get-work-order/{id}/{idUser}/{line}",                                  "App\Http\Controllers\PreventiveMaintenanceController@getWorkOrder");               //
-    Route::get("/get-started-work-orders/{idUser}/{line}",                              "App\Http\Controllers\PreventiveMaintenanceController@geStartedtWorkOrders");       //
-    Route::get("/get-exec-register/{date}/{idOrder}/{idUser}/{line}",                   "App\Http\Controllers\PreventiveMaintenanceController@getExecRegister");            //
-    Route::get("/get-work-orders/{idUser}/{line}",                                      "App\Http\Controllers\PreventiveMaintenanceController@getWorkOrders");              //
-    Route::get("/get-preventive-calendar/{fecIni}/{fecFin}/{idUser}/{line}",            "App\Http\Controllers\PreventiveMaintenanceController@getPreventiveCalendar");      //
-    Route::get("/get-unprogrammed-visits/{idUser}/{line}",                              "App\Http\Controllers\PreventiveMaintenanceController@getUnprogrammedVisits");      //
-    Route::get("/get-unprogrammed-visit/{idVisit}/{idUser}/{line}",                     "App\Http\Controllers\PreventiveMaintenanceController@getUnprogrammedVisit");       //
-    Route::get("/get-maintenance-simulation/{idOrder}/{idUser}/{line}",                 "App\Http\Controllers\PreventiveMaintenanceController@getMaintenanceSimulation");   //
-    Route::get("/get-order-with-activator/{idOrder}/{idUser}/{line}",                   "App\Http\Controllers\PreventiveMaintenanceController@getOrderWithActivator");      //
-    Route::get("/print-order-simulation/{idOrder}/{idUser}/{line}",                     "App\Http\Controllers\PreventiveMaintenanceController@printOrderSimulation");       //
-    Route::get("/extract-maintenance-plan/{idOrder}/{idUser}/{line}",                   "App\Http\Controllers\PreventiveMaintenanceController@extractMaintenancePlan");     //
-    Route::get("/get-maintenance-plan-analysis/{idFile}/{idUser}/{line}",               "App\Http\Controllers\PreventiveMaintenanceController@getMaintenancePlanAnalysis"); //
-    Route::get("/get-file-to-ms-project/{idOrder}/{idFile}/{line}",                     "App\Http\Controllers\PreventiveMaintenanceController@getFileToMSProject");         //Registra una nueva orden de trabajo
-    Route::get("/get-order-staff/{idOrder}/{idUser}/{line}",                            "App\Http\Controllers\PreventiveMaintenanceController@getOrderStaff");              //Registra una nueva orden de trabajo
-    Route::get("/get-order-execution-details/{idExecution}/{idUser}/{line}",            "App\Http\Controllers\PreventiveMaintenanceController@getOrderExecutionDetails");   //Registra una nueva orden de trabajo
-    Route::get("/get-work-orders-by-equipment/{equipmentCode}/{idUser}/{line}",         "App\Http\Controllers\PreventiveMaintenanceController@getWorkOrdersByEquipment");   //Registra una nueva orden de trabajo
-    Route::post("/save-preset-work-order",                                              "App\Http\Controllers\PreventiveMaintenanceController@savePresetWorkOrder");        //Registra una nueva orden de trabajo
-    Route::post("/register-work-order",                                                 "App\Http\Controllers\PreventiveMaintenanceController@registerWorkOrder");          //Registra una nueva orden de trabajo
-    Route::post("/execute-preventive-work-order",                                       "App\Http\Controllers\PreventiveMaintenanceController@executePreventiveWorkOrder"); //Registra una nueva orden de trabajo
-    Route::post("/cancel-work-order",                                                   "App\Http\Controllers\PreventiveMaintenanceController@cancelWorkOrder");            //Registra una nueva orden de trabajo
-    Route::post("/delete-work-order",                                                   "App\Http\Controllers\PreventiveMaintenanceController@deleteWorkOrder");            //Registra una nueva orden de trabajo
-    Route::post("/update-work-order",                                                   "App\Http\Controllers\PreventiveMaintenanceController@updateWorkOrder");            //Registra una nueva orden de trabajo
-    Route::post("/end-order-execution",                                                 "App\Http\Controllers\PreventiveMaintenanceController@endOrderExecution");          //Registra una nueva orden de trabajo
-    Route::post("/copy-work-order",                                                     "App\Http\Controllers\PreventiveMaintenanceController@copyWorkOrder");              //Registra una nueva orden de trabajo
-    Route::post("/new-unprogrammed-order",                                              "App\Http\Controllers\PreventiveMaintenanceController@newUnprogrammedOrder");       //Registra una nueva orden de trabajo
-    Route::post("/update-visit-status",                                                 "App\Http\Controllers\PreventiveMaintenanceController@updateVisitStatus");          //Registra una nueva orden de trabajo
-    Route::post("/update-visit-status",                                                 "App\Http\Controllers\PreventiveMaintenanceController@updateVisitStatus");          //Registra una nueva orden de trabajo
-    Route::post("/update-order-status",                                                 "App\Http\Controllers\PreventiveMaintenanceController@updateOrderStatus");          //Registra una nueva orden de trabajo
-    Route::post("/set-budget-analysis",                                                 "App\Http\Controllers\PreventiveMaintenanceController@setBudgetAnalysis");          //Registra una nueva orden de trabajo
-    Route::post("/update-order-with-activator",                                         "App\Http\Controllers\PreventiveMaintenanceController@updateOrderWithActivator");   //Registra una nueva orden de trabajo
-    Route::post("/save-order-simulation",                                               "App\Http\Controllers\PreventiveMaintenanceController@saveOrderSimulation");        //Registra una nueva orden de trabajo
-    //Módulo contadores y activadores
-    Route::get("/activator/consult/{idUser}/{line}",                                    "App\Http\Controllers\CountersActivatorsController@getActivators");
-    Route::get("/get-activators-by-type/{type}/{idUser}/{line}",                        "App\Http\Controllers\CountersActivatorsController@getActivatorsByType");
-    Route::get("/get-activator/{idActi}/{idUser}/{line}",                               "App\Http\Controllers\CountersActivatorsController@getActivator");
-    Route::get("/counter/consult/{idUser}/{line}",                                      "App\Http\Controllers\CountersActivatorsController@getCounters");
-    Route::get("/counter/consult/only/{idCounter}/{idUser}/{line}",                     "App\Http\Controllers\CountersActivatorsController@getCounter");
-    Route::get("/counter/consult/by-equipment/{equipment}/{idUser}/{line}",             "App\Http\Controllers\CountersActivatorsController@getCountersByEquipment");
-    Route::get("/counter/consult/last-measure/{idCounter}/{idUser}/{line}",             "App\Http\Controllers\CountersActivatorsController@getCounterLastMeasure");
-    Route::get("/counter/consult/measures/{idCo}/{ord}/{dir}/{lim}/{off}/{idUs}/{lin}", "App\Http\Controllers\CountersActivatorsController@getCounterMeasures");
-    Route::get("/counter/consult/measures-length/{idCounter}/{idUser}/{line}",          "App\Http\Controllers\CountersActivatorsController@getCounterMeasuresLength");
-    Route::get("/counter/consult/related-counters/{idCounter}/{idUser}/{line}",         "App\Http\Controllers\CountersActivatorsController@getRelatedCounters");
-    Route::post("/register-activator",                                                  "App\Http\Controllers\CountersActivatorsController@registerActivator");
-    Route::post("/activator/update",                                                    "App\Http\Controllers\CountersActivatorsController@updateActivator");
-    Route::post("/activator/delete",                                                    "App\Http\Controllers\CountersActivatorsController@deleteActivator");
-    Route::post("/counter/register",                                                    "App\Http\Controllers\CountersActivatorsController@registerCounter");
-    Route::post("/counter/update",                                                      "App\Http\Controllers\CountersActivatorsController@updateCounter");
-    Route::post("/counter/delete",                                                      "App\Http\Controllers\CountersActivatorsController@deleteCounter");
-    Route::post("/counter/relate-counters",                                             "App\Http\Controllers\CountersActivatorsController@relateCounters");
-    //Módulo gestión del personal de mantenimiento
-    Route::get("/employee/consult/{idUser}/{line}",                                     "App\Http\Controllers\PersonnelManagementController@getConsultOfEmployees");
-    Route::get("/employee/consult-for-leader/{idEmployee}/{idUser}/{line}",             "App\Http\Controllers\PersonnelManagementController@getConsultOfEmployeesForLeader");
-    Route::get("/employee/only/{idEmployee}/{idUser}/{line}",                           "App\Http\Controllers\PersonnelManagementController@getEmployeeById");
-    Route::get("/employee/contracts/employees/{idUser}/{line}",                         "App\Http\Controllers\PersonnelManagementController@getContractsOfEveryEmployee");
-    Route::get("/employee/contracts/history/{idEmployee}/{idUser}/{line}",              "App\Http\Controllers\PersonnelManagementController@getDetailsOfContractsByEmployee");
-    Route::get("/employee/orders/{idEmployee}/{idUser}/{line}",                         "App\Http\Controllers\PersonnelManagementController@getInterventionsByEmployee");
-    Route::get("/employee/consult-for-leader/{idEmployee}/{idUser}/{line}",             "App\Http\Controllers\PersonnelManagementController@getConsultOfEmployeesForLeader");
-    Route::get('/employee/get-schedule-activities-by-employee/{id}/{user}/{line}',      "App\Http\Controllers\PersonnelManagementController@getScheduleActivitiesByEmployee");
-    Route::get('/employee/get-schedule-activities-by-activity/{id}/{user}/{line}',      "App\Http\Controllers\PersonnelManagementController@getScheduleActivitiesByActivity");
-    Route::get("/subcontract/consult/{idUser}/{line}",                                  "App\Http\Controllers\PersonnelManagementController@getConsultOfSubcontratists");
-    Route::get("/subcontract/only/{idSub}/{idUser}/{line}",                             "App\Http\Controllers\PersonnelManagementController@getSubcontratistById");
-    Route::get("/subcontract/contracts/subcontratists/{idUser}/{line}",                 "App\Http\Controllers\PersonnelManagementController@getContractsOfEverySubcontratist");
-    Route::get("/subcontract/contracts/history/{idSubcontratist}/{idUser}/{line}",      "App\Http\Controllers\PersonnelManagementController@getContractsBySubcontratist");
-    Route::get("/subcontract/download-info-excel/{idSubcontratist}/{idUser}/{line}",    "App\Http\Controllers\PersonnelManagementController@downloadSubcontractInfoOnExcel");
-    Route::get("/subcontract/download-info-pdf/{idSubcontratist}/{idUser}/{line}",      "App\Http\Controllers\PersonnelManagementController@downloadSubcontractInfoOnPdf");
-    Route::get("/workteam/consult/{idUser}/{line}",                                     "App\Http\Controllers\PersonnelManagementController@getConsultOfWorkteams");
-    Route::get("/workteam/only/{workteam}/{idUser}/{line}",                             "App\Http\Controllers\PersonnelManagementController@getWorkteamById");
-    Route::get("/workteam/members/{workteam}/{idUser}/{line}",                          "App\Http\Controllers\PersonnelManagementController@getMembersOfWorkteamById");
-    Route::get("/intervention/contract/consult/{idUser}/{line}",                        "App\Http\Controllers\PersonnelManagementController@getConsultOfContracts");
-    Route::get("/intervention/consult/{idUser}/{line}",                                 "App\Http\Controllers\PersonnelManagementController@getConsultOfInterventions");
-    Route::get("/specialties/consult/{idUser}/{line}",                                  "App\Http\Controllers\PersonnelManagementController@getAllRegisteredSpecialties");
-    Route::get("/specialties/consult/only/{code}/{idUser}/{line}",                      "App\Http\Controllers\PersonnelManagementController@getSpecialtyByCode");
-    Route::post("/employee/register",                                                   "App\Http\Controllers\PersonnelManagementController@storeEmployee");
-    Route::post("/employee/update",                                                     "App\Http\Controllers\PersonnelManagementController@updateEmployee");
-    Route::post("/employee/delete",                                                     "App\Http\Controllers\PersonnelManagementController@updateToInactiveStatusEmployee");
-    Route::post('/employee/update-activity/{idActivity}',                               "App\Http\Controllers\PersonnelManagementController@updateActivity");
-    Route::post('/employee/register-activity',                                          "App\Http\Controllers\PersonnelManagementController@registerActivity");
-    Route::post('/employee/delete-activity/{idActivity}',                               "App\Http\Controllers\PersonnelManagementController@deleteActivity");
-    Route::post("/subcontract/register",                                                "App\Http\Controllers\PersonnelManagementController@storeSubcontratist");
-    Route::post("/subcontract/update",                                                  "App\Http\Controllers\PersonnelManagementController@updateSubcontratist");
-    Route::post("/subcontract/delete",                                                  "App\Http\Controllers\PersonnelManagementController@updateToInactiveStatusSubcontract");
-    Route::post("/workteam/register",                                                   "App\Http\Controllers\PersonnelManagementController@storeWorkteam");
-    Route::post("/workteam/update",                                                     "App\Http\Controllers\PersonnelManagementController@updateWorkteam");
-    Route::post("/workteam/delete",                                                     "App\Http\Controllers\PersonnelManagementController@updateToInactiveStatus");
-    Route::post("/intervention/contract/register",                                      "App\Http\Controllers\PersonnelManagementController@storeContract");
-    Route::post("/specialties/register",                                                "App\Http\Controllers\PersonnelManagementController@registerSpecialty");
-    Route::post("/specialties/update",                                                  "App\Http\Controllers\PersonnelManagementController@updateSpecialty");
-    Route::post("/specialties/delete",                                                  "App\Http\Controllers\PersonnelManagementController@deleteSpecialty");
-    //Módulo gestión de equipamientos
-    Route::get("/family/consult/{idUser}/{line}",                                       "App\Http\Controllers\EquipmentManagementController@getFamilies");
-    Route::get("/family/consult/only/{familyCode}/{idUser}/{line}",                     "App\Http\Controllers\EquipmentManagementController@getFamily");
-    Route::get("/subfamily/consult/{familyCode}/{idUser}/{line}",                       "App\Http\Controllers\EquipmentManagementController@getSubfamilies");
-    Route::get("/location/consult/{idUser}/{line}",                                     "App\Http\Controllers\EquipmentManagementController@getLocations");
-    Route::get("/occupation/areas/consult/{idUser}/{line}",                             "App\Http\Controllers\EquipmentManagementController@getOccupationAreas");
-    Route::get("/occupation/consult/{idUser}/{line}",                                   "App\Http\Controllers\EquipmentManagementController@getOccupations");
-    Route::get("/occupation/train/consult/{idUser}/{line}",                             "App\Http\Controllers\EquipmentManagementController@getTrainOccupations");
-    Route::get("/occupation/train/area/consult/{occupation}/{idUser}/{line}",           "App\Http\Controllers\EquipmentManagementController@getTrainAreas");
-    Route::get("/occupation/train/elements/{idUser}/{line}",                            "App\Http\Controllers\EquipmentManagementController@getTrainElements");
-    Route::get("/equipment/consult/pending/total/{idUser}/{line}",                      "App\Http\Controllers\EquipmentManagementController@getTotalPendingEquipments");
-    Route::get("/equipment/consult/pending/grouped/{idUser}/{line}",                    "App\Http\Controllers\EquipmentManagementController@getGroupedPendingEquipments");
-    Route::get("/equipment/consult/pending/{offset}/{idUser}/{line}",                   "App\Http\Controllers\EquipmentManagementController@getPendingEquipments");
-    Route::get("/equipment/consult/pending/only/{idReg}/{idUser}/{line}",               "App\Http\Controllers\EquipmentManagementController@getPendigEquipment");
-    Route::get("/equipment/consult/{idUser}/{line}",                                    "App\Http\Controllers\EquipmentManagementController@getEquipments");
-    Route::get("/equipment/consult/filter/{filterVal}/{idUser}/{line}",                 "App\Http\Controllers\EquipmentManagementController@getFilteredEquipments");
-    Route::get("/equipment/consult/by-subfamily/{family}/{subfamily}/{idUser}/{line}",  "App\Http\Controllers\EquipmentManagementController@getEquipmentsBySubfamily");
-    Route::get("/equipment/consult/by-parent/{parent}/{idUser}/{line}",                 "App\Http\Controllers\EquipmentManagementController@getEquipmentsByParent");
-    Route::get("/equipment/consult/by-code-type/{codeType}/{idUser}/{line}",            "App\Http\Controllers\EquipmentManagementController@getEquipmentsByCodeType");
-    Route::get("/equipment/consult/only/{code}/{idUser}/{line}",                        "App\Http\Controllers\EquipmentManagementController@getEquipmentDetails");
-    Route::get("/equipment/consult/types/{idUser}/{line}",                              "App\Http\Controllers\EquipmentManagementController@getEquipmentTypes");
-    Route::get("/equipment/consult/by-type/{equipmentType}/{idUser}/{line}",            "App\Http\Controllers\EquipmentManagementController@getEquipmentsByType");
-    Route::get("/equipment/consult/by-kilometer/{startPK}/{endPK}/{idUser}/{line}",     "App\Http\Controllers\EquipmentManagementController@getEquipmentsByKilometer");
-    Route::get("/equipment/consult/by-train-area/{car}/{area}/{idUser}/{line}",         "App\Http\Controllers\EquipmentManagementController@getEquipmentsByTrainArea");
-    Route::get("/equipment/consult/by-pcc-position/{coords}/{idUser}/{line}",           "App\Http\Controllers\EquipmentManagementController@getEquipmentsByPCCIntersection");
-    Route::get("/equipment/consult/pcc/{idUser}/{line}",                                "App\Http\Controllers\EquipmentManagementController@getPCCEquipments");
-    Route::get("/equipment/consult/train/{car}/{idUser}/{line}",                        "App\Http\Controllers\EquipmentManagementController@getTrainEquipments");
-    Route::get("/equipment/consult/via/{idUser}/{line}",                                "App\Http\Controllers\EquipmentManagementController@getViaEquipments");
-    Route::get("/equipment/consult/station/{idPlane}/{coords}/{idUser}/{line}",         "App\Http\Controllers\EquipmentManagementController@getStationEquipments");
-    Route::get("/arborescence/consult/by-date/{date}/{idUser}/{line}",                  "App\Http\Controllers\EquipmentManagementController@getArborescenceByDate");
-    Route::post("/family/register",                                                     "App\Http\Controllers\EquipmentManagementController@registerFamily");
-    Route::post("/family/update",                                                       "App\Http\Controllers\EquipmentManagementController@updateFamily");
-    Route::post("/family/delete",                                                       "App\Http\Controllers\EquipmentManagementController@deleteFamily");
-    Route::post("/subfamily/register",                                                  "App\Http\Controllers\EquipmentManagementController@registerSubfamily");
-    Route::post("/subfamily/update",                                                    "App\Http\Controllers\EquipmentManagementController@updateSubfamily");
-    Route::post("/subfamily/delete",                                                    "App\Http\Controllers\EquipmentManagementController@deleteSubfamily");
-    Route::post("/occupation/register",                                                 "App\Http\Controllers\EquipmentManagementController@registerOccupation");
-    Route::post("/occupation/update",                                                   "App\Http\Controllers\EquipmentManagementController@updateOccupation");
-    Route::post("/occupation/delete",                                                   "App\Http\Controllers\EquipmentManagementController@deleteOccupation");
-    Route::post("/equipment/pre-codification",                                          "App\Http\Controllers\EquipmentManagementController@saveEquipmentPreCodified");
-    Route::post("/equipment/pre-codification-stock",                                    "App\Http\Controllers\EquipmentManagementController@saveEquipmentPreCodifiedStock");
-    Route::post("/equipment/pre-codification/status/update",                            "App\Http\Controllers\EquipmentManagementController@changePreCodedEquipmentStatus");
-    Route::post("/equipment/pre-codification/group/status/update",                      "App\Http\Controllers\EquipmentManagementController@changePreCodedEquipmentStatusByGroup");
-    Route::post("/equipment/graphic-arborescence",                                      "App\Http\Controllers\EquipmentManagementController@generateGraphicArborescence");
-    Route::post("/equipment/update-security-criticality",                               "App\Http\Controllers\EquipmentManagementController@updateSecurityCriticality");
-    Route::post("/equipment/generate-equipment-file",                                   "App\Http\Controllers\EquipmentManagementController@generateEquipmentFile");
-    Route::post("/equipment/process-excel",                                             "App\Http\Controllers\EquipmentManagementController@processExcelEquipmnts");
-    //Módulo gestión de mantenimiento correctivo
-    Route::get("corrective-maintenance/get-work-orders/{idUser}/{line}",                "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrders");
-    Route::get("corrective-maintenance/get-work-order/{idOrder}/{idUser}/{line}",       "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrder");
-    Route::get("corrective-maintenance/get-work-order-clasifications/{idUser}/{line}",  "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrderClasifications");
-    Route::get("corrective-maintenance/get-responsibe-users/{idUser}/{line}",           "App\Http\Controllers\CorrectiveMaintenanceController@getResponsibleUsers");
-    Route::get("corrective-maintenance/get-security-managements/{idUser}/{line}",       "App\Http\Controllers\CorrectiveMaintenanceController@getSegurityManagements");
-    Route::get("corrective-maintenance/get-security-management/{idMan}/{idUs}/{line}",  "App\Http\Controllers\CorrectiveMaintenanceController@getSecurityManagement");
-    Route::get("corrective-maintenance/get-block-registers/{idUser}/{line}",            "App\Http\Controllers\CorrectiveMaintenanceController@getBlockRegisters");
-    Route::get("corrective-maintenance/get-work-order-status-history/{ord}/{usr}/{li}", "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrderStatusHistory");
-    Route::get("corrective-maintenance/get-reports/{type}/{sd}/{ed}/{idUser}/{line}",   "App\Http\Controllers\CorrectiveMaintenanceController@getReports");
-    Route::get("corrective-maintenance/get-maintenance-plans/{idUser}/{line}",          "App\Http\Controllers\CorrectiveMaintenanceController@getMaintenancePlans");
-    Route::get("corrective-maintenance/get-maintenance-plan/{idPlan}/{idUser}/{line}",  "App\Http\Controllers\CorrectiveMaintenanceController@getMaintenancePlan");
-    Route::get("corrective-maintenance/get-work-groups/{idUser}/{line}",                "App\Http\Controllers\CorrectiveMaintenanceController@getWorkGroups");
-    Route::get("corrective-maintenance/get-work-group/{idGroup}/{idUser}/{line}",       "App\Http\Controllers\CorrectiveMaintenanceController@getWorkGroup");
-    Route::get("corrective-maintenance/get-no-measures-form-fields/{idUser}/{line}",    "App\Http\Controllers\CorrectiveMaintenanceController@getNoMeasuresFormFields");
-    Route::get("corrective-maintenance/get-no-measures-orders/{idUser}/{line}",         "App\Http\Controllers\CorrectiveMaintenanceController@getNoMeasuresOrders");
-    Route::get("corrective-maintenance/get-no-measures-order/{idReg}/{idUser}/{line}",  "App\Http\Controllers\CorrectiveMaintenanceController@getNoMeasuresOrder");
-    Route::get("corrective-maintenance/get-work-order-staff/{idOrder}/{idUser}/{line}", "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrderStaff");
-    Route::get("corrective-maintenance/get-work-order-attendance/{idOr}/{idUs}/{line}", "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrderAttendance");
-    Route::post("corrective-maintenance/register-work-order",                           "App\Http\Controllers\CorrectiveMaintenanceController@registerWorkOrder");
-    Route::post("corrective-maintenance/update-work-order",                             "App\Http\Controllers\CorrectiveMaintenanceController@updateWorkOrder");
-    Route::post("corrective-maintenance/delete-work-order",                             "App\Http\Controllers\CorrectiveMaintenanceController@deleteWorkOrder");
-    Route::post("corrective-maintenance/approve-work-order",                            "App\Http\Controllers\CorrectiveMaintenanceController@approveWorkOrder");
-    Route::post("corrective-maintenance/start-work-order",                              "App\Http\Controllers\CorrectiveMaintenanceController@startWorkOrder");
-    Route::post("corrective-maintenance/update-work-order-status",                      "App\Http\Controllers\CorrectiveMaintenanceController@updateWorkOrderStatus");
-    Route::post("corrective-maintenance/transfer-work-order",                           "App\Http\Controllers\CorrectiveMaintenanceController@transferWorkOrder");
-    Route::post("corrective-maintenance/register-security-management",                  "App\Http\Controllers\CorrectiveMaintenanceController@registerSecurityManagement");
-    Route::post("corrective-maintenance/update-security-management",                    "App\Http\Controllers\CorrectiveMaintenanceController@updateSecurityManagement");
-    Route::post("corrective-maintenance/delete-security-management",                    "App\Http\Controllers\CorrectiveMaintenanceController@deleteSecurityManagement");
-    Route::post("corrective-maintenance/register-block",                                "App\Http\Controllers\CorrectiveMaintenanceController@registerBlock");
-    Route::post("corrective-maintenance/unblock-register",                              "App\Http\Controllers\CorrectiveMaintenanceController@unblockRegister");
-    Route::post("corrective-maintenance/generate-report",                               "App\Http\Controllers\CorrectiveMaintenanceController@generateReport");
-    Route::post("corrective-maintenance/register-maintenance-plan",                     "App\Http\Controllers\CorrectiveMaintenanceController@registerMaintnencePlan");
-    Route::post("corrective-maintenance/update-maintenance-plan",                       "App\Http\Controllers\CorrectiveMaintenanceController@updateMaintenancePlan");
-    Route::post("corrective-maintenance/delete-maintenance-plan",                       "App\Http\Controllers\CorrectiveMaintenanceController@deleteMaintenancePlan");
-    Route::post("corrective-maintenance/create-work-group",                             "App\Http\Controllers\CorrectiveMaintenanceController@registerWorkGroup");
-    Route::post("corrective-maintenance/update-work-group",                             "App\Http\Controllers\CorrectiveMaintenanceController@updateWorkGroup");
-    Route::post("corrective-maintenance/delete-work-group",                             "App\Http\Controllers\CorrectiveMaintenanceController@deleteWorkGroup");
-    Route::post("corrective-maintenance/save-no-measures-form-field",                   "App\Http\Controllers\CorrectiveMaintenanceController@saveNoMeasuresFormFields");
-    Route::post("corrective-maintenance/save-no-measures-order",                        "App\Http\Controllers\CorrectiveMaintenanceController@saveNoMeasuresOrder");
-    Route::post("corrective-maintenance/update-no-measures-order",                      "App\Http\Controllers\CorrectiveMaintenanceController@updateNoMeasuresOrder");
-    Route::post("corrective-maintenance/delete-no-measures-order",                      "App\Http\Controllers\CorrectiveMaintenanceController@deleteNoMeasuresOrder");
-    Route::post("corrective-maintenance/no-measures-order-validation",                  "App\Http\Controllers\CorrectiveMaintenanceController@noMeasuresOrderValidation");
-    Route::post("corrective-maintenance/close-no-measures-order",                       "App\Http\Controllers\CorrectiveMaintenanceController@closeNoMeasuresOrder");
-    Route::post("corrective-maintenance/closed-no-measures-order-validation",           "App\Http\Controllers\CorrectiveMaintenanceController@closedNoMeasuresOrderValidation");
-    Route::post("corrective-maintenance/generate-no-measures-report",                   "App\Http\Controllers\CorrectiveMaintenanceController@generateNoMeasuresReport");
-    Route::post("corrective-maintenance/set-work-order-attendance",                     "App\Http\Controllers\CorrectiveMaintenanceController@setWorkOrderAttendance");
-    //Módulo panel de control y seguimiento de actividades
-    Route::get("control-panel/get-panels/{idUser}/{line}",                              "App\Http\Controllers\ControlPanelController@getPanels");
-    Route::get("control-panel/get-counters-list/{idUser}/{line}",                       "App\Http\Controllers\ControlPanelController@getCountersList");
-    Route::get("control-panel/get-panel/{idPanel}/{idUser}/{line}",                     "App\Http\Controllers\ControlPanelController@getPanel");
-    Route::get("control-panel/get-info-to-excel/{idElement}/{module}/{idUser}/{line}",  "App\Http\Controllers\ControlPanelController@getInfoToExcel");
-    Route::get("control-panel/get-broadcast-lists/{idUser}/{line}",                     "App\Http\Controllers\ControlPanelController@getBroadcastLists");
-    Route::get("control-panel/get-broadcast-list/{idList}/{idUser}/{line}",             "App\Http\Controllers\ControlPanelController@getBroadcastList");
-    Route::get("control-panel/get-profile-export-permissions/{idProf}/{idUser}/{line}", "App\Http\Controllers\ControlPanelController@getProfileExportPermissions");
-    Route::get("control-panel/get-exportable-spreadsheets/{idUser}/{line}",             "App\Http\Controllers\ControlPanelController@getExportableSpreadsheets");
-    Route::get("control-panel/export-spreadsheet/{idMo}/{idRe}/{sd}/{ed}/{idUs}/{line}","App\Http\Controllers\ControlPanelController@exportSpreadsheet");
-    Route::post("control-panel/register-panel",                                         "App\Http\Controllers\ControlPanelController@registerPanel");
-    Route::post("control-panel/update-panel",                                           "App\Http\Controllers\ControlPanelController@updatePanel");
-    Route::post("control-panel/update-panel-elements",                                  "App\Http\Controllers\ControlPanelController@updatePanelElements");
-    Route::post("control-panel/update-panel-associations",                              "App\Http\Controllers\ControlPanelController@updatePanelAssociations");
-    Route::post("control-panel/delete-panel",                                           "App\Http\Controllers\ControlPanelController@deletePanel");
-    Route::post("control-panel/register-broadcast-list",                                "App\Http\Controllers\ControlPanelController@registerBroadcastList");
-    Route::post("control-panel/update-broadcast-list",                                  "App\Http\Controllers\ControlPanelController@updateBroadcastList");
-    Route::post("control-panel/delete-broadcast-list",                                  "App\Http\Controllers\ControlPanelController@deleteBroadcastList");
-    Route::post("control-panel/save-profile-export-permissions",                        "App\Http\Controllers\ControlPanelController@saveProfileExportPermissions");
+//Endpoints PRTG
+Route::get("/PRTG/get-report/{idReport}/{idUser}/{line}",                           "App\Http\Controllers\PRTGController@getReport");
+Route::get("/PRTG/get-last-reports/{idUser}/{line}",                                "App\Http\Controllers\PRTGController@getLastReports");
+//Endpoints generales
+Route::get("/get-modules/{idUser}/{line}",                                          "App\Http\Controllers\UsersProfilesController@getModules");                         //Obtiene todos los módulos registrados en el sistema
+Route::get("/get-module/{idModule}/{idUser}/{line}",                                "App\Http\Controllers\UsersProfilesController@getModule");                          //Obtiene un módulo a través de su ID
+Route::get("/get-submodules/{idMod}/{idUser}/{line}",                               "App\Http\Controllers\UsersProfilesController@getSubmodules");                //Obtiene todos los submódulos pertenecientes a algún módulo
+Route::get("/get-submodule/{idMod}/{idSub}/{idUser}/{line}",                        "App\Http\Controllers\UsersProfilesController@getSubmodule");                       //Obtiene un submódulo a través de su ID
+Route::get("/get-function/{idMod}/{idSub}/{idFunc}/{id}/{line}",                    "App\Http\Controllers\UsersProfilesController@getFunction");                        //Obtiene una función a través de su ID
+Route::get("/get-screen/{idFunc}/{idScr}/{id}/{line}",                              "App\Http\Controllers\UsersProfilesController@getScreen");                          //Obtiene una pantalla a través de su ID
+Route::get("/get-material-icons/{id}/{line}",                                       "App\Http\Controllers\SystemAdministratorController@getMaterialIcons");             //Obtiene el arreglo de los iconos de Material Design
+Route::get("/get-module-functions/{idMod}/{id}/{line}",                             "App\Http\Controllers\SystemAdministratorController@getModuleFunctions");           //Obtiene las funciones de un módulo
+Route::get("/get-submodule-functions/{idMod}/{idSub}/{id}/{line}",                  "App\Http\Controllers\SystemAdministratorController@getSubmoduleFunctions");        //Obtiene todos los submódulos pertenecientes a algún módulo
+Route::get("/get-notification/{idNotification}/{setRead}/{idUser}/{line}",          "App\Http\Controllers\NotificationsController@getNotification");        //Obtiene todos los submódulos pertenecientes a algún módulo
+Route::get("/get-notifications-by-user/{idUser}/{line}",                            "App\Http\Controllers\NotificationsController@getNotificationsByUser");        //Obtiene todos los submódulos pertenecientes a algún módulo
+//Módulo de usuarios y perfiles
+Route::post("/create-user",                                                         "App\Http\Controllers\UsersProfilesController@createUser");                         //Registra nuevos usuarios en la base de datos
+Route::post("/delete-user",                                                         "App\Http\Controllers\UsersProfilesController@deleteUser");                         //Cambia el estado de los usuarios a Eliminado
+Route::post("/modify-user",                                                         "App\Http\Controllers\UsersProfilesController@updateUser");                         //Cambia los datos de un usuario en específico
+Route::post("/modify-pass",                                                         "App\Http\Controllers\UsersProfilesController@updatePass");                         //Cambia la contraseña de un usuario en específico
+Route::post("/block-user",                                                          "App\Http\Controllers\UsersProfilesController@blockUser");                          //Permite bloquear o desbloquear un usuario
+Route::post("/modify-profile",                                                      "App\Http\Controllers\UsersProfilesController@updateProfile");                      //Cambia los datos de un perfil en específico
+Route::post("/create-profile",                                                      "App\Http\Controllers\UsersProfilesController@createProfile");                      //Registra nuevos perfiles en la base de datos
+Route::post("/delete-profile",                                                      "App\Http\Controllers\UsersProfilesController@deleteProfile");                      //Cambia el estado de un perfil a Eliminado
+Route::post("/configure-user-organization",                                         "App\Http\Controllers\UsersProfilesController@configureUserOrganization");          //Cambia el estado de un perfil a Eliminado
+Route::get("/get-users/{id}/{line}",                                                "App\Http\Controllers\UsersProfilesController@getUsers");                           //Obtiene todos los usuarios registrados
+Route::get("/get-user/{id}/{idUser}/{line}",                                        "App\Http\Controllers\UsersProfilesController@getUser");                            //Obtiene un usuario en especifico
+Route::get("/get-profiles/{id}/{line}",                                             "App\Http\Controllers\UsersProfilesController@getProfiles");                        //Obtiene todos los perfiles registrados
+Route::get("/get-profile/{id}/{idUser}/{line}",                                     "App\Http\Controllers\UsersProfilesController@getProfile");                         //Obtiene un perfil en específico
+Route::get("/get-initial-permissions/{id}/{line}",                                  "App\Http\Controllers\UsersProfilesController@buildInitialPermissions");            //Crea un json de permisos iniciales
+Route::get("/get-menu/{id}/{line}",                                                 "App\Http\Controllers\UsersProfilesController@getMenu");                            //
+//Módulo administrador del sistema 
+Route::get("/get-last-connections/{id}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getLastConnections");           //
+Route::get("/get-catalogues/{id}/{line}",                                           "App\Http\Controllers\SystemAdministratorController@getCatalogues");                //Obtiene todos los catálogos registrados
+Route::get("/get-catalogue-history/{type}/{idUser}/{line}",                         "App\Http\Controllers\SystemAdministratorController@getCatalogueHistory");          //Obtiene todos los catálogos registrados
+Route::get("/get-user-connections/{id}/{idUser}/{line}",                            "App\Http\Controllers\SystemAdministratorController@getUserConnections");           //
+Route::get("/get-last-actions/{id}/{line}",                                         "App\Http\Controllers\SystemAdministratorController@getLastActions");               //
+Route::get("/get-user-total-actions/{id}/{idUser}/{line}",                          "App\Http\Controllers\SystemAdministratorController@getUserTotalActions");          //
+Route::get("/get-user-actions/{id}/{of}/{li}/{oc}/{di}/{idUs}/{line}",              "App\Http\Controllers\SystemAdministratorController@getUserActions");               //
+Route::get("/read-catalogue/{id}/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@readCatalogue");                //
+Route::get("/get-advices/{idUser}/{line}",                                          "App\Http\Controllers\SystemAdministratorController@getAdvices");                   //Obtiene todos los avisos registrados
+Route::get("/get-advice/{id}/{idUser}/{line}",                                      "App\Http\Controllers\SystemAdministratorController@getAdvice");                    //Obtiene un aviso en específico
+Route::get("/get-two-steps-auths/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getTwoStepsAuthUsers");         //Obtiene la lista de usuarios con autenticación en dos pasos
+Route::get("/get-password-format/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getPasswordFormat");            //Obtiene el formato de configuración de contraseñas
+Route::get("/get-sessions-duration/{idUser}/{line}",                                "App\Http\Controllers\SystemAdministratorController@getSessionsDuration");          //Obtiene la configuración de la duración de las sesiones
+Route::get("/get-active-sessions-number/{idUser}/{line}",                           "App\Http\Controllers\SystemAdministratorController@getActiveSessionsNumber");      //Obtiene la configuración del número de sesiones máximas configuradas
+Route::get("/get-maintenance-history/{idUser}/{line}",                              "App\Http\Controllers\SystemAdministratorController@getMaintenanceHistory");        //Obtiene la configuración del número de sesiones máximas configuradas
+Route::get("/get-maintenance-status/{idUser}/{line}",                               "App\Http\Controllers\SystemAdministratorController@getMaintenanceStatus");         //Obtiene el estado actual del modo mantenimiento
+Route::get("/get-email-servers/{idUser}/{line}",                                    "App\Http\Controllers\SystemAdministratorController@getEmailServers");              //Obtiene la lista de servidores de email registrados
+Route::get("/get-email-server/{host}/{user}/{idUser}/{line}",                       "App\Http\Controllers\SystemAdministratorController@getEmailServer");               //Obtiene la información de un servidor en específico
+Route::get("/get-email-templates/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getEmailTemplates");            //Obtiene las plantillas de correo electrónico registradas
+Route::get("/get-email-template/{id}/{idUser}/{line}",                              "App\Http\Controllers\SystemAdministratorController@getEmailTemplate");             //Obtiene la información de una plantilla en específico
+Route::get("/get-login-images/{idUser}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getLoginImages");               //Obtiene las imagenes configuradas para la vista de inicio de sesión
+Route::get("/get-scada/{idSCADA}/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getSCADA");                     //Obtiene los SCADA registrados en el sistema
+Route::get("/get-scada-list/{idUser}/{line}",                                       "App\Http\Controllers\SystemAdministratorController@getSCADAList");                 //Obtiene los SCADA registrados en el sistema
+Route::get("/get-generated-tokens/{idUser}/{line}",                                 "App\Http\Controllers\SystemAdministratorController@getGeneratedTokens");           //Obtiene los tokens generados para el acceso de los SCADA
+Route::get("/get-web-services/{idUser}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getWebServices");               //Obtiene la lista de servicios web registrados
+Route::get("/get-routed-tokens/{idUser}/{line}",                                    "App\Http\Controllers\SystemAdministratorController@getRoutedTokens");              //Obtiene la lista de tokens enrutados
+Route::get("/get-backups-list/{idUser}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getBackupsList");               //Obtiene la lista de tokens enrutados
+Route::get("/get-order-priorities/{idUser}/{line}",                                 "App\Http\Controllers\SystemAdministratorController@getOrderPriorities");           //Obtiene la lista de tokens enrutados
+Route::get("/get-countries-list/{idUser}/{line}",                                   "App\Http\Controllers\SystemAdministratorController@getCountriesList");             //Obtiene la lista de tokens enrutados
+Route::get("/get-zip-codes/{idUser}/{line}",                                        "App\Http\Controllers\SystemAdministratorController@getZipCodes");                  //Obtiene la lista de tokens enrutados
+Route::get("/get-zip-codes-total/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getZipCodesTotal");             //Obtiene la lista de tokens enrutados
+Route::get("/get-zip-codes-page/{limit}/{offset}/{idUser}/{line}",                  "App\Http\Controllers\SystemAdministratorController@getZipCodesPage");              //Obtiene la lista de tokens enrutados
+Route::get("/get-address-by-zip-code/{zipCode}/{idUser}/{line}",                    "App\Http\Controllers\SystemAdministratorController@getAddressByZipCode");          //Obtiene la lista de tokens enrutados
+Route::get("/get-states-list/{idUser}/{line}",                                      "App\Http\Controllers\SystemAdministratorController@getStatesList");                //Obtiene la lista de tokens enrutados
+Route::get("/get-cities-list/{idUser}/{line}",                                      "App\Http\Controllers\SystemAdministratorController@getCitiesList");                //Obtiene la lista de tokens enrutados
+Route::get("/get-towns-list/{idUser}/{line}",                                       "App\Http\Controllers\SystemAdministratorController@getTownsList");                 //Obtiene la lista de tokens enrutados
+Route::get("/get-coins-list/{idUser}/{line}",                                       "App\Http\Controllers\SystemAdministratorController@getCoinsList");                 //Obtiene la lista de tokens enrutados
+Route::get("/get-settings-list/{idUser}/{line}",                                    "App\Http\Controllers\SystemAdministratorController@getSettingsList");              //Obtiene la lista de tokens enrutados
+Route::get("/get-tax-regime-list/{idUser}/{line}",                                  "App\Http\Controllers\SystemAdministratorController@getTaxRegimeList");             //Obtiene la lista de tokens enrutados
+Route::get("/get-states-by-country-code/{countryCode}/{idUser}/{line}",             "App\Http\Controllers\SystemAdministratorController@getStatesByCountryCode");       //Obtiene la lista de tokens enrutados
+Route::get("/get-cities-by-state-code/{stateCode}/{idUser}/{line}",                 "App\Http\Controllers\SystemAdministratorController@getCitiesByStateCode");         //Obtiene la lista de tokens enrutados
+Route::get("/get-towns/{stateCode}/{cityCode}/{idUser}/{line}",                     "App\Http\Controllers\SystemAdministratorController@getTowns");                     //Obtiene la lista de tokens enrutados
+Route::get("/get-city-settings/{stateCode}/{cityCode}/{townCode}/{idUser}/{line}",  "App\Http\Controllers\SystemAdministratorController@getCitySettings");              //Obtiene la lista de tokens enrutados
+Route::get("/get-general-catalogue-info/{type}/{headerRow}/{idUser}/{line}",        "App\Http\Controllers\SystemAdministratorController@getGeneralCatalogueInfo");      //Obtiene la lista de tokens enrutados
+Route::get("/get-catalog-coins/{user}/{line}",                                     "App\Http\Controllers\SystemAdministratorController@getCatalogCoins");              //Actualiza el estado de un servicio web
+Route::get("/get-tax-information/{line}",                                           "App\Http\Controllers\SystemAdministratorController@getTaxInformation");            //Actualiza el estado de un servicio web
+Route::get("/get-station-planes/{idStation}/{idUser}/{line}",                       "App\Http\Controllers\SystemAdministratorController@getStationPlanes");             //Actualiza el estado de un servicio web
+Route::post("/save-catalogue",                                                      "App\Http\Controllers\SystemAdministratorController@saveCatalogue");                //Registra un nuevo catalogo
+Route::post("/publish-advice",                                                      "App\Http\Controllers\SystemAdministratorController@publishAdvice");                //Registra un nuevo aviso
+Route::post("/update-advice",                                                       "App\Http\Controllers\SystemAdministratorController@updateAdvice");                 //Actualiza un aviso existente
+Route::post("/delete-advice",                                                       "App\Http\Controllers\SystemAdministratorController@deleteAdvice");                 //Elimina un aviso existente
+Route::post("/set-two-steps-auth",                                                  "App\Http\Controllers\SystemAdministratorController@setTwoStepsAuth");              //Actualiza la autenticación en dos pasos de un usuario en específico
+Route::post("/save-password-format",                                                "App\Http\Controllers\SystemAdministratorController@savePasswordFormat");           //Actualiza el formato rquerido para la actualización de contraseñas
+Route::post("/save-sessions-duration",                                              "App\Http\Controllers\SystemAdministratorController@saveSessionsDuration");         //Actualiza la configuración de duración de las sesiones
+Route::post("/save-active-sessions-number",                                         "App\Http\Controllers\SystemAdministratorController@saveActiveSessionsNumber");     //Actualiza la configuración del número de sesiones máximas configuradas
+Route::post("/activate-maintenance-mode",                                           "App\Http\Controllers\SystemAdministratorController@activateMaintenanceMode");      //Activa el modo mantenimiento
+Route::post("/deactivate-maintenance-mode",                                         "App\Http\Controllers\SystemAdministratorController@deactivateMaintenanceMode");    //Desactiva el modo mantenimiento
+Route::post("/register-email-server",                                               "App\Http\Controllers\SystemAdministratorController@registerEmailServer");          //Registra un nuevo servidor de envíos de correo
+Route::post("/update-email-server",                                                 "App\Http\Controllers\SystemAdministratorController@updateEmailServer");            //Actualiza la información de un servidor en específico
+Route::post("/delete-email-server",                                                 "App\Http\Controllers\SystemAdministratorController@deleteEmailServer");            //Realiza la eliminación logica del registro
+Route::post("/deactivate-email-server",                                             "App\Http\Controllers\SystemAdministratorController@deactivateEmailServer");        //Realiza la activación/desactivación del registro
+Route::post("/register-email-template",                                             "App\Http\Controllers\SystemAdministratorController@registerEmailTemplate");        //Registra una plantilla de correo electronico nueva
+Route::post("/update-email-template",                                               "App\Http\Controllers\SystemAdministratorController@updateEmailTemplate");          //Actualiza la información de una plantilla de correo electronico
+Route::post("/delete-email-template",                                               "App\Http\Controllers\SystemAdministratorController@deleteEmailTemplate");          //Elimina una plantilla de correo electronico en específico
+Route::post("/save-login-image",                                                    "App\Http\Controllers\SystemAdministratorController@saveLoginImage");               //Actualiza una imagen específoca del login
+Route::post("/update-module-icons",                                                 "App\Http\Controllers\SystemAdministratorController@updateModuleIcons");            //Actualiza los íconos de los módulos
+Route::post("/update-submodule-icons",                                              "App\Http\Controllers\SystemAdministratorController@updateSubmoduleIcons");         //Actualiza los íconos de los submódulos
+Route::post("/update-function-icons",                                               "App\Http\Controllers\SystemAdministratorController@updateFunctionIcons");          //Actualiza los íconos de las funciones
+Route::post("/register-scada",                                                      "App\Http\Controllers\SystemAdministratorController@registerSCADA");                //Registra un nuevo SCADA
+Route::post("/update-scada-password",                                               "App\Http\Controllers\SystemAdministratorController@updateSCADAPassword");          //Actualiza el nombre de un SCADA en específico
+Route::post("/update-scada",                                                        "App\Http\Controllers\SystemAdministratorController@updateSCADA");                  //Actualiza el nombre de un SCADA en específico
+Route::post("/delete-scada",                                                        "App\Http\Controllers\SystemAdministratorController@deleteSCADA");                  //Elimina un SCADA en específico
+Route::post("/generate-scada-token",                                                "App\Http\Controllers\SystemAdministratorController@generateSCADAtoken");           //Asigna un token a un SCADA
+Route::post("/revoke-token",                                                        "App\Http\Controllers\SystemAdministratorController@revokeToken");                  //Revoca un token en específico
+Route::post("/register-web-service",                                                "App\Http\Controllers\SystemAdministratorController@registerWebService");           //Registra un nuevo servicio web
+Route::post("/change-token-access",                                                 "App\Http\Controllers\SystemAdministratorController@changeTokenAccess");            //Cambia el estado de un token
+Route::post("/change-web-service",                                                  "App\Http\Controllers\SystemAdministratorController@changeWebService");             //Cambia el servicio web ligado a un token
+Route::post("/update-web-service",                                                  "App\Http\Controllers\SystemAdministratorController@updateWebService");             //Actualiza la información de un servicio web
+Route::post("/change-ws-status",                                                    "App\Http\Controllers\SystemAdministratorController@changeWSstatus");               //Actualiza el estado de un servicio web
+Route::post("/update-order-priorities",                                             "App\Http\Controllers\SystemAdministratorController@updateOrderPriorities");        //Actualiza el estado de un servicio web
+Route::post("/save-catalogue-config",                                               "App\Http\Controllers\SystemAdministratorController@saveCatalogueConfig");          //Actualiza el estado de un servicio web
+Route::post("/update-tax-information",                                              "App\Http\Controllers\SystemAdministratorController@saveTaxInformation");           //Actualiza el estado de un servicio web
+Route::post("/validate-catalog",                                                    "App\Http\Controllers\SystemAdministratorController@validateCatalog");           //Actualiza el estado de un servicio web
+Route::post("/save-station-plane",                                                  "App\Http\Controllers\SystemAdministratorController@saveStationPlane");           //Actualiza el estado de un servicio web
+//Módulo gestión documental electrónica
+Route::get("/get-file-info/{id}/{idUser}/{line}",                                   "App\Http\Controllers\DocumentManagementController@getFileInfo");                   //Obtiene la información de un archivo en específico
+Route::get("/get-download-token/{idFile}/{idUser}/{line}",                          "App\Http\Controllers\DocumentManagementController@getDownloadToken");              //Permite generar un token para descargar un archivo
+Route::get("/get-files/{mod}/{cla}/{sda}/{eda}/{dna}/{ext}/{mode}/{idUser}/{line}", "App\Http\Controllers\DocumentManagementController@getFiles");                      //Permite generar un token para descargar un archivo
+Route::get("/get-public-document-url/{id}/{idUser}/{line}",                         "App\Http\Controllers\DocumentManagementController@getPublicDocumentURL");          //Permite generar un token para descargar un archivo
+Route::get("/get-public-temp-document-url/{id}/{idUser}/{line}",                    "App\Http\Controllers\DocumentManagementController@getPublicTempDocumentURL");      //Permite generar un token para descargar un archivo
+Route::get("/get-file-access/{id}/{idUser}/{line}",                                 "App\Http\Controllers\DocumentManagementController@getFileAccess");                 //Permite generar un token para descargar un archivo
+Route::get("/get-associated-work-orders/{id}/{idUser}/{line}",                      "App\Http\Controllers\DocumentManagementController@getAssociatedWorkOrders");       //Permite generar un token para descargar un archivo
+Route::post("/upload-temp-file",                                                    "App\Http\Controllers\DocumentManagementController@uploadTempFile");                //Permite subir un nuevo archivo de manera temporal
+Route::post("/delete-temp-file",                                                    "App\Http\Controllers\DocumentManagementController@deleteTempFile");                //elimina un archivo del almacenamiento temporal
+Route::post("/save-final-file",                                                     "App\Http\Controllers\DocumentManagementController@saveFinalFile");                 //elimina un archivo del almacenamiento temporal
+Route::post("/update-file-permissions",                                             "App\Http\Controllers\DocumentManagementController@updateFilePermissions");         //elimina un archivo del almacenamiento temporal
+Route::post("/delete-file",                                                         "App\Http\Controllers\DocumentManagementController@deleteFile");                    //elimina un archivo del almacenamiento temporal
+Route::post("/change-association-status",                                           "App\Http\Controllers\DocumentManagementController@changeAssociationStatus");       //elimina un archivo del almacenamiento temporal
+//Módulo gestión de mantenimiento preventivo
+Route::get("/get-active-orders/{idUser}/{line}",                                    "App\Http\Controllers\PreventiveMaintenanceController@getActiveOrders");            //
+Route::get("/get-work-order/{id}/{idUser}/{line}",                                  "App\Http\Controllers\PreventiveMaintenanceController@getWorkOrder");               //
+Route::get("/get-started-work-orders/{idUser}/{line}",                              "App\Http\Controllers\PreventiveMaintenanceController@geStartedtWorkOrders");       //
+Route::get("/get-exec-register/{date}/{idOrder}/{idUser}/{line}",                   "App\Http\Controllers\PreventiveMaintenanceController@getExecRegister");            //
+Route::get("/get-work-orders/{idUser}/{line}",                                      "App\Http\Controllers\PreventiveMaintenanceController@getWorkOrders");              //
+Route::get("/get-preventive-calendar/{fecIni}/{fecFin}/{idUser}/{line}",            "App\Http\Controllers\PreventiveMaintenanceController@getPreventiveCalendar");      //
+Route::get("/get-unprogrammed-visits/{idUser}/{line}",                              "App\Http\Controllers\PreventiveMaintenanceController@getUnprogrammedVisits");      //
+Route::get("/get-unprogrammed-visit/{idVisit}/{idUser}/{line}",                     "App\Http\Controllers\PreventiveMaintenanceController@getUnprogrammedVisit");       //
+Route::get("/get-maintenance-simulation/{idOrder}/{idUser}/{line}",                 "App\Http\Controllers\PreventiveMaintenanceController@getMaintenanceSimulation");   //
+Route::get("/get-order-with-activator/{idOrder}/{idUser}/{line}",                   "App\Http\Controllers\PreventiveMaintenanceController@getOrderWithActivator");      //
+Route::get("/print-order-simulation/{idOrder}/{idUser}/{line}",                     "App\Http\Controllers\PreventiveMaintenanceController@printOrderSimulation");       //
+Route::get("/extract-maintenance-plan/{idOrder}/{idUser}/{line}",                   "App\Http\Controllers\PreventiveMaintenanceController@extractMaintenancePlan");     //
+Route::get("/get-maintenance-plan-analysis/{idFile}/{idUser}/{line}",               "App\Http\Controllers\PreventiveMaintenanceController@getMaintenancePlanAnalysis"); //
+Route::get("/get-file-to-ms-project/{idOrder}/{idFile}/{line}",                     "App\Http\Controllers\PreventiveMaintenanceController@getFileToMSProject");         //Registra una nueva orden de trabajo
+Route::get("/get-order-staff/{idOrder}/{idUser}/{line}",                            "App\Http\Controllers\PreventiveMaintenanceController@getOrderStaff");              //Registra una nueva orden de trabajo
+Route::get("/get-order-execution-details/{idExecution}/{idUser}/{line}",            "App\Http\Controllers\PreventiveMaintenanceController@getOrderExecutionDetails");   //Registra una nueva orden de trabajo
+Route::get("/get-work-orders-by-equipment/{equipmentCode}/{idUser}/{line}",         "App\Http\Controllers\PreventiveMaintenanceController@getWorkOrdersByEquipment");   //Registra una nueva orden de trabajo
+Route::post("/save-preset-work-order",                                              "App\Http\Controllers\PreventiveMaintenanceController@savePresetWorkOrder");        //Registra una nueva orden de trabajo
+Route::post("/register-work-order",                                                 "App\Http\Controllers\PreventiveMaintenanceController@registerWorkOrder");          //Registra una nueva orden de trabajo
+Route::post("/execute-preventive-work-order",                                       "App\Http\Controllers\PreventiveMaintenanceController@executePreventiveWorkOrder"); //Registra una nueva orden de trabajo
+Route::post("/cancel-work-order",                                                   "App\Http\Controllers\PreventiveMaintenanceController@cancelWorkOrder");            //Registra una nueva orden de trabajo
+Route::post("/delete-work-order",                                                   "App\Http\Controllers\PreventiveMaintenanceController@deleteWorkOrder");            //Registra una nueva orden de trabajo
+Route::post("/update-work-order",                                                   "App\Http\Controllers\PreventiveMaintenanceController@updateWorkOrder");            //Registra una nueva orden de trabajo
+Route::post("/end-order-execution",                                                 "App\Http\Controllers\PreventiveMaintenanceController@endOrderExecution");          //Registra una nueva orden de trabajo
+Route::post("/copy-work-order",                                                     "App\Http\Controllers\PreventiveMaintenanceController@copyWorkOrder");              //Registra una nueva orden de trabajo
+Route::post("/new-unprogrammed-order",                                              "App\Http\Controllers\PreventiveMaintenanceController@newUnprogrammedOrder");       //Registra una nueva orden de trabajo
+Route::post("/update-visit-status",                                                 "App\Http\Controllers\PreventiveMaintenanceController@updateVisitStatus");          //Registra una nueva orden de trabajo
+Route::post("/update-visit-status",                                                 "App\Http\Controllers\PreventiveMaintenanceController@updateVisitStatus");          //Registra una nueva orden de trabajo
+Route::post("/update-order-status",                                                 "App\Http\Controllers\PreventiveMaintenanceController@updateOrderStatus");          //Registra una nueva orden de trabajo
+Route::post("/set-budget-analysis",                                                 "App\Http\Controllers\PreventiveMaintenanceController@setBudgetAnalysis");          //Registra una nueva orden de trabajo
+Route::post("/update-order-with-activator",                                         "App\Http\Controllers\PreventiveMaintenanceController@updateOrderWithActivator");   //Registra una nueva orden de trabajo
+Route::post("/save-order-simulation",                                               "App\Http\Controllers\PreventiveMaintenanceController@saveOrderSimulation");        //Registra una nueva orden de trabajo
+//Módulo contadores y activadores
+Route::get("/activator/consult/{idUser}/{line}",                                    "App\Http\Controllers\CountersActivatorsController@getActivators");
+Route::get("/get-activators-by-type/{type}/{idUser}/{line}",                        "App\Http\Controllers\CountersActivatorsController@getActivatorsByType");
+Route::get("/get-activator/{idActi}/{idUser}/{line}",                               "App\Http\Controllers\CountersActivatorsController@getActivator");
+Route::get("/counter/consult/{idUser}/{line}",                                      "App\Http\Controllers\CountersActivatorsController@getCounters");
+Route::get("/counter/consult/only/{idCounter}/{idUser}/{line}",                     "App\Http\Controllers\CountersActivatorsController@getCounter");
+Route::get("/counter/consult/by-equipment/{equipment}/{idUser}/{line}",             "App\Http\Controllers\CountersActivatorsController@getCountersByEquipment");
+Route::get("/counter/consult/last-measure/{idCounter}/{idUser}/{line}",             "App\Http\Controllers\CountersActivatorsController@getCounterLastMeasure");
+Route::get("/counter/consult/measures/{idCo}/{ord}/{dir}/{lim}/{off}/{idUs}/{lin}", "App\Http\Controllers\CountersActivatorsController@getCounterMeasures");
+Route::get("/counter/consult/measures-length/{idCounter}/{idUser}/{line}",          "App\Http\Controllers\CountersActivatorsController@getCounterMeasuresLength");
+Route::get("/counter/consult/related-counters/{idCounter}/{idUser}/{line}",         "App\Http\Controllers\CountersActivatorsController@getRelatedCounters");
+Route::post("/register-activator",                                                  "App\Http\Controllers\CountersActivatorsController@registerActivator");
+Route::post("/activator/update",                                                    "App\Http\Controllers\CountersActivatorsController@updateActivator");
+Route::post("/activator/delete",                                                    "App\Http\Controllers\CountersActivatorsController@deleteActivator");
+Route::post("/counter/register",                                                    "App\Http\Controllers\CountersActivatorsController@registerCounter");
+Route::post("/counter/update",                                                      "App\Http\Controllers\CountersActivatorsController@updateCounter");
+Route::post("/counter/delete",                                                      "App\Http\Controllers\CountersActivatorsController@deleteCounter");
+Route::post("/counter/relate-counters",                                             "App\Http\Controllers\CountersActivatorsController@relateCounters");
+//Módulo gestión del personal de mantenimiento
+Route::get("/employee/consult/{idUser}/{line}",                                     "App\Http\Controllers\PersonnelManagementController@getConsultOfEmployees");
+Route::get("/employee/consult-for-leader/{idEmployee}/{idUser}/{line}",             "App\Http\Controllers\PersonnelManagementController@getConsultOfEmployeesForLeader");
+Route::get("/employee/only/{idEmployee}/{idUser}/{line}",                           "App\Http\Controllers\PersonnelManagementController@getEmployeeById");
+Route::get("/employee/contracts/employees/{idUser}/{line}",                         "App\Http\Controllers\PersonnelManagementController@getContractsOfEveryEmployee");
+Route::get("/employee/contracts/history/{idEmployee}/{idUser}/{line}",              "App\Http\Controllers\PersonnelManagementController@getDetailsOfContractsByEmployee");
+Route::get("/employee/orders/{idEmployee}/{idUser}/{line}",                         "App\Http\Controllers\PersonnelManagementController@getInterventionsByEmployee");
+Route::get("/employee/consult-for-leader/{idEmployee}/{idUser}/{line}",             "App\Http\Controllers\PersonnelManagementController@getConsultOfEmployeesForLeader");
+Route::get('/employee/get-schedule-activities-by-employee/{id}/{user}/{line}',      "App\Http\Controllers\PersonnelManagementController@getScheduleActivitiesByEmployee");
+Route::get('/employee/get-schedule-activities-by-activity/{id}/{user}/{line}',      "App\Http\Controllers\PersonnelManagementController@getScheduleActivitiesByActivity");
+Route::get("/subcontract/consult/{idUser}/{line}",                                  "App\Http\Controllers\PersonnelManagementController@getConsultOfSubcontratists");
+Route::get("/subcontract/only/{idSub}/{idUser}/{line}",                             "App\Http\Controllers\PersonnelManagementController@getSubcontratistById");
+Route::get("/subcontract/contracts/subcontratists/{idUser}/{line}",                 "App\Http\Controllers\PersonnelManagementController@getContractsOfEverySubcontratist");
+Route::get("/subcontract/contracts/history/{idSubcontratist}/{idUser}/{line}",      "App\Http\Controllers\PersonnelManagementController@getContractsBySubcontratist");
+Route::get("/subcontract/download-info-excel/{idSubcontratist}/{idUser}/{line}",    "App\Http\Controllers\PersonnelManagementController@downloadSubcontractInfoOnExcel");
+Route::get("/subcontract/download-info-pdf/{idSubcontratist}/{idUser}/{line}",      "App\Http\Controllers\PersonnelManagementController@downloadSubcontractInfoOnPdf");
+Route::get("/workteam/consult/{idUser}/{line}",                                     "App\Http\Controllers\PersonnelManagementController@getConsultOfWorkteams");
+Route::get("/workteam/only/{workteam}/{idUser}/{line}",                             "App\Http\Controllers\PersonnelManagementController@getWorkteamById");
+Route::get("/workteam/members/{workteam}/{idUser}/{line}",                          "App\Http\Controllers\PersonnelManagementController@getMembersOfWorkteamById");
+Route::get("/intervention/contract/consult/{idUser}/{line}",                        "App\Http\Controllers\PersonnelManagementController@getConsultOfContracts");
+Route::get("/intervention/consult/{idUser}/{line}",                                 "App\Http\Controllers\PersonnelManagementController@getConsultOfInterventions");
+Route::get("/specialties/consult/{idUser}/{line}",                                  "App\Http\Controllers\PersonnelManagementController@getAllRegisteredSpecialties");
+Route::get("/specialties/consult/only/{code}/{idUser}/{line}",                      "App\Http\Controllers\PersonnelManagementController@getSpecialtyByCode");
+Route::post("/employee/register",                                                   "App\Http\Controllers\PersonnelManagementController@storeEmployee");
+Route::post("/employee/update",                                                     "App\Http\Controllers\PersonnelManagementController@updateEmployee");
+Route::post("/employee/delete",                                                     "App\Http\Controllers\PersonnelManagementController@updateToInactiveStatusEmployee");
+Route::post('/employee/update-activity/{idActivity}',                               "App\Http\Controllers\PersonnelManagementController@updateActivity");
+Route::post('/employee/register-activity',                                          "App\Http\Controllers\PersonnelManagementController@registerActivity");
+Route::post('/employee/delete-activity/{idActivity}',                               "App\Http\Controllers\PersonnelManagementController@deleteActivity");
+Route::post("/subcontract/register",                                                "App\Http\Controllers\PersonnelManagementController@storeSubcontratist");
+Route::post("/subcontract/update",                                                  "App\Http\Controllers\PersonnelManagementController@updateSubcontratist");
+Route::post("/subcontract/delete",                                                  "App\Http\Controllers\PersonnelManagementController@updateToInactiveStatusSubcontract");
+Route::post("/workteam/register",                                                   "App\Http\Controllers\PersonnelManagementController@storeWorkteam");
+Route::post("/workteam/update",                                                     "App\Http\Controllers\PersonnelManagementController@updateWorkteam");
+Route::post("/workteam/delete",                                                     "App\Http\Controllers\PersonnelManagementController@updateToInactiveStatus");
+Route::post("/intervention/contract/register",                                      "App\Http\Controllers\PersonnelManagementController@storeContract");
+Route::post("/specialties/register",                                                "App\Http\Controllers\PersonnelManagementController@registerSpecialty");
+Route::post("/specialties/update",                                                  "App\Http\Controllers\PersonnelManagementController@updateSpecialty");
+Route::post("/specialties/delete",                                                  "App\Http\Controllers\PersonnelManagementController@deleteSpecialty");
+//Módulo gestión de equipamientos
+Route::get("/family/consult/{idUser}/{line}",                                       "App\Http\Controllers\EquipmentManagementController@getFamilies");
+Route::get("/family/consult/only/{familyCode}/{idUser}/{line}",                     "App\Http\Controllers\EquipmentManagementController@getFamily");
+Route::get("/subfamily/consult/{familyCode}/{idUser}/{line}",                       "App\Http\Controllers\EquipmentManagementController@getSubfamilies");
+Route::get("/location/consult/{idUser}/{line}",                                     "App\Http\Controllers\EquipmentManagementController@getLocations");
+Route::get("/occupation/areas/consult/{idUser}/{line}",                             "App\Http\Controllers\EquipmentManagementController@getOccupationAreas");
+Route::get("/occupation/consult/{idUser}/{line}",                                   "App\Http\Controllers\EquipmentManagementController@getOccupations");
+Route::get("/occupation/train/consult/{idUser}/{line}",                             "App\Http\Controllers\EquipmentManagementController@getTrainOccupations");
+Route::get("/occupation/train/area/consult/{occupation}/{idUser}/{line}",           "App\Http\Controllers\EquipmentManagementController@getTrainAreas");
+Route::get("/occupation/train/elements/{idUser}/{line}",                            "App\Http\Controllers\EquipmentManagementController@getTrainElements");
+Route::get("/equipment/consult/pending/total/{idUser}/{line}",                      "App\Http\Controllers\EquipmentManagementController@getTotalPendingEquipments");
+Route::get("/equipment/consult/pending/grouped/{idUser}/{line}",                    "App\Http\Controllers\EquipmentManagementController@getGroupedPendingEquipments");
+Route::get("/equipment/consult/pending/{offset}/{idUser}/{line}",                   "App\Http\Controllers\EquipmentManagementController@getPendingEquipments");
+Route::get("/equipment/consult/pending/only/{idReg}/{idUser}/{line}",               "App\Http\Controllers\EquipmentManagementController@getPendigEquipment");
+Route::get("/equipment/consult/{idUser}/{line}",                                    "App\Http\Controllers\EquipmentManagementController@getEquipments");
+Route::get("/equipment/consult/filter/{filterVal}/{idUser}/{line}",                 "App\Http\Controllers\EquipmentManagementController@getFilteredEquipments");
+Route::get("/equipment/consult/by-subfamily/{family}/{subfamily}/{idUser}/{line}",  "App\Http\Controllers\EquipmentManagementController@getEquipmentsBySubfamily");
+Route::get("/equipment/consult/by-parent/{parent}/{idUser}/{line}",                 "App\Http\Controllers\EquipmentManagementController@getEquipmentsByParent");
+Route::get("/equipment/consult/by-code-type/{codeType}/{idUser}/{line}",            "App\Http\Controllers\EquipmentManagementController@getEquipmentsByCodeType");
+Route::get("/equipment/consult/only/{code}/{idUser}/{line}",                        "App\Http\Controllers\EquipmentManagementController@getEquipmentDetails");
+Route::get("/equipment/consult/types/{idUser}/{line}",                              "App\Http\Controllers\EquipmentManagementController@getEquipmentTypes");
+Route::get("/equipment/consult/by-type/{equipmentType}/{idUser}/{line}",            "App\Http\Controllers\EquipmentManagementController@getEquipmentsByType");
+Route::get("/equipment/consult/by-kilometer/{startPK}/{endPK}/{idUser}/{line}",     "App\Http\Controllers\EquipmentManagementController@getEquipmentsByKilometer");
+Route::get("/equipment/consult/by-train-area/{car}/{area}/{idUser}/{line}",         "App\Http\Controllers\EquipmentManagementController@getEquipmentsByTrainArea");
+Route::get("/equipment/consult/by-pcc-position/{coords}/{idUser}/{line}",           "App\Http\Controllers\EquipmentManagementController@getEquipmentsByPCCIntersection");
+Route::get("/equipment/consult/pcc/{idUser}/{line}",                                "App\Http\Controllers\EquipmentManagementController@getPCCEquipments");
+Route::get("/equipment/consult/train/{car}/{idUser}/{line}",                        "App\Http\Controllers\EquipmentManagementController@getTrainEquipments");
+Route::get("/equipment/consult/via/{idUser}/{line}",                                "App\Http\Controllers\EquipmentManagementController@getViaEquipments");
+Route::get("/equipment/consult/station/{idPlane}/{coords}/{idUser}/{line}",         "App\Http\Controllers\EquipmentManagementController@getStationEquipments");
+Route::get("/arborescence/consult/by-date/{date}/{idUser}/{line}",                  "App\Http\Controllers\EquipmentManagementController@getArborescenceByDate");
+Route::post("/family/register",                                                     "App\Http\Controllers\EquipmentManagementController@registerFamily");
+Route::post("/family/update",                                                       "App\Http\Controllers\EquipmentManagementController@updateFamily");
+Route::post("/family/delete",                                                       "App\Http\Controllers\EquipmentManagementController@deleteFamily");
+Route::post("/subfamily/register",                                                  "App\Http\Controllers\EquipmentManagementController@registerSubfamily");
+Route::post("/subfamily/update",                                                    "App\Http\Controllers\EquipmentManagementController@updateSubfamily");
+Route::post("/subfamily/delete",                                                    "App\Http\Controllers\EquipmentManagementController@deleteSubfamily");
+Route::post("/occupation/register",                                                 "App\Http\Controllers\EquipmentManagementController@registerOccupation");
+Route::post("/occupation/update",                                                   "App\Http\Controllers\EquipmentManagementController@updateOccupation");
+Route::post("/occupation/delete",                                                   "App\Http\Controllers\EquipmentManagementController@deleteOccupation");
+Route::post("/equipment/pre-codification",                                          "App\Http\Controllers\EquipmentManagementController@saveEquipmentPreCodified");
+Route::post("/equipment/pre-codification-stock",                                    "App\Http\Controllers\EquipmentManagementController@saveEquipmentPreCodifiedStock");
+Route::post("/equipment/pre-codification/status/update",                            "App\Http\Controllers\EquipmentManagementController@changePreCodedEquipmentStatus");
+Route::post("/equipment/pre-codification/group/status/update",                      "App\Http\Controllers\EquipmentManagementController@changePreCodedEquipmentStatusByGroup");
+Route::post("/equipment/graphic-arborescence",                                      "App\Http\Controllers\EquipmentManagementController@generateGraphicArborescence");
+Route::post("/equipment/update-security-criticality",                               "App\Http\Controllers\EquipmentManagementController@updateSecurityCriticality");
+Route::post("/equipment/generate-equipment-file",                                   "App\Http\Controllers\EquipmentManagementController@generateEquipmentFile");
+Route::post("/equipment/process-excel",                                             "App\Http\Controllers\EquipmentManagementController@processExcelEquipmnts");
+//Módulo gestión de mantenimiento correctivo
+Route::get("corrective-maintenance/get-work-orders/{idUser}/{line}",                "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrders");
+Route::get("corrective-maintenance/get-work-order/{idOrder}/{idUser}/{line}",       "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrder");
+Route::get("corrective-maintenance/get-work-order-clasifications/{idUser}/{line}",  "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrderClasifications");
+Route::get("corrective-maintenance/get-responsibe-users/{idUser}/{line}",           "App\Http\Controllers\CorrectiveMaintenanceController@getResponsibleUsers");
+Route::get("corrective-maintenance/get-security-managements/{idUser}/{line}",       "App\Http\Controllers\CorrectiveMaintenanceController@getSegurityManagements");
+Route::get("corrective-maintenance/get-security-management/{idMan}/{idUs}/{line}",  "App\Http\Controllers\CorrectiveMaintenanceController@getSecurityManagement");
+Route::get("corrective-maintenance/get-block-registers/{idUser}/{line}",            "App\Http\Controllers\CorrectiveMaintenanceController@getBlockRegisters");
+Route::get("corrective-maintenance/get-work-order-status-history/{ord}/{usr}/{li}", "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrderStatusHistory");
+Route::get("corrective-maintenance/get-reports/{type}/{sd}/{ed}/{idUser}/{line}",   "App\Http\Controllers\CorrectiveMaintenanceController@getReports");
+Route::get("corrective-maintenance/get-maintenance-plans/{idUser}/{line}",          "App\Http\Controllers\CorrectiveMaintenanceController@getMaintenancePlans");
+Route::get("corrective-maintenance/get-maintenance-plan/{idPlan}/{idUser}/{line}",  "App\Http\Controllers\CorrectiveMaintenanceController@getMaintenancePlan");
+Route::get("corrective-maintenance/get-work-groups/{idUser}/{line}",                "App\Http\Controllers\CorrectiveMaintenanceController@getWorkGroups");
+Route::get("corrective-maintenance/get-work-group/{idGroup}/{idUser}/{line}",       "App\Http\Controllers\CorrectiveMaintenanceController@getWorkGroup");
+Route::get("corrective-maintenance/get-no-measures-form-fields/{idUser}/{line}",    "App\Http\Controllers\CorrectiveMaintenanceController@getNoMeasuresFormFields");
+Route::get("corrective-maintenance/get-no-measures-orders/{idUser}/{line}",         "App\Http\Controllers\CorrectiveMaintenanceController@getNoMeasuresOrders");
+Route::get("corrective-maintenance/get-no-measures-order/{idReg}/{idUser}/{line}",  "App\Http\Controllers\CorrectiveMaintenanceController@getNoMeasuresOrder");
+Route::get("corrective-maintenance/get-work-order-staff/{idOrder}/{idUser}/{line}", "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrderStaff");
+Route::get("corrective-maintenance/get-work-order-attendance/{idOr}/{idUs}/{line}", "App\Http\Controllers\CorrectiveMaintenanceController@getWorkOrderAttendance");
+Route::post("corrective-maintenance/register-work-order",                           "App\Http\Controllers\CorrectiveMaintenanceController@registerWorkOrder");
+Route::post("corrective-maintenance/update-work-order",                             "App\Http\Controllers\CorrectiveMaintenanceController@updateWorkOrder");
+Route::post("corrective-maintenance/delete-work-order",                             "App\Http\Controllers\CorrectiveMaintenanceController@deleteWorkOrder");
+Route::post("corrective-maintenance/approve-work-order",                            "App\Http\Controllers\CorrectiveMaintenanceController@approveWorkOrder");
+Route::post("corrective-maintenance/start-work-order",                              "App\Http\Controllers\CorrectiveMaintenanceController@startWorkOrder");
+Route::post("corrective-maintenance/update-work-order-status",                      "App\Http\Controllers\CorrectiveMaintenanceController@updateWorkOrderStatus");
+Route::post("corrective-maintenance/transfer-work-order",                           "App\Http\Controllers\CorrectiveMaintenanceController@transferWorkOrder");
+Route::post("corrective-maintenance/register-security-management",                  "App\Http\Controllers\CorrectiveMaintenanceController@registerSecurityManagement");
+Route::post("corrective-maintenance/update-security-management",                    "App\Http\Controllers\CorrectiveMaintenanceController@updateSecurityManagement");
+Route::post("corrective-maintenance/delete-security-management",                    "App\Http\Controllers\CorrectiveMaintenanceController@deleteSecurityManagement");
+Route::post("corrective-maintenance/register-block",                                "App\Http\Controllers\CorrectiveMaintenanceController@registerBlock");
+Route::post("corrective-maintenance/unblock-register",                              "App\Http\Controllers\CorrectiveMaintenanceController@unblockRegister");
+Route::post("corrective-maintenance/generate-report",                               "App\Http\Controllers\CorrectiveMaintenanceController@generateReport");
+Route::post("corrective-maintenance/register-maintenance-plan",                     "App\Http\Controllers\CorrectiveMaintenanceController@registerMaintnencePlan");
+Route::post("corrective-maintenance/update-maintenance-plan",                       "App\Http\Controllers\CorrectiveMaintenanceController@updateMaintenancePlan");
+Route::post("corrective-maintenance/delete-maintenance-plan",                       "App\Http\Controllers\CorrectiveMaintenanceController@deleteMaintenancePlan");
+Route::post("corrective-maintenance/create-work-group",                             "App\Http\Controllers\CorrectiveMaintenanceController@registerWorkGroup");
+Route::post("corrective-maintenance/update-work-group",                             "App\Http\Controllers\CorrectiveMaintenanceController@updateWorkGroup");
+Route::post("corrective-maintenance/delete-work-group",                             "App\Http\Controllers\CorrectiveMaintenanceController@deleteWorkGroup");
+Route::post("corrective-maintenance/save-no-measures-form-field",                   "App\Http\Controllers\CorrectiveMaintenanceController@saveNoMeasuresFormFields");
+Route::post("corrective-maintenance/save-no-measures-order",                        "App\Http\Controllers\CorrectiveMaintenanceController@saveNoMeasuresOrder");
+Route::post("corrective-maintenance/update-no-measures-order",                      "App\Http\Controllers\CorrectiveMaintenanceController@updateNoMeasuresOrder");
+Route::post("corrective-maintenance/delete-no-measures-order",                      "App\Http\Controllers\CorrectiveMaintenanceController@deleteNoMeasuresOrder");
+Route::post("corrective-maintenance/no-measures-order-validation",                  "App\Http\Controllers\CorrectiveMaintenanceController@noMeasuresOrderValidation");
+Route::post("corrective-maintenance/close-no-measures-order",                       "App\Http\Controllers\CorrectiveMaintenanceController@closeNoMeasuresOrder");
+Route::post("corrective-maintenance/closed-no-measures-order-validation",           "App\Http\Controllers\CorrectiveMaintenanceController@closedNoMeasuresOrderValidation");
+Route::post("corrective-maintenance/generate-no-measures-report",                   "App\Http\Controllers\CorrectiveMaintenanceController@generateNoMeasuresReport");
+Route::post("corrective-maintenance/set-work-order-attendance",                     "App\Http\Controllers\CorrectiveMaintenanceController@setWorkOrderAttendance");
+//Módulo panel de control y seguimiento de actividades
+Route::get("control-panel/get-panels/{idUser}/{line}",                              "App\Http\Controllers\ControlPanelController@getPanels");
+Route::get("control-panel/get-counters-list/{idUser}/{line}",                       "App\Http\Controllers\ControlPanelController@getCountersList");
+Route::get("control-panel/get-panel/{idPanel}/{idUser}/{line}",                     "App\Http\Controllers\ControlPanelController@getPanel");
+Route::get("control-panel/get-info-to-excel/{idElement}/{module}/{idUser}/{line}",  "App\Http\Controllers\ControlPanelController@getInfoToExcel");
+Route::get("control-panel/get-broadcast-lists/{idUser}/{line}",                     "App\Http\Controllers\ControlPanelController@getBroadcastLists");
+Route::get("control-panel/get-broadcast-list/{idList}/{idUser}/{line}",             "App\Http\Controllers\ControlPanelController@getBroadcastList");
+Route::get("control-panel/get-profile-export-permissions/{idProf}/{idUser}/{line}", "App\Http\Controllers\ControlPanelController@getProfileExportPermissions");
+Route::get("control-panel/get-exportable-spreadsheets/{idUser}/{line}",             "App\Http\Controllers\ControlPanelController@getExportableSpreadsheets");
+Route::get("control-panel/export-spreadsheet/{idMo}/{idRe}/{sd}/{ed}/{idUs}/{line}", "App\Http\Controllers\ControlPanelController@exportSpreadsheet");
+Route::post("control-panel/register-panel",                                         "App\Http\Controllers\ControlPanelController@registerPanel");
+Route::post("control-panel/update-panel",                                           "App\Http\Controllers\ControlPanelController@updatePanel");
+Route::post("control-panel/update-panel-elements",                                  "App\Http\Controllers\ControlPanelController@updatePanelElements");
+Route::post("control-panel/update-panel-associations",                              "App\Http\Controllers\ControlPanelController@updatePanelAssociations");
+Route::post("control-panel/delete-panel",                                           "App\Http\Controllers\ControlPanelController@deletePanel");
+Route::post("control-panel/register-broadcast-list",                                "App\Http\Controllers\ControlPanelController@registerBroadcastList");
+Route::post("control-panel/update-broadcast-list",                                  "App\Http\Controllers\ControlPanelController@updateBroadcastList");
+Route::post("control-panel/delete-broadcast-list",                                  "App\Http\Controllers\ControlPanelController@deleteBroadcastList");
+Route::post("control-panel/save-profile-export-permissions",                        "App\Http\Controllers\ControlPanelController@saveProfileExportPermissions");
 
-    // Formularios dinámicos
-    Route::get ('form/get-forms/{user}/{line}',                                                                     "App\Http\Controllers\DynamicFormController@getForms");
-    Route::get ('form/get-information-data-select/{tableName}/{columnValue}/{columnName}/{user}/{line}',            "App\Http\Controllers\DynamicFormController@getInformationDataSelect");
-    Route::post('form/register-form',                                                                               "App\Http\Controllers\DynamicFormController@registerForms");
-    Route::get ('form/get-form-by-id/{idForm}/{user}/{line}',                                                       "App\Http\Controllers\DynamicFormController@getFormById");
-    Route::post('form/update-form/{idForm}',                                                                        "App\Http\Controllers\DynamicFormController@updateForms");
-    Route::post('form/register-dynamic-form',                                                                       "App\Http\Controllers\DynamicFormController@registerDynamicForm");
-    Route::post('form/get-form-data-by-id/{idForm}/{user}/{line}',                                                  "App\Http\Controllers\DynamicFormController@getFormDataById");
-    Route::post('form/update-dynamic-form',                                                                         "App\Http\Controllers\DynamicFormController@updateDynamicForm");
-    Route::get ('form/get-tables/{user}/{line}',                                                                    "App\Http\Controllers\DynamicFormController@getTables");
-    Route::post('form/register-table',                                                                              "App\Http\Controllers\DynamicFormController@registerTable");
+// Formularios dinámicos
+Route::get('form/get-forms/{user}/{line}',                                                                     "App\Http\Controllers\DynamicFormController@getForms");
+Route::get('form/get-information-data-select/{tableName}/{columnValue}/{columnName}/{user}/{line}',            "App\Http\Controllers\DynamicFormController@getInformationDataSelect");
+Route::post('form/register-form',                                                                               "App\Http\Controllers\DynamicFormController@registerForms");
+Route::get('form/get-form-by-id/{idForm}/{user}/{line}',                                                       "App\Http\Controllers\DynamicFormController@getFormById");
+Route::post('form/update-form/{idForm}',                                                                        "App\Http\Controllers\DynamicFormController@updateForms");
+Route::post('form/register-dynamic-form',                                                                       "App\Http\Controllers\DynamicFormController@registerDynamicForm");
+Route::post('form/get-form-data-by-id/{idForm}/{user}/{line}',                                                  "App\Http\Controllers\DynamicFormController@getFormDataById");
+Route::post('form/update-dynamic-form',                                                                         "App\Http\Controllers\DynamicFormController@updateDynamicForm");
+Route::get('form/get-tables/{user}/{line}',                                                                    "App\Http\Controllers\DynamicFormController@getTables");
+Route::post('form/register-table',                                                                              "App\Http\Controllers\DynamicFormController@registerTable");
 
-    // Module: GEAD
-    Route::get ('acquisition-management/acquisition/get-families-and-subfamilies/{user}/{line}',                    "App\Http\Controllers\AcquisitionManagementController@getFamiliesAndSubfamilies");
-    Route::post('acquisition-management/acquisition/register-family',                                               "App\Http\Controllers\AcquisitionManagementController@registerFamily");
-    Route::post('acquisition-management/acquisition/register-subfamily',                                            "App\Http\Controllers\AcquisitionManagementController@registerSubfamily");
-    Route::get ('acquisition-management/acquisition/get-units/{user}/{line}',                                       "App\Http\Controllers\AcquisitionManagementController@getUnits");
-    Route::get ('acquisition-management/acquisition/get-units-actives/{user}/{line}',                               "App\Http\Controllers\AcquisitionManagementController@getUnitsActives");
-    Route::post('acquisition-management/acquisition/register-unit',                                                 "App\Http\Controllers\AcquisitionManagementController@registerUnit");
-    Route::get ('acquisition-management/acquisition/get-artitle/{user}/{line}',                                     "App\Http\Controllers\AcquisitionManagementController@getArtitles");
-    Route::get ('acquisition-management/acquisition/get-all-artitle/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getAllArtitles");
-    Route::get ('acquisition-management/acquisition/get-artitle-by-provider/{artitle}/{provider}/{user}/{line}',    "App\Http\Controllers\AcquisitionManagementController@getArtitleByProvider");
-    Route::get ('acquisition-management/acquisition/get-article-by-id/{idArtitle}/{user}/{line}',                   "App\Http\Controllers\AcquisitionManagementController@getArticleById");
-    Route::get ('acquisition-management/acquisition/get-artitle-by-information/{information}/{user}/{line}',        "App\Http\Controllers\AcquisitionManagementController@getArtitleByInformation");
-    Route::post('acquisition-management/acquisition/register-article',                                              "App\Http\Controllers\AcquisitionManagementController@registerArticle");
-    Route::post('acquisition-management/acquisition/update-article/{idArticle}',                                    "App\Http\Controllers\AcquisitionManagementController@updateArticle");
-    Route::post('acquisition-management/acquisition/delete-artitle',                                                "App\Http\Controllers\AcquisitionManagementController@deleteArtitle");
-    Route::post('acquisition-management/acquisition/generate-artitles',                                             "App\Http\Controllers\AcquisitionManagementController@generateArtitles");
-    Route::get ('acquisition-management/acquisition/get-management-unit/{user}/{line}',                             "App\Http\Controllers\AcquisitionManagementController@getManagementUnit");
-    Route::post('acquisition-management/acquisition/create-unit',                                                   "App\Http\Controllers\AcquisitionManagementController@createUnit");
-    Route::post('acquisition-management/acquisition/update-unit/{idUnit}',                                          "App\Http\Controllers\AcquisitionManagementController@updateUnit");
-    Route::get ('acquisition-management/acquisition/get-unit-by-id/{idUnit}/{user}/{line}',                         "App\Http\Controllers\AcquisitionManagementController@getUnitById");
-    Route::post('acquisition-management/acquisition/delete-unit-by-id/{idUnit}',                                    "App\Http\Controllers\AcquisitionManagementController@updateUnit");
-    Route::post('acquisition-management/acquisition/create-request-line',                                           "App\Http\Controllers\AcquisitionManagementController@createRequestLine");
-    Route::get ('acquisition-management/acquisition/get-all-request-lines/{user}/{line}',                           "App\Http\Controllers\AcquisitionManagementController@getAllRequestLines");
-    Route::get ('acquisition-management/acquisition/get-request-line/{encIdRequestLine}/{user}/{line}',             "App\Http\Controllers\AcquisitionManagementController@getRequestLine");
-    Route::post('acquisition-management/acquisition/cancel-request-line',                                           "App\Http\Controllers\AcquisitionManagementController@cancelRequestLine");
-    Route::post('acquisition-management/acquisition/update-state-request-line',                                     "App\Http\Controllers\AcquisitionManagementController@updateStatusRequestLine");
-    Route::post('acquisition-management/acquisition/delete-artitle-by-request-line',                                "App\Http\Controllers\AcquisitionManagementController@deleteArtitleByRequestLine");
-    Route::get ('acquisition-management/acquisition/get-artitles-by-request-line/{requestLine}/{user}/{line}',      "App\Http\Controllers\AcquisitionManagementController@getArtitlesByRequestLine");
-    Route::post('acquisition-management/acquisition/register-order',                                                "App\Http\Controllers\AcquisitionManagementController@createOrder");
-    Route::post('acquisition-management/acquisition/update-state-order',                                            "App\Http\Controllers\AcquisitionManagementController@updateStateHistory");
-    Route::post('acquisition-management/acquisition/reorder-artitles',                                              "App\Http\Controllers\AcquisitionManagementController@reorderArtitles");
-    Route::get ('acquisition-management/acquisition/get-orders/{user}/{line}',                                      "App\Http\Controllers\AcquisitionManagementController@getOrders");
-    Route::get ('acquisition-management/acquisition/get-order-by-number/{order}/{provider}/{user}/{line}',          "App\Http\Controllers\AcquisitionManagementController@getOrderByNumber");
-    Route::get ('acquisition-management/acquisition/get-last-state-order/{order}/{user}/{line}',                    "App\Http\Controllers\AcquisitionManagementController@getLastSateOrder");
-    Route::get ('acquisition-management/acquisition/generate-sheet-acquisition-xls/{encOrderNumber}/{user}/{line}', "App\Http\Controllers\AcquisitionManagementController@generateSheetAcquisitionXLS"); 
-    Route::get ('acquisition-management/acquisition/generate-sheet-acquisition-pdf/{encOrderNumber}/{user}/{line}', "App\Http\Controllers\AcquisitionManagementController@generateSheetAcquisitionPDF"); 
-    Route::get ('acquisition-management/acquisition/generate-sheet-divisa-xls/{encOrderNumber}/{user}/{line}',      "App\Http\Controllers\AcquisitionManagementController@generateSheetDivisaXLS"); 
-    Route::get ('acquisition-management/acquisition/generate-sheet-divisa-pdf/{encOrderNumber}/{user}/{line}',      "App\Http\Controllers\AcquisitionManagementController@generateSheetDivisaPDF"); 
-    Route::get ('acquisition-management/acquisition/generate-sheet-invoice-xls/{encOrderNumber}/{user}/{line}',     "App\Http\Controllers\AcquisitionManagementController@generateSheetInvoiceXLS"); 
-    Route::get ('acquisition-management/acquisition/generate-sheet-invoice-pdf/{encOrderNumber}/{user}/{line}',     "App\Http\Controllers\AcquisitionManagementController@generateSheetInvoicePDF"); 
-    Route::get ('acquisition-management/acquisition/get-documents-order/{user}/{line}',                             "App\Http\Controllers\AcquisitionManagementController@getDocument");
-    Route::get ('acquisition-management/acquisition/get-documents-by-request-line/{requestLine}/{user}/{line}',     "App\Http\Controllers\AcquisitionManagementController@getDocumentByRequestLine");
-    Route::post('acquisition-management/acquisition/register-document-order',                                       "App\Http\Controllers\AcquisitionManagementController@registerDocumentOrder");
-    Route::post('acquisition-management/acquisition/update-document-order',                                         "App\Http\Controllers\AcquisitionManagementController@updateDocumentOrder");
-    Route::post('acquisition-management/acquisition/delete-document-order',                                         "App\Http\Controllers\AcquisitionManagementController@deleteDocumentOrder");
-    Route::post('acquisition-management/acquisition/report-problem-order',                                          "App\Http\Controllers\AcquisitionManagementController@reportProblem");
-    Route::get ('acquisition-management/acquisition/get-artitles-by-provider/{provider}/{user}/{line}',             "App\Http\Controllers\AcquisitionManagementController@getArtitlesByProvider");
-    Route::post('acquisition-management/acquisition/download-artitles-by-provider',                                 "App\Http\Controllers\AcquisitionManagementController@downloadArtitlesByProvider");
-    Route::get ('acquisition-management/provider/get-all-provider/{user}/{line}',                                   "App\Http\Controllers\AcquisitionManagementController@getAllProvider");
-    Route::get ('acquisition-management/provider/get-provider-actives/{user}/{line}',                               "App\Http\Controllers\AcquisitionManagementController@getProvidersActives");
-    Route::get ('acquisition-management/provider/get-provider-by-number/{provider}/{user}/{line}',                  "App\Http\Controllers\AcquisitionManagementController@getProvidersByNumber");
-    Route::post('acquisition-management/provider/register-provider',                                                "App\Http\Controllers\AcquisitionManagementController@registerProvider");
-    Route::post('acquisition-management/provider/update-provider',                                                  "App\Http\Controllers\AcquisitionManagementController@updateProvider");
-    Route::post('acquisition-management/provider/delete-provider',                                                  "App\Http\Controllers\AcquisitionManagementController@deleteProvider");
-    Route::post('acquisition-management/provider/get-provider-by-artitle',                                          "App\Http\Controllers\AcquisitionManagementController@getProviderByArtitle");
-    Route::get ('acquisition-management/provider/generate-sheet-provider-xls/{provider}/{typeUser}/{user}/{line}',  "App\Http\Controllers\AcquisitionManagementController@generateSheetProviderXLS");
-    Route::get ('acquisition-management/provider/generate-sheet-provider-pdf/{provider}/{typeUser}/{user}/{line}',  "App\Http\Controllers\AcquisitionManagementController@generateSheetProviderPDF");
-    Route::get ('acquisition-management/dispatch/get-issue-tracking/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getIssueTracking");
-    Route::post('acquisition-management/dispatch/resolution-issue-tracking',                                        "App\Http\Controllers\AcquisitionManagementController@resolutionIssueTracking");
-    Route::get ('acquisition-management/dispatch/get-partial-deliveries/{user}/{line}',                             "App\Http\Controllers\AcquisitionManagementController@getPartialDeliveries");
-    Route::get ('acquisition-management/dispatch/get-delay-analysis/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getDelayAnalysis");
-    Route::get ('acquisition-management/dispatch/get-dispatch/{user}/{line}',                                       "App\Http\Controllers\AcquisitionManagementController@getDispatch");
-    Route::get ('acquisition-management/dispatch/get-dispatch-active/{user}/{line}',                                "App\Http\Controllers\AcquisitionManagementController@getDispatchActive");
-    Route::get ('acquisition-management/dispatch/get-dispatch-by-id/{idDispatFch}/{user}/{line}',                   "App\Http\Controllers\AcquisitionManagementController@getDispatchById");
-    Route::post('acquisition-management/dispatch/register-dispatch',                                                                "App\Http\Controllers\AcquisitionManagementController@registerDispatch");
-    Route::get ('acquisition-management/dispatch/get-order-reception/{user}/{line}',                                                "App\Http\Controllers\AcquisitionManagementController@getOrderReception");
-    Route::get ('acquisition-management/dispatch/get-information-artitle-equipment/{orderNumber}/{idInformation}/{user}/{line}',    "App\Http\Controllers\AcquisitionManagementController@getInformartionArtitleToEquipment");
-    Route::get ('acquisition-management/dispatch/get-list-artitle-reception/{orderNumber}/{user}/{line}',                           "App\Http\Controllers\AcquisitionManagementController@getListArtitleReception");
-    Route::get ('acquisition-management/dispatch/generate-sheet-delivery-list-xls/{orderNumber}/{user}/{line}',                     "App\Http\Controllers\AcquisitionManagementController@generateSheetDeliveryListXLS");
-    Route::get ('acquisition-management/dispatch/generate-sheet-delivery-list-pdf/{orderNumber}/{user}/{line}',                     "App\Http\Controllers\AcquisitionManagementController@generateSheetDeliveryListPDF");
-    Route::post('acquisition-management/dispatch/update-dispatch',                                                  "App\Http\Controllers\AcquisitionManagementController@updateDispatch");
-    Route::post('acquisition-management/dispatch/delete-dispatch',                                                  "App\Http\Controllers\AcquisitionManagementController@deleteDispatch");
-    Route::get ('acquisition-management/invoice/get-compare-invoice/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getCompareInvoice");
-    Route::get ('acquisition-management/invoice/get-invoice-payment/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getInvoicePayment");
-    Route::get ('acquisition-management/invoice/get-budget-management/{user}/{line}',                               "App\Http\Controllers\AcquisitionManagementController@getBudgetManagement");
-    Route::get ('acquisition-management/invoice/get-invoice-by-id/{idInvoice}/{user}/{line}',                       "App\Http\Controllers\AcquisitionManagementController@getInvoiceById");
-    Route::post('acquisition-management/invoice/compare-invoice',                                                   "App\Http\Controllers\AcquisitionManagementController@compareInvoice");
+// Module: GEAD
+Route::get('acquisition-management/acquisition/get-families-and-subfamilies/{user}/{line}',                    "App\Http\Controllers\AcquisitionManagementController@getFamiliesAndSubfamilies");
+Route::post('acquisition-management/acquisition/register-family',                                               "App\Http\Controllers\AcquisitionManagementController@registerFamily");
+Route::post('acquisition-management/acquisition/register-subfamily',                                            "App\Http\Controllers\AcquisitionManagementController@registerSubfamily");
+Route::get('acquisition-management/acquisition/get-units/{user}/{line}',                                       "App\Http\Controllers\AcquisitionManagementController@getUnits");
+Route::get('acquisition-management/acquisition/get-units-actives/{user}/{line}',                               "App\Http\Controllers\AcquisitionManagementController@getUnitsActives");
+Route::post('acquisition-management/acquisition/register-unit',                                                 "App\Http\Controllers\AcquisitionManagementController@registerUnit");
+Route::get('acquisition-management/acquisition/get-artitle/{user}/{line}',                                     "App\Http\Controllers\AcquisitionManagementController@getArtitles");
+Route::get('acquisition-management/acquisition/get-all-artitle/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getAllArtitles");
+Route::get('acquisition-management/acquisition/get-artitle-by-provider/{artitle}/{provider}/{user}/{line}',    "App\Http\Controllers\AcquisitionManagementController@getArtitleByProvider");
+Route::get('acquisition-management/acquisition/get-article-by-id/{idArtitle}/{user}/{line}',                   "App\Http\Controllers\AcquisitionManagementController@getArticleById");
+Route::get('acquisition-management/acquisition/get-artitle-by-information/{information}/{user}/{line}',        "App\Http\Controllers\AcquisitionManagementController@getArtitleByInformation");
+Route::post('acquisition-management/acquisition/register-article',                                              "App\Http\Controllers\AcquisitionManagementController@registerArticle");
+Route::post('acquisition-management/acquisition/update-article/{idArticle}',                                    "App\Http\Controllers\AcquisitionManagementController@updateArticle");
+Route::post('acquisition-management/acquisition/delete-artitle',                                                "App\Http\Controllers\AcquisitionManagementController@deleteArtitle");
+Route::post('acquisition-management/acquisition/generate-artitles',                                             "App\Http\Controllers\AcquisitionManagementController@generateArtitles");
+Route::get('acquisition-management/acquisition/get-management-unit/{user}/{line}',                             "App\Http\Controllers\AcquisitionManagementController@getManagementUnit");
+Route::post('acquisition-management/acquisition/create-unit',                                                   "App\Http\Controllers\AcquisitionManagementController@createUnit");
+Route::post('acquisition-management/acquisition/update-unit/{idUnit}',                                          "App\Http\Controllers\AcquisitionManagementController@updateUnit");
+Route::get('acquisition-management/acquisition/get-unit-by-id/{idUnit}/{user}/{line}',                         "App\Http\Controllers\AcquisitionManagementController@getUnitById");
+Route::post('acquisition-management/acquisition/delete-unit-by-id/{idUnit}',                                    "App\Http\Controllers\AcquisitionManagementController@updateUnit");
+Route::post('acquisition-management/acquisition/create-request-line',                                           "App\Http\Controllers\AcquisitionManagementController@createRequestLine");
+Route::get('acquisition-management/acquisition/get-all-request-lines/{user}/{line}',                           "App\Http\Controllers\AcquisitionManagementController@getAllRequestLines");
+Route::get('acquisition-management/acquisition/get-request-line/{encIdRequestLine}/{user}/{line}',             "App\Http\Controllers\AcquisitionManagementController@getRequestLine");
+Route::post('acquisition-management/acquisition/cancel-request-line',                                           "App\Http\Controllers\AcquisitionManagementController@cancelRequestLine");
+Route::post('acquisition-management/acquisition/update-state-request-line',                                     "App\Http\Controllers\AcquisitionManagementController@updateStatusRequestLine");
+Route::post('acquisition-management/acquisition/delete-artitle-by-request-line',                                "App\Http\Controllers\AcquisitionManagementController@deleteArtitleByRequestLine");
+Route::get('acquisition-management/acquisition/get-artitles-by-request-line/{requestLine}/{user}/{line}',      "App\Http\Controllers\AcquisitionManagementController@getArtitlesByRequestLine");
+Route::post('acquisition-management/acquisition/register-order',                                                "App\Http\Controllers\AcquisitionManagementController@createOrder");
+Route::post('acquisition-management/acquisition/update-state-order',                                            "App\Http\Controllers\AcquisitionManagementController@updateStateHistory");
+Route::post('acquisition-management/acquisition/reorder-artitles',                                              "App\Http\Controllers\AcquisitionManagementController@reorderArtitles");
+Route::get('acquisition-management/acquisition/get-orders/{user}/{line}',                                      "App\Http\Controllers\AcquisitionManagementController@getOrders");
+Route::get('acquisition-management/acquisition/get-order-by-number/{order}/{provider}/{user}/{line}',          "App\Http\Controllers\AcquisitionManagementController@getOrderByNumber");
+Route::get('acquisition-management/acquisition/get-last-state-order/{order}/{user}/{line}',                    "App\Http\Controllers\AcquisitionManagementController@getLastSateOrder");
+Route::get('acquisition-management/acquisition/generate-sheet-acquisition-xls/{encOrderNumber}/{user}/{line}', "App\Http\Controllers\AcquisitionManagementController@generateSheetAcquisitionXLS");
+Route::get('acquisition-management/acquisition/generate-sheet-acquisition-pdf/{encOrderNumber}/{user}/{line}', "App\Http\Controllers\AcquisitionManagementController@generateSheetAcquisitionPDF");
+Route::get('acquisition-management/acquisition/generate-sheet-divisa-xls/{encOrderNumber}/{user}/{line}',      "App\Http\Controllers\AcquisitionManagementController@generateSheetDivisaXLS");
+Route::get('acquisition-management/acquisition/generate-sheet-divisa-pdf/{encOrderNumber}/{user}/{line}',      "App\Http\Controllers\AcquisitionManagementController@generateSheetDivisaPDF");
+Route::get('acquisition-management/acquisition/generate-sheet-invoice-xls/{encOrderNumber}/{user}/{line}',     "App\Http\Controllers\AcquisitionManagementController@generateSheetInvoiceXLS");
+Route::get('acquisition-management/acquisition/generate-sheet-invoice-pdf/{encOrderNumber}/{user}/{line}',     "App\Http\Controllers\AcquisitionManagementController@generateSheetInvoicePDF");
+Route::get('acquisition-management/acquisition/get-documents-order/{user}/{line}',                             "App\Http\Controllers\AcquisitionManagementController@getDocument");
+Route::get('acquisition-management/acquisition/get-documents-by-request-line/{requestLine}/{user}/{line}',     "App\Http\Controllers\AcquisitionManagementController@getDocumentByRequestLine");
+Route::post('acquisition-management/acquisition/register-document-order',                                       "App\Http\Controllers\AcquisitionManagementController@registerDocumentOrder");
+Route::post('acquisition-management/acquisition/update-document-order',                                         "App\Http\Controllers\AcquisitionManagementController@updateDocumentOrder");
+Route::post('acquisition-management/acquisition/delete-document-order',                                         "App\Http\Controllers\AcquisitionManagementController@deleteDocumentOrder");
+Route::post('acquisition-management/acquisition/report-problem-order',                                          "App\Http\Controllers\AcquisitionManagementController@reportProblem");
+Route::get('acquisition-management/acquisition/get-artitles-by-provider/{provider}/{user}/{line}',             "App\Http\Controllers\AcquisitionManagementController@getArtitlesByProvider");
+Route::post('acquisition-management/acquisition/download-artitles-by-provider',                                 "App\Http\Controllers\AcquisitionManagementController@downloadArtitlesByProvider");
+Route::get('acquisition-management/provider/get-all-provider/{user}/{line}',                                   "App\Http\Controllers\AcquisitionManagementController@getAllProvider");
+Route::get('acquisition-management/provider/get-provider-actives/{user}/{line}',                               "App\Http\Controllers\AcquisitionManagementController@getProvidersActives");
+Route::get('acquisition-management/provider/get-provider-by-number/{provider}/{user}/{line}',                  "App\Http\Controllers\AcquisitionManagementController@getProvidersByNumber");
+Route::post('acquisition-management/provider/register-provider',                                                "App\Http\Controllers\AcquisitionManagementController@registerProvider");
+Route::post('acquisition-management/provider/update-provider',                                                  "App\Http\Controllers\AcquisitionManagementController@updateProvider");
+Route::post('acquisition-management/provider/delete-provider',                                                  "App\Http\Controllers\AcquisitionManagementController@deleteProvider");
+Route::post('acquisition-management/provider/get-provider-by-artitle',                                          "App\Http\Controllers\AcquisitionManagementController@getProviderByArtitle");
+Route::get('acquisition-management/provider/generate-sheet-provider-xls/{provider}/{typeUser}/{user}/{line}',  "App\Http\Controllers\AcquisitionManagementController@generateSheetProviderXLS");
+Route::get('acquisition-management/provider/generate-sheet-provider-pdf/{provider}/{typeUser}/{user}/{line}',  "App\Http\Controllers\AcquisitionManagementController@generateSheetProviderPDF");
+Route::get('acquisition-management/dispatch/get-issue-tracking/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getIssueTracking");
+Route::post('acquisition-management/dispatch/resolution-issue-tracking',                                        "App\Http\Controllers\AcquisitionManagementController@resolutionIssueTracking");
+Route::get('acquisition-management/dispatch/get-partial-deliveries/{user}/{line}',                             "App\Http\Controllers\AcquisitionManagementController@getPartialDeliveries");
+Route::get('acquisition-management/dispatch/get-delay-analysis/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getDelayAnalysis");
+Route::get('acquisition-management/dispatch/get-dispatch/{user}/{line}',                                       "App\Http\Controllers\AcquisitionManagementController@getDispatch");
+Route::get('acquisition-management/dispatch/get-dispatch-active/{user}/{line}',                                "App\Http\Controllers\AcquisitionManagementController@getDispatchActive");
+Route::get('acquisition-management/dispatch/get-dispatch-by-id/{idDispatFch}/{user}/{line}',                   "App\Http\Controllers\AcquisitionManagementController@getDispatchById");
+Route::post('acquisition-management/dispatch/register-dispatch',                                                                "App\Http\Controllers\AcquisitionManagementController@registerDispatch");
+Route::get('acquisition-management/dispatch/get-order-reception/{user}/{line}',                                                "App\Http\Controllers\AcquisitionManagementController@getOrderReception");
+Route::get('acquisition-management/dispatch/get-information-artitle-equipment/{orderNumber}/{idInformation}/{user}/{line}',    "App\Http\Controllers\AcquisitionManagementController@getInformartionArtitleToEquipment");
+Route::get('acquisition-management/dispatch/get-list-artitle-reception/{orderNumber}/{user}/{line}',                           "App\Http\Controllers\AcquisitionManagementController@getListArtitleReception");
+Route::get('acquisition-management/dispatch/generate-sheet-delivery-list-xls/{orderNumber}/{user}/{line}',                     "App\Http\Controllers\AcquisitionManagementController@generateSheetDeliveryListXLS");
+Route::get('acquisition-management/dispatch/generate-sheet-delivery-list-pdf/{orderNumber}/{user}/{line}',                     "App\Http\Controllers\AcquisitionManagementController@generateSheetDeliveryListPDF");
+Route::post('acquisition-management/dispatch/update-dispatch',                                                  "App\Http\Controllers\AcquisitionManagementController@updateDispatch");
+Route::post('acquisition-management/dispatch/delete-dispatch',                                                  "App\Http\Controllers\AcquisitionManagementController@deleteDispatch");
+Route::get('acquisition-management/invoice/get-compare-invoice/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getCompareInvoice");
+Route::get('acquisition-management/invoice/get-invoice-payment/{user}/{line}',                                 "App\Http\Controllers\AcquisitionManagementController@getInvoicePayment");
+Route::get('acquisition-management/invoice/get-budget-management/{user}/{line}',                               "App\Http\Controllers\AcquisitionManagementController@getBudgetManagement");
+Route::get('acquisition-management/invoice/get-invoice-by-id/{idInvoice}/{user}/{line}',                       "App\Http\Controllers\AcquisitionManagementController@getInvoiceById");
+Route::post('acquisition-management/invoice/compare-invoice',                                                   "App\Http\Controllers\AcquisitionManagementController@compareInvoice");
 
-    // Module: ANFA
-    Route::get ('failure-analysis/get-list-failure/{user}/{line}',                                      "App\Http\Controllers\FailureAnalysisController@getFailures");
-    Route::get ('failure-analysis/get-list-failure-actives/{user}/{line}',                              "App\Http\Controllers\FailureAnalysisController@getFailuresActives");
-    Route::get ('failure-analysis/get-list-failure-by-id/{idFailure}/{user}/{line}',                    "App\Http\Controllers\FailureAnalysisController@getFailureById");
-    Route::get ('failure-analysis/get-list-failure-by-classification/{idFailure}/{user}/{line}',        "App\Http\Controllers\FailureAnalysisController@getFailureListByClassification");
-    Route::post('failure-analysis/register-list-failure',                                               "App\Http\Controllers\FailureAnalysisController@registerFailures");
-    Route::post('failure-analysis/update-list-failure',                                                 "App\Http\Controllers\FailureAnalysisController@updateFailures");
-    Route::post('failure-analysis/delete-list-failure',                                                 "App\Http\Controllers\FailureAnalysisController@deleteFailures");
-    Route::get ('failure-analysis/get-symptoms/{user}/{line}',                                          "App\Http\Controllers\FailureAnalysisController@getSymptoms");
-    Route::get ('failure-analysis/get-symptoms-actives/{user}/{line}',                                  "App\Http\Controllers\FailureAnalysisController@getSymptomsActives");
-    Route::get ('failure-analysis/get-symptoms-by-equipment/{equipment}/{user}/{line}',                 "App\Http\Controllers\FailureAnalysisController@getSymptomsByEquipment");
-    Route::get ('failure-analysis/get-symptom-by-id/{idSymptom}/{user}/{line}',                         "App\Http\Controllers\FailureAnalysisController@getSymptomById");
-    Route::post('failure-analysis/register-symptom',                                                    "App\Http\Controllers\FailureAnalysisController@registerSymptom");
-    Route::post('failure-analysis/update-symptom',                                                      "App\Http\Controllers\FailureAnalysisController@updateSymptom");
-    Route::post('failure-analysis/delete-symptom',                                                      "App\Http\Controllers\FailureAnalysisController@deleteSymptom");
-    Route::get ('failure-analysis/get-failure-log/{user}/{line}',                                       "App\Http\Controllers\FailureAnalysisController@getFailureLog");
-    Route::get ('failure-analysis/get-history-failure-equipment/{equipment}/{user}/{line}',             "App\Http\Controllers\FailureAnalysisController@getHistoryFailureEquipment");
-    Route::get ('failure-analysis/get-details-history-failure-equipment/{failure}/{user}/{line}',       "App\Http\Controllers\FailureAnalysisController@getDetailsHistoryFailureEquipment");
-    Route::get ('failure-analysis/get-equipment-by-failure/{failure}/{user}/{line}',                    "App\Http\Controllers\FailureAnalysisController@getEquipmentByFailure");
-    Route::get ('failure-analysis/get-alarm-emission-from-failures/{user}/{line}',                      "App\Http\Controllers\FailureAnalysisController@getAlarmEmissionFromFailures");
-    Route::get ('failure-analysis/generate-sheet-failure-xls/{failure}/{user}/{line}',                  "App\Http\Controllers\FailureAnalysisController@generateSheetFailureXLS");
-    Route::get ('failure-analysis/generate-sheet-failure-pdf/{failure}/{user}/{line}',                  "App\Http\Controllers\FailureAnalysisController@generateSheetFailurePDF");
-    Route::post('failure-analysis/generate-mtbf',                                                       "App\Http\Controllers\FailureAnalysisController@generateMTBF");
+// Module: ANFA
+Route::get('failure-analysis/get-list-failure/{user}/{line}',                                      "App\Http\Controllers\FailureAnalysisController@getFailures");
+Route::get('failure-analysis/get-list-failure-actives/{user}/{line}',                              "App\Http\Controllers\FailureAnalysisController@getFailuresActives");
+Route::get('failure-analysis/get-list-failure-by-id/{idFailure}/{user}/{line}',                    "App\Http\Controllers\FailureAnalysisController@getFailureById");
+Route::get('failure-analysis/get-list-failure-by-classification/{idFailure}/{user}/{line}',        "App\Http\Controllers\FailureAnalysisController@getFailureListByClassification");
+Route::post('failure-analysis/register-list-failure',                                               "App\Http\Controllers\FailureAnalysisController@registerFailures");
+Route::post('failure-analysis/update-list-failure',                                                 "App\Http\Controllers\FailureAnalysisController@updateFailures");
+Route::post('failure-analysis/delete-list-failure',                                                 "App\Http\Controllers\FailureAnalysisController@deleteFailures");
+Route::get('failure-analysis/get-symptoms/{user}/{line}',                                          "App\Http\Controllers\FailureAnalysisController@getSymptoms");
+Route::get('failure-analysis/get-symptoms-actives/{user}/{line}',                                  "App\Http\Controllers\FailureAnalysisController@getSymptomsActives");
+Route::get('failure-analysis/get-symptoms-by-equipment/{equipment}/{user}/{line}',                 "App\Http\Controllers\FailureAnalysisController@getSymptomsByEquipment");
+Route::get('failure-analysis/get-symptom-by-id/{idSymptom}/{user}/{line}',                         "App\Http\Controllers\FailureAnalysisController@getSymptomById");
+Route::post('failure-analysis/register-symptom',                                                    "App\Http\Controllers\FailureAnalysisController@registerSymptom");
+Route::post('failure-analysis/update-symptom',                                                      "App\Http\Controllers\FailureAnalysisController@updateSymptom");
+Route::post('failure-analysis/delete-symptom',                                                      "App\Http\Controllers\FailureAnalysisController@deleteSymptom");
+Route::get('failure-analysis/get-failure-log/{user}/{line}',                                       "App\Http\Controllers\FailureAnalysisController@getFailureLog");
+Route::get('failure-analysis/get-history-failure-equipment/{equipment}/{user}/{line}',             "App\Http\Controllers\FailureAnalysisController@getHistoryFailureEquipment");
+Route::get('failure-analysis/get-details-history-failure-equipment/{failure}/{user}/{line}',       "App\Http\Controllers\FailureAnalysisController@getDetailsHistoryFailureEquipment");
+Route::get('failure-analysis/get-equipment-by-failure/{failure}/{user}/{line}',                    "App\Http\Controllers\FailureAnalysisController@getEquipmentByFailure");
+Route::get('failure-analysis/get-alarm-emission-from-failures/{user}/{line}',                      "App\Http\Controllers\FailureAnalysisController@getAlarmEmissionFromFailures");
+Route::get('failure-analysis/generate-sheet-failure-xls/{failure}/{user}/{line}',                  "App\Http\Controllers\FailureAnalysisController@generateSheetFailureXLS");
+Route::get('failure-analysis/generate-sheet-failure-pdf/{failure}/{user}/{line}',                  "App\Http\Controllers\FailureAnalysisController@generateSheetFailurePDF");
+Route::post('failure-analysis/generate-mtbf',                                                       "App\Http\Controllers\FailureAnalysisController@generateMTBF");
 
-    // Module: COAC
-    Route::get ('counters-and-triggers/get-catalog-measures/{user}/{line}',                             "App\Http\Controllers\CatalogMeasuresController@getMeasures");
-    Route::get ('counters-and-triggers/get-catalog-measures-actives/{user}/{line}',                     "App\Http\Controllers\CatalogMeasuresController@getMeasuresActives");
-    Route::get ('counters-and-triggers/get-magnitudes/{user}/{line}',                                   "App\Http\Controllers\CatalogMeasuresController@getMagnitudes");
-    Route::get ('counters-and-triggers/get-units-by-magnitude/{idMagnitude}/{user}/{line}',             "App\Http\Controllers\CatalogMeasuresController@getUnitsByMagnitude");
-    Route::get ('counters-and-triggers/get-magnitude/{idMagnitude}/{user}/{line}',                      "App\Http\Controllers\CatalogMeasuresController@getMagnitude");
-    Route::get ('counters-and-triggers/get-unit/{idMagnitude}/{idUnit}/{user}/{line}',                  "App\Http\Controllers\CatalogMeasuresController@getUnit");
-    Route::post('counters-and-triggers/register-catalog-measures',                                      "App\Http\Controllers\CatalogMeasuresController@registerMeasures");
-    Route::post('counters-and-triggers/update-catalog-measures',                                        "App\Http\Controllers\CatalogMeasuresController@updateMeasures");
-    Route::post('counters-and-triggers/delete-catalog-measures',                                        "App\Http\Controllers\CatalogMeasuresController@deleteMeasures");
-    Route::post('counters-and-triggers/register-magnitude',                                             "App\Http\Controllers\CatalogMeasuresController@registerMagnitude");
-    Route::post('counters-and-triggers/update-magnitude',                                               "App\Http\Controllers\CatalogMeasuresController@updateMagnitude");
-    Route::post('counters-and-triggers/delete-magnitude',                                               "App\Http\Controllers\CatalogMeasuresController@deleteMagnitude");
+// Module: COAC
+Route::get('counters-and-triggers/get-catalog-measures/{user}/{line}',                             "App\Http\Controllers\CatalogMeasuresController@getMeasures");
+Route::get('counters-and-triggers/get-catalog-measures-actives/{user}/{line}',                     "App\Http\Controllers\CatalogMeasuresController@getMeasuresActives");
+Route::get('counters-and-triggers/get-magnitudes/{user}/{line}',                                   "App\Http\Controllers\CatalogMeasuresController@getMagnitudes");
+Route::get('counters-and-triggers/get-units-by-magnitude/{idMagnitude}/{user}/{line}',             "App\Http\Controllers\CatalogMeasuresController@getUnitsByMagnitude");
+Route::get('counters-and-triggers/get-magnitude/{idMagnitude}/{user}/{line}',                      "App\Http\Controllers\CatalogMeasuresController@getMagnitude");
+Route::get('counters-and-triggers/get-unit/{idMagnitude}/{idUnit}/{user}/{line}',                  "App\Http\Controllers\CatalogMeasuresController@getUnit");
+Route::post('counters-and-triggers/register-catalog-measures',                                      "App\Http\Controllers\CatalogMeasuresController@registerMeasures");
+Route::post('counters-and-triggers/update-catalog-measures',                                        "App\Http\Controllers\CatalogMeasuresController@updateMeasures");
+Route::post('counters-and-triggers/delete-catalog-measures',                                        "App\Http\Controllers\CatalogMeasuresController@deleteMeasures");
+Route::post('counters-and-triggers/register-magnitude',                                             "App\Http\Controllers\CatalogMeasuresController@registerMagnitude");
+Route::post('counters-and-triggers/update-magnitude',                                               "App\Http\Controllers\CatalogMeasuresController@updateMagnitude");
+Route::post('counters-and-triggers/delete-magnitude',                                               "App\Http\Controllers\CatalogMeasuresController@deleteMagnitude");
 
-    
-    // Module: GEIN
-    Route::post('inventory-management/register-artitle-without-order',                                                          "App\Http\Controllers\StockController@createArtitleWithoutOrder");
-    Route::get ('inventory-management/get-warehouse/{user}/{line}',                                                             "App\Http\Controllers\StockController@getWarehouse");
-    Route::get ('inventory-management/get-warehouse-by-id/{idWarehouse}/{user}/{line}',                                         "App\Http\Controllers\StockController@getWarehouseById");
-    Route::get ('inventory-management/get-warehouse-actives/{user}/{line}',                                                     "App\Http\Controllers\StockController@getWarehouseActives");
-    Route::post('inventory-management/create-warehouse',                                                                        "App\Http\Controllers\StockController@createWarehouse");
-    Route::post('inventory-management/update-warehouse/{idWarehouse}',                                                          "App\Http\Controllers\StockController@updateWarehouse");
-    Route::post('inventory-management/delete-warehouse/{idWarehouse}',                                                          "App\Http\Controllers\StockController@deleteWarehouse");
-    Route::get ('inventory-management/get-area-by-warehouse/{idWarehouse}/{user}/{line}',                                       "App\Http\Controllers\StockController@getAreaByWarehouse");
-    Route::get ('inventory-management/get-area-by-id/{idArea}/{user}/{line}',                                                   "App\Http\Controllers\StockController@getAreaById");
-    Route::get ('inventory-management/get-area-by-warehouse-actives/{idWarehouse}/{user}/{line}',                               "App\Http\Controllers\StockController@getAreaByWarehouseActives");
-    Route::post('inventory-management/register-area',                                                                           "App\Http\Controllers\StockController@registerArea");
-    Route::post('inventory-management/update-area/{idArea}',                                                                    "App\Http\Controllers\StockController@updateArea");
-    Route::post('inventory-management/delete-area/{idArea}',                                                                    "App\Http\Controllers\StockController@deleteArea");
-    Route::get ('inventory-management/get-level-by-area-warehouse/{idWarehouse}/{idArea}/{user}/{line}',                        "App\Http\Controllers\StockController@getLevelByAreaWarehouse");
-    Route::get ('inventory-management/get-level-by-id/{idLevel}/{user}/{line}',                                                 "App\Http\Controllers\StockController@getLevelById");
-    Route::get ('inventory-management/get-level-by-area-warehouse-actives/{idWarehouse}/{idArea}/{user}/{line}',                "App\Http\Controllers\StockController@getLevelByAreaWarehouseActives");
-    Route::post('inventory-management/register-level',                                                                          "App\Http\Controllers\StockController@registerLevel");
-    Route::post('inventory-management/update-level/{idLevel}',                                                                  "App\Http\Controllers\StockController@updateLevel");
-    Route::post('inventory-management/delete-level/{idLevel}',                                                                  "App\Http\Controllers\StockController@deleteLevel");
-    Route::get ('inventory-management/get-zone-by-level-area-warehouse/{idWarehouse}/{idArea}/{idLevel}/{user}/{line}',         "App\Http\Controllers\StockController@getZoneByLevelAreaWarehouse");
-    Route::get ('inventory-management/get-zone-by-id/{idZone}/{user}/{line}',                                                   "App\Http\Controllers\StockController@getZoneById");
-    Route::get ('inventory-management/get-zone-by-level-area-warehouse-actives/{idWarehouse}/{idArea}/{idLevel}/{user}/{line}', "App\Http\Controllers\StockController@getZoneByLevelAreaWarehouseActive");
-    Route::post('inventory-management/register-zone',                                                                           "App\Http\Controllers\StockController@registerZone");
-    Route::post('inventory-management/update-zone/{idZone}',                                                                    "App\Http\Controllers\StockController@updateZone");
-    Route::post('inventory-management/delete-zone/{idZone}',                                                                    "App\Http\Controllers\StockController@deleteZone");
-    Route::post('inventory-management/register-to-stock',                                                                       "App\Http\Controllers\StockController@registerToStock");
-    Route::get ('inventory-management/get-current-location-artitles/{user}/{line}',                                             "App\Http\Controllers\StockController@getCurrentLocationArtitles");
-    Route::get ('inventory-management/get-info-stock/{user}/{line}',                                                            "App\Http\Controllers\StockController@getInfoStock");
-    Route::post('inventory-management/move-to-stock/{idStock}',                                                                 "App\Http\Controllers\StockController@moveToStock");
-    Route::get ('inventory-management/get-location-stock/{user}/{line}',                                                        "App\Http\Controllers\StockController@getLocationStock");
-    Route::get ('inventory-management/get-location-by-stock/{idStock}/{user}/{line}',                                           "App\Http\Controllers\StockController@getLocationByStock");
-    Route::get ('inventory-management/get-details-location/{idStock}/{idLocation}/{user}/{line}',                               "App\Http\Controllers\StockController@getDetaisLocation");
-    Route::post('inventory-management/search',                                                                                  "App\Http\Controllers\StockController@search");
-    Route::get ('inventory-management/get-info-by-stock/{idStock}/{user}/{line}',                                               "App\Http\Controllers\StockController@getInfoByStock");
-    Route::get ('inventory-management/get-max-min-stock/{user}/{line}',                                                         "App\Http\Controllers\StockController@getMaxMinStock");
-    Route::post('inventory-management/update-stock-max-min/{idInfo}',                                                           "App\Http\Controllers\StockController@updateStockMaxMin");
-    Route::get ('inventory-management/get-stock-barcode/{user}/{line}',                                                         "App\Http\Controllers\StockController@getStockBarcode");
-    Route::post('inventory-management/update-stock-barcode/{idStock}',                                                          "App\Http\Controllers\StockController@updateStockBarcode");
-    Route::get ('inventory-management/get-due-date-stock/{user}/{line}',                                                        "App\Http\Controllers\StockController@getStockDueDate");
-    Route::post('inventory-management/update-due-date-stock/{idStock}',                                                         "App\Http\Controllers\StockController@updateDueDateStock");
-    Route::get ('inventory-management/get-description-sheet-stock/{user}/{line}',                                               "App\Http\Controllers\StockController@getDescriptionSheetStock");
-    Route::get ('inventory-management/create-description-sheet-stock-xls/{idStock}/{user}/{line}',                              "App\Http\Controllers\StockController@createDescriptionSheetStockXLS");
-    Route::get ('inventory-management/create-description-sheet-stock-pdf/{idStock}/{user}/{line}',                              "App\Http\Controllers\StockController@createDescriptionSheetStockPDF");
-    Route::get ('inventory-management/get-document-association/{user}/{line}',                                                  "App\Http\Controllers\StockController@getDocumentAssociation");
-    Route::get ('inventory-management/get-documents-by-stock/{idStock}/{user}/{line}',                                          "App\Http\Controllers\StockController@getDocumentsByStock");
-    Route::post('inventory-management/register-document-stock',                                                                 "App\Http\Controllers\StockController@registerDocumentStock");
-    Route::get ('inventory-management/get-replanishment-quantities/{user}/{line}',                                              "App\Http\Controllers\StockController@getReplenishmentQuantitiesService");
-    Route::post('inventory-management/create-request-line',                                                                     "App\Http\Controllers\StockController@createRequestLine");
-    Route::get ('inventory-management/get-replenishment-suggestion/{user}/{line}',                                              "App\Http\Controllers\StockController@getReplenishmentSuggestion");
-    Route::get ('inventory-management/get-nomenclature-management/{user}/{line}',                                               "App\Http\Controllers\StockController@getNomenclatureManagement");
-    Route::get ('inventory-management/get-details-nomenclature/{idStock}/{user}/{line}',                                        "App\Http\Controllers\StockController@getDetailsNomenclature");
-    Route::get ('inventory-management/get-objects-properties/{user}/{line}',                                                    "App\Http\Controllers\StockController@getObjectProperties");
-    Route::get ('inventory-management/get-details-object-properties/{idStock}/{user}/{line}',                                   "App\Http\Controllers\StockController@getDetailsObjectProperties");
-    Route::post('inventory-management/save-info-stock/{idStock}',                                                               "App\Http\Controllers\StockController@saveInfoStock");
-    Route::get ('inventory-management/get-tools-and-spare/{user}/{line}',                                                       "App\Http\Controllers\StockController@getToolsAndSpare");
-    Route::get ('inventory-management/get-article-classificate-by-warehouse/{idWarehouse}/{user}/{line}',                       "App\Http\Controllers\StockController@getArticleClassificateByWarehouse");
-    Route::get ('inventory-management/get-value-stock-by-period/{idWarehouse}/{user}/{line}',                                   "App\Http\Controllers\StockController@getValueStockByPeriod");
-    Route::get ('inventory-management/get-article-without-movements/{user}/{line}',                                             "App\Http\Controllers\StockController@getArticlesWithoutMovements");
-    
-    // Módulo de Procesos (Workflow)
-    Route::post('process-management/restore-workflows',                                             "App\Http\Controllers\ProcessManagementController@restoreWorkflows");
-    Route::get ('process-management/get-workflows/{user}/{line}',                                   "App\Http\Controllers\ProcessManagementController@getWorkflows");
-    Route::get ('process-management/get-workflow-by-id/{idWorkflow}/{user}/{line}',                 "App\Http\Controllers\ProcessManagementController@getWorkflowById");
-    Route::get ('process-management/get-workflows-actives/{user}/{line}',                           "App\Http\Controllers\ProcessManagementController@getWorkflowActives");
-    Route::post('process-management/register-workflows',                                            "App\Http\Controllers\ProcessManagementController@registerWorkflow");
-    Route::post('process-management/update-workflows/{idWorkflow}',                                 "App\Http\Controllers\ProcessManagementController@updateWorkflow");
-    Route::post('process-management/delete-workflows/{idWorkflow}',                                 "App\Http\Controllers\ProcessManagementController@deleteWorkflow");
-    Route::get ('process-management/get-process-workflow/{user}/{line}',                            "App\Http\Controllers\ProcessManagementController@getProcessWorkflow");
-    Route::get ('process-management/get-tasks/{user}/{line}',                                       "App\Http\Controllers\ProcessManagementController@getTasks");
-    Route::get ('process-management/get-task-by-workflow/{idWorkflow}/{user}/{line}',               "App\Http\Controllers\ProcessManagementController@getTaskByWorkflow");
-    Route::get ('process-management/get-task-by-id/{idTask}/{user}/{line}',                         "App\Http\Controllers\ProcessManagementController@getTaskById");
-    Route::post('process-management/register-task',                                                 "App\Http\Controllers\ProcessManagementController@registerTask");
-    Route::post('process-management/update-task/{idTask}',                                          "App\Http\Controllers\ProcessManagementController@updateTask");
-    Route::post('process-management/delete-task/{idTask}',                                          "App\Http\Controllers\ProcessManagementController@deleteTask");
-    Route::get ('process-management/get-execute-workflow/{user}/{line}',                            "App\Http\Controllers\ProcessManagementController@getExecuteWorkflow");
-    Route::get ('process-management/get-execute-task/{idExecute}/{user}/{line}',                    "App\Http\Controllers\ProcessManagementController@getExecuteTask");
-    Route::get ('process-management/get-history-notificate-task/{idExecuteTask}/{user}/{line}',     "App\Http\Controllers\ProcessManagementController@getHistoryNotificateTask");
-    Route::post('process-management/update-request-workflow/{idExecuteTask}',                       "App\Http\Controllers\ProcessManagementController@updateRequestWorkflow");
-    Route::post('process-management/search-request-workflow',                                       "App\Http\Controllers\ProcessManagementController@searchRequestWorkflow");
-    Route::get ('process-management/get-details-execute-request/{idExecuteTask}/{user}/{line}',     "App\Http\Controllers\ProcessManagementController@getDetailsExecuteRequest");
-    Route::post('process-management/search-notificate',                                             "App\Http\Controllers\ProcessManagementController@searchNotificate");
-    Route::get ('process-management/get-details-notificate/{idNotificate}/{user}/{line}',           "App\Http\Controllers\ProcessManagementController@getDetailsNotificate");
-    Route::post('process-management/activate-workflow-automatic',                                   "App\Http\Controllers\ProcessManagementController@activateManualWorkflow");
 
-    // Módulo de gestión presupuestaria
-    Route::get ('budget-management/get-payment-method/{user}/{line}',                               "App\Http\Controllers\BudgetManagementController@getPaymentMethod");
-    Route::get ('budget-management/get-payment-method-active/{user}/{line}',                        "App\Http\Controllers\BudgetManagementController@getPaymentMethodActive");
-    Route::get ('budget-management/get-payment-method-by-id/{idPayment}/{user}/{line}',             "App\Http\Controllers\BudgetManagementController@getPaymentMethodById");
-    Route::post('budget-management/register-payment-method',                                        "App\Http\Controllers\BudgetManagementController@registerPaymentMethod");
-    Route::post('budget-management/update-payment-method/{idPayment}',                              "App\Http\Controllers\BudgetManagementController@updatePaymentMethod");
-    Route::post('budget-management/delete-payment-method/{idPayment}',                              "App\Http\Controllers\BudgetManagementController@deletePaymentMethod");
+// Module: GEIN
+Route::post('inventory-management/register-artitle-without-order',                                                          "App\Http\Controllers\StockController@createArtitleWithoutOrder");
+Route::get('inventory-management/get-warehouse/{user}/{line}',                                                             "App\Http\Controllers\StockController@getWarehouse");
+Route::get('inventory-management/get-warehouse-by-id/{idWarehouse}/{user}/{line}',                                         "App\Http\Controllers\StockController@getWarehouseById");
+Route::get('inventory-management/get-warehouse-actives/{user}/{line}',                                                     "App\Http\Controllers\StockController@getWarehouseActives");
+Route::post('inventory-management/create-warehouse',                                                                        "App\Http\Controllers\StockController@createWarehouse");
+Route::post('inventory-management/update-warehouse/{idWarehouse}',                                                          "App\Http\Controllers\StockController@updateWarehouse");
+Route::post('inventory-management/delete-warehouse/{idWarehouse}',                                                          "App\Http\Controllers\StockController@deleteWarehouse");
+Route::get('inventory-management/get-area-by-warehouse/{idWarehouse}/{user}/{line}',                                       "App\Http\Controllers\StockController@getAreaByWarehouse");
+Route::get('inventory-management/get-area-by-id/{idArea}/{user}/{line}',                                                   "App\Http\Controllers\StockController@getAreaById");
+Route::get('inventory-management/get-area-by-warehouse-actives/{idWarehouse}/{user}/{line}',                               "App\Http\Controllers\StockController@getAreaByWarehouseActives");
+Route::post('inventory-management/register-area',                                                                           "App\Http\Controllers\StockController@registerArea");
+Route::post('inventory-management/update-area/{idArea}',                                                                    "App\Http\Controllers\StockController@updateArea");
+Route::post('inventory-management/delete-area/{idArea}',                                                                    "App\Http\Controllers\StockController@deleteArea");
+Route::get('inventory-management/get-level-by-area-warehouse/{idWarehouse}/{idArea}/{user}/{line}',                        "App\Http\Controllers\StockController@getLevelByAreaWarehouse");
+Route::get('inventory-management/get-level-by-id/{idLevel}/{user}/{line}',                                                 "App\Http\Controllers\StockController@getLevelById");
+Route::get('inventory-management/get-level-by-area-warehouse-actives/{idWarehouse}/{idArea}/{user}/{line}',                "App\Http\Controllers\StockController@getLevelByAreaWarehouseActives");
+Route::post('inventory-management/register-level',                                                                          "App\Http\Controllers\StockController@registerLevel");
+Route::post('inventory-management/update-level/{idLevel}',                                                                  "App\Http\Controllers\StockController@updateLevel");
+Route::post('inventory-management/delete-level/{idLevel}',                                                                  "App\Http\Controllers\StockController@deleteLevel");
+Route::get('inventory-management/get-zone-by-level-area-warehouse/{idWarehouse}/{idArea}/{idLevel}/{user}/{line}',         "App\Http\Controllers\StockController@getZoneByLevelAreaWarehouse");
+Route::get('inventory-management/get-zone-by-id/{idZone}/{user}/{line}',                                                   "App\Http\Controllers\StockController@getZoneById");
+Route::get('inventory-management/get-zone-by-level-area-warehouse-actives/{idWarehouse}/{idArea}/{idLevel}/{user}/{line}', "App\Http\Controllers\StockController@getZoneByLevelAreaWarehouseActive");
+Route::post('inventory-management/register-zone',                                                                           "App\Http\Controllers\StockController@registerZone");
+Route::post('inventory-management/update-zone/{idZone}',                                                                    "App\Http\Controllers\StockController@updateZone");
+Route::post('inventory-management/delete-zone/{idZone}',                                                                    "App\Http\Controllers\StockController@deleteZone");
+Route::post('inventory-management/register-to-stock',                                                                       "App\Http\Controllers\StockController@registerToStock");
+Route::get('inventory-management/get-current-location-artitles/{user}/{line}',                                             "App\Http\Controllers\StockController@getCurrentLocationArtitles");
+Route::get('inventory-management/get-info-stock/{user}/{line}',                                                            "App\Http\Controllers\StockController@getInfoStock");
+Route::post('inventory-management/move-to-stock/{idStock}',                                                                 "App\Http\Controllers\StockController@moveToStock");
+Route::get('inventory-management/get-location-stock/{user}/{line}',                                                        "App\Http\Controllers\StockController@getLocationStock");
+Route::get('inventory-management/get-location-by-stock/{idStock}/{user}/{line}',                                           "App\Http\Controllers\StockController@getLocationByStock");
+Route::get('inventory-management/get-details-location/{idStock}/{idLocation}/{user}/{line}',                               "App\Http\Controllers\StockController@getDetaisLocation");
+Route::post('inventory-management/search',                                                                                  "App\Http\Controllers\StockController@search");
+Route::get('inventory-management/get-info-by-stock/{idStock}/{user}/{line}',                                               "App\Http\Controllers\StockController@getInfoByStock");
+Route::get('inventory-management/get-max-min-stock/{user}/{line}',                                                         "App\Http\Controllers\StockController@getMaxMinStock");
+Route::post('inventory-management/update-stock-max-min/{idInfo}',                                                           "App\Http\Controllers\StockController@updateStockMaxMin");
+Route::get('inventory-management/get-stock-barcode/{user}/{line}',                                                         "App\Http\Controllers\StockController@getStockBarcode");
+Route::post('inventory-management/update-stock-barcode/{idStock}',                                                          "App\Http\Controllers\StockController@updateStockBarcode");
+Route::get('inventory-management/get-due-date-stock/{user}/{line}',                                                        "App\Http\Controllers\StockController@getStockDueDate");
+Route::post('inventory-management/update-due-date-stock/{idStock}',                                                         "App\Http\Controllers\StockController@updateDueDateStock");
+Route::get('inventory-management/get-description-sheet-stock/{user}/{line}',                                               "App\Http\Controllers\StockController@getDescriptionSheetStock");
+Route::get('inventory-management/create-description-sheet-stock-xls/{idStock}/{user}/{line}',                              "App\Http\Controllers\StockController@createDescriptionSheetStockXLS");
+Route::get('inventory-management/create-description-sheet-stock-pdf/{idStock}/{user}/{line}',                              "App\Http\Controllers\StockController@createDescriptionSheetStockPDF");
+Route::get('inventory-management/get-document-association/{user}/{line}',                                                  "App\Http\Controllers\StockController@getDocumentAssociation");
+Route::get('inventory-management/get-documents-by-stock/{idStock}/{user}/{line}',                                          "App\Http\Controllers\StockController@getDocumentsByStock");
+Route::post('inventory-management/register-document-stock',                                                                 "App\Http\Controllers\StockController@registerDocumentStock");
+Route::get('inventory-management/get-replanishment-quantities/{user}/{line}',                                              "App\Http\Controllers\StockController@getReplenishmentQuantitiesService");
+Route::post('inventory-management/create-request-line',                                                                     "App\Http\Controllers\StockController@createRequestLine");
+Route::get('inventory-management/get-replenishment-suggestion/{user}/{line}',                                              "App\Http\Controllers\StockController@getReplenishmentSuggestion");
+Route::get('inventory-management/get-nomenclature-management/{user}/{line}',                                               "App\Http\Controllers\StockController@getNomenclatureManagement");
+Route::get('inventory-management/get-details-nomenclature/{idStock}/{user}/{line}',                                        "App\Http\Controllers\StockController@getDetailsNomenclature");
+Route::get('inventory-management/get-objects-properties/{user}/{line}',                                                    "App\Http\Controllers\StockController@getObjectProperties");
+Route::get('inventory-management/get-details-object-properties/{idStock}/{user}/{line}',                                   "App\Http\Controllers\StockController@getDetailsObjectProperties");
+Route::post('inventory-management/save-info-stock/{idStock}',                                                               "App\Http\Controllers\StockController@saveInfoStock");
+Route::get('inventory-management/get-tools-and-spare/{user}/{line}',                                                       "App\Http\Controllers\StockController@getToolsAndSpare");
+Route::get('inventory-management/get-article-classificate-by-warehouse/{idWarehouse}/{user}/{line}',                       "App\Http\Controllers\StockController@getArticleClassificateByWarehouse");
+Route::get('inventory-management/get-value-stock-by-period/{idWarehouse}/{user}/{line}',                                   "App\Http\Controllers\StockController@getValueStockByPeriod");
+Route::get('inventory-management/get-article-without-movements/{user}/{line}',                                             "App\Http\Controllers\StockController@getArticlesWithoutMovements");
 
-    // Módulo de carga de archivos 
-    Route::post("process-load-archives",                                                           "App\Http\Controllers\AsyncValidateLoadArchivesController@processLoadArchives");
-    Route::post("async-validate-load-archives",                                                    "App\Http\Controllers\AsyncValidateLoadArchivesController@validateFilesWithBat");
-    Route::post("encrypt",                                                                          "App\Http\Controllers\AsyncValidateLoadArchivesController@encrypt");
-    Route::post("emitNotification",                                                                 "App\Http\Controllers\AsyncValidateLoadArchivesController@emitNotification");
-    
-    //subida de archivo de equipamientos
-    Route::post('equipment-data/verify-template',                                                   'App\Http\Controllers\TemplatesManagementController@validateAndProcessExcelTemplate');
-    Route::post('equipment-data/upload-template',                                                   'App\Http\Controllers\TemplatesManagementController@processExcelEquipment');
-//});
+// Módulo de Procesos (Workflow)
+Route::get('process-management/get-workflows/{user}/{line}',                                   "App\Http\Controllers\ProcessManagementController@getWorkflows");
+Route::get('process-management/get-active-workflows/{user}/{line}',                            "App\Http\Controllers\ProcessManagementController@getActiveWorkflows");
+Route::get('process-management/get-workflow-by-id/{idWorkflow}/{user}/{line}',                 "App\Http\Controllers\ProcessManagementController@getWorkflowById");
+Route::post('process-management/register-workflow',                                             "App\Http\Controllers\ProcessManagementController@registerWorkflow");
+Route::post('process-management/register-workflow-tasks',                                       "App\Http\Controllers\ProcessManagementController@registerWorkflowTasks");
+Route::post('process-management/update-workflows/{idWorkflow}',                                 "App\Http\Controllers\ProcessManagementController@updateWorkflow");
+Route::post('process-management/change-workflow-status',                                        "App\Http\Controllers\ProcessManagementController@changeWorkflowStatus");
+Route::post('process-management/update-task-configuration/{idTask}',                                          "App\Http\Controllers\ProcessManagementController@updateTaskConfiguration");
+Route::get('process-management/get-process-workflow/{user}/{line}',                            "App\Http\Controllers\ProcessManagementController@getProcessWorkflow");
+Route::post('process-management/asign-state-to-application',                                          "App\Http\Controllers\ProcessManagementController@asignStateToApplication");
+Route::get('process-management/get-validate-applications/{user}/{line}',                            "App\Http\Controllers\ProcessManagementController@getValidateApplications");
+//Route::get ('process-management/get-tasks/{user}/{line}',                                       "App\Http\Controllers\ProcessManagementController@getTasks");
+Route::get('process-management/get-task-by-workflow/{idWorkflow}/{user}/{line}',               "App\Http\Controllers\ProcessManagementController@getTaskByWorkflow");
+Route::get('process-management/get-task-by-id/{idTask}/{user}/{line}',                         "App\Http\Controllers\ProcessManagementController@getTaskById");
+Route::get('process-management/get-task-configuration/{idTask}/{user}/{line}',                 "App\Http\Controllers\ProcessManagementController@getTaskConfiguration");
+Route::post('process-management/register-task',                                                 "App\Http\Controllers\ProcessManagementController@registerWorkflowTask");
+Route::post('process-management/update-task/{idTask}',                                          "App\Http\Controllers\ProcessManagementController@updateWorkflowTask");
+Route::post('process-management/delete-task/{idTask}',                                          "App\Http\Controllers\ProcessManagementController@deleteTask");
+Route::get('process-management/get-execute-workflow/{user}/{line}',                            "App\Http\Controllers\ProcessManagementController@getExecuteWorkflow");
+Route::get('process-management/get-execute-task/{idExecute}/{user}/{line}',                    "App\Http\Controllers\ProcessManagementController@getExecuteTask");
+Route::get('process-management/get-history-notificate-task/{idExecuteTask}/{user}/{line}',     "App\Http\Controllers\ProcessManagementController@getHistoryNotificateTask");
+Route::post('process-management/update-request-workflow/{idExecuteTask}',                       "App\Http\Controllers\ProcessManagementController@updateRequestWorkflow");
+Route::post('process-management/search-request-workflow',                                       "App\Http\Controllers\ProcessManagementController@searchRequestWorkflow");
+Route::get('process-management/get-details-execute-request/{idExecuteTask}/{user}/{line}',     "App\Http\Controllers\ProcessManagementController@getDetailsExecuteRequest");
+Route::post('process-management/search-notificate',                                             "App\Http\Controllers\ProcessManagementController@searchNotificationsAndRequests");
+Route::post('process-management/search-solicitudes',                                            "App\Http\Controllers\ProcessManagementController@searchSolicitudes");
+Route::post('process-management/search-notificaciones',                                         "App\Http\Controllers\ProcessManagementController@searchNotificaciones");
+Route::post('process-management/search-workflows',                                              "App\Http\Controllers\ProcessManagementController@searchWorkflows");
+Route::get('process-management/get-workflow-executions-history/{idWorkflow}/{user}/{line}',    "App\Http\Controllers\ProcessManagementController@getWorkflowExecutionsHistory");
+Route::get('process-management/get-details-notificate/{idNotificate}/{user}/{line}',           "App\Http\Controllers\ProcessManagementController@getDetailsNotificate");
+Route::post('process-management/activate-workflow-automatic',                                   "App\Http\Controllers\ProcessManagementController@activateManualWorkflow");
+
+// Módulo de gestión presupuestaria
+Route::get('budget-management/get-payment-method/{user}/{line}',                               "App\Http\Controllers\BudgetManagementController@getPaymentMethod");
+Route::get('budget-management/get-payment-method-active/{user}/{line}',                        "App\Http\Controllers\BudgetManagementController@getPaymentMethodActive");
+Route::get('budget-management/get-payment-method-by-id/{idPayment}/{user}/{line}',             "App\Http\Controllers\BudgetManagementController@getPaymentMethodById");
+Route::post('budget-management/register-payment-method',                                        "App\Http\Controllers\BudgetManagementController@registerPaymentMethod");
+Route::post('budget-management/update-payment-method/{idPayment}',                              "App\Http\Controllers\BudgetManagementController@updatePaymentMethod");
+Route::post('budget-management/delete-payment-method/{idPayment}',                              "App\Http\Controllers\BudgetManagementController@deletePaymentMethod");
+
+// Módulo de carga de archivos 
+Route::post("process-load-archives",                                                           "App\Http\Controllers\AsyncValidateLoadArchivesController@processLoadArchives");
+Route::post("async-validate-load-archives",                                                    "App\Http\Controllers\AsyncValidateLoadArchivesController@validateFilesWithBat");
+Route::post("encrypt",                                                                          "App\Http\Controllers\AsyncValidateLoadArchivesController@encrypt");
+Route::post("emitNotification",                                                                 "App\Http\Controllers\AsyncValidateLoadArchivesController@emitNotification");
+Route::post("decrypt",                                                                          "App\Http\Controllers\AsyncValidateLoadArchivesController@decrypt");
 
+//subida de archivo de equipamientos
+Route::post('equipment-data/verify-template',                                                   'App\Http\Controllers\TemplatesManagementController@validateAndProcessExcelTemplate');
+Route::post('equipment-data/upload-template',                                                   'App\Http\Controllers\TemplatesManagementController@processExcelEquipment');
+
+//api para ver el consumo de la api prtg
+Route::get('api-consumption-prtg', 'App\Http\Controllers\ApiConsumptionController@index');
+Route::get('api-consumption-prtg/notifications', 'App\Http\Controllers\ApiConsumptionController@getNotifications');
+//});

Some files were not shown because too many files changed in this diff