<?php

use App\Http\Controllers\DelayAnalysisController;
use App\Http\Controllers\EmployeeController;
use App\Http\Controllers\OrderReceptionController;
use App\Http\Controllers\PartialDeliveriesController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

use App\Http\Controllers\ModuleController;
use App\Http\Controllers\DynamicFormController;
use App\Http\Controllers\GenericController;
use App\Http\Controllers\TableController;
use App\Http\Controllers\ArtitleController;
use App\Http\Controllers\ProviderController;
use App\Http\Controllers\OrderController;
use App\Http\Controllers\RequestLineController;
use App\Http\Controllers\DispatchController;
use App\Http\Controllers\FailureListController;
use App\Http\Controllers\FailureLogController;
use App\Http\Controllers\CatalogMeasuresController;
use App\Http\Controllers\SymptomListController;
use App\Http\Controllers\StockController;
use App\Http\Controllers\LocateController;
use App\Http\Controllers\DocumentManagementController;
use App\Http\Controllers\OrderDocumentsController;
use App\Http\Controllers\IssueTrackingController;
use App\Http\Controllers\InvoiceControlController;
use App\Http\Controllers\CatalogController;
use App\Http\Controllers\PaymentMethodController;


/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

Route::post("/login",                                                                   "App\Http\Controllers\LoginController@login");
Route::post("/login-tmp",                                                               "App\Http\Controllers\LoginController@loginTmp");
Route::post("/pass",                                                                    "App\Http\Controllers\LoginController@createPasword");
Route::post("/verify-token",                                                            "App\Http\Controllers\LoginController@verifyToken");
Route::post("/short-encryption",                                                        "App\Http\Controllers\LoginController@shortEncryption");
Route::get("/download-file/{token}/{idUser}/{line}",                                    "App\Http\Controllers\DocumentManagementController@downloadFile");                  //
Route::get("/print-order-details/{idOrder}/{idUser}/{line}",                            "App\Http\Controllers\PreventiveMaintenanceController@printOrderDetails");          //

Route::middleware(['jwt.auth'])->group(function(){
    //Endpoints generales
    Route::get("/get-modules/{id}/{line}",                                              "App\Http\Controllers\UsersProfilesController@getModules");                         //Obtiene todos los módulos registrados en el sistema
    Route::get("/get-module/{idModule}/{id}/{line}",                                    "App\Http\Controllers\UsersProfilesController@getModule");                          //Obtiene un módulo a través de su ID
    Route::get("/get-submodule/{idMod}/{idSub}/{id}/{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-submodules/{idMod}/{id}/{line}",                                   "App\Http\Controllers\SystemAdministratorController@getSubmodules");                //Obtiene todos los submódulos pertenecientes a algún 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::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-actions/{id}/{idUser}/{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-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-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::post("/set-last-connection",                                                 "App\Http\Controllers\SystemAdministratorController@setLastConnection");            //
    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",                                                        "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::get("/get-tax-information/{line}",                                           "App\Http\Controllers\SystemAdministratorController@getTaxInformation");            //Actualiza el estado de un servicio web
    Route::post("/update-tax-information",                                              "App\Http\Controllers\SystemAdministratorController@saveTaxInformation");           //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-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-work-orders-by-month/{month}/{year}/{idUser}/{line}",              "App\Http\Controllers\PreventiveMaintenanceController@getWorkOrdersByMonth");       //
    Route::get("/get-active-orders/{idUser}/{line}",                                    "App\Http\Controllers\PreventiveMaintenanceController@getActiveOrders");            //
    Route::get("/get-work-orders-by-day/{day}/{month}/{year}/{idUser}/{line}",          "App\Http\Controllers\PreventiveMaintenanceController@getWorkOrdersByDay");         //
    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/{status}/{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::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\EmployeeController@getConsultOfEmployees");
    Route::get("/employee/consult-for-leader/{idEmployee}/{idUser}/{line}",             "App\Http\Controllers\EmployeeController@getConsultOfEmployeesForLeader");
    Route::get("/employee/only/{idEmployee}/{idUser}/{line}",                           "App\Http\Controllers\EmployeeController@getEmployeeById");
    Route::get("/employee/contracts/employees/{idUser}/{line}",                         "App\Http\Controllers\EmployeeController@getContractsOfEveryEmployee");
    Route::get("/employee/contracts/history/{idEmployee}/{idUser}/{line}",              "App\Http\Controllers\EmployeeController@getDetailsOfContractsByEmployee");
    Route::get("/employee/orders/{idEmployee}/{idUser}/{line}",                         "App\Http\Controllers\EmployeeController@getInterventionsByEmployee");
    Route::get("/employee/consult-for-leader/{idEmployee}/{idUser}/{line}",             "App\Http\Controllers\EmployeeController@getConsultOfEmployeesForLeader");
    Route::get("/subcontract/consult/{idUser}/{line}",                                  "App\Http\Controllers\SubcontractController@getConsultOfSubcontratists");
    Route::get("/subcontract/only/{idSub}/{idUser}/{line}",                             "App\Http\Controllers\SubcontractController@getSubcontratistById");
    Route::get("/subcontract/contracts/subcontratists/{idUser}/{line}",                 "App\Http\Controllers\SubcontractController@getContractsOfEverySubcontratist");
    Route::get("/subcontract/contracts/history/{idSubcontratist}/{idUser}/{line}",      "App\Http\Controllers\SubcontractController@getContractsBySubcontratist");
    Route::get("/subcontract/download-info-excel/{idSubcontratist}/{idUser}/{line}",    "App\Http\Controllers\SubcontractController@downloadSubcontractInfoOnExcel");
    Route::get("/subcontract/download-info-pdf/{idSubcontratist}/{idUser}/{line}",      "App\Http\Controllers\SubcontractController@downloadSubcontractInfoOnPdf");
    Route::get("/workteam/consult/{idUser}/{line}",                                     "App\Http\Controllers\WorkTeamController@getConsultOfWorkteams");
    Route::get("/workteam/only/{workteam}/{idUser}/{line}",                             "App\Http\Controllers\WorkTeamController@getWorkteamById");
    Route::get("/workteam/members/{workteam}/{idUser}/{line}",                          "App\Http\Controllers\WorkTeamController@getMembersOfWorkteamById");
    Route::get("/intervention/contract/consult/{idUser}/{line}",                        "App\Http\Controllers\InterventionController@getConsultOfContracts");
    Route::get("/intervention/consult/{idUser}/{line}",                                 "App\Http\Controllers\InterventionController@getConsultOfInterventions");
    Route::post("/employee/register",                                                   "App\Http\Controllers\EmployeeController@storeEmployee");
    Route::post("/employee/update",                                                     "App\Http\Controllers\EmployeeController@updateEmployee");
    Route::post("/employee/delete",                                                     "App\Http\Controllers\EmployeeController@updateToInactiveStatus");
    Route::post("/subcontract/register",                                                "App\Http\Controllers\SubcontractController@storeSubcontratist");
    Route::post("/subcontract/update",                                                  "App\Http\Controllers\SubcontractController@updateSubcontratist");
    Route::post("/subcontract/delete",                                                  "App\Http\Controllers\SubcontractController@updateToInactiveStatus");
    Route::post("/workteam/register",                                                   "App\Http\Controllers\WorkTeamController@storeWorkteam");
    Route::post("/workteam/update",                                                     "App\Http\Controllers\WorkTeamController@updateWorkteam");
    Route::post("/workteam/delete",                                                     "App\Http\Controllers\WorkTeamController@updateToInactiveStatus");
    Route::post("/intervention/contract/register",                                      "App\Http\Controllers\InterventionController@storeContract");
    //Módulo gestión de equipamientos
    Route::get("/family/consult/{idUser}/{line}",                                       "App\Http\Controllers\EquipmentManagementController@getFamilies");
    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/{idUser}/{line}",                            "App\Http\Controllers\EquipmentManagementController@getPendigEquipments");
    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/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/only/{code}/{idUser}/{line}",                        "App\Http\Controllers\EquipmentManagementController@getEquipmentDetails");
    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");
    //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::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");
});

// Module (FUNCIONALES)
    Route::get ('modulo/consulta/{user}/{line}',                                        [ModuleController::class, 'getModule']);
    Route::get ('modulo/consulta-disponibles/{user}/{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/{user}/{line}',                                          [DynamicFormController::class, 'getForm']);
    Route::get ('form/consulta-form-workflow/{user}/{line}',                            [DynamicFormController::class, 'getFormWorkflow']);
    Route::get ('form/consulta-data/{codigo_form}/{user}/{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}/{user}/{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/{user}/{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/{user}/{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/{user}/{line}',                                    [ArtitleController::class, 'getUnits']);
    Route::get ('acquisition-management/acquisition/get-units-actives/{user}/{line}',                            [ArtitleController::class, 'getUnitsActives']);
    Route::post('acquisition-management/acquisition/register-unit',                                              [ArtitleController::class, 'registerUnit']);
    Route::get ('acquisition-management/acquisition/get-artitle/{user}/{line}',                                  [ArtitleController::class, 'getArtitles']);
    Route::get ('acquisition-management/acquisition/get-all-artitle/{user}/{line}',                              [ArtitleController::class, 'getAllArtitles']);
    Route::get ('acquisition-management/acquisition/get-artitle-by-provider/{artitle}/{provider}/{user}/{line}', [ArtitleController::class, 'getArtitlesByProvider']);
    Route::get ('acquisition-management/acquisition/get-artitle-by-id/{idArtitle}/{user}/{line}',                [ArtitleController::class, 'getArtitleById']);
    Route::get ('acquisition-management/acquisition/get-artitle-by-information/{information}/{user}/{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/{user}/{line}',                        [RequestLineController::class, 'getAllRequestLines']);
    Route::get ('acquisition-management/acquisition/get-request-line/{encIdRequestLine}/{user}/{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/delete-artitle-by-request-line',                             [RequestLineController::class, 'deleteArtitleByRequestLine']);
    Route::get ('acquisition-management/acquisition/get-artitles-by-request-line/{requestLine}/{user}/{line}',   [RequestLineController::class, 'getArtitlesByRequestLine']);

    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/{user}/{line}',                                      [OrderController::class, 'getOrders']);
    Route::get ('acquisition-management/acquisition/get-order-by-number/{order}/{provider}/{user}/{line}',          [OrderController::class, 'getOrderByNumber']);
    Route::get ('acquisition-management/acquisition/get-last-state-order/{order}/{user}/{line}',                    [OrderController::class, 'getLastSateOrder']);
    Route::get ('acquisition-management/acquisition/generate-sheet-acquisition-xls/{encOrderNumber}/{user}/{line}', [OrderController::class, 'generateSheetAcquisitionXLS']); 
    Route::get ('acquisition-management/acquisition/generate-sheet-acquisition-pdf/{encOrderNumber}/{user}/{line}', [OrderController::class, 'generateSheetAcquisitionPDF']); 
    
    Route::get ('acquisition-management/acquisition/generate-sheet-divisa-xls/{encOrderNumber}/{user}/{line}',      [OrderController::class, 'generateSheetDivisaXLS']); 
    Route::get ('acquisition-management/acquisition/generate-sheet-divisa-pdf/{encOrderNumber}/{user}/{line}',      [OrderController::class, 'generateSheetDivisaPDF']); 
    
    Route::get ('acquisition-management/acquisition/generate-sheet-invoice-xls/{encOrderNumber}/{user}/{line}',     [OrderController::class, 'generateSheetInvoiceXLS']); 
    Route::get ('acquisition-management/acquisition/generate-sheet-invoice-pdf/{encOrderNumber}/{user}/{line}',     [OrderController::class, 'generateSheetInvoicePDF']); 


    Route::get ('acquisition-management/acquisition/get-documents-order/{user}/{line}',                         [OrderDocumentsController::class, 'getDocument']);
    Route::get ('acquisition-management/acquisition/get-documents-by-request-line/{requestLine}/{user}/{line}', [OrderDocumentsController::class, 'getDocumentByRequestLine']);
    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/acquisition/get-artitles-by-provider/{provider}/{user}/{line}',            [ProviderController::class, 'getArtitlesByProvider']);      // Revisar
    Route::post('acquisition-management/acquisition/download-artitles-by-provider',                                [ProviderController::class, 'downloadArtitlesByProvider']);
    Route::get ('acquisition-management/provider/get-all-provider/{user}/{line}',                                  [ProviderController::class, 'getAllProvider']);
    Route::get ('acquisition-management/provider/get-provider-actives/{user}/{line}',                              [ProviderController::class, 'getProvidersActives']);
    Route::get ('acquisition-management/provider/get-provider-by-number/{provider}/{user}/{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']);
    Route::get ('acquisition-management/provider/generate-sheet-provider-xls/{provider}/{typeUser}/{user}/{line}', [ProviderController::class, 'generateSheetProviderXLS']);
    Route::get ('acquisition-management/provider/generate-sheet-provider-pdf/{provider}/{typeUser}/{user}/{line}', [ProviderController::class, 'generateSheetProviderPDF']);

    Route::post('acquisition-management/acquisition/report-problem-order',                       [IssueTrackingController::class, 'reportProblem']);
    Route::get ('acquisition-management/dispatch/get-issue-tracking/{user}/{line}',              [IssueTrackingController::class, 'getIssueTracking']);
    Route::post('acquisition-management/dispatch/resolution-issue-tracking',                     [IssueTrackingController::class, 'resolutionIssueTracking']);
    Route::get ('acquisition-management/dispatch/get-partial-deliveries/{user}/{line}',          [PartialDeliveriesController::class, 'getPartialDeliveries']);
    Route::get ('acquisition-management/dispatch/get-delay-analysis/{user}/{line}',              [DelayAnalysisController::class, 'getDelayAnalysis']);
    Route::get ('acquisition-management/dispatch/get-dispatch/{user}/{line}',                    [DispatchController::class, 'getDispatch']);
    Route::get ('acquisition-management/dispatch/get-dispatch-active/{user}/{line}',             [DispatchController::class, 'getDispatchActive']);
    Route::get ('acquisition-management/dispatch/get-dispatch-by-id/{idDispatch}/{user}/{line}', [DispatchController::class, 'getDispatchById']);
    
    Route::post('acquisition-management/dispatch/register-dispatch',                                            [DispatchController::class, 'registerDispatch']);
    Route::get ('acquisition-management/dispatch/get-order-reception/{user}/{line}',                            [OrderReceptionController::class, 'getOrderReception']);
    Route::get ('acquisition-management/dispatch/get-information-artitle-equipment/{orderNumber}/{idInformation}/{user}/{line}',                            [OrderReceptionController::class, 'getInformartionArtitleToEquipment']);
    Route::get ('acquisition-management/dispatch/get-list-artitle-reception/{orderNumber}/{user}/{line}',       [OrderReceptionController::class, 'getListArtitleReception']);
    Route::get ('acquisition-management/dispatch/generate-sheet-delivery-list-xls/{orderNumber}/{user}/{line}', [OrderReceptionController::class, 'generateSheetDeliveryListXLS']);
    Route::get ('acquisition-management/dispatch/generate-sheet-delivery-list-pdf/{orderNumber}/{user}/{line}', [OrderReceptionController::class, 'generateSheetDeliveryListPDF']);

    Route::post('acquisition-management/dispatch/update-dispatch',                            [DispatchController::class, 'updateDispatch']);
    Route::post('acquisition-management/dispatch/delete-dispatch',                            [DispatchController::class, 'deleteDispatch']);
    Route::get ('acquisition-management/invoice/get-compare-invoice/{user}/{line}',           [InvoiceControlController::class, 'getCompareInvoice']);
    Route::get ('acquisition-management/invoice/get-invoice-payment/{user}/{line}',           [InvoiceControlController::class, 'getInvoicePayment']);
    Route::get ('acquisition-management/invoice/get-budget-management/{user}/{line}',         [InvoiceControlController::class, 'getBudgetManagement']);
    Route::get ('acquisition-management/invoice/get-invoice-by-id/{idInvoice}/{user}/{line}', [InvoiceControlController::class, 'getInvoiceById']);
    Route::post('acquisition-management/invoice/compare-invoice',                             [InvoiceControlController::class, 'compareInvoice']);

    // Module: ANFA
    Route::get ('failure-analysis/get-list-failure/{user}/{line}',                       [FailureListController::class,  'getFailures']);
    Route::get ('failure-analysis/get-list-failure-actives/{user}/{line}',               [FailureListController::class,  'getFailuresActives']);
    Route::get ('failure-analysis/get-list-failure-by-id/{idFailure}/{user}/{line}',     [FailureListController::class,  'getFailureById']);
    Route::get ('failure-analysis/get-list-failure-by-classification/{idFailure}/{user}/{line}',        [FailureListController::class,  'getFailureListByClassification']);
    Route::post('failure-analysis/register-list-failure',                                [FailureListController::class,  'registerFailures']);
    Route::post('failure-analysis/update-list-failure',                                  [FailureListController::class,  'updateFailures']);
    Route::post('failure-analysis/delete-list-failure',                                  [FailureListController::class,  'deleteFailures']);

    Route::get ('failure-analysis/get-symptoms/{user}/{line}',                              [SymptomListController::class,  'getSymptoms']);
    Route::get ('failure-analysis/get-symptoms-actives/{user}/{line}',                      [SymptomListController::class,  'getSymptomsActives']);
    Route::get ('failure-analysis/get-symptoms-by-equipment/{equipment}/{user}/{line}',     [SymptomListController::class,  'getSymptomsByEquipment']);
    Route::get ('failure-analysis/get-symptom-by-id/{idSymptom}/{user}/{line}',             [SymptomListController::class,  'getSymptomById']);
    Route::post('failure-analysis/register-symptom',                                        [SymptomListController::class,  'registerSymptom']);
    Route::post('failure-analysis/update-symptom',                                          [SymptomListController::class,  'updateSymptom']);
    Route::post('failure-analysis/delete-symptom',                                          [SymptomListController::class,  'deleteSymptom']);

    Route::get ('failure-analysis/get-failure-log/{user}/{line}',                           [FailureLogController::class,  'getFailureLog']);
    Route::get ('failure-analysis/get-history-failure-equipment/{equipment}/{user}/{line}', [FailureLogController::class,  'getHistoryFailureEquipment']);
    Route::get ('failure-analysis/get-details-history-failure-equipment/{failure}/{user}/{line}',   [FailureLogController::class,  'getDetailsHistoryFailureEquipment']);
    Route::get ('failure-analysis/get-equipment-by-failure/{failure}/{user}/{line}',                [FailureLogController::class,  'getEquipmentByFailure']);
    Route::get ('failure-analysis/get-alarm-emission-from-failures/{user}/{line}',                                [FailureLogController::class,  'getAlarmEmissionFromFailures']);
    Route::get ('failure-analysis/generate-sheet-failure-xls/{failure}/{user}/{line}',              [FailureLogController::class,  'generateSheetFailureXLS']);
    Route::get ('failure-analysis/generate-sheet-failure-pdf/{failure}/{user}/{line}',              [FailureLogController::class,  'generateSheetFailurePDF']);

    // Module: COAC
    Route::get ('counters-and-triggers/get-catalog-measures/{user}/{line}',                      [CatalogMeasuresController::class, 'getMeasures']);
    Route::get ('counters-and-triggers/get-catalog-measures-actives/{user}/{line}',              [CatalogMeasuresController::class, 'getMeasuresActives']);
    Route::get ('counters-and-triggers/get-magnitudes/{user}/{line}',                            [CatalogMeasuresController::class, 'getMagnitudes']);
    Route::get ('counters-and-triggers/get-units-by-magnitude/{idMagnitude}/{user}/{line}',      [CatalogMeasuresController::class, 'getUnitsByMagnitude']);
    Route::get ('counters-and-triggers/get-magnitude/{idMagnitude}/{user}/{line}',               [CatalogMeasuresController::class, 'getMagnitude']);
    Route::get ('counters-and-triggers/get-unit/{idMagnitude}/{idUnit}/{user}/{line}',           [CatalogMeasuresController::class, 'getUnit']);
    Route::post('counters-and-triggers/register-catalog-measures',                               [CatalogMeasuresController::class, 'registerMeasures']);
    Route::post('counters-and-triggers/update-catalog-measures',                                 [CatalogMeasuresController::class, 'updateMeasures']);
    Route::post('counters-and-triggers/delete-catalog-measures',                                 [CatalogMeasuresController::class, 'deleteMeasures']);
    Route::post('counters-and-triggers/register-magnitude',                                      [CatalogMeasuresController::class, 'registerMagnitude']);
    Route::post('counters-and-triggers/update-magnitude',                                        [CatalogMeasuresController::class, 'updateMagnitude']);
    Route::post('counters-and-triggers/delete-magnitude',                                        [CatalogMeasuresController::class, 'deleteMagnitude']);

    
    // Module: GEIN
    Route::post('inventory-management/register-artitle-without-order',                  [StockController::class, 'createArtitleWithoutOrder']);

    Route::get ('inventory-management/get-warehouse/{user}/{line}',                         [StockController::class, 'getWarehouse']);
    Route::get ('inventory-management/get-warehouse-by-id/{idWarehouse}/{user}/{line}',     [StockController::class, 'getWarehouseById']);
    Route::get ('inventory-management/get-warehouse-actives/{user}/{line}',                 [StockController::class, 'getWarehouseActives']);
    Route::post('inventory-management/create-warehouse',                                    [StockController::class, 'createWarehouse']);
    Route::put ('inventory-management/update-warehouse/{idWarehouse}',                      [StockController::class, 'updateWarehouse']);
    Route::put ('inventory-management/delete-warehouse/{idWarehouse}',                      [StockController::class, 'deleteWarehouse']);

    Route::get ('inventory-management/get-area-by-warehouse/{idWarehouse}/{user}/{line}',           [StockController::class, 'getAreaByWarehouse']);
    Route::get ('inventory-management/get-area-by-id/{idArea}/{user}/{line}',                       [StockController::class, 'getAreaById']);
    Route::get ('inventory-management/get-area-by-warehouse-actives/{idWarehouse}/{user}/{line}',   [StockController::class, 'getAreaByWarehouseActives']);
    Route::post ('inventory-management/register-area',                                              [StockController::class, 'registerArea']);
    Route::put ('inventory-management/update-area/{idArea}',                                        [StockController::class, 'updateArea']);
    Route::put ('inventory-management/delete-area/{idArea}',                                        [StockController::class, 'deleteArea']);

    Route::get ('inventory-management/get-level-by-area-warehouse/{idWarehouse}/{idArea}/{user}/{line}',            [StockController::class, 'getLevelByAreaWarehouse']);
    Route::get ('inventory-management/get-level-by-id/{idLevel}/{user}/{line}',                                     [StockController::class, 'getLevelById']);
    Route::get ('inventory-management/get-level-by-area-warehouse-actives/{idWarehouse}/{idArea}/{user}/{line}',    [StockController::class, 'getLevelByAreaWarehouseActives']);
    Route::post('inventory-management/register-level',                                                              [StockController::class, 'registerLevel']);
    Route::put ('inventory-management/update-level/{idLevel}',                                                      [StockController::class, 'updateLevel']);
    Route::put ('inventory-management/delete-level/{idLevel}',                                                      [StockController::class, 'deleteLevel']);

    Route::get ('inventory-management/get-zone-by-level-area-warehouse/{idWarehouse}/{idArea}/{idLevel}/{user}/{line}',         [StockController::class, 'getZoneByLevelAreaWarehouse']);
    Route::get ('inventory-management/get-zone-by-id/{idZone}/{user}/{line}',                                                   [StockController::class, 'getZoneById']);
    Route::get ('inventory-management/get-zone-by-level-area-warehouse-actives/{idWarehouse}/{idArea}/{idLevel}/{user}/{line}', [StockController::class, 'getZoneByLevelAreaWarehouseActive']);
    Route::post('inventory-management/register-zone',                                                                           [StockController::class, 'registerZone']);
    Route::put ('inventory-management/update-zone/{idZone}',                                                                    [StockController::class, 'updateZone']);
    Route::put ('inventory-management/delete-zone/{idZone}',                                                                    [StockController::class, 'deleteZone']);
    
    Route::post ('inventory-management/register-to-stock', [StockController::class, 'registerToStock']);
    
    Route::get ('inventory-management/get-current-location-artitles/{user}/{line}',      [StockController::class, 'getCurrentLocationArtitles']);
    Route::get ('inventory-management/get-info-stock/{user}/{line}',      [StockController::class, 'getInfoStock']);

    // Localidad
    Route::get ('catalog/get-payment-method-active/{line_number}',            [CatalogController::class, 'getPaymentMethodActive']);
    Route::get ('catalog/get-tax-regime-active/{line}',                       [CatalogController::class, 'getTaxRegimeActive']);
    Route::get ('catalog/get-coins-active/{line}',                            [CatalogController::class, 'getCatalogCoinsActive']);
    

    
    Route::get ('employee/get-schedule-activities-by-employee/{idEmployee}/{user}/{line}',  [EmployeeController::class, 'getScheduleActivitiesByEmployee']);
    Route::post('employee/register-activity',                                               [EmployeeController::class, 'registerActivity']);
    Route::put ('employee/update-activity/{idActivity}',                                    [EmployeeController::class, 'updateActivity']);
    Route::put ('employee/delete-activity/{idActivity}',                                    [EmployeeController::class, 'deleteActivity']);
    Route::get ('employee/get-schedule-activities-by-activity/{idActivity}/{user}/{line}',  [EmployeeController::class, 'getScheduleActivitiesByActivity']);