Browse Source

Modificación de códigos

JeanBenitez 2 years ago
parent
commit
8e4a86fbb2

+ 2 - 2
sistema-mantenimiento-back/app/Http/Controllers/ArtitleController.php

@@ -36,7 +36,7 @@ class ArtitleController extends Controller {
                     'FAMI_NOMB AS FAMILIA',
                 ]);
         } catch (\Throwable $th) {
-            return $this->responseController->makeResponse(true, "ERR_ARTITLE_REG000: No se pudo realizar la consulta a la base.", [], 500);
+            return $this->responseController->makeResponse(true, "ERR_ARTITLE_REG000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
         }
         return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrFamilias);
     }
@@ -51,7 +51,7 @@ class ArtitleController extends Controller {
                     'FAMI_NOMB AS FAMILIA',
                 ]);
         } catch (\Throwable $th) {
-            return $this->responseController->makeResponse(true, "ERR_ARTITLE_REG000: No se pudo realizar la consulta a la base.", [], 500);
+            return $this->responseController->makeResponse(true, "ERR_ARTITLE_REG000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
         }
         return $this->responseController->makeResponse(false, "ÉXITO", $arrFamiliasActives);
     }

+ 21 - 2
sistema-mantenimiento-back/app/Http/Controllers/DocumentManagementController.php

@@ -289,7 +289,7 @@ class DocumentManagementController extends Controller
         return $this->responseController->makeresponse(false, "EXITO", $document);
     }
 
-    public function moveFinalFile(Request $request)
+    /* public function moveFinalFile(Request $request)
     {
         DB::enableQueryLog();
         $validator = Validator::make($request->all(), [
@@ -352,7 +352,7 @@ class DocumentManagementController extends Controller
             if(!$fileSaved[0]){
                 return $this->responseController->makeResponse(true, "El archivo no pudo guardarse: $fileSaved[1]", [], 500);
             }
-            
+
             $attachedArr[] = $this->encryptionController->encrypt($fileSaved[1]);
 
             DB::table('S002V01TARTE')->where([
@@ -478,5 +478,24 @@ class DocumentManagementController extends Controller
         $codigo .= "$noar.$exte";
 
         return [true, $codigo];
+    } */
+
+
+    public function getTypesDocuments($line) {
+        try {
+            $arrTypesDocuments = DB::table('S002V01TTIDO')
+                ->where('TIDO_NULI', '=', $line)
+                ->where('TIDO_ESTA', '=', 'Activo')
+                ->get([
+                    'TIDO_IDTI', // Identificador del Tipo
+                    'TIDO_ACRO', // Acrónimo del tipo
+                    'TIDO_TIPO', // Tipo
+                    'TIDO_EXTE', // Extensiones
+                ]);
+        } catch (\Throwable $th) {
+            return $this->responseController->makeResponse(true, 'ERR_TYPES_GET001: Ocurrió un error al obtener los tipos de documentos.', $th->getMessage(), 400);
+        }
+
+        return $this->responseController->makeresponse(false, "ÉXITO: Consulta Exitosa", $arrTypesDocuments);
     }
 }

+ 245 - 0
sistema-mantenimiento-back/app/Http/Controllers/OrderDocumentsController.php

@@ -0,0 +1,245 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Carbon;
+use Illuminate\Support\Facades\Validator;
+
+class OrderDocumentsController extends Controller
+{
+    private $responseController;
+    private $encController;
+    private $resourcesController;
+
+    public function __construct(){
+        $this->responseController = new ResponseController();
+        $this->encController = new EncryptionController();
+        $this->resourcesController = new ResourcesController();
+    }
+
+    public function getDocumentByOrder($order, $line) {
+
+        try {
+            $orderNumber = $this->encController->decrypt($order);
+        } catch (\Throwable $th) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_REG001: Ocurrió un error al desencriptar los datos.", [], 401);
+        }
+
+        try {
+            $arrDocuments = DB::table('S002V01TDOOR')
+                ->where('DOOR_NUOR', '=', $orderNumber)
+                ->where('DOOR_NULI', '=', $line)
+                ->join('S002V01TTIDO', 'TIDO_ACRO', '=', 'DOOR_TIPO')
+                ->get([
+                    'DOOR_IDDO', // Identificador del documento
+                    'DOOR_NUOR', // Número de la orden
+                    'DOOR_CODO', // Código del documento
+                    'DOOR_DESC', // Descripción del documento
+                    'DOOR_TIPO', // Tipo del documento
+                    'TIDO_TIPO', // Nombre del tipo
+                    'DOOR_ESTA', // Estado del documento
+                    'DOOR_USRE', // Usuario registra
+                    'DOOR_FERE', // Fecha registra
+                    'DOOR_USMO', // Usuario modifica
+                    'DOOR_FEMO', // Fecha modifica
+                ]);
+        } catch (\Throwable $th) {
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_GET000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
+        }
+
+        return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrDocuments);
+    }
+
+    public function registerDocumentOrder(Request $request) {
+        $valitador = Validator::make($request->all(), [
+            'ORDEN' => 'required|string|max:10',
+            'NAME_DOCUMENT' => 'required|string|max:100',
+            'DESCRIPCION' => 'required|string|max:50',
+            'TIPO' => 'required|string|max:2',
+            'DOCUMENTO' => 'required|string',
+            'NUMERO_LINEA' => 'required|string',
+            'USUARIO' => 'required|string'
+        ]);
+        if ($valitador->fails()) {
+            return $this->responseController->makeResponse(
+                true,
+                "ERR_DOCUMENT_ORDER_REG000: Se encontraron uno o más errores.",
+                $this->responseController->makeErrors($valitador->errors()->messages()),
+                401
+            );
+        }
+        DB::beginTransaction();
+        $responseData = $request->all();
+        try {
+            $user = $this->encController->decrypt($responseData['USUARIO']);
+        } catch (\Throwable $th) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_REG001: Ocurrió un error al desencriptar los datos.", [], 401);
+        }
+
+        $documentName = $this->resourcesController->nameFormatDocument($responseData['NAME_DOCUMENT']);
+        $arrResponseDocument =  $this->resourcesController->saveDocument( $responseData['DOCUMENTO'], 'GEAD', $documentName, $responseData['TIPO'], $responseData['NUMERO_LINEA']  );
+        if ( $arrResponseDocument['error'] ) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, $arrResponseDocument['msg'], $arrResponseDocument['response'], 500);
+        }
+        $documentCode = $arrResponseDocument['response'];
+
+        $arrInsert = [
+            'DOOR_NUOR' => $responseData['ORDEN'],
+            'DOOR_CODO' => $documentCode,
+            'DOOR_DESC' => $responseData['DESCRIPCION'],
+            'DOOR_TIPO' => $responseData['TIPO'],
+            'DOOR_NULI' => $responseData['NUMERO_LINEA'],
+            'DOOR_USRE' => $user,
+            'DOOR_FERE' => Carbon::now()->timezone('America/Mazatlan')->toDateTimeString(),
+            'DOOR_FEAR' => DB::raw('CURRENT_TIMESTAMP')
+        ];
+
+        try {
+            $validateInsert = DB::table('S002V01TDOOR')->insert($arrInsert);
+        } catch (\Throwable $th) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_REG002: Ocurrió un error al ingresar los registros.", [], 401);
+        }
+
+        if ( !$validateInsert ) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_REG003: Ocurrió un error al ingresar los registros.", [], 401);
+        }
+
+        DB::commit();
+        return $this->responseController->makeResponse(false, "ÉXITO: Registro de Documento Exitoso");
+    }
+
+    public function updateDocumentOrder(Request $request) {
+        $valitador = Validator::make($request->all(), [
+            'ID_DOCUMENT' => 'required|integer',
+            'CODE_DOCUMENT' => 'required|string',
+            'ORDEN' => 'required|string|max:10',
+            'NAME_DOCUMENT' => 'required|string|max:100',
+            'DESCRIPCION' => 'required|string|max:50',
+            'TIPO' => 'required|string|max:2',
+            'DOCUMENTO' => 'required|string',
+            'NUMERO_LINEA' => 'required|string',
+            'USUARIO' => 'required|string'
+        ]);
+        if ($valitador->fails()) {
+            return $this->responseController->makeResponse(
+                true,
+                "ERR_DOCUMENT_ORDER_UPD000: Se encontraron uno o más errores.",
+                $this->responseController->makeErrors($valitador->errors()->messages()),
+                401
+            );
+        }
+
+        DB::beginTransaction();
+        $responseData = $request->all();
+
+        // Se obtiene el identificador del usuario
+        try {
+            $user = $this->encController->decrypt($responseData['USUARIO']);
+        } catch (\Throwable $th) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_UPD001: Ocurrió un error al desencriptar los datos.", [], 401);
+        }
+
+        // Nombre del código del docuento
+        $documentCode = '';
+
+        // Se verifica si hubo una modificación en el documento
+        if ( $responseData['DOCUMENTO'] !== 'unmodified' ) {
+            // Se da formato al nombre del documento
+            $documentName = $this->resourcesController->nameFormatDocument($responseData['NAME_DOCUMENT']);
+
+            // Se registra el nuevo documento con diferente versión
+            $arrResponseDocument = $this->resourcesController->updateDocument( $responseData['CODE_DOCUMENT'], $responseData['DOCUMENTO'], 'GEAD',
+                $documentName, $responseData['TIPO'], $responseData['NUMERO_LINEA'] );
+            if ( $arrResponseDocument['error'] ) {
+                DB::rollBack();
+                return $this->responseController->makeResponse(true, $arrResponseDocument['msg'], $arrResponseDocument['response'], 500);
+            }
+            $documentCode = $arrResponseDocument['response'];
+        } else {
+            $documentCode = $responseData['CODE_DOCUMENT'];
+        }
+
+        try {
+            $validateUpdate = DB::table('S002V01TDOOR')
+                ->where('DOOR_IDDO', '=', $responseData['ID_DOCUMENT'])
+                ->where('DOOR_NULI', '=', $responseData['NUMERO_LINEA'])
+                ->where('DOOR_NUOR', '=', $responseData['ORDEN'])
+                ->update([
+                    'DOOR_CODO' => $documentCode,
+                    'DOOR_DESC' => $responseData['DESCRIPCION'],
+                    'DOOR_TIPO' => $responseData['TIPO'],
+                    'DOOR_USMO' => $user,
+                    'DOOR_FEMO' => Carbon::now()->timezone('America/Mazatlan')->toDateTimeString(),
+                    'DOOR_FEAR' => DB::raw('CURRENT_TIMESTAMP')
+                ]);
+        } catch (\Throwable $th) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_UPD002: Ocurrió un error al ingresar los registros.", [], 401);
+        }
+
+        if ( !$validateUpdate ) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_UPD003: No se pudo ingresar los registros.", [], 401);
+        }
+
+        DB::commit();
+        return $this->responseController->makeResponse(false, "ÉXITO: Registro de Documento Exitoso");
+    }
+
+    public function deleteDocumentOrder(Request $request) {
+        $valitador = Validator::make($request->all(), [
+            'ID_DOCUMENTO' => 'required|integer',
+            'NUMERO_LINEA' => 'required|string',
+            'USUARIO' => 'required|string'
+        ]);
+        if ($valitador->fails()) {
+            return $this->responseController->makeResponse(
+                true,
+                "ERR_DOCUMENT_ORDER_DEL000: Se encontraron uno o más errores.",
+                $this->responseController->makeErrors($valitador->errors()->messages()),
+                401
+            );
+        }
+        DB::beginTransaction();
+        $responseData = $request->all();
+        try {
+            $user = $this->encController->decrypt($responseData['USUARIO']);
+        } catch (\Throwable $th) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_DEL001: Ocurrió un error al desencriptar los datos.", [], 401);
+        }
+
+        $arrDelete = [
+            'DOOR_ESTA' => 'Eliminado',
+            'DOOR_USMO' => $user,
+            'DOOR_FEMO' => Carbon::now()->timezone('America/Mazatlan')->toDateTimeString(),
+            'DOOR_FEAR' => DB::raw('CURRENT_TIMESTAMP')
+        ];
+
+        try {
+            $validateDelete = DB::table('S002V01TDOOR')
+                ->where('DOOR_IDDO', '=', $responseData['ID_DOCUMENTO'])
+                ->where('DOOR_NULI', '=', $responseData['NUMERO_LINEA'])
+                ->update($arrDelete);
+        } catch (\Throwable $th) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_DEL002: Ocurrió un error al modificar los registros.", [], 401);
+        }
+
+        if ( !$validateDelete ) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "ERR_DOCUMENT_ORDER_DEL003: No se pudo modificar los registros.", [], 401);
+        }
+
+        DB::commit();
+        return $this->responseController->makeResponse(false, "ÉXITO: Eliminación de Documento Exitoso");
+    }
+}

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

@@ -12,8 +12,7 @@ class ResourcesController extends Controller
     }
 
 
-    public function formatSecuence($cont, $length)
-    {
+    public function formatSecuence($cont, $length){
         $longigud = strlen($cont);
         $aumentar = $length - $longigud;
         $contador = '';
@@ -129,41 +128,266 @@ class ResourcesController extends Controller
         }
     }
 
+    public function saveDocument($documentBase, $pathSave, $nameDocument, $typeDocument, $line) {
+        try {
+            // Se obtiene la ruta en donde se guardará el archivo
+            $routeSaveDocument = "/app/public/$pathSave";
+            // Se obtiene la ruta completa del archivo a guardar
+            $pathRoute = storage_path().$routeSaveDocument;
+
+            // Se pregunta si la ruta del archivo a guardar existe
+            if ( !is_dir($pathRoute) ) {
+                // Si no existe, entonces se intentará crear la ruta del archivo
+                $arrResponseCreate = $this->createRouteSave($routeSaveDocument);
+                // Si no se pudo crear la ruta del archivo, entonces regresa una respuesta negativa
+                if ($arrResponseCreate['error']) {
+                    return $arrResponseCreate;
+                }else{
+                    // Si si se pudo crear la ruta, entonces se vuelve a ejecutar el método
+                    return $this->saveDocument($documentBase, $pathSave, $nameDocument, $typeDocument, $line);
+                }
+            } else {
+                // Se abré la ruta del archivo
+                $management = opendir($pathRoute);
+                // Se inicializa el número de secuencia
+                $secuenceNumber = 0;
+                // Se obtienen todos los archivos guardados en la ruta donde se guardará el archivo
+                while ( ($file = readdir($management)) !== false) {
+                    if ($file != '.' && $file != '..') {
+                        // Se va incrementando el número de secuencia según los archivos obtenidos en la ruta
+                        $secuenceNumber++;
+                    }
+                }
+                // Si no se encontró ningún archivo, entonces se inicializa en 1
+                if ( $secuenceNumber === 0 ) {
+                    $secuenceNumber = 1;
+                }
+                // Se obtiene el número de línea en el formato deseado (XX)
+                $lineNumber = $this->formatSecuence($line, 2);
+                // Se obtiene el número de secuencia en el formato deseado (XXXXXX)
+                $secuenceNumber = $this->formatSecuence($secuenceNumber, 6);
+                // Se obtiene la fecha actual en el formato deseado (YYMMDD)
+                $currentDate = date("ymd");
+                // Se obtiene el nombre del documento en el formato deseado (mayuscula y sin espacios en blanco)
+                $nameDocument = strtoupper(str_replace(' ', '_', trim($nameDocument)));
+
+                // Se genera el código del documento
+                $codeDocument = "$lineNumber-$pathSave-$typeDocument-$currentDate-$secuenceNumber-01=$nameDocument";
+
+                // Se obtiene la información del documento en base64
+                $document = explode(',', $documentBase)[1];
+                $document = str_replace(' ', '+', $document);
+
+                try {
+                    // Se guarda el documento en la ruta deseada con el nombre del código generado
+                    $validate = \File::put( storage_path(). $routeSaveDocument . '/' . $codeDocument, base64_decode($document) );
+                } catch (\Throwable $th) {
+                    return [ "error" => true, "msg" =>  "ERR_RESOURCE_DOCUMENT_CRE001: Ocurrió un error al crear la carpeta.", "response" => $th->getMessage() ];
+                }
+
+                // Se valida que se haya guardado correctamente el documento
+                if ( !$validate ) {
+                    return [ "error" => true, "msg" =>  "ERR_RESOURCE_DOCUMENT_CRE002: No se pudo crear la carpeta.", "response" => [] ];
+                }
+
+                // Se envía el código del documento
+                return [ "error" => false, "msg" => "ÉXITO: Documento Creado Exitosamente", "response" => $codeDocument ];
+            }
+        } catch (\Throwable $th) {
+            return [ "error" => true, "msg" =>  "ERR_RESOURCE_DOCUMENT_CRE000: Ocurrió un error al guardar el documento.", "response" => $th->getMessage() ];
+        }
+    }
+
+    public function updateDocument($codeDocument, $documentBase, $pathSave, $nameDocument, $typeDocument, $line) {
+        try {
+            // Se obtiene la ruta en donde se guardará el archivo
+            $routeSaveDocument = "/app/public/$pathSave";
+            // Se obtiene la ruta completa del archivo a guardar
+            $pathRoute = storage_path().$routeSaveDocument;
+
+            // Se pregunta si la ruta del archivo a guardar existe
+            if ( !is_dir($pathRoute) ) {
+                // Si no existe, entonces se intentará crear la ruta del archivo
+                $arrResponseCreate = $this->createRouteSave($routeSaveDocument);
+                // Si no se pudo crear la ruta del archivo, entonces regresa una respuesta negativa
+                if ($arrResponseCreate['error']) {
+                    return $arrResponseCreate;
+                }else{
+                    // Si si se pudo crear la ruta, entonces se vuelve a ejecutar el método
+                    return $this->updateDocument($codeDocument, $documentBase, $pathSave, $nameDocument, $typeDocument, $line);
+                }
+            } else {
+
+                // Se obtiene la escrutura del código
+                $arrResponseStructure = $this->getStrucutreCode( $codeDocument );
+                if ( $arrResponseStructure['error'] ) {
+                    return [ "error" => true, "msg" =>  $arrResponseStructure['msg'], "response" => [] ];
+                }
+                $arrStructureCode = $arrResponseStructure['response'];
+
+                // Se abré la ruta del archivo
+                $routeGetDocument = "/app/public/$pathSave";
+                $management = opendir( storage_path() . $routeGetDocument );
+
+                // Se inicializa la variable si el archivo es encontrado
+                $isFound = false;
+                // Se obtienen todos los archivos guardados en la ruta donde se guardará el archivo
+                while ( ($file = readdir($management)) !== false) {
+                    $codeDocumentSave = explode('=', $file)[0];
+                    if ($codeDocumentSave == $codeDocument) {
+                        // Se va incrementando el número de secuencia según los archivos obtenidos en la ruta
+                        $isFound = true;
+                    }
+                }
+
+                // Si el documento es encontrado en la base de datos documental, entonces...
+                if ( !$isFound ) {
+                    return [
+                        "error" => true,
+                        "msg" =>  "ERR_RESOURCE_DOCUMENT_UPD001: No se pudo encontrar el documento en la base de datos documental",
+                        "response" => []
+                    ];
+                }
+
+                // Se obtiene el número de línea en el formato deseado (XX)
+                $lineNumber = $arrStructureCode['LINE'];
+                // Se obtiene el número de secuencia en el formato deseado (XXXXXX)
+                $secuenceNumber = $arrStructureCode['SECUENCE'];
+                // Se obtiene la fecha actual en el formato deseado (YYMMDD)
+                $currentDate = $arrStructureCode['DATE'];
+                // Se obtiene el nombre del documento en el formato deseado (mayuscula y sin espacios en blanco)
+                $nameDocument = strtoupper(str_replace(' ', '_', trim($nameDocument)));
+                // Se obtiene la versión del documento y se le incrementa uno más
+                $versionNumber = $this->formatSecuence( intval($arrStructureCode['VERSION']) + 1 , 2);
+
+                // Se genera el código del documento
+                $codeDocument = "$lineNumber-$pathSave-$typeDocument-$currentDate-$secuenceNumber-$versionNumber=$nameDocument";
+                // Se obtiene la información del documento en base64
+                $document = explode(',', $documentBase)[1];
+                $document = str_replace(' ', '+', $document);
+                try {
+                    // Se guarda el documento en la ruta deseada con el nombre del código generado
+                    $validate = \File::put( storage_path() . $routeSaveDocument . '/' . $codeDocument, base64_decode($document) );
+                } catch (\Throwable $th) {
+                    return [ "error" => true, "msg" =>  "ERR_RESOURCE_DOCUMENT_UPD002: Ocurrió un error al crear la carpeta.", "response" => $th->getMessage() ];
+                }
+
+                // Se valida que se haya guardado correctamente el documento
+                if ( !$validate ) {
+                    return [ "error" => true, "msg" =>  "ERR_RESOURCE_DOCUMENT_UPD003: No se pudo crear la carpeta.", "response" => [] ];
+                }
+                // Se envía el código del documento
+                return [ "error" => false, "msg" => "ÉXITO: Documento Creado Exitosamente", "response" => $codeDocument ];
+            }
+        } catch (\Throwable $th) {
+            return [ "error" => true, "msg" =>  "ERR_RESOURCE_DOCUMENT_UPD000: Ocurrió un error al crear la carpeta.", "response" => $th->getMessage() ];
+        }
+    }
+
+    public function nameFormatDocument($nameDocument){
+
+        $nameDocument = str_replace(' ', '_', $nameDocument);
+        $nameDocument = str_replace('-', '', $nameDocument);
+        $nameDocument = str_replace('/', '', $nameDocument);
+        $nameDocument = str_replace('\\', '', $nameDocument);
+        $nameDocument = str_replace('@', '', $nameDocument);
+        $nameDocument = str_replace('&', '', $nameDocument);
+        $nameDocument = str_replace('|', '', $nameDocument);
+        $nameDocument = str_replace('!', '', $nameDocument);
+        $nameDocument = str_replace('"', '', $nameDocument);
+        $nameDocument = str_replace("'", '', $nameDocument);
+        $nameDocument = str_replace('%', '', $nameDocument);
+        $nameDocument = str_replace('(', '', $nameDocument);
+        $nameDocument = str_replace(')', '', $nameDocument);
+        $nameDocument = str_replace('+', '', $nameDocument);
+        $nameDocument = str_replace('+', '', $nameDocument);
+        $nameDocument = str_replace('[', '', $nameDocument);
+        $nameDocument = str_replace(']', '', $nameDocument);
+        $nameDocument = str_replace('?', '', $nameDocument);
+        $nameDocument = str_replace('¿', '', $nameDocument);
+        $nameDocument = str_replace('!', '', $nameDocument);
+        $nameDocument = str_replace('#', '', $nameDocument);
+        $nameDocument = str_replace('$', '', $nameDocument);
+        $nameDocument = str_replace(':', '', $nameDocument);
+        $nameDocument = str_replace('{', '', $nameDocument);
+        $nameDocument = str_replace('}', '', $nameDocument);
+        $nameDocument = str_replace('°', '', $nameDocument);
+        $nameDocument = str_replace('¬', '', $nameDocument);
+        $nameDocument = str_replace('=', '', $nameDocument);
+
+        return $nameDocument;
+    }
+
+    private function getStrucutreCode($codeDocument) {
+        $arrCodeDocument = explode('-', $codeDocument);
+        if ( count($arrCodeDocument) < 6) {
+            return [ "error" => true, "msg" =>  "ERR_RESOURCE_STRUCTURE_CRE000: No se pudo generar la estructura del código", "response" => [] ];
+        }
+
+        $arrStructure = [
+            'LINE' => $arrCodeDocument[0],
+            'MODULE' => $arrCodeDocument[1],
+            'TYPE' => $arrCodeDocument[2],
+            'DATE' => $arrCodeDocument[3],
+            'SECUENCE' => $arrCodeDocument[4],
+            'VERSION' => $arrCodeDocument[5],
+        ];
+
+        return [
+            "error" => false,
+            "msg" =>  "",
+            "response" => $arrStructure
+        ];
+
+    }
+
     private $index = 0;
 
     public function createRouteSave ($path, $savePath = '') {
         try {
+            // Se obtiene cada carpeta de la ruta en un arreglo
             $arrPath = explode('/',$path);
+            // Se obtiene la cantidad de iteraciones que tendrá el método
             $maxPath = count($arrPath);
 
+            // Si existe el direcctorio y aún se tienen iteraciones disponibles, entonces...
             if ( is_dir( storage_path() . '/' . $savePath . $arrPath[$this->index] ) && $maxPath > $this->index){
+                // Se agrega una nueva carpeta a la ruta
                 $savePath .= $arrPath[$this->index] . '/';
+                // Se incrementa el index para buscar en el arreglo de rutas
                 $this->index += 1;
+                // Si aún hay iteraciones disponibles, entonces se ejecutará el método de nuevo
                 if ($maxPath > $this->index) {
                     $this->createRouteSave($path, $savePath);
                 }
+            // Si no exite la carpeta, entonces
             } else if (  ! is_dir( storage_path() . '/' . $savePath . $arrPath[$this->index] ) ) {
-
                 try {
+                    // Se creará la carpeta
                     if ( ! mkdir( storage_path() . '/' . $savePath . $arrPath[$this->index] ) ) {
+
+                        // En caso de haber un error en la creación de la carpeta, mandará una respuesta negativa
                         return [
                             "error" => true,
-                            "msg" => "ERR_PATH_CRE000: Ocurrió un error al crear la carpeta " . $arrPath[$this->index],
+                            "msg" => "ERR_RESOURCE_ROUTE_CRE001: Ocurrió un error al crear la carpeta " . $arrPath[$this->index],
                             "response" => storage_path() . '/' . $savePath . $arrPath[$this->index]
                         ];
                     }else{
+                        // Si la carpeta se pudo crear de manera exitosa, entonces se ejecutará el método de nuevo
                         $this->createRouteSave($path, $savePath);
                     }
                 } catch (\Throwable $th) {
                     return [
                         "error" => true,
-                        "msg" => "ERR_PATH_CRE001: Ocurrió un error inesperado al crear la ruta del archivo",
+                        "msg" => "ERR_RESOURCE_ROUTE_CRE002: Ocurrió un error inesperado al crear la ruta del archivo",
                         "response" => $th->getMessage()
                     ];
                 }
 
             }
+            // En caso de crear todas las carpetas, se reinicia las iteraciones a 0
             $this->index = 0;
+            // Se envía una respuesta positiva
             return [
                 "error" => false,
                 "msg" => "Creación de Ruta Exitosa",
@@ -172,7 +396,7 @@ class ResourcesController extends Controller
         } catch (\Throwable $th) {
             return [
                 "error" => true,
-                "msg" => "ERR_PATH_CRE002: Ocurrió un error inesperado al generar la ruta del archivo",
+                "msg" => "ERR_RESOURCE_ROUTE_CRE000: Ocurrió un error inesperado al generar la ruta del archivo",
                 "response" => $th->getMessage()
             ];
         }

+ 151 - 146
sistema-mantenimiento-back/routes/api.php

@@ -23,6 +23,9 @@ use App\Http\Controllers\SymptomController;
 use App\Http\Controllers\StockController;
 use App\Http\Controllers\LocateController;
 use App\Http\Controllers\CountriesController;
+use App\Http\Controllers\DocumentManagementController;
+use App\Http\Controllers\OrderDocumentsController;
+
 
 /*
 |--------------------------------------------------------------------------
@@ -137,168 +140,170 @@ Route::middleware(['jwt.auth'])->group(function(){
     //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 ('document-management/get-type-documents/{line}', [DocumentManagementController::class, 'getTypesDocuments']);
 
+    // Module (FUNCIONALES)
+    Route::get ('modulo/consulta/{line}',             [ModuleController::class, 'getModule']);
+    Route::get ('modulo/consulta-disponibles/{line}', [ModuleController::class, 'getModuleAviable']);
+    Route::post('modulo/registra',                    [ModuleController::class, 'registerModule']);
+    Route::post('modulo/modifica',                    [ModuleController::class, 'updateModule']);
+    Route::post('modulo/elimina',                     [ModuleController::class, 'deleteModule']);
 
+    // Module: Dynamic Forms
+    Route::get ('form/consulta/{line}',                       [DynamicFormController::class, 'getForm']);
+    Route::get ('form/consulta-form-workflow/{line}',         [DynamicFormController::class, 'getFormWorkflow']);
+    Route::get ('form/consulta-data/{codigo_form}/{line}',    [DynamicFormController::class, 'getDataForm']);
+    Route::post('form/registra',                              [DynamicFormController::class, 'createForm']);
+    Route::post('form/elimina',                               [DynamicFormController::class, 'deleteForm']);
+    Route::post('form/consulta-select',                       [DynamicFormController::class, 'getDataSelect']);
+    Route::put ('form/modifica/{codigo_form}',                [DynamicFormController::class, 'updateForm']);
+    Route::put ('form/enable-form-workflow/{codigo_form}',    [DynamicFormController::class, 'enableFormWorkflow']);
+    Route::get ('generic/generate-form/{codigo_form}/{line}', [GenericController::class,     'generateForm']);
+    Route::post('generic/generate-table',                     [GenericController::class,     'generateTable']);
+    Route::post('generic/registra-form',                      [GenericController::class,     'registerForm']);
+    Route::post('generic/modifica-form',                      [GenericController::class,     'updateForm']);
+    Route::put ('generic/consulta-info/{id_form}',            [GenericController::class,     'getDataInfo']);
+    Route::get ('tabla-db/consulta/{line}',                   [TableController::class,       'getTables']);
+    Route::post('tabla-db/registra',                          [TableController::class,       'createTable']);
+    Route::post('tabla-db/modifica',                          [TableController::class,       'updateTable']);
+    Route::post('tabla-db/consulta-columnas',                 [TableController::class,       'getColumnsByTables']);
+    Route::post('tabla-db/consulta-columnas-extra',           [TableController::class,       'getColumnsExtra']);
+    Route::post('tabla-db/modifica-state',                    [TableController::class,       'updateStateTables']);
 
+    // Module: GEAD
+    Route::get ('acquisition-management/acquisition/get-families-and-subfamilies/{line}',           [ArtitleController::class,        'getFamiliesAndSubfamilies']);
+    Route::post('acquisition-management/acquisition/register-family',                               [ArtitleController::class,        'registerFamily']);
+    Route::post('acquisition-management/acquisition/register-subfamily',                            [ArtitleController::class,        'registerSubfamily']);
+    Route::get ('acquisition-management/acquisition/get-units/{line}',                              [ArtitleController::class,        'getUnits']);
+    Route::get ('acquisition-management/acquisition/get-units-actives/{line}',                      [ArtitleController::class,        'getUnitsActives']);
+    Route::post('acquisition-management/acquisition/register-unit',                                 [ArtitleController::class,        'registerUnit']);
+    Route::get ('acquisition-management/acquisition/get-artitle/{line}',                            [ArtitleController::class,        'getArtitles']);
+    Route::get ('acquisition-management/acquisition/get-all-artitle/{line}',                        [ArtitleController::class,        'getAllArtitles']);
+    Route::post('acquisition-management/acquisition/get-artitle-by-provider',                       [ArtitleController::class,        'getArtitlesByProvider']);
+    Route::post('acquisition-management/acquisition/get-artitle-by-id',                             [ArtitleController::class,        'getArtitleById']);
+    Route::get ('acquisition-management/acquisition/get-artitle-by-information/{information}/{line}',[ArtitleController::class,        'getArtitleByInformation']);
+    Route::post('acquisition-management/acquisition/register-artitle',                              [ArtitleController::class,        'registerArtitles']);
+    Route::post('acquisition-management/acquisition/update-artitle',                                [ArtitleController::class,        'updateArtitles']);
+    Route::post('acquisition-management/acquisition/delete-artitle',                                [ArtitleController::class,        'deleteArtitle']);
+    Route::post('acquisition-management/acquisition/generate-artitles',                             [ArtitleController::class,        'generateArtitles']);
+    Route::post('acquisition-management/acquisition/create-request-line',                           [RequestLineController::class,    'createRequestLine']);
+    Route::get ('acquisition-management/acquisition/get-all-request-lines/{line}',                  [RequestLineController::class,    'getAllRequestLines']);
+    Route::get ('acquisition-management/acquisition/get-request-line/{encIdRequestLine}/{line}',    [RequestLineController::class,    'getRequestLine']);
+    Route::post('acquisition-management/acquisition/cancel-request-line',                           [RequestLineController::class,    'cancelRequestLine']);
+    Route::post('acquisition-management/acquisition/update-state-request-line',                     [RequestLineController::class,    'updateStatusRequestLine']);
+    Route::post('acquisition-management/acquisition/register-order',                                [OrderController::class,          'createOrder']);
+    Route::post('acquisition-management/acquisition/update-state-order',                            [OrderController::class,          'updateStateHistory']);
+    Route::post('acquisition-management/acquisition/reorder-artitles',                              [OrderController::class,          'reorderArtitles']);
+    Route::get ('acquisition-management/acquisition/get-orders/{line}',                             [OrderController::class,          'getOrders']);
+    Route::get ('acquisition-management/acquisition/get-order-by-number/{order}/{provider}/{line}', [OrderController::class,          'getOrderByNumber']);
+    Route::get ('acquisition-management/acquisition/get-documents-by-order/{order}/{line}',         [OrderDocumentsController::class, 'getDocumentByOrder']);
+    Route::post('acquisition-management/acquisition/register-document-order',                       [OrderDocumentsController::class, 'registerDocumentOrder']);
+    Route::post('acquisition-management/acquisition/update-document-order',                         [OrderDocumentsController::class, 'updateDocumentOrder']);
+    Route::post('acquisition-management/acquisition/delete-document-order',                         [OrderDocumentsController::class, 'deleteDocumentOrder']);
 
 
-});
+    Route::get ('acquisition-management/provider/get-all-provider/{line}',                       [ProviderController::class, 'getAllProvider']);
+    Route::get ('acquisition-management/provider/get-provider-actives/{line}',                   [ProviderController::class, 'getProvidersActives']);
+    Route::get ('acquisition-management/provider/get-provider-by-number/{provider}/{line}',      [ProviderController::class, 'getProvidersByNumber']);
+    Route::post('acquisition-management/provider/register-provider',                             [ProviderController::class, 'registerProvider']);
+    Route::post('acquisition-management/provider/update-provider',                               [ProviderController::class, 'updateProvider']);
+    Route::post('acquisition-management/provider/delete-provider',                               [ProviderController::class, 'deleteProvider']);
+    Route::post('acquisition-management/provider/get-provider-by-artitle',                       [ProviderController::class, 'getProviderByArtitle']);
 
-// Module (FUNCIONALES)
-Route::get ('modulo/consulta/{line}',             [ModuleController::class, 'getModule']);
-Route::get ('modulo/consulta-disponibles/{line}', [ModuleController::class, 'getModuleAviable']);
-Route::post('modulo/registra',                    [ModuleController::class, 'registerModule']);
-Route::post('modulo/modifica',                    [ModuleController::class, 'updateModule']);
-Route::post('modulo/elimina',                     [ModuleController::class, 'deleteModule']);
+    Route::get ('acquisition-management/dispatch/get-dispatch/{line}',                       [DispatchController::class, 'getDispatch']);
+    Route::get ('acquisition-management/dispatch/get-dispatch-active/{line}',                [DispatchController::class, 'getDispatchActive']);
+    Route::post('acquisition-management/dispatch/register-dispatch',                         [DispatchController::class, 'registerDispatch']);
+    Route::post('acquisition-management/dispatch/update-dispatch',                           [DispatchController::class, 'updateDispatch']);
+    Route::post('acquisition-management/dispatch/delete-dispatch',                           [DispatchController::class, 'deleteDispatch']);
 
-// Module: Dynamic Forms
-Route::get ('form/consulta/{line}',                       [DynamicFormController::class, 'getForm']);
-Route::get ('form/consulta-form-workflow/{line}',         [DynamicFormController::class, 'getFormWorkflow']);
-Route::get ('form/consulta-data/{codigo_form}/{line}',    [DynamicFormController::class, 'getDataForm']);
-Route::post('form/registra',                              [DynamicFormController::class, 'createForm']);
-Route::post('form/elimina',                               [DynamicFormController::class, 'deleteForm']);
-Route::post('form/consulta-select',                       [DynamicFormController::class, 'getDataSelect']);
-Route::put ('form/modifica/{codigo_form}',                [DynamicFormController::class, 'updateForm']);
-Route::put ('form/enable-form-workflow/{codigo_form}',    [DynamicFormController::class, 'enableFormWorkflow']);
-Route::get ('generic/generate-form/{codigo_form}/{line}', [GenericController::class,     'generateForm']);
-Route::post('generic/generate-table',                     [GenericController::class,     'generateTable']);
-Route::post('generic/registra-form',                      [GenericController::class,     'registerForm']);
-Route::post('generic/modifica-form',                      [GenericController::class,     'updateForm']);
-Route::put ('generic/consulta-info/{id_form}',            [GenericController::class,     'getDataInfo']);
-Route::get ('tabla-db/consulta/{line}',                   [TableController::class,       'getTables']);
-Route::post('tabla-db/registra',                          [TableController::class,       'createTable']);
-Route::post('tabla-db/modifica',                          [TableController::class,       'updateTable']);
-Route::post('tabla-db/consulta-columnas',                 [TableController::class,       'getColumnsByTables']);
-Route::post('tabla-db/consulta-columnas-extra',           [TableController::class,       'getColumnsExtra']);
-Route::post('tabla-db/modifica-state',                    [TableController::class,       'updateStateTables']);
+    // Module: ANFA
+    Route::get ('failure-analysis/get-catalog-failure/{line}', [CatalogFailureController::class,  'getFailures']);
+    Route::post('failure-analysis/register-catalog-failure',   [CatalogFailureController::class,  'registerFailures']);
+    Route::post('failure-analysis/update-catalog-failure',     [CatalogFailureController::class,  'updateFailures']);
+    Route::post('failure-analysis/delete-catalog-failure',     [CatalogFailureController::class,  'deleteFailures']);
+    Route::get ('failure-analysis/get-failure/{line}',         [FailureController::class,         'getFault']);
+    Route::post('failure-analysis/get-failure-by-equipment',   [FailureController::class,         'getFaultByEquipment']);
+    Route::post('failure-analysis/register-failure',           [FailureController::class,         'registerFault']);
+    Route::post('failure-analysis/update-failure',             [FailureController::class,         'updateFault']);
+    Route::post('failure-analysis/delete-failure',             [FailureController::class,         'deleteFault']);
+    Route::get ('failure-analysis/get-catalog-measures/{line}',[CatalogMeasuresController::class, 'getMeasures']);
+    Route::post('failure-analysis/register-catalog-measures',  [CatalogMeasuresController::class, 'registerMeasures']);
+    Route::post('failure-analysis/update-catalog-measures',    [CatalogMeasuresController::class, 'updateMeasures']);
+    Route::post('failure-analysis/delete-catalog-measures',    [CatalogMeasuresController::class, 'deleteMeasures']);
+    Route::get ('failure-analysis/get-symptom/{line}',         [SymptomController::class,         'getSymptom']);
+    Route::post('failure-analysis/register-symptom',           [SymptomController::class,         'registerSymptom']);
+    Route::post('failure-analysis/update-symptom',             [SymptomController::class,         'updateSymptom']);
+    Route::post('failure-analysis/delete-symptom',             [SymptomController::class,         'deleteSymptom']);
 
-// Module: GEAD
-Route::get ('acquisition-management/acquisition/get-families-and-subfamilies/{line}',           [ArtitleController::class,  'getFamiliesAndSubfamilies']);
-Route::post('acquisition-management/acquisition/register-family',                               [ArtitleController::class,  'registerFamily']);
-Route::post('acquisition-management/acquisition/register-subfamily',                            [ArtitleController::class,  'registerSubfamily']);
-Route::get ('acquisition-management/acquisition/get-units/{line}',                              [ArtitleController::class,  'getUnits']);
-Route::get ('acquisition-management/acquisition/get-units-actives/{line}',                      [ArtitleController::class,  'getUnitsActives']);
-Route::post('acquisition-management/acquisition/register-unit',                                 [ArtitleController::class,  'registerUnit']);
-Route::get ('acquisition-management/acquisition/get-artitle/{line}',                            [ArtitleController::class,  'getArtitles']);
-Route::get ('acquisition-management/acquisition/get-all-artitle/{line}',                        [ArtitleController::class,  'getAllArtitles']);
-Route::post('acquisition-management/acquisition/get-artitle-by-provider',                       [ArtitleController::class,  'getArtitlesByProvider']);
-Route::post('acquisition-management/acquisition/get-artitle-by-id',                             [ArtitleController::class,  'getArtitleById']);
-Route::get('acquisition-management/acquisition/get-artitle-by-information/{information}/{line}',[ArtitleController::class,  'getArtitleByInformation']);
-Route::post('acquisition-management/acquisition/register-artitle',                              [ArtitleController::class,  'registerArtitles']);
-Route::post('acquisition-management/acquisition/update-artitle',                                [ArtitleController::class,  'updateArtitles']);
-Route::post('acquisition-management/acquisition/delete-artitle',                                [ArtitleController::class,  'deleteArtitle']);
-Route::post('acquisition-management/acquisition/generate-artitles',                             [ArtitleController::class,  'generateArtitles']);
-Route::post('acquisition-management/acquisition/create-request-line',                           [RequestLineController::class,    'createRequestLine']);
-Route::get ('acquisition-management/acquisition/get-all-request-lines/{line}',                  [RequestLineController::class,    'getAllRequestLines']);
-Route::get ('acquisition-management/acquisition/get-request-line/{encIdRequestLine}/{line}',    [RequestLineController::class,    'getRequestLine']);
-Route::post('acquisition-management/acquisition/cancel-request-line',                           [RequestLineController::class,    'cancelRequestLine']);
-Route::post('acquisition-management/acquisition/update-state-request-line',                     [RequestLineController::class,    'updateStatusRequestLine']);
-Route::post('acquisition-management/acquisition/register-order',                                [OrderController::class,    'createOrder']);
-Route::post('acquisition-management/acquisition/update-state-order',                            [OrderController::class,    'updateStateHistory']);
-Route::post('acquisition-management/acquisition/reorder-artitles',                              [OrderController::class,    'reorderArtitles']);
-Route::get ('acquisition-management/acquisition/get-orders/{line}',                             [OrderController::class,    'getOrders']);
-Route::get ('acquisition-management/acquisition/get-order-by-number/{order}/{provider}/{line}', [OrderController::class,    'getOrderByNumber']);
+    // Module: GEIN
+    Route::post('inventory-management/register-stock', [StockController::class, 'createArtitle']);
 
+    // Localidad
+    Route::get ('locate/get-locate-by-cp/{cp}', [LocateController::class, 'getLocateByCP']);
 
-Route::get ('acquisition-management/provider/get-all-provider/{line}',                       [ProviderController::class, 'getAllProvider']);
-Route::get ('acquisition-management/provider/get-provider-actives/{line}',                   [ProviderController::class, 'getProvidersActives']);
-Route::get ('acquisition-management/provider/get-provider-by-number/{provider}/{line}',      [ProviderController::class, 'getProvidersByNumber']);
-Route::post('acquisition-management/provider/register-provider',                             [ProviderController::class, 'registerProvider']);
-Route::post('acquisition-management/provider/update-provider',                               [ProviderController::class, 'updateProvider']);
-Route::post('acquisition-management/provider/delete-provider',                               [ProviderController::class, 'deleteProvider']);
-Route::post('acquisition-management/provider/get-provider-by-artitle',                       [ProviderController::class, 'getProviderByArtitle']);
+    // Module: GPRS
+    Route::controller(SubcontractController::class)->prefix('/subcontract')->group(function () {
+        Route::get('/consult/{line_number}',                                'getConsultOfSubcontratists');
+        Route::put('/inactive-subcontratist/{id_subcontratist}',            'updateToInactiveStatus');
+        Route::put('/active-subcontratist/{id_subcontratist}',              'updateToActiveStatus');
+        Route::get('/subcontratists/{line_number}',                         'getAllSubcontratists');
+        Route::get('/active-subcontratists/{line_number}',                  'getActiveSubcontratists');
+        Route::post('/',                                                    'storeSubcontratist');
+        Route::get('/subcontratist/{id_subcontratist}/{line_number}',       'getSubcontratistById');
+        Route::put('/{id_subcontratist}',                                   'updateSubcontratist');
+        Route::get('/contracts/subcontratists/{line_number}',               'getContractsOfEverySubcontratist');
+        Route::get('/contracts/history/{id_subcontratist}/{line_number}',   'getContractsBySubcontratist');
+        Route::get('/countries/{line_number}',                              'getCountries');
+        Route::post('/downoload-info-excel',                                'downoloadSubcontractInfoOnExcel');
+        Route::post('/downoload-info-pdf',                                  'downoloadSubcontractInfoOnPdf');
+    });
 
-Route::get ('acquisition-management/dispatch/get-dispatch/{line}',                       [DispatchController::class, 'getDispatch']);
-Route::get ('acquisition-management/dispatch/get-dispatch-active/{line}',                [DispatchController::class, 'getDispatchActive']);
-Route::post('acquisition-management/dispatch/register-dispatch',                         [DispatchController::class, 'registerDispatch']);
-Route::post('acquisition-management/dispatch/update-dispatch',                           [DispatchController::class, 'updateDispatch']);
-Route::post('acquisition-management/dispatch/delete-dispatch',                           [DispatchController::class, 'deleteDispatch']);
+    Route::controller(EmployeeController::class)->prefix('/employee')->group(function () {
+        Route::get('/consult/{line_number}',                                'getConsultOfEmployees');
+        Route::get('/user-avaible/{id_employee}/{line_number}',             'getAvaibleUsers');
+        Route::get('/last-documents/{id_employee}/{line_number}',           'getLastDocumentsByEmployee');
+        Route::get('/documents/{id_employee}/{line_number}',                'getDocumentsByEmployee');
+        Route::get('/orders/{id_employee}/{line_number}',                   'getInterventionsByEmployee');
+        Route::put('/inactive-employee/{id_employee}',                      'updateToInactiveStatus');
+        Route::put('/active-employee/{id_employee}',                        'updateToActiveStatus');
+        Route::post('/',                                                    'storeEmployee');
+        Route::get('/{id_employee}/{line_number}',                          'getEmployeeById');
+        Route::get('/{line_number}',                                        'getAllEmployees');
+        Route::get('/contracts/employees/{line_number}',                    'getContractsOfEveryEmployee');
+        Route::get('/contracts/history/{id_employee}/{line_number}',        'getDetailsOfContractsByEmployee');
+        Route::post('/downoload-details-excel',                             'downoloadEmployeeInfoOnExcel');
+        Route::post('/downoload-details-pdf',                               'downoloadEmployeeInfoOnPdf');
+        Route::post('/{id_employee}',                                       'updateEmployee'); # Se cambia el metodo PUT a POST por problema en form-data con archivos
+    });
 
-// Module: ANFA
-Route::get ('failure-analysis/get-catalog-failure/{line}', [CatalogFailureController::class,  'getFailures']);
-Route::post('failure-analysis/register-catalog-failure',   [CatalogFailureController::class,  'registerFailures']);
-Route::post('failure-analysis/update-catalog-failure',     [CatalogFailureController::class,  'updateFailures']);
-Route::post('failure-analysis/delete-catalog-failure',     [CatalogFailureController::class,  'deleteFailures']);
-Route::get ('failure-analysis/get-failure/{line}',         [FailureController::class,         'getFault']);
-Route::post('failure-analysis/get-failure-by-equipment',   [FailureController::class,         'getFaultByEquipment']);
-Route::post('failure-analysis/register-failure',           [FailureController::class,         'registerFault']);
-Route::post('failure-analysis/update-failure',             [FailureController::class,         'updateFault']);
-Route::post('failure-analysis/delete-failure',             [FailureController::class,         'deleteFault']);
-Route::get ('failure-analysis/get-catalog-measures/{line}',[CatalogMeasuresController::class, 'getMeasures']);
-Route::post('failure-analysis/register-catalog-measures',  [CatalogMeasuresController::class, 'registerMeasures']);
-Route::post('failure-analysis/update-catalog-measures',    [CatalogMeasuresController::class, 'updateMeasures']);
-Route::post('failure-analysis/delete-catalog-measures',    [CatalogMeasuresController::class, 'deleteMeasures']);
-Route::get ('failure-analysis/get-symptom/{line}',         [SymptomController::class,         'getSymptom']);
-Route::post('failure-analysis/register-symptom',           [SymptomController::class,         'registerSymptom']);
-Route::post('failure-analysis/update-symptom',             [SymptomController::class,         'updateSymptom']);
-Route::post('failure-analysis/delete-symptom',             [SymptomController::class,         'deleteSymptom']);
+    Route::controller(InterventionController::class)->prefix('/intervention')->group(function () {
+        Route::get('/consult/{line_number}',                                  'getConsultOfInterventions');
+        Route::get('/detail/{id_intervention}/{line_number}',                 'getDetailsOfInterventionsById');
+        Route::get('/contract/consult/{line_number}',                         'getConsultOfContracts');
+        Route::get('/contract/{id_intervention}/{line_number}',               'getContractById');
+        Route::post('/contract',                                              'storeContract');
+        Route::get('/contract/{line_number}',                                 'getAllContracts');
+    });
 
-// Module: GEIN
-Route::post('inventory-management/register-stock', [StockController::class, 'createArtitle']);
+    Route::controller(WorkTeamController::class)->prefix('/workteam')->group(function () {
+        Route::get('/{line_number}',                                          'getConsultOfWorkteams');
+        Route::get('/active-teams/{line_number}',                             'getActiveWorkteams');
+        Route::get('/{id_workteam}/{line_number}',                            'getWorkteamById');
+        Route::get('/details/{id_workteam}/{line_number}',                    'getDetailsOfWorkteamById');
+        Route::get('/workteam-members/{id_workteam}/{line_number}',           'getMembersOfWorkteamById');
+        Route::put('/inactive-workteam/{id_workteam}',                        'updateToInactiveStatus');
+        Route::put('/active-workteam/{id_workteam}',                          'updateToActiveStatus');
+        Route::post('/',                                                      'storeWorkteam');
+        Route::put('/{id_workteam}',                                          'updateWorkteam');
+    });
 
-// Localidad
-Route::get ('locate/get-locate-by-cp/{cp}', [LocateController::class, 'getLocateByCP']);
+    Route::controller(CountriesController::class)->prefix('/country')->group(function () {
+        Route::get('/postal-code-data/{postal_code}/{line_number}',          'getDataByPostalCode');
+        Route::get('/{line_number}',                                         'getCountries');
+        Route::get('/suburb-by-postal-code/{postal_code}/{line_number}',     'getSuburbByPostalCode');
+    });
 
-// Module: GPRS
-Route::controller(SubcontractController::class)->prefix('/subcontract')->group(function () {
-    Route::get('/consult/{line_number}',                                'getConsultOfSubcontratists');
-    Route::put('/inactive-subcontratist/{id_subcontratist}',            'updateToInactiveStatus');
-    Route::put('/active-subcontratist/{id_subcontratist}',              'updateToActiveStatus');
-    Route::get('/subcontratists/{line_number}',                         'getAllSubcontratists');
-    Route::get('/active-subcontratists/{line_number}',                  'getActiveSubcontratists');
-    Route::post('/',                                                    'storeSubcontratist');
-    Route::get('/subcontratist/{id_subcontratist}/{line_number}',       'getSubcontratistById');
-    Route::put('/{id_subcontratist}',                                   'updateSubcontratist');
-    Route::get('/contracts/subcontratists/{line_number}',               'getContractsOfEverySubcontratist');
-    Route::get('/contracts/history/{id_subcontratist}/{line_number}',   'getContractsBySubcontratist');
-    Route::get('/countries/{line_number}',                              'getCountries');
-    Route::post('/downoload-info-excel',                                'downoloadSubcontractInfoOnExcel');
-    Route::post('/downoload-info-pdf',                                  'downoloadSubcontractInfoOnPdf');
-});
 
-Route::controller(EmployeeController::class)->prefix('/employee')->group(function () {
-    Route::get('/consult/{line_number}',                                'getConsultOfEmployees');
-    Route::get('/user-avaible/{id_employee}/{line_number}',             'getAvaibleUsers');
-    Route::get('/last-documents/{id_employee}/{line_number}',           'getLastDocumentsByEmployee');
-    Route::get('/documents/{id_employee}/{line_number}',                'getDocumentsByEmployee');
-    Route::get('/orders/{id_employee}/{line_number}',                   'getInterventionsByEmployee');
-    Route::put('/inactive-employee/{id_employee}',                      'updateToInactiveStatus');
-    Route::put('/active-employee/{id_employee}',                        'updateToActiveStatus');
-    Route::post('/',                                                    'storeEmployee');
-    Route::get('/{id_employee}/{line_number}',                          'getEmployeeById');
-    Route::get('/{line_number}',                                        'getAllEmployees');
-    Route::get('/contracts/employees/{line_number}',                    'getContractsOfEveryEmployee');
-    Route::get('/contracts/history/{id_employee}/{line_number}',        'getDetailsOfContractsByEmployee');
-    Route::post('/downoload-details-excel',                             'downoloadEmployeeInfoOnExcel');
-    Route::post('/downoload-details-pdf',                               'downoloadEmployeeInfoOnPdf');
-    Route::post('/{id_employee}',                                       'updateEmployee'); # Se cambia el metodo PUT a POST por problema en form-data con archivos
-});
 
-Route::controller(InterventionController::class)->prefix('/intervention')->group(function () {
-    Route::get('/consult/{line_number}',                                  'getConsultOfInterventions');
-    Route::get('/detail/{id_intervention}/{line_number}',                 'getDetailsOfInterventionsById');
-    Route::get('/contract/consult/{line_number}',                         'getConsultOfContracts');
-    Route::get('/contract/{id_intervention}/{line_number}',               'getContractById');
-    Route::post('/contract',                                              'storeContract');
-    Route::get('/contract/{line_number}',                                 'getAllContracts');
-});
 
-Route::controller(WorkTeamController::class)->prefix('/workteam')->group(function () {
-    Route::get('/{line_number}',                                          'getConsultOfWorkteams');
-    Route::get('/active-teams/{line_number}',                             'getActiveWorkteams');
-    Route::get('/{id_workteam}/{line_number}',                            'getWorkteamById');
-    Route::get('/details/{id_workteam}/{line_number}',                    'getDetailsOfWorkteamById');
-    Route::get('/workteam-members/{id_workteam}/{line_number}',           'getMembersOfWorkteamById');
-    Route::put('/inactive-workteam/{id_workteam}',                        'updateToInactiveStatus');
-    Route::put('/active-workteam/{id_workteam}',                          'updateToActiveStatus');
-    Route::post('/',                                                      'storeWorkteam');
-    Route::put('/{id_workteam}',                                          'updateWorkteam');
 });
-
-Route::controller(CountriesController::class)->prefix('/country')->group(function () {
-    Route::get('/postal-code-data/{postal_code}/{line_number}',          'getDataByPostalCode');
-    Route::get('/{line_number}',                                         'getCountries');
-    Route::get('/suburb-by-postal-code/{postal_code}/{line_number}',     'getSuburbByPostalCode');
-});
-
-