From 6a5404819c3b3b2756acf56b08248f4ea3bde8df Mon Sep 17 00:00:00 2001 From: Tesscorp Date: Wed, 15 Jul 2026 19:58:30 -0600 Subject: [PATCH] Initial backup --- .gitignore | 6 + Trimape-backend | 1 + ...03-22_add_hr_person_position_signature.sql | 3 + db_backups/apply_new_survey_schema.sql | 100 + db_backups/create_engineer_ratings_view.sql | 16 + db_backups/sp_get_surveys_by_user.sql | 26 + db_backups/trimape_db_backup_14-07-2026.sql | 2475 +++++++++++++++++ db_backups/trimape_db_backup_2026-03-24.sql | 1843 ++++++++++++ ...trimape_db_backup_after_surveys_schema.sql | 1741 ++++++++++++ .../trimape_db_backup_before_surveys.sql | 1765 ++++++++++++ db_backups/update_survey_answers_sp.sql | 16 + .../update_survey_answers_sp_varchar.sql | 16 + index.html | 28 + package-lock.json | 224 ++ package.json | 5 + update_sp.sql | 184 ++ 16 files changed, 8449 insertions(+) create mode 100644 .gitignore create mode 160000 Trimape-backend create mode 100644 db_backups/2026-03-22_add_hr_person_position_signature.sql create mode 100644 db_backups/apply_new_survey_schema.sql create mode 100644 db_backups/create_engineer_ratings_view.sql create mode 100644 db_backups/sp_get_surveys_by_user.sql create mode 100644 db_backups/trimape_db_backup_14-07-2026.sql create mode 100644 db_backups/trimape_db_backup_2026-03-24.sql create mode 100644 db_backups/trimape_db_backup_after_surveys_schema.sql create mode 100644 db_backups/trimape_db_backup_before_surveys.sql create mode 100644 db_backups/update_survey_answers_sp.sql create mode 100644 db_backups/update_survey_answers_sp_varchar.sql create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 update_sp.sql diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f48e43 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +node_modules/ +dist/ +.env +*.zip +*.tar.gz +*.bak diff --git a/Trimape-backend b/Trimape-backend new file mode 160000 index 0000000..31ce688 --- /dev/null +++ b/Trimape-backend @@ -0,0 +1 @@ +Subproject commit 31ce688b3cb2724079ebf9cfbe468f3aefcbf5a5 diff --git a/db_backups/2026-03-22_add_hr_person_position_signature.sql b/db_backups/2026-03-22_add_hr_person_position_signature.sql new file mode 100644 index 0000000..1f61a23 --- /dev/null +++ b/db_backups/2026-03-22_add_hr_person_position_signature.sql @@ -0,0 +1,3 @@ +ALTER TABLE hr_person + ADD COLUMN position VARCHAR(150) NULL AFTER email, + ADD COLUMN signature_data MEDIUMTEXT NULL AFTER position; diff --git a/db_backups/apply_new_survey_schema.sql b/db_backups/apply_new_survey_schema.sql new file mode 100644 index 0000000..5a657f6 --- /dev/null +++ b/db_backups/apply_new_survey_schema.sql @@ -0,0 +1,100 @@ +-- 1. Eliminar tablas antiguas (El respaldo ya está hecho) +DROP TABLE IF EXISTS surveys_answers; +DROP TABLE IF EXISTS surveys_questions; +DROP TABLE IF EXISTS surveys; + +-- 2. Crear tabla de configuracion de encuestas +CREATE TABLE surveys_questions ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT, + question VARCHAR(255) DEFAULT NULL, + levels INT DEFAULT 5, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; + +-- 3. Crear tabla de respuestas Historicas +CREATE TABLE surveys_answers ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT, + context_id INT DEFAULT NULL, + id_user INT DEFAULT NULL, + rh_name VARCHAR(255) DEFAULT NULL, + snapshot_json JSON DEFAULT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; + +-- 4. Reemplazar Stored Procedure: sp_upsert_survey +DELIMITER $$ +DROP PROCEDURE IF EXISTS sp_upsert_survey$$ +CREATE PROCEDURE sp_upsert_survey( + IN p_id INT, + IN p_surveyType VARCHAR(255), + IN p_title VARCHAR(255), + IN p_checkboxes TEXT, + IN p_openQuestions TEXT, + IN p_ranges JSON +) +BEGIN + -- Limpiamos las preguntas actuales de forma definitiva + TRUNCATE TABLE surveys_questions; + + -- Insertamos las nuevas preguntas iterando sobre el JSON p_ranges + -- El JSON tiene la forma: [{"question": "Pregunta 1", "levels": 5}, ...] + IF p_ranges IS NOT NULL THEN + INSERT INTO surveys_questions (question, levels) + SELECT + JSON_UNQUOTE(JSON_EXTRACT(value, '$.question')), + JSON_UNQUOTE(JSON_EXTRACT(value, '$.levels')) + FROM JSON_TABLE(p_ranges, '$[*]' COLUMNS (value JSON PATH '$')) AS jt; + END IF; + + SELECT 1 AS success, 'Encuesta actualizada correctamente' AS message; +END$$ +DELIMITER ; + +-- 5. Reemplazar Stored Procedure: sp_get_all_surveys +DELIMITER $$ +DROP PROCEDURE IF EXISTS sp_get_all_surveys$$ +CREATE PROCEDURE sp_get_all_surveys() +BEGIN + -- Forzamos la estructura que Vue espera en el frontend: + -- [{ id: 1, docType: 'SERVICE_ORDER', name: 'Encuesta', questions: '[...]' }] + -- En este caso los IDs no importan, agrupamos todo en un único objeto "Virtual". + + SELECT + 1 AS id, + 'Encuesta de Satisfacción' AS title, + 'SERVICE_ORDER' AS surveyType, + IFNULL( + ( + SELECT JSON_ARRAYAGG( + JSON_OBJECT( + 'id', id, + 'typeQuestion', 'ranges', + 'question', question, + 'levels', levels + ) + ) + FROM surveys_questions + ), + '[]' + ) AS questions; +END$$ +DELIMITER ; + +-- 6. Reemplazar Stored Procedure: sp_save_survey_answers +DELIMITER $$ +DROP PROCEDURE IF EXISTS sp_save_survey_answers$$ +CREATE PROCEDURE sp_save_survey_answers( + IN p_surveyId INT, + IN p_rhName VARCHAR(255), + IN p_answers_json JSON +) +BEGIN + -- P_answers_json debe contener la "fotografia" cruda enviada desde frontend + INSERT INTO surveys_answers (context_id, rh_name, snapshot_json) + VALUES (p_surveyId, p_rhName, p_answers_json); + + SELECT 1 AS success; +END$$ +DELIMITER ; diff --git a/db_backups/create_engineer_ratings_view.sql b/db_backups/create_engineer_ratings_view.sql new file mode 100644 index 0000000..f12afa9 --- /dev/null +++ b/db_backups/create_engineer_ratings_view.sql @@ -0,0 +1,16 @@ +CREATE OR REPLACE VIEW engineer_ratings_view AS +SELECT + s.engineer_name, + s.id_user, + COUNT(DISTINCT s.id) AS total_surveys, + ROUND(AVG( (jt.answer / jt.levels) * 5 ), 2) AS average_rating +FROM surveys_answers s +JOIN JSON_TABLE( + s.snapshot_json, + '$[*]' COLUMNS ( + answer DECIMAL(5,2) PATH '$.answer', + levels DECIMAL(5,2) PATH '$.levels' + ) +) jt ON s.snapshot_json IS NOT NULL +WHERE s.id_user IS NOT NULL +GROUP BY s.id_user, s.engineer_name; diff --git a/db_backups/sp_get_surveys_by_user.sql b/db_backups/sp_get_surveys_by_user.sql new file mode 100644 index 0000000..5851358 --- /dev/null +++ b/db_backups/sp_get_surveys_by_user.sql @@ -0,0 +1,26 @@ +DELIMITER // + +DROP PROCEDURE IF EXISTS sp_get_surveys_by_user; +// + +CREATE PROCEDURE sp_get_surveys_by_user(IN p_id_user INT) +BEGIN + SELECT + s.*, + ROUND( + ( + SELECT AVG((jt.answer / jt.levels) * 5) + FROM JSON_TABLE( + s.snapshot_json, + '$[*]' COLUMNS ( + answer DECIMAL(5,2) PATH '$.answer', + levels DECIMAL(5,2) PATH '$.levels' + ) + ) jt + ), 2 + ) AS average_rating + FROM surveys_answers s + WHERE s.id_user = p_id_user; +END // + +DELIMITER ; diff --git a/db_backups/trimape_db_backup_14-07-2026.sql b/db_backups/trimape_db_backup_14-07-2026.sql new file mode 100644 index 0000000..64f10d3 --- /dev/null +++ b/db_backups/trimape_db_backup_14-07-2026.sql @@ -0,0 +1,2475 @@ +/*M!999999\- enable the sandbox mode */ +-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: trimape_db +-- ------------------------------------------------------ +-- Server version 10.11.14-MariaDB-0ubuntu0.24.04.1 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Sequence structure for `folio_seq` +-- + +DROP SEQUENCE IF EXISTS `folio_seq`; +CREATE SEQUENCE `folio_seq` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 nocache nocycle ENGINE=InnoDB; +DO SETVAL(`folio_seq`, 10, 0); + +-- +-- Table structure for table `OSFirmas` +-- + +DROP TABLE IF EXISTS `OSFirmas`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OSFirmas` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `firma_ruta` text DEFAULT NULL, + `nombre_responsable` varchar(255) DEFAULT NULL, + `puesto` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `id_service_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=472 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OSFirmas` +-- + +LOCK TABLES `OSFirmas` WRITE; +/*!40000 ALTER TABLE `OSFirmas` DISABLE KEYS */; +INSERT INTO `OSFirmas` VALUES +(38,'uploads/signatures/signature_0_1774391819353.png','Edgar Diaz Uscanga','INGENIERO DE SERVICIO','2026-03-25 16:38:26',12), +(39,'uploads/signatures/signature_1_1774391819354.png','Guadalupe Herbis','encargada','2026-03-25 16:38:26',12), +(40,'uploads/signatures/signature_2_1774456706593.png','MARIO ALVERTO GARCIA AGUILAR ','SUPERINTENDENTE DE PROYECTOS','2026-03-25 16:38:26',12), +(41,'uploads/signatures/signature_0_1774471563715.png','DANIEL BENITEZ','INGENIERO DE SERVICIO','2026-03-25 20:46:03',13), +(42,'uploads/signatures/signature_1_1774471563715.png','ING. JESUS CHIMEO GARCIA','RESPONSABLE DEL AREA','2026-03-25 20:46:03',13), +(43,'uploads/signatures/signature_2_1774471563716.png','MARIO GARCIA AGUILAR','SUPERINTENDENTE DE SERVICIOS','2026-03-25 20:46:03',13), +(44,'uploads/signatures/signature_0_1774471563715.png','DANIEL BENITEZ','INGENIERO DE SERVICIO','2026-03-25 20:46:43',14), +(45,'uploads/signatures/signature_1_1774471563715.png','ING. JESUS CHIMEO GARCIA','RESPONSABLE DEL AREA','2026-03-25 20:46:43',14), +(46,'uploads/signatures/signature_2_1774471563716.png','MARIO GARCIA AGUILAR','SUPERINTENDENTE DE SERVICIOS','2026-03-25 20:46:43',14), +(47,'uploads/signatures/signature_0_1774471563715.png','DANIEL BENITEZ','INGENIERO DE SERVICIO','2026-03-25 22:11:46',15), +(48,'uploads/signatures/signature_1_1774471563715.png','ING. JESUS CHIMEO GARCIA','RESPONSABLE DEL AREA','2026-03-25 22:11:46',15), +(49,'uploads/signatures/signature_2_1774471563716.png','MARIO GARCIA AGUILAR','SUPERINTENDENTE DE SERVICIOS','2026-03-25 22:11:46',15), +(50,'uploads/signatures/signature_0_1774471563715.png','DANIEL BENITEZ','INGENIERO DE SERVICIO','2026-03-25 22:17:09',16), +(51,'uploads/signatures/signature_1_1774471563715.png','ING. JESUS CHIMEO GARCIA','JEFE DE SERVICIO GENERALES','2026-03-25 22:17:09',16), +(52,'uploads/signatures/signature_2_1774471563716.png','MARIO GARCIA AGUILAR','SUPERINTENDENTE DE SERVICIOS','2026-03-25 22:17:09',16), +(53,'uploads/signatures/signature_0_1774479162872.png','DANIEL BENITEZ','INGENIERO DE SERVICIO','2026-03-25 22:52:42',17), +(54,'uploads/signatures/signature_1_1774479162872.png','MARIO GARCIA AGUILAR','SUPERINTENDENTE DE SERVICIOS','2026-03-25 22:52:42',17), +(56,'uploads/signatures/signature_0_1774479476829.png','prueba','INGENIERO DE SERVICIO','2026-03-25 22:57:56',18), +(57,'uploads/signatures/signature_1_1774479476830.png','preuba 2','RESPONSABLE DE ÁREA','2026-03-25 22:57:56',18), +(59,'uploads/signatures/signature_0_1774479162872.png','DANIEL BENITEZ','INGENIERO DE SERVICIO','2026-03-25 22:59:57',19), +(60,'uploads/signatures/signature_1_1774479162872.png','MARIO GARCIA AGUILAR','SUPERINTENDENTE DE SERVICIOS','2026-03-25 22:59:57',19), +(62,'uploads/signatures/signature_0_1774480041512.png','DANIEL BENITEZ','INGENIERO DE SERVICIO','2026-03-25 23:07:21',20), +(63,'uploads/signatures/signature_1_1774480041513.png','MARIO GARCIA AGUILAR','SUPERINTENDENTE DE SERVICIOS','2026-03-25 23:07:21',20), +(65,'uploads/signatures/signature_0_1774480264029.png','57','INGENIERO DE SERVICIO','2026-03-25 23:11:04',21), +(66,'uploads/signatures/signature_1_1774480264029.png','785','RESPONSABLE DE ÁREA','2026-03-25 23:11:04',21), +(68,'https://api.trimape-app.com/uploads/signatures/signature_0_1774480264029.png','57','INGENIERO DE SERVICIO','2026-03-25 23:12:32',22), +(69,'https://api.trimape-app.com/uploads/signatures/signature_1_1774480264029.png','785','RESPONSABLE DE ÁREA','2026-03-25 23:12:32',22), +(71,'uploads/signatures/signature_0_1774506901949.png','5675765','INGENIERO DE SERVICIO','2026-03-26 06:35:01',23), +(72,'uploads/signatures/signature_1_1774506901950.png','7865','RESPONSABLE DE ÁREA','2026-03-26 06:35:01',23), +(74,'uploads/signatures/signature_0_1774506901949.png','5675765','INGENIERO DE SERVICIO','2026-03-26 06:35:37',24), +(75,'uploads/signatures/signature_1_1774506901950.png','7865','RESPONSABLE DE ÁREA','2026-03-26 06:35:37',24), +(77,'uploads/signatures/signature_0_1774506901949.png','5675765','INGENIERO DE SERVICIO','2026-03-26 06:36:13',25), +(78,'uploads/signatures/signature_1_1774506901950.png','7865','RESPONSABLE DE ÁREA','2026-03-26 06:36:13',25), +(92,'uploads/signatures/signature_0_1774507385697.png','97685','INGENIERO DE SERVICIO','2026-03-26 06:44:15',27), +(93,'uploads/signatures/signature_1_1774507385697.png','98786','RESPONSABLE DE ÁREA','2026-03-26 06:44:15',27), +(104,'uploads/signatures/signature_0_1774508429464.png','5676','INGENIERO DE SERVICIO','2026-03-26 07:01:10',29), +(105,'uploads/signatures/signature_1_1774508429464.png','uiyuir','RESPONSABLE DE ÁREA','2026-03-26 07:01:10',29), +(107,'uploads/signatures/signature_0_1774506901949.png','5675765','INGENIERO DE SERVICIO','2026-03-26 07:36:28',30), +(108,'uploads/signatures/signature_1_1774506901950.png','7865','RESPONSABLE DE ÁREA','2026-03-26 07:36:28',30), +(116,'uploads/signatures/signature_0_1774506901949.png','5675765','INGENIERO DE SERVICIO','2026-03-26 07:45:10',31), +(117,'uploads/signatures/signature_1_1774506901950.png','7865','RESPONSABLE DE ÁREA','2026-03-26 07:45:10',31), +(122,'uploads/signatures/signature_0_1774561857309.png','DANIEL FLORES BENITEZ','INGENIERO DE SERVICIO','2026-03-26 21:50:57',32), +(123,'uploads/signatures/signature_1_1774561857309.png','LIC. INDRA GARCIA ORDUÑA','RESPONSABLE DE ÁREA','2026-03-26 21:50:57',32), +(124,'uploads/signatures/signature_2_1774561857309.png','minusculas','minusculas','2026-03-26 21:50:57',32), +(125,'uploads/signatures/signature_0_1774562175963.png','DANIEL FLOREZ BENITEZ','INGENIERO DE SERVICIO','2026-03-26 21:56:15',33), +(126,'uploads/signatures/signature_1_1774562175963.png','Lic. Indra Gacía Orduña ','RESPONSABLE DE ÁREA','2026-03-26 21:56:15',33), +(128,'uploads/signatures/signature_0_1774562821850.png','minusculas','INGENIERO DE SERVICIO','2026-03-26 22:07:01',34), +(129,'uploads/signatures/signature_1_1774562821851.png','indris patiguis','RESPONSABLE DE ÁREA','2026-03-26 22:07:01',34), +(131,'uploads/signatures/signature_0_1774563044567.png','minusculas','INGENIERO DE SERVICIO','2026-03-26 22:10:44',35), +(132,'uploads/signatures/signature_1_1774563044567.png','minusculas','RESPONSABLE DE ÁREA','2026-03-26 22:10:44',35), +(134,'uploads/signatures/signature_0_1774626721736.png','minusculas','INGENIERO DE SERVICIO','2026-03-27 15:52:01',28), +(135,'uploads/signatures/signature_1_1774626721737.png','minusculas','RESPONSABLE DE ÁREA','2026-03-27 15:52:01',28), +(140,'uploads/signatures/signature_0_1774850722683.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-30 06:10:59',38), +(141,'uploads/signatures/signature_1_1774850722684.png','MARIO PEREZ','RESPONSABLE DE ÁREA','2026-03-30 06:10:59',38), +(143,'uploads/signatures/signature_0_1774851352436.png','6876','INGENIERO DE SERVICIO','2026-03-30 06:15:52',39), +(144,'uploads/signatures/signature_1_1774851352437.png','687','RESPONSABLE DE ÁREA','2026-03-30 06:15:52',39), +(146,'uploads/signatures/signature_0_1774851694926.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-30 06:21:34',40), +(147,'uploads/signatures/signature_1_1774851694926.png','PEDRO PEREZ','RESPONSABLE DE ÁREA','2026-03-30 06:21:34',40), +(149,'uploads/signatures/signature_0_1774852306953.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-30 06:31:46',41), +(150,'uploads/signatures/signature_1_1774852306953.png','PEDRO MARTINEZ','RESPONSABLE DE ÁREA','2026-03-30 06:31:46',41), +(152,'uploads/signatures/signature_0_1774852916261.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-30 06:41:56',42), +(153,'uploads/signatures/signature_1_1774852916261.png','PABLO LOPEZ','RESPONSABLE DE ÁREA','2026-03-30 06:41:56',42), +(155,'uploads/signatures/signature_0_1774900792726.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-30 19:59:52',43), +(156,'uploads/signatures/signature_1_1774900792726.png','MARIO PEREZ','RESPONSABLE DE ÁREA','2026-03-30 19:59:52',43), +(161,'uploads/signatures/signature_0_1774903625081.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-30 20:49:57',37), +(162,'uploads/signatures/signature_1_1774903625081.png','PEDRO PEREZ','RESPONSABLE DE ÁREA','2026-03-30 20:49:57',37), +(167,'uploads/signatures/signature_0_1774507071219.png','56','INGENIERO DE SERVICIO','2026-03-30 21:05:59',26), +(168,'uploads/signatures/signature_1_1774507071219.png','67865','RESPONSABLE DE ÁREA','2026-03-30 21:05:59',26), +(205,'uploads/signatures/signature_0_1775588101762.png','DANIEL FLORES BENITEZ','INGENIERO DE SERVICIO','2026-04-07 19:48:55',44), +(206,'uploads/signatures/signature_1_1775588101762.png','JESUS JIMENEZ','RESPONSABLE DE ÁREA','2026-04-07 19:48:55',44), +(207,'uploads/signatures/signature_2_1775588101763.png','MARIO A. GARCIA AGUILAR','SUPER INTENDENTE DE SERVICIOS','2026-04-07 19:48:55',44), +(208,'uploads/signatures/signature_3_1775588101763.png','LIC. INDRA GARCÍA ORDUÑA','COORDINACIÓN DE PROYECTOS','2026-04-07 19:48:55',44), +(209,'uploads/signatures/signature_0_1775846069431.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-04-10 18:34:29',45), +(210,'uploads/signatures/signature_1_1775846069432.png','MARIO PEREZ','RESPONSABLE DE ÁREA','2026-04-10 18:34:29',45), +(215,'uploads/signatures/signature_0_1775847080662.png','Daniel Flores benitez','INGENIERO DE SERVICIO','2026-04-10 21:32:19',46), +(216,'uploads/signatures/signature_1_1775847080662.png','zajhid aguilar aparicio','RESPONSABLE DE ÁREA','2026-04-10 21:32:19',46), +(217,'uploads/signatures/signature_2_1775847080662.png','Mario garcia aguilar','superintendente ','2026-04-10 21:32:19',46), +(218,'uploads/signatures/signature_0_1777915226543.png','Edgar diaz','INGENIERO DE SERVICIO','2026-05-04 17:20:26',47), +(219,'uploads/signatures/signature_1_1777915226543.png','matro. Carlos ','RESPONSABLE DE ÁREA','2026-05-04 17:20:26',47), +(220,'uploads/signatures/signature_2_1777915226544.png','indra garcia','Admin','2026-05-04 17:20:26',47), +(221,'uploads/signatures/signature_0_1777916207972.png','Edgar diaz uscnga','INGENIERO DE SERVICIO','2026-05-04 17:36:47',48), +(222,'uploads/signatures/signature_1_1777916207972.png','juan carlos','RESPONSABLE DE ÁREA','2026-05-04 17:36:47',48), +(224,'uploads/signatures/signature_0_1777916748364.png','Edgar Díaz ','INGENIERO DE SERVICIO','2026-05-04 17:45:48',49), +(225,'uploads/signatures/signature_1_1777916748364.png','alexander canales','RESPONSABLE DE ÁREA','2026-05-04 17:45:48',49), +(227,'uploads/signatures/signature_0_1778089198200.png','EDGAR DIAZ ','INGENIERO DE SERVICIO','2026-05-06 17:39:58',50), +(228,'uploads/signatures/signature_1_1778089198200.png','NOMBRE DE ALGUIEN DE LA UNIDAD MEDICA','SU PUESTO DR. ING. LO QUE SEA','2026-05-06 17:39:58',50), +(231,'uploads/signatures/signature_0_1778169032378.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-07 15:59:12',51), +(232,'uploads/signatures/signature_1_1778169552847.png','Teresita De Jesus Portillo','Jefa Responsable ','2026-05-07 15:59:12',51), +(234,'uploads/signatures/signature_0_1778170512848.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-07 16:15:12',52), +(235,'uploads/signatures/signature_1_1778170512848.png','Teresita De Jesus Porras Portillo','RESPONSABLE DE ÁREA','2026-05-07 16:15:12',52), +(237,'uploads/signatures/signature_0_1778171652646.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-07 16:34:12',53), +(238,'uploads/signatures/signature_1_1778171652646.png','Teresita De Jesus Porra Portillo','RESPONSABLE DE ÁREA','2026-05-07 16:34:12',53), +(240,'uploads/signatures/signature_0_1778183812642.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-07 19:56:52',54), +(241,'uploads/signatures/signature_1_1778183812642.png','Joaquin Meza Morales','RESPONSABLE DE ÁREA','2026-05-07 19:56:52',54), +(243,'uploads/signatures/signature_0_1778267736218.png','Edgar Miguel Diaz Uscanga ','INGENIERO DE SERVICIO','2026-05-08 19:15:36',57), +(244,'uploads/signatures/signature_1_1778267736218.png','patricia Pérez Gómez','RESPONSABLE DE ÁREA','2026-05-08 19:15:36',57), +(246,'uploads/signatures/signature_0_1778269361938.png','Edgar Miguel Diaz Uscanga ','INGENIERO DE SERVICIO','2026-05-08 19:42:41',58), +(247,'uploads/signatures/signature_1_1778269361938.png','Patricia Pérez Gómez ','RESPONSABLE DE ÁREA','2026-05-08 19:42:41',58), +(249,'uploads/signatures/signature_0_1778271352065.png','Edgar Miguel Diaz Uscanga ','INGENIERO DE SERVICIO','2026-05-08 20:15:52',59), +(250,'uploads/signatures/signature_1_1778271352065.png','Patricia Pérez Gómez ','RESPONSABLE DE ÁREA','2026-05-08 20:15:52',59), +(255,'uploads/signatures/signature_0_1778280566331.png','Edgar Miguel Díaz Uscanga','INGENIERO DE SERVICIO','2026-05-09 17:08:47',60), +(256,'uploads/signatures/signature_1_1778280566332.png','Teresita Pérez Gómez ','RESPONSABLE DE ÁREA','2026-05-09 17:08:47',60), +(258,'uploads/signatures/signature_0_1778350520062.png','Edgar Miguel Diaz Uscanga ','INGENIERO DE SERVICIO','2026-05-09 18:15:20',61), +(259,'uploads/signatures/signature_1_1778350520063.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-09 18:15:20',61), +(261,'uploads/signatures/signature_0_1778351513343.png','Edgar Miguel Díaz Uscanga','INGENIERO DE SERVICIO','2026-05-09 18:31:53',62), +(262,'uploads/signatures/signature_1_1778351513343.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-09 18:31:53',62), +(264,'uploads/signatures/signature_0_1778352919341.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-09 18:55:19',63), +(265,'uploads/signatures/signature_1_1778352919342.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-09 18:55:19',63), +(267,'uploads/signatures/signature_0_1778353839864.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-09 19:10:39',64), +(268,'uploads/signatures/signature_1_1778353839864.png','José Alfonso Rodríguez Padilla ','RESPONSABLE DE ÁREA','2026-05-09 19:10:39',64), +(270,'uploads/signatures/signature_0_1778354642814.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-09 19:24:02',65), +(271,'uploads/signatures/signature_1_1778354642814.png','José Alfonso Rodríguez Padilla ','RESPONSABLE DE ÁREA','2026-05-09 19:24:02',65), +(273,'uploads/signatures/signature_0_1778356068916.png','Edgar Miguel Díaz Uscanga','INGENIERO DE SERVICIO','2026-05-09 19:47:48',66), +(274,'uploads/signatures/signature_1_1778356068916.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-09 19:47:48',66), +(276,'uploads/signatures/signature_0_1778356767324.png','Edgar Miguel Díaz Uscanga','INGENIERO DE SERVICIO','2026-05-09 19:59:27',67), +(277,'uploads/signatures/signature_1_1778356767324.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-09 19:59:27',67), +(279,'uploads/signatures/signature_0_1778357652002.png','Edgar Miguel Díaz Uscanga','INGENIERO DE SERVICIO','2026-05-09 20:14:12',68), +(280,'uploads/signatures/signature_1_1778357652002.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-09 20:14:12',68), +(282,'uploads/signatures/signature_0_1778359210458.png','Edgar Miguel Diaz Uscanga ','INGENIERO DE SERVICIO','2026-05-09 20:40:10',69), +(283,'uploads/signatures/signature_1_1778359210458.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-09 20:40:10',69), +(285,'uploads/signatures/signature_0_1778360897866.png','Eder Miguel Díaz Uscanga','INGENIERO DE SERVICIO','2026-05-09 21:08:17',70), +(286,'uploads/signatures/signature_1_1778360897866.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-09 21:08:17',70), +(288,'uploads/signatures/signature_0_1778362005050.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-09 21:26:45',71), +(289,'uploads/signatures/signature_1_1778362005050.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-09 21:26:45',71), +(291,'uploads/signatures/signature_0_1778362706961.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-09 21:38:26',72), +(292,'uploads/signatures/signature_1_1778362706961.png','José Alfonso Rodríguez Padilla ','RESPONSABLE DE ÁREA','2026-05-09 21:38:26',72), +(294,'uploads/signatures/signature_0_1778430648666.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-10 16:30:48',73), +(295,'uploads/signatures/signature_1_1778430648666.png','José Alfonso Rodríguez Padilla ','RESPONSABLE DE ÁREA','2026-05-10 16:30:48',73), +(297,'uploads/signatures/signature_0_1778431615273.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-10 16:46:55',74), +(298,'uploads/signatures/signature_1_1778431615273.png','José Alfonso Rodríguez Padilla ','RESPONSABLE DE ÁREA','2026-05-10 16:46:55',74), +(300,'uploads/signatures/signature_0_1778433535371.png','Edgar Miguel Díaz Uscanga','INGENIERO DE SERVICIO','2026-05-10 17:18:55',75), +(301,'uploads/signatures/signature_1_1778433535371.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-10 17:18:55',75), +(303,'uploads/signatures/signature_0_1778433976257.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-10 17:26:16',76), +(304,'uploads/signatures/signature_1_1778433976257.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-10 17:26:16',76), +(306,'uploads/signatures/signature_0_1778535582850.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-11 21:39:42',77), +(307,'uploads/signatures/signature_1_1778535582851.png','José Alfonso Rodriguéz Padilla','RESPONSABLE DE ÁREA','2026-05-11 21:39:42',77), +(309,'uploads/signatures/signature_0_1778540076301.png','Edgar Miguel Díaz Uscanga','INGENIERO DE SERVICIO','2026-05-11 22:54:36',78), +(310,'uploads/signatures/signature_1_1778540076301.png','José Alfonso Rodríguez Padilla','RESPONSABLE DE ÁREA','2026-05-11 22:54:36',78), +(312,'uploads/signatures/signature_0_1778551299694.png','Edgar Miguel Díaz Uscanga ','INGENIERO DE SERVICIO','2026-05-12 02:01:39',79), +(313,'uploads/signatures/signature_1_1778551299694.png','Teresita Pérez Gómez ','RESPONSABLE DE ÁREA','2026-05-12 02:01:39',79), +(315,'uploads/signatures/signature_0_1779158660869.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-19 02:44:20',80), +(316,'uploads/signatures/signature_1_1779158660869.png','TERESITA PÉREZ GÓMEZ','RESPONSABLE DE ÁREA','2026-05-19 02:44:20',80), +(318,'uploads/signatures/signature_0_1779299076710.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 17:44:36',81), +(319,'uploads/signatures/signature_1_1779299076711.png','ING. JOSÉ ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 17:44:36',81), +(321,'uploads/signatures/signature_0_1779299293528.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 17:48:13',82), +(322,'uploads/signatures/signature_1_1779299293528.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 17:48:13',82), +(324,'uploads/signatures/signature_0_1779299761750.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 17:56:01',83), +(325,'uploads/signatures/signature_1_1779299761750.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 17:56:01',83), +(327,'uploads/signatures/signature_0_1779299960960.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 17:59:20',84), +(328,'uploads/signatures/signature_1_1779299960960.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 17:59:20',84), +(339,'uploads/signatures/signature_0_1779300446534.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 18:55:19',85), +(340,'uploads/signatures/signature_1_1779300446534.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 18:55:19',85), +(351,'uploads/signatures/signature_0_1779302692015.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 19:49:20',87), +(352,'uploads/signatures/signature_1_1779302692015.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 19:49:20',87), +(354,'uploads/signatures/signature_0_1779306826103.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 19:53:46',88), +(355,'uploads/signatures/signature_1_1779306826103.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 19:53:46',88), +(357,'uploads/signatures/signature_0_1779306994565.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 19:56:34',89), +(358,'uploads/signatures/signature_1_1779306994565.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 19:56:34',89), +(360,'uploads/signatures/signature_0_1779307195243.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 19:59:55',90), +(361,'uploads/signatures/signature_1_1779307195243.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 19:59:55',90), +(363,'uploads/signatures/signature_0_1779307386437.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 20:03:06',91), +(364,'uploads/signatures/signature_1_1779307386437.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 20:03:06',91), +(366,'uploads/signatures/signature_0_1779319190073.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 23:19:50',92), +(367,'uploads/signatures/signature_1_1779319190073.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 23:19:50',92), +(369,'uploads/signatures/signature_0_1779319473543.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 23:24:33',93), +(370,'uploads/signatures/signature_1_1779319473543.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 23:24:33',93), +(372,'uploads/signatures/signature_0_1779319688529.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 23:28:08',94), +(373,'uploads/signatures/signature_1_1779319688529.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 23:28:08',94), +(375,'uploads/signatures/signature_0_1779320106396.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 23:35:06',95), +(376,'uploads/signatures/signature_1_1779320106396.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 23:35:06',95), +(378,'uploads/signatures/signature_0_1779320380824.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 23:39:40',96), +(379,'uploads/signatures/signature_1_1779320380824.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 23:39:40',96), +(381,'uploads/signatures/signature_0_1779320599381.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 23:43:19',97), +(382,'uploads/signatures/signature_1_1779320599381.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 23:43:19',97), +(384,'uploads/signatures/signature_0_1779321023095.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 23:50:23',98), +(385,'uploads/signatures/signature_1_1779321023095.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 23:50:23',98), +(387,'uploads/signatures/signature_0_1779321294355.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-20 23:54:54',99), +(388,'uploads/signatures/signature_1_1779321294356.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-20 23:54:54',99), +(390,'uploads/signatures/signature_0_1779321629906.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 00:00:29',100), +(391,'uploads/signatures/signature_1_1779321629907.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-21 00:00:29',100), +(393,'uploads/signatures/signature_0_1779321982709.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 00:06:22',101), +(394,'uploads/signatures/signature_1_1779321982709.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-21 00:06:22',101), +(396,'uploads/signatures/signature_0_1779322232408.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 00:10:32',102), +(397,'uploads/signatures/signature_1_1779322232408.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-21 00:10:32',102), +(402,'uploads/signatures/signature_0_1779322458863.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 00:15:32',103), +(403,'uploads/signatures/signature_1_1779322458863.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-21 00:15:32',103), +(405,'uploads/signatures/signature_0_1779322954528.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 00:22:34',104), +(406,'uploads/signatures/signature_1_1779322954528.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-21 00:22:34',104), +(408,'uploads/signatures/signature_0_1779390659526.png','EDGARDIAZ','INGENIERO DE SERVICIO','2026-05-21 19:10:59',105), +(409,'uploads/signatures/signature_1_1779390659526.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 19:10:59',105), +(411,'uploads/signatures/signature_0_1779390841489.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 19:14:01',106), +(412,'uploads/signatures/signature_1_1779390841489.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 19:14:01',106), +(414,'uploads/signatures/signature_0_1779390985197.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 19:16:25',107), +(415,'uploads/signatures/signature_1_1779390985197.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 19:16:25',107), +(417,'uploads/signatures/signature_0_1779391132072.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 19:18:52',108), +(418,'uploads/signatures/signature_1_1779391132072.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 19:18:52',108), +(420,'uploads/signatures/signature_0_1779391292004.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 19:21:32',109), +(421,'uploads/signatures/signature_1_1779391292005.png','FERNANDO HERNDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 19:21:32',109), +(423,'uploads/signatures/signature_0_1779395498650.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 20:31:38',110), +(424,'uploads/signatures/signature_1_1779395498650.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 20:31:38',110), +(426,'uploads/signatures/signature_0_1779395690050.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 20:34:50',111), +(427,'uploads/signatures/signature_1_1779395690050.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 20:34:50',111), +(429,'uploads/signatures/signature_0_1779395823361.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 20:37:03',112), +(430,'uploads/signatures/signature_1_1779395823361.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 20:37:03',112), +(432,'uploads/signatures/signature_0_1779395960680.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 20:39:20',113), +(433,'uploads/signatures/signature_1_1779395960681.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 20:39:20',113), +(435,'uploads/signatures/signature_0_1779398342040.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 21:19:02',114), +(436,'uploads/signatures/signature_1_1779398342041.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 21:19:02',114), +(438,'uploads/signatures/signature_0_1779398849244.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-21 21:27:29',115), +(439,'uploads/signatures/signature_1_1779398849244.png','FERNANDO HERNANDEZ RUANO','RESPONSABLE DE ÁREA','2026-05-21 21:27:29',115), +(447,'uploads/signatures/signature_0_1779729399691.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-25 17:48:09',116), +(448,'uploads/signatures/signature_1_1779729399691.png','ING. RICARDO PEREZ ARAIZA','RESPONSABLE DE ÁREA','2026-05-25 17:48:09',116), +(453,'uploads/signatures/signature_0_1779743446994.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-25 21:10:46',118), +(454,'uploads/signatures/signature_1_1779743446994.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-25 21:10:46',118), +(456,'uploads/signatures/signature_0_1779738870935.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-25 21:11:22',117), +(457,'uploads/signatures/signature_1_1779738870936.png','ING. JOSE ALFONSO RODRIGUEZ PADILLA','RESPONSABLE DE ÁREA','2026-05-25 21:11:22',117), +(458,'uploads/signatures/signature_0_1779902904853.png','prueba','INGENIERO DE SERVICIO','2026-05-27 17:28:24',120), +(459,'uploads/signatures/signature_1_1779902904853.png','prueba','RESPONSABLE DE ÁREA','2026-05-27 17:28:24',120), +(461,'uploads/signatures/signature_0_1779300702098.png','manuel perez','INGENIERO DE SERVICIO','2026-05-27 17:53:09',86), +(462,'uploads/signatures/signature_1_1779300702099.png','jose sanchez','RESPONSABLE DE ÁREA','2026-05-27 17:53:09',86), +(467,'uploads/signatures/signature_0_1779908889794.png','EDGAR DIAZ ','INGENIERO DE SERVICIO','2026-05-27 19:08:09',122), +(468,'uploads/signatures/signature_1_1779908889795.png','LUCERO TEXIS AGUILA ','RESPONSABLE DE ÁREA','2026-05-27 19:08:09',122), +(470,'uploads/signatures/signature_0_1779908681202.png','EDGAR DIAZ','INGENIERO DE SERVICIO','2026-05-27 19:08:59',121), +(471,'uploads/signatures/signature_1_1779908681202.png','LUCERO TEXIS AGUILA ','RESPONSABLE DE ÁREA','2026-05-27 19:08:59',121); +/*!40000 ALTER TABLE `OSFirmas` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OSrefacciones` +-- + +DROP TABLE IF EXISTS `OSrefacciones`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OSrefacciones` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `OS_id` bigint(20) unsigned NOT NULL, + `codigo` varchar(255) NOT NULL, + `descripcion` text DEFAULT NULL, + `cantidad` int(11) NOT NULL, + `tipo` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_sheet_tipo` (`OS_id`) +) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OSrefacciones` +-- + +LOCK TABLES `OSrefacciones` WRITE; +/*!40000 ALTER TABLE `OSrefacciones` DISABLE KEYS */; +INSERT INTO `OSrefacciones` VALUES +(30,17,'N/A','N/A',1,'DIAGNOSTIC_SHEET'), +(31,18,'6','5',765,'DIAGNOSTIC_SHEET'), +(32,19,'N/A','N/A',1,'DIAGNOSTIC_SHEET'), +(33,20,'N/A','N/A',1,'DIAGNOSTIC_SHEET'), +(34,21,'786','786',786,'DIAGNOSTIC_SHEET'), +(35,22,'786','786',786,'DIAGNOSTIC_SHEET'), +(36,22,'65','75',67,'DIAGNOSTIC_SHEET'), +(38,23,'89','797',6,'DIAGNOSTIC_SHEET'), +(39,24,'89','797',6,'DIAGNOSTIC_SHEET'), +(40,24,'7856','6',8,'DIAGNOSTIC_SHEET'), +(42,25,'89','797',6,'DIAGNOSTIC_SHEET'), +(43,25,'7856','6',8,'DIAGNOSTIC_SHEET'), +(51,29,'68','786',567,'SERVICE_ORDER'), +(54,29,'8967','96',78,'WARRANTY_SHEET'), +(55,29,'567','65',785,'WARRANTY_SHEET'), +(57,30,'89','797',6,'DIAGNOSTIC_SHEET'), +(58,30,'7856','6',8,'DIAGNOSTIC_SHEET'), +(66,31,'89','797',6,'DIAGNOSTIC_SHEET'), +(67,31,'7856','6',8,'DIAGNOSTIC_SHEET'), +(69,28,'97','65',78,'SERVICE_ORDER'), +(70,28,'678','865',67,'SERVICE_ORDER'), +(72,33,'minusculas REVISANDO','minusculas REVISANDO',1,'DIAGNOSTIC_SHEET'), +(73,32,'minusculas','minusculas',1,'WARRANTY_SHEET'), +(74,34,'minusculas','minusculas',1,'DIAGNOSTIC_SHEET'), +(75,36,'minusculas','minusculas',1,'WARRANTY_SHEET'), +(76,36,'minusculas','minusculas',1,'WARRANTY_SHEET'), +(78,28,'minusculas','minusculas',567,'WARRANTY_SHEET'), +(82,38,'65','7657',76,'DIAGNOSTIC_SHEET'), +(83,38,'976','85765',786,'DIAGNOSTIC_SHEET'), +(85,40,'6876','5765',567,'SERVICE_ORDER'), +(86,40,'79685','67',5,'SERVICE_ORDER'), +(88,41,'214214','martillo',1,'WARRANTY_SHEET'), +(89,41,'2','mangueras',3,'WARRANTY_SHEET'), +(91,42,'67','876',7,'WARRANTY_SHEET'), +(92,42,'678','68',97,'WARRANTY_SHEET'), +(94,37,'1','5765',65,'WARRANTY_SHEET'), +(95,37,'2','354',56,'WARRANTY_SHEET'), +(98,26,'79','76',78,'SERVICE_ORDER'), +(100,86,'979876','658',8,'SERVICE_ORDER'); +/*!40000 ALTER TABLE `OSrefacciones` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OsPhotos` +-- + +DROP TABLE IF EXISTS `OsPhotos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OsPhotos` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `OS_id` int(10) unsigned NOT NULL, + `ruta_foto` varchar(255) NOT NULL, + `tipo` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=63 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OsPhotos` +-- + +LOCK TABLES `OsPhotos` WRITE; +/*!40000 ALTER TABLE `OsPhotos` DISABLE KEYS */; +INSERT INTO `OsPhotos` VALUES +(18,17,'/uploads/photo-1774479162868-252495123.jpeg','DIAGNOSTIC_SHEET','2026-03-25 22:52:42'), +(19,17,'/uploads/photo-1774479162869-38412440.jpeg','DIAGNOSTIC_SHEET','2026-03-25 22:52:42'), +(21,18,'/uploads/photo-1774479476829-431685705.jpg','DIAGNOSTIC_SHEET','2026-03-25 22:57:56'), +(22,19,'/uploads/photo-1774479597243-173955237.JPG','DIAGNOSTIC_SHEET','2026-03-25 22:59:57'), +(23,19,'/uploads/photo-1774479597244-458797004.JPG','DIAGNOSTIC_SHEET','2026-03-25 22:59:57'), +(24,19,'/uploads/photo-1774479597244-388366607.JPG','DIAGNOSTIC_SHEET','2026-03-25 22:59:57'), +(25,19,'/uploads/photo-1774479597244-473033361.JPG','DIAGNOSTIC_SHEET','2026-03-25 22:59:57'), +(26,19,'/uploads/photo-1774479597245-967326513.JPG','DIAGNOSTIC_SHEET','2026-03-25 22:59:57'), +(27,19,'/uploads/photo-1774479597245-560569764.JPG','DIAGNOSTIC_SHEET','2026-03-25 22:59:57'), +(28,19,'/uploads/photo-1774479597246-890616847.JPG','DIAGNOSTIC_SHEET','2026-03-25 22:59:57'), +(29,21,'/uploads/photo-1774480264028-568860649.jpg','DIAGNOSTIC_SHEET','2026-03-25 23:11:04'), +(30,23,'/uploads/photo-1774506901947-286325474.jpg','DIAGNOSTIC_SHEET','2026-03-26 06:35:01'), +(31,29,'/uploads/photo-1774508160047-893476157.jpg','WARRANTY_SHEET','2026-03-26 06:56:00'), +(32,30,'/uploads/photo-1774510588850-706035799.jpg','DIAGNOSTIC_SHEET','2026-03-26 07:36:28'), +(33,31,'/uploads/photo-1774510703019-671650765.jpg','DIAGNOSTIC_SHEET','2026-03-26 07:38:23'), +(34,33,'/uploads/photo-1774562175879-673420606.jpg','DIAGNOSTIC_SHEET','2026-03-26 21:56:15'), +(35,33,'/uploads/photo-1774562175922-557771173.jpg','DIAGNOSTIC_SHEET','2026-03-26 21:56:15'), +(37,32,'/uploads/photo-1774562428454-850173709.jpg','WARRANTY_SHEET','2026-03-26 22:00:28'), +(38,34,'/uploads/photo-1774562821850-362066065.jpg','DIAGNOSTIC_SHEET','2026-03-26 22:07:01'), +(39,36,'/uploads/photo-1774563271280-131550802.jpg','WARRANTY_SHEET','2026-03-26 22:14:31'), +(40,28,'/uploads/photo-1774626721734-479826746.jpg','WARRANTY_SHEET','2026-03-27 15:52:01'), +(41,38,'/uploads/photo-1774850722681-761548194.jpg','DIAGNOSTIC_SHEET','2026-03-30 06:05:22'), +(42,38,'/uploads/photo-1774850722681-896559943.jpg','DIAGNOSTIC_SHEET','2026-03-30 06:05:22'), +(44,41,'/uploads/photo-1774852306952-91820893.jpg','WARRANTY_SHEET','2026-03-30 06:31:46'), +(45,42,'/uploads/photo-1774852916260-183074909.jpg','WARRANTY_SHEET','2026-03-30 06:41:56'), +(46,37,'/uploads/photo-1774903797235-596860395.jpg','WARRANTY_SHEET','2026-03-30 20:49:57'), +(47,37,'/uploads/photo-1774903797236-61888547.jpg','WARRANTY_SHEET','2026-03-30 20:49:57'), +(49,44,'/uploads/photo-1775588101741-965559762.jpeg','DIAGNOSTIC_SHEET','2026-04-07 18:55:01'), +(50,44,'/uploads/photo-1775588101744-643653027.jpeg','DIAGNOSTIC_SHEET','2026-04-07 18:55:01'), +(51,44,'/uploads/photo-1775588101749-774993012.jpeg','DIAGNOSTIC_SHEET','2026-04-07 18:55:01'), +(52,44,'/uploads/photo-1775588101752-982498598.jpeg','DIAGNOSTIC_SHEET','2026-04-07 18:55:01'), +(53,44,'/uploads/photo-1775588101753-258049905.jpeg','DIAGNOSTIC_SHEET','2026-04-07 18:55:01'), +(54,44,'/uploads/photo-1775588101755-574816843.jpeg','DIAGNOSTIC_SHEET','2026-04-07 18:55:01'), +(55,44,'/uploads/photo-1775588101758-59218748.jpeg','DIAGNOSTIC_SHEET','2026-04-07 18:55:01'), +(56,45,'/uploads/photo-1775846069429-262287278.jpg','DIAGNOSTIC_SHEET','2026-04-10 18:34:29'), +(57,45,'/uploads/photo-1775846069429-18135556.jpg','DIAGNOSTIC_SHEET','2026-04-10 18:34:29'), +(59,46,'/uploads/photo-1775847080657-525609941.jpg','DIAGNOSTIC_SHEET','2026-04-10 18:51:20'), +(60,46,'/uploads/photo-1775847080659-88926981.jpg','DIAGNOSTIC_SHEET','2026-04-10 18:51:20'), +(61,46,'/uploads/photo-1775847080660-691744343.jpg','DIAGNOSTIC_SHEET','2026-04-10 18:51:20'), +(62,46,'/uploads/photo-1775847080661-439557533.jpg','DIAGNOSTIC_SHEET','2026-04-10 18:51:20'); +/*!40000 ALTER TABLE `OsPhotos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `adminBudgets` +-- + +DROP TABLE IF EXISTS `adminBudgets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `adminBudgets` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_admin` int(10) unsigned NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `adminBudgets` +-- + +LOCK TABLES `adminBudgets` WRITE; +/*!40000 ALTER TABLE `adminBudgets` DISABLE KEYS */; +/*!40000 ALTER TABLE `adminBudgets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `adminVouchers` +-- + +DROP TABLE IF EXISTS `adminVouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `adminVouchers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `admin_expense_id` int(11) NOT NULL, + `ruta_voucher` varchar(255) NOT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `admin_expense_id` (`admin_expense_id`), + CONSTRAINT `adminVouchers_ibfk_1` FOREIGN KEY (`admin_expense_id`) REFERENCES `admin_expenses` (`expense_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `adminVouchers` +-- + +LOCK TABLES `adminVouchers` WRITE; +/*!40000 ALTER TABLE `adminVouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `adminVouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admin_expenses` +-- + +DROP TABLE IF EXISTS `admin_expenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_expenses` ( + `expense_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_user_id` int(11) NOT NULL, + `concepto` varchar(100) NOT NULL, + `descripcion` text DEFAULT NULL, + `monto` decimal(12,2) NOT NULL, + `ruta_voucher` text DEFAULT NULL, + `fecha` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`expense_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `admin_expenses_ibfk_1` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_expenses` +-- + +LOCK TABLES `admin_expenses` WRITE; +/*!40000 ALTER TABLE `admin_expenses` DISABLE KEYS */; +/*!40000 ALTER TABLE `admin_expenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `budgetVouchers` +-- + +DROP TABLE IF EXISTS `budgetVouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `budgetVouchers` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `budget_id` int(10) unsigned DEFAULT NULL, + `file_path` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `budgetVouchers` +-- + +LOCK TABLES `budgetVouchers` WRITE; +/*!40000 ALTER TABLE `budgetVouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `budgetVouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `check_ins` +-- + +DROP TABLE IF EXISTS `check_ins`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `check_ins` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `service_order_id` int(11) DEFAULT NULL, + `contract_id` int(11) DEFAULT NULL, + `timestamp` timestamp NOT NULL DEFAULT current_timestamp(), + `check_out_at` datetime DEFAULT NULL, + `latitude` decimal(10,8) DEFAULT NULL, + `longitude` decimal(11,8) DEFAULT NULL, + `photo` text NOT NULL, + `check_out_lat` decimal(10,8) DEFAULT NULL, + `check_out_lng` decimal(11,8) DEFAULT NULL, + `check_out_photo` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + KEY `ix_checkins_user_date` (`user_id`,`timestamp`), + KEY `ix_checkins_date` (`timestamp`), + CONSTRAINT `check_ins_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `check_ins` +-- + +LOCK TABLES `check_ins` WRITE; +/*!40000 ALTER TABLE `check_ins` DISABLE KEYS */; +INSERT INTO `check_ins` VALUES +(5,26,NULL,NULL,'2026-03-25 16:07:40',NULL,19.15558900,-96.11330000,'/uploads/photo-1774454860512-659905237.jpg',NULL,NULL,NULL), +(6,29,NULL,NULL,'2026-03-25 16:43:16',NULL,19.15559900,-96.11328800,'/uploads/photo-1774456996878-840002597.jpg',NULL,NULL,NULL), +(7,29,NULL,NULL,'2026-03-26 21:38:49',NULL,19.15561200,-96.11329400,'/uploads/photo-1774561129303-979088265.jpg',NULL,NULL,NULL), +(8,26,NULL,NULL,'2026-03-26 22:05:37',NULL,19.15559300,-96.11329700,'/uploads/photo-1774562737582-808832240.jpg',NULL,NULL,NULL), +(9,30,NULL,NULL,'2026-03-30 06:03:02',NULL,19.20202500,-96.15321300,'/uploads/photo-1774850582315-805606587.jpg',NULL,NULL,NULL), +(10,1,NULL,NULL,'2026-03-30 06:46:29',NULL,19.15070000,-96.17660000,'/uploads/photo-1774853189782-328210962.jpg',NULL,NULL,NULL), +(11,31,NULL,NULL,'2026-03-30 21:55:35',NULL,19.19549400,-96.15114200,'/uploads/photo-1774907735342-412474422.jpg',NULL,NULL,NULL), +(12,29,NULL,NULL,'2026-04-07 18:32:18',NULL,19.15559500,-96.11327900,'/uploads/photo-1775586738915-739640295.jpg',NULL,NULL,NULL), +(13,26,NULL,NULL,'2026-04-10 18:27:49',NULL,19.05290000,-98.17720000,'/uploads/photo-1775845669078-246589461.jpg',NULL,NULL,NULL), +(14,30,NULL,NULL,'2026-04-10 18:33:14',NULL,19.20187900,-96.15328800,'/uploads/photo-1775845994001-334299443.jpg',NULL,NULL,NULL), +(15,29,NULL,NULL,'2026-04-10 18:59:41',NULL,19.15559300,-96.11328600,'/uploads/photo-1775847581081-797269351.jpg',NULL,NULL,NULL), +(16,26,NULL,NULL,'2026-05-04 17:13:18',NULL,19.15565100,-96.11327400,'/uploads/photo-1777914798889-726749062.jpg',NULL,NULL,NULL), +(17,26,NULL,NULL,'2026-05-06 16:10:30',NULL,19.15550700,-96.11339500,'/uploads/photo-1778083830669-209848922.jpg',NULL,NULL,NULL), +(18,32,NULL,NULL,'2026-05-06 18:48:45',NULL,19.15571500,-96.11331200,'/uploads/photo-1778093325189-532709226.jpg',NULL,NULL,NULL), +(19,32,NULL,NULL,'2026-05-07 15:27:55',NULL,19.28340000,-99.15090000,'/uploads/photo-1778167675266-160863883.jpg',NULL,NULL,NULL), +(20,26,NULL,NULL,'2026-05-08 03:42:33',NULL,19.20002500,-96.21265700,'/uploads/photo-1778211753348-222312215.jpg',NULL,NULL,NULL), +(21,32,NULL,NULL,'2026-05-08 18:50:14',NULL,19.35685500,-98.16016200,'/uploads/photo-1778266214263-277564397.jpg',NULL,NULL,NULL), +(22,26,NULL,NULL,'2026-05-08 20:42:47',NULL,19.15571700,-96.11331400,'/uploads/photo-1778272967505-614130381.jpg',NULL,NULL,NULL), +(23,32,NULL,NULL,'2026-05-09 16:33:24',NULL,19.32626700,-98.22850800,'/uploads/photo-1778344404698-844033772.jpg',NULL,NULL,NULL), +(24,29,NULL,NULL,'2026-05-09 16:53:47',NULL,19.15508300,-96.11366200,'/uploads/photo-1778345627973-745462990.jpg',NULL,NULL,NULL), +(25,32,NULL,NULL,'2026-05-10 15:40:10',NULL,19.32531700,-98.22732700,'/uploads/photo-1778427610205-731060939.jpg',NULL,NULL,NULL), +(26,32,NULL,NULL,'2026-05-11 21:31:29',NULL,19.32620300,-98.22864500,'/uploads/photo-1778535089247-441051908.jpg',NULL,NULL,NULL), +(27,32,NULL,NULL,'2026-05-19 01:38:40',NULL,19.05290000,-98.17720000,'/uploads/photo-1779154720398-895859663.jpg',NULL,NULL,NULL), +(28,32,NULL,NULL,'2026-05-19 14:43:28',NULL,19.30907500,-98.24444700,'/uploads/photo-1779201808988-273087796.jpg',NULL,NULL,NULL), +(29,29,NULL,NULL,'2026-05-20 16:06:16',NULL,19.30896300,-98.24440600,'/uploads/photo-1779293176813-404881740.jpg',NULL,NULL,NULL), +(30,29,NULL,NULL,'2026-05-21 19:05:40',NULL,19.29047400,-98.24777600,'/uploads/photo-1779390340023-953687870.jpg',NULL,NULL,NULL), +(31,29,NULL,NULL,'2026-05-25 17:09:18',NULL,19.15508600,-96.11365100,'/uploads/photo-1779728958554-20134381.jpg',NULL,NULL,NULL), +(32,29,NULL,NULL,'2026-05-26 16:17:27',NULL,19.15510400,-96.11363400,'/uploads/photo-1779812247047-451022181.jpg',NULL,NULL,NULL), +(33,29,NULL,NULL,'2026-05-27 18:14:11',NULL,19.51376900,-98.46592900,'/uploads/photo-1779905651456-751208979.jpg',NULL,NULL,NULL), +(34,29,NULL,NULL,'2026-06-02 18:38:21',NULL,19.15500600,-96.11366300,'/uploads/photo-1780425501174-719903236.jpg',NULL,NULL,NULL), +(35,29,NULL,NULL,'2026-06-03 16:35:16',NULL,19.15504900,-96.11366900,'/uploads/photo-1780504516316-135841931.jpg',NULL,NULL,NULL), +(36,29,NULL,NULL,'2026-07-14 14:35:15',NULL,19.15500200,-96.11373300,'/uploads/photo-1784039715092-728410113.jpg',NULL,NULL,NULL); +/*!40000 ALTER TABLE `check_ins` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `clients` +-- + +DROP TABLE IF EXISTS `clients`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `clients` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `rfc` varchar(20) DEFAULT NULL, + `email` varchar(100) DEFAULT NULL, + `phone` varchar(15) DEFAULT NULL, + `address` text DEFAULT NULL, + `company` varchar(100) DEFAULT NULL, + `unit_key` varchar(10) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `clients` +-- + +LOCK TABLES `clients` WRITE; +/*!40000 ALTER TABLE `clients` DISABLE KEYS */; +INSERT INTO `clients` VALUES +(1,'IMSS','ABCD001231XXX','imss@correo.com',NULL,NULL,NULL,NULL,'2026-03-18 02:53:30'), +(2,'CLIENTE TEST','ABCD001231XXX','prueba@gmail.com',NULL,NULL,NULL,NULL,'2026-03-30 20:55:41'), +(3,'WELLDEX','TRI160205CD5','trimape1@gmail.com',NULL,NULL,NULL,NULL,'2026-07-14 14:50:25'); +/*!40000 ALTER TABLE `clients` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `concepts` +-- + +DROP TABLE IF EXISTS `concepts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `concepts` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `quote_id` bigint(20) unsigned NOT NULL, + `concept` varchar(255) NOT NULL, + `quantity` decimal(12,2) NOT NULL DEFAULT 0.00, + `unit_price` decimal(12,2) NOT NULL DEFAULT 0.00, + `tax_rate` decimal(5,4) NOT NULL DEFAULT 0.1600, + `subtotal` decimal(14,2) GENERATED ALWAYS AS (`quantity` * `unit_price`) STORED, + `iva` decimal(14,2) GENERATED ALWAYS AS (round(`quantity` * `unit_price` * `tax_rate`,2)) STORED, + `total` decimal(14,2) GENERATED ALWAYS AS (round(`quantity` * `unit_price` + `quantity` * `unit_price` * `tax_rate`,2)) STORED, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_concepts_quote_id` (`quote_id`), + CONSTRAINT `fk_concepts_quote` FOREIGN KEY (`quote_id`) REFERENCES `quote` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `CONSTRAINT_1` CHECK (`quantity` >= 0), + CONSTRAINT `CONSTRAINT_2` CHECK (`unit_price` >= 0), + CONSTRAINT `CONSTRAINT_3` CHECK (`tax_rate` >= 0 and `tax_rate` <= 1) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `concepts` +-- + +LOCK TABLES `concepts` WRITE; +/*!40000 ALTER TABLE `concepts` DISABLE KEYS */; +/*!40000 ALTER TABLE `concepts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_assignees` +-- + +DROP TABLE IF EXISTS `contract_assignees`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_assignees` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `role` varchar(50) DEFAULT NULL, + `is_primary` tinyint(1) NOT NULL DEFAULT 0, + `assigned_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_contract_user` (`contract_id`,`user_id`), + KEY `idx_contract` (`contract_id`), + KEY `idx_user` (`user_id`), + KEY `idx_ca_user_contract` (`user_id`,`contract_id`), + KEY `idx_ca_contract_user` (`contract_id`,`user_id`), + CONSTRAINT `fk_ca_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_ca_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_assignees` +-- + +LOCK TABLES `contract_assignees` WRITE; +/*!40000 ALTER TABLE `contract_assignees` DISABLE KEYS */; +INSERT INTO `contract_assignees` VALUES +(2,3,30,'engineer',1,'2026-03-30 14:56:04'), +(3,5,26,'engineer',1,'2026-07-14 08:57:41'); +/*!40000 ALTER TABLE `contract_assignees` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_document_types` +-- + +DROP TABLE IF EXISTS `contract_document_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_document_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(50) NOT NULL, + `name` varchar(150) NOT NULL, + `allows_multiple` tinyint(1) NOT NULL DEFAULT 0, + `is_system` tinyint(1) NOT NULL DEFAULT 0, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_cdt_code` (`code`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_document_types` +-- + +LOCK TABLES `contract_document_types` WRITE; +/*!40000 ALTER TABLE `contract_document_types` DISABLE KEYS */; +INSERT INTO `contract_document_types` VALUES +(2,'xml_factura','xml_factura',0,0,1,'2026-03-18 23:14:55'); +/*!40000 ALTER TABLE `contract_document_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_documents` +-- + +DROP TABLE IF EXISTS `contract_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_documents` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `document_type_id` int(10) unsigned DEFAULT NULL, + `file_name` varchar(255) NOT NULL, + `file_path` varchar(500) NOT NULL, + `uploaded_by` int(11) NOT NULL, + `uploaded_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_contract` (`contract_id`), + KEY `fk_cdocs_user` (`uploaded_by`), + KEY `fk_cdocs_type` (`document_type_id`), + KEY `idx_cdocs_round` (`contract_round_id`), + CONSTRAINT `fk_cdocs_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cdocs_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_cdocs_type` FOREIGN KEY (`document_type_id`) REFERENCES `contract_document_types` (`id`), + CONSTRAINT `fk_cdocs_user` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_documents` +-- + +LOCK TABLES `contract_documents` WRITE; +/*!40000 ALTER TABLE `contract_documents` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_required_documents` +-- + +DROP TABLE IF EXISTS `contract_required_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_required_documents` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `document_type_id` int(10) unsigned NOT NULL, + `is_required` tinyint(1) NOT NULL DEFAULT 0, + `sort_order` int(11) DEFAULT 1, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_crd_type` (`document_type_id`) USING BTREE, + KEY `idx_crd_round` (`contract_round_id`) USING BTREE, + CONSTRAINT `fk_crd_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_crd_type` FOREIGN KEY (`document_type_id`) REFERENCES `contract_document_types` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_required_documents` +-- + +LOCK TABLES `contract_required_documents` WRITE; +/*!40000 ALTER TABLE `contract_required_documents` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_required_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_rounds` +-- + +DROP TABLE IF EXISTS `contract_rounds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_rounds` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `name` varchar(100) NOT NULL, + `sort_order` int(11) NOT NULL DEFAULT 1, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_cr_contract` (`contract_id`), + CONSTRAINT `fk_cr_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_rounds` +-- + +LOCK TABLES `contract_rounds` WRITE; +/*!40000 ALTER TABLE `contract_rounds` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_rounds` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_transfers` +-- + +DROP TABLE IF EXISTS `contract_transfers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_transfers` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `from_user_id` int(11) DEFAULT NULL, + `to_user_id` int(11) NOT NULL, + `reason` varchar(300) DEFAULT NULL, + `transferred_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_ct_contract` (`contract_id`), + KEY `idx_ct_from` (`from_user_id`), + KEY `idx_ct_to` (`to_user_id`), + CONSTRAINT `fk_ct_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_ct_from_user_nullable_20251012` FOREIGN KEY (`from_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_ct_to_user` FOREIGN KEY (`to_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_transfers` +-- + +LOCK TABLES `contract_transfers` WRITE; +/*!40000 ALTER TABLE `contract_transfers` DISABLE KEYS */; +INSERT INTO `contract_transfers` VALUES +(2,3,NULL,30,'Asignación múltiple','2026-03-30 14:56:04'), +(3,5,NULL,26,'Asignación múltiple','2026-07-14 08:57:41'); +/*!40000 ALTER TABLE `contract_transfers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_xml_invoices` +-- + +DROP TABLE IF EXISTS `contract_xml_invoices`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_xml_invoices` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `contract_document_id` bigint(20) unsigned DEFAULT NULL, + `invoice_ref` varchar(100) DEFAULT NULL, + `uuid` char(36) DEFAULT NULL, + `amount` decimal(14,2) NOT NULL, + `amount_source` enum('xml','manual') NOT NULL DEFAULT 'xml', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_cxi_uuid` (`uuid`), + KEY `idx_cxi_contract` (`contract_id`), + KEY `idx_cxi_round` (`contract_round_id`), + KEY `idx_cxi_doc` (`contract_document_id`), + CONSTRAINT `fk_cxi_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cxi_document` FOREIGN KEY (`contract_document_id`) REFERENCES `contract_documents` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cxi_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_xml_invoices` +-- + +LOCK TABLES `contract_xml_invoices` WRITE; +/*!40000 ALTER TABLE `contract_xml_invoices` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_xml_invoices` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contracts` +-- + +DROP TABLE IF EXISTS `contracts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contracts` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `client_id` int(11) DEFAULT NULL, + `created_by` int(11) DEFAULT NULL, + `owner_user_id` int(11) DEFAULT NULL, + `folio` varchar(50) NOT NULL, + `dependency_contract_number` varchar(100) DEFAULT NULL, + `place` varchar(150) DEFAULT NULL, + `delegation` varchar(120) DEFAULT NULL, + `municipality` varchar(120) DEFAULT NULL, + `name` varchar(100) NOT NULL, + `description` text DEFAULT NULL, + `total_amount` decimal(14,2) NOT NULL DEFAULT 0.00, + `start_date` date DEFAULT NULL, + `end_date` date DEFAULT NULL, + `status` enum('Borrador','Firmado','Activo','Finalizado','Cancelado') DEFAULT 'Borrador', + `finalized_at` datetime DEFAULT NULL, + `document_path` varchar(255) DEFAULT NULL, + `signature_path` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `folio` (`folio`), + UNIQUE KEY `folio_2` (`folio`), + KEY `fk_contracts_client` (`client_id`), + KEY `fk_contracts_user` (`created_by`), + KEY `idx_contracts_owner` (`owner_user_id`), + KEY `idx_contracts_created_at` (`created_at`), + CONSTRAINT `fk_contracts_client` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_contracts_owner` FOREIGN KEY (`owner_user_id`) REFERENCES `users` (`id`), + CONSTRAINT `fk_contracts_user` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contracts` +-- + +LOCK TABLES `contracts` WRITE; +/*!40000 ALTER TABLE `contracts` DISABLE KEYS */; +INSERT INTO `contracts` VALUES +(3,2,1,30,'CONT-260330-001','AAA','AA','AAA','AA','PRUEBA','AAA',16000.00,'2026-03-30','2026-03-31','Borrador',NULL,NULL,NULL,'2026-03-30 20:55:50'), +(5,3,29,26,'CONT-260714-001','TRI-0001',NULL,NULL,NULL,'WELLDEX PLANTAS','PLANTA PREVENTIVO',24200.00,'2026-07-14','2027-07-14','Borrador',NULL,NULL,NULL,'2026-07-14 14:50:28'); +/*!40000 ALTER TABLE `contracts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_report_photos` +-- + +DROP TABLE IF EXISTS `daily_report_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `daily_report_photos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `report_id` int(11) NOT NULL, + `photo_url` varchar(512) NOT NULL, + `sort_order` int(11) NOT NULL DEFAULT 1, + `caption` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_drp_report_order` (`report_id`,`sort_order`), + KEY `idx_drp_report` (`report_id`), + CONSTRAINT `fk_drp_report` FOREIGN KEY (`report_id`) REFERENCES `daily_reports` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_report_photos` +-- + +LOCK TABLES `daily_report_photos` WRITE; +/*!40000 ALTER TABLE `daily_report_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_report_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_reports` +-- + +DROP TABLE IF EXISTS `daily_reports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `daily_reports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `engineer_id` int(11) NOT NULL, + `service_order_id` int(11) DEFAULT NULL, + `report_date` date NOT NULL DEFAULT curdate(), + `unidad_aplicativa` varchar(100) DEFAULT NULL, + `direccion` varchar(255) DEFAULT NULL, + `equipo` varchar(100) DEFAULT NULL, + `inventario` varchar(50) DEFAULT NULL, + `marca` varchar(50) DEFAULT NULL, + `serie` varchar(50) DEFAULT NULL, + `modelo` varchar(50) DEFAULT NULL, + `ubicacion` varchar(100) DEFAULT NULL, + `activities` text DEFAULT NULL, + `observations` text DEFAULT NULL, + `codigo` varchar(50) DEFAULT NULL, + `descripcion` varchar(255) DEFAULT NULL, + `cantidad` int(11) DEFAULT 0, + `refacciones` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`refacciones`)), + `signature_url` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `hr_person_id` int(11) DEFAULT NULL, + `printed_person_name` varchar(205) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `service_order_id` (`service_order_id`), + KEY `idx_contract_id` (`contract_id`), + KEY `idx_engineer_id` (`engineer_id`), + KEY `idx_report_date` (`report_date`), + KEY `fk_dr_hr_person` (`hr_person_id`), + FULLTEXT KEY `idx_text_fields` (`activities`,`observations`,`equipo`,`descripcion`), + CONSTRAINT `daily_reports_ibfk_1` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `daily_reports_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, + CONSTRAINT `daily_reports_ibfk_3` FOREIGN KEY (`service_order_id`) REFERENCES `service_orders` (`id_service_order`) ON DELETE SET NULL, + CONSTRAINT `fk_dr_hr_person` FOREIGN KEY (`hr_person_id`) REFERENCES `hr_person` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_reports` +-- + +LOCK TABLES `daily_reports` WRITE; +/*!40000 ALTER TABLE `daily_reports` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_reports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `diagnostic_photos` +-- + +DROP TABLE IF EXISTS `diagnostic_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `diagnostic_photos` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `diagnostic_sheet_id` bigint(20) unsigned NOT NULL, + `photo_path` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_sheet` (`diagnostic_sheet_id`), + CONSTRAINT `fk_photo_sheet` FOREIGN KEY (`diagnostic_sheet_id`) REFERENCES `diagnostic_sheets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `diagnostic_photos` +-- + +LOCK TABLES `diagnostic_photos` WRITE; +/*!40000 ALTER TABLE `diagnostic_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `diagnostic_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `diagnostic_sheets` +-- + +DROP TABLE IF EXISTS `diagnostic_sheets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `diagnostic_sheets` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `folio` varchar(30) NOT NULL, + `fecha` date NOT NULL, + `unidad_aplicativa` varchar(255) NOT NULL, + `direccion` varchar(255) NOT NULL, + `equipo` varchar(255) NOT NULL, + `inventario` varchar(100) NOT NULL, + `marca` varchar(100) NOT NULL, + `serie` varchar(100) NOT NULL, + `modelo` varchar(100) NOT NULL, + `ubicacion` varchar(255) NOT NULL, + `diagnostico` text NOT NULL, + `id_user` int(10) unsigned NOT NULL, + `contract_id` int(10) unsigned DEFAULT NULL, + `state` varchar(50) NOT NULL DEFAULT 'BORRADOR', + `firma_ing` varchar(255) DEFAULT NULL, + `firma_responsable` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `folio` (`folio`), + KEY `idx_folio` (`folio`), + KEY `idx_fecha` (`fecha`), + KEY `idx_user` (`id_user`), + KEY `idx_contract` (`contract_id`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `diagnostic_sheets` +-- + +LOCK TABLES `diagnostic_sheets` WRITE; +/*!40000 ALTER TABLE `diagnostic_sheets` DISABLE KEYS */; +/*!40000 ALTER TABLE `diagnostic_sheets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `engineer_inventory` +-- + +DROP TABLE IF EXISTS `engineer_inventory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `engineer_inventory` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` int(11) NOT NULL, + `engineer_id` int(11) NOT NULL, + `contract_ref` varchar(100) DEFAULT NULL, + `quantity` int(11) NOT NULL DEFAULT 1, + `date_assigned` timestamp NULL DEFAULT current_timestamp(), + `expected_return` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `ux_engineer_item_contract` (`engineer_id`,`item_id`,`contract_ref`), + KEY `item_id` (`item_id`), + CONSTRAINT `engineer_inventory_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `inventory_items` (`id`), + CONSTRAINT `engineer_inventory_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `engineer_inventory` +-- + +LOCK TABLES `engineer_inventory` WRITE; +/*!40000 ALTER TABLE `engineer_inventory` DISABLE KEYS */; +INSERT INTO `engineer_inventory` VALUES +(3,65,26,NULL,1,'2026-07-14 14:54:45',NULL), +(5,66,26,'CONT-260714-001',1,'2026-07-14 14:57:59','2026-07-14'); +/*!40000 ALTER TABLE `engineer_inventory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `engineer_ratings_view` +-- + +DROP TABLE IF EXISTS `engineer_ratings_view`; +/*!50001 DROP VIEW IF EXISTS `engineer_ratings_view`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `engineer_ratings_view` AS SELECT + 1 AS `engineer_name`, + 1 AS `id_user`, + 1 AS `total_surveys`, + 1 AS `average_rating` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `expenses` +-- + +DROP TABLE IF EXISTS `expenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `expenses` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `concept` varchar(255) NOT NULL, + `amount` decimal(10,2) NOT NULL, + `date` date NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `contract_id` (`contract_id`), + CONSTRAINT `expenses_ibfk_1` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `expenses` +-- + +LOCK TABLES `expenses` WRITE; +/*!40000 ALTER TABLE `expenses` DISABLE KEYS */; +/*!40000 ALTER TABLE `expenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `finances` +-- + +DROP TABLE IF EXISTS `finances`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `finances` ( + `finance_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_expense_id` int(11) NOT NULL, + `file_path` varchar(255) DEFAULT NULL, + `date_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`finance_id`), + KEY `fund_transaction_id` (`admin_expense_id`) +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `finances` +-- + +LOCK TABLES `finances` WRITE; +/*!40000 ALTER TABLE `finances` DISABLE KEYS */; +/*!40000 ALTER TABLE `finances` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `fund_transactions` +-- + +DROP TABLE IF EXISTS `fund_transactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `fund_transactions` ( + `transaction_id` int(11) NOT NULL AUTO_INCREMENT, + `fund_id` int(11) NOT NULL, + `type_` enum('ABONO','GASTO') NOT NULL, + `amount` decimal(12,2) NOT NULL, + `crt_time` datetime DEFAULT current_timestamp(), + `description` text DEFAULT NULL, + `concept` text DEFAULT NULL, + `admin_user_id` int(11) DEFAULT NULL, + `tipo_pago` varchar(255) DEFAULT NULL, + `nombre_rh` varchar(255) DEFAULT NULL, + PRIMARY KEY (`transaction_id`), + KEY `fund_id` (`fund_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `fund_transactions_ibfk_1` FOREIGN KEY (`fund_id`) REFERENCES `funds` (`fund_id`), + CONSTRAINT `fund_transactions_ibfk_2` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `fund_transactions` +-- + +LOCK TABLES `fund_transactions` WRITE; +/*!40000 ALTER TABLE `fund_transactions` DISABLE KEYS */; +/*!40000 ALTER TABLE `fund_transactions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `funds` +-- + +DROP TABLE IF EXISTS `funds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `funds` ( + `fund_id` int(11) NOT NULL AUTO_INCREMENT, + `technician_user_id` int(11) NOT NULL, + `contract_id` int(11) NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `crt_date` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`fund_id`), + KEY `idx_funds_tech_contract` (`technician_user_id`,`contract_id`), + KEY `idx_funds_contract_tech` (`contract_id`,`technician_user_id`), + CONSTRAINT `funds_ibfk_1` FOREIGN KEY (`technician_user_id`) REFERENCES `users` (`id`), + CONSTRAINT `funds_ibfk_2` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `funds` +-- + +LOCK TABLES `funds` WRITE; +/*!40000 ALTER TABLE `funds` DISABLE KEYS */; +/*!40000 ALTER TABLE `funds` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `history_service_orders` +-- + +DROP TABLE IF EXISTS `history_service_orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `history_service_orders` ( + `id_h_so` int(11) NOT NULL AUTO_INCREMENT, + `id_ing` int(11) DEFAULT NULL, + `sealed_service_order` varchar(50) DEFAULT NULL, + `create_at` date DEFAULT curdate(), + PRIMARY KEY (`id_h_so`), + UNIQUE KEY `id_h_so` (`id_h_so`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `history_service_orders` +-- + +LOCK TABLES `history_service_orders` WRITE; +/*!40000 ALTER TABLE `history_service_orders` DISABLE KEYS */; +/*!40000 ALTER TABLE `history_service_orders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document` +-- + +DROP TABLE IF EXISTS `hr_document`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `person_id` int(11) NOT NULL, + `document_type_id` int(11) NOT NULL, + `status` enum('PENDING','RECEIVED','REJECTED','EXPIRED') NOT NULL DEFAULT 'PENDING', + `issue_date` date DEFAULT NULL, + `expiry_date` date DEFAULT NULL, + `notes` varchar(255) DEFAULT NULL, + `is_current` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `fk_hr_document_type` (`document_type_id`), + KEY `idx_hr_doc_person_type` (`person_id`,`document_type_id`,`is_current`), + KEY `idx_hr_doc_expiry` (`expiry_date`), + KEY `idx_hr_doc_person_type_iscurrent` (`person_id`,`document_type_id`,`is_current`), + KEY `idx_hr_doc_expiry_date` (`expiry_date`), + CONSTRAINT `fk_hr_document_person` FOREIGN KEY (`person_id`) REFERENCES `hr_person` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_hr_document_type` FOREIGN KEY (`document_type_id`) REFERENCES `hr_document_type` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document` +-- + +LOCK TABLES `hr_document` WRITE; +/*!40000 ALTER TABLE `hr_document` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document_file` +-- + +DROP TABLE IF EXISTS `hr_document_file`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document_file` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `document_id` int(11) NOT NULL, + `side` enum('FRONT','BACK','SINGLE','OTHER') NOT NULL DEFAULT 'SINGLE', + `file_url` varchar(255) NOT NULL, + `checksum_md5` char(32) DEFAULT NULL, + `uploaded_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_hr_document_file_doc` (`document_id`), + KEY `idx_hr_doc_file_doc` (`document_id`), + CONSTRAINT `fk_hr_document_file_doc` FOREIGN KEY (`document_id`) REFERENCES `hr_document` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document_file` +-- + +LOCK TABLES `hr_document_file` WRITE; +/*!40000 ALTER TABLE `hr_document_file` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document_file` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document_type` +-- + +DROP TABLE IF EXISTS `hr_document_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `code` varchar(40) NOT NULL, + `name` varchar(120) NOT NULL, + `requires_both_sides` tinyint(1) NOT NULL DEFAULT 0, + `allows_multiple` tinyint(1) NOT NULL DEFAULT 0, + `requires_expiry` tinyint(1) NOT NULL DEFAULT 0, + `active` tinyint(1) NOT NULL DEFAULT 1, + `sort_order` int(11) DEFAULT 9999, + PRIMARY KEY (`id`), + UNIQUE KEY `uq_hr_document_type_code` (`code`), + KEY `idx_hr_document_type_active` (`active`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document_type` +-- + +LOCK TABLES `hr_document_type` WRITE; +/*!40000 ALTER TABLE `hr_document_type` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document_type` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_person` +-- + +DROP TABLE IF EXISTS `hr_person`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_person` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `employee_code` varchar(30) NOT NULL, + `first_name` varchar(100) NOT NULL, + `last_name` varchar(100) NOT NULL, + `phone` varchar(30) DEFAULT NULL, + `email` varchar(150) DEFAULT NULL, + `position` varchar(150) DEFAULT NULL, + `signature_data` mediumtext DEFAULT NULL, + `photo_url` varchar(255) DEFAULT NULL, + `status` enum('ACTIVE','INACTIVE') NOT NULL DEFAULT 'ACTIVE', + `user_id` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uq_hr_person_employee_code` (`employee_code`), + UNIQUE KEY `uq_hr_person_user_id` (`user_id`), + CONSTRAINT `fk_hr_person_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_person` +-- + +LOCK TABLES `hr_person` WRITE; +/*!40000 ALTER TABLE `hr_person` DISABLE KEYS */; +INSERT INTO `hr_person` VALUES +(1,'001','DOMINIC JOSAFAT','VALDES GASCA','2294797622','dom@gmail.com',NULL,NULL,NULL,'ACTIVE',31,'2026-03-17 05:48:27','2026-03-30 06:44:47'), +(2,'003','Gabriel ','Diaz Rosales','','gabriel@correo.com','INGENIEROS DE SERVICIOS','',NULL,'ACTIVE',26,'2026-03-23 01:02:57','2026-03-23 02:10:53'), +(9,'222','Alberto','Sánchez','','alsanchezbeltran@gmail.com','CORDINACION DE PROYECTOS','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiYAAACWCAYAAADqm0MaAAAflUlEQVR4Xu2dCbi1U9nHbx9FyBwqigqRNEcRknkqQ4pQiddQpiQyj72mkCmFpIwJZQqRhFDSgCaUimgwNQv1fb/Wtb797Ofsc/Y+e5/jXfs8v/u6zvW+Z+/nWc9av7Wva//Pve5hpv/8n4UmAQlIQAISkIAECiAwk8KkgF1wChKQgAQkIAEJ/JeAwsQPggQkIAEJSEACxRBQmBSzFU5EAhKQgAQkIAGFiZ8BCUhAAhKQgASKIaAwKWYrnIgEJCABCUhAAgoTPwMSkIAEJCABCRRDQGFSzFY4EQlIQAISkIAEFCZ+BiQgAQlIQAISKIaAwqSYrXAiEpCABCQgAQkoTPwMSEACEpCABCRQDAGFSTFb4UQkIAEJSEACElCY+BmQgAQkIAEJSKAYAgqTYrbCiUhAAhKQgAQkoDDxMyABCUhAAhKQQDEEFCbFbIUTkYAEJCABCUhAYeJnQAISkIAEJCCBYggoTIrZCiciAQlIQAISkIDCxM+ABCQgAQlIQALFEFCYFLMVTkQCEpCABCQgAYWJnwEJSEACEpCABIohoDApZiuciAQkIAEJSEACChM/AxKQgAQkIAEJFENAYVLMVjgRCUhAAhKQgAQUJn4GJCABCUhAAhIohoDCpJitcCISkIAEJCABCShM/AxIQAISkIAEJFAMAYVJMVvhRCQgAQlIQAISUJj4GZCABCQgAQlIoBgCCpNitsKJSEACEpCABCSgMPEzIAEJSEACEpBAMQQUJsVshRORgAQkIAEJSEBh4mdAAhKQgAQkIIFiCChMitkKJyIBCUhAAhKQgMLEz4AEJCABCUhAAsUQUJgUsxVORAISkIAEJCABhYmfAQlIQAISkIAEiiGgMClmK5yIBCQgAQlIQAIKEz8DEpCABCQgAQkUQ0BhUsxWOBEJSEACEpCABBQmfgYk0IXAxz8e8bnPRey4Y8T06ZOL68knI7bcMuKqqyI23DDii1+MmHnmyX2mo0tAAhIoiYDCpKTdcC5FEvif/4n4z38i+Pcf/4h47nMnb5pnnBGx7bat8U85JQkiTQISkEBTCChMmrLTrrNvAvPPH/Hoo+l2hMM22/Q9VNcbP/vZiB12aF22wgoRt9zS9TYvkIAEJDBlCChMpsxWupDJInD22RFbbZVGX2yxiJ/9LGLWWSfnaRzdvP/9rbFnnz3ib3+bnGc5qgQkIIESCShMStwV51QUgaeeinjhCyMeeSRN65BDIvbff3KmePTREcS0VA0htNRSk/M8R5WABCRQGgGFSWk74nyKJPCGN0TccUea2kwzJa/JkktO/FSPOipir73axz388Ih99pn4ZzmiBCQggRIJKExK3BXnVByBqjBhchy3fOELEz/Nk06K2Hnn9nE/8pGIE0+c+Gc5ogQkIIESCShMStwV5zQuAjmd933vizj55N5vHU8aMOMiELI9//kRDz4Ywb8TaWeeOTK49sMfjkCwaBKQgASaQEBh0oRdHpI1/vOfEcccE3H66RF/+lMEsR3/+ldr8gScctSBR4HjlGw5nZffX/e6iK99LWLRRbsvupoG/MwzY1//xBNpzL/8pXUdgao5KLb703q74jOfidhpp/Zrt98+4tRTe7vfqyQgAQkMOwGFybDv4BSZ/667Rpx7bhIk3WyJJVIcBmm7CJQFF4z44x9bd80xR8RZZ0VsssnYI80zTwSCA7v55oi3vnXs6xEhZOhk22CDiEsv7Tbb8b1//PERu+/efg/PRQRpEpCABJpAQGHShF0ufI2f/nTEbruNf5Jkytx4Y0rdRdjgKcmej+c8J4IMF14fzQ4+OOKgg9K7222XqruOZdddF7H66q0rZpst4vHHJzZ1+MILIzbbrH0W73lPxPnnj5+Pd0hAAhIYRgIKk2HctSk0ZyqpvuxlEQ8/3FrUW94S8YpXpNez/ehHEV/96siF4y0h/mPTTSOuvjoFpf7+963rXvKS5IlZccWR9/74xxGveU16HS/L3XdHvPSlo8P9978jFlqo3avzne9EMN+Jsssvj8ATU7Wtt04eIE0CEpBAEwgoTJqwywWvsRpU+qpXRXz/+6N7IDjmWW+9iO9+d+SCSKclrfbKKyM22qg9NoVYErwdq67afh9l5ilgRmwLtsUWEeecMzasadMiTjutdc0JJ4zMohkE9yWXRGy8cfsIvXhzBnmm90pAAhIoiYDCpKTdaOBc6DtDkCt20UUjv5Q7IaFs+4EHtntGuI6YE0rGH3tsxB57tN/5pjdF4N2YZZb219/85ojvfa/12k03dfau5Cs4LnrXu1rX09emKlQG3cKvfCXi3e9uH+WAAyI4dtIkIAEJNIGAwqQJu1zwGnNmDDEh1QycblMm2PW974345jfbr7z44uQxWW65iDvvbH+PzBYyXKr22tdGcEyUjY6+iI/RjKyceedtxbIgbG67rdtse3+fYyfSnqtGltKHPtT7GF4pAQlIYJgJKEyGefeGfO70gJlzzrSIRRaJ+O1vx78gvAmHHtq675WvTIIEAUG8SDW993nPSxVbiTvJdthh7eXlZ545eWJo3DearbNOxFVXpXe5njgZhNVEWKc6Juedl0SYJgEJSKAJBBQmTdjlQteIEMkigVRdUnbHa2ThrLlmu+fkmmsi1lgjZbJsvnn7iHvvHTF9euu1xx5L9UmqjfI4KiKWZDQjVZl6KtmIi3n968c7887X1wu5cRVBuq9+9cSM7ygSkIAESiegMCl9h6bw/PhCf+Mb0wIREBxj9GO//nXEMstE/P3v6W6yee67L/2fVNsvf7k16otfHPHAA+1PqQe0InTI8BnNfvGL9qZ6F1wwMsW3n3Vwz3HHRXz0o+13/+AHERw5aRKQgASaQEBh0oRdLnSNfPmvvXaaHOXhjzyy/4kSl1EVNvfeG/Hyl0f87ncRSy8d8ec/t8YmLRghk42g2Ho68S9/GbH44p3nQ9rwXHO1vCwT2WSPsfbbr/25xMAQM6NJQAISaAIBhUkTdrnQNX796xHrrpsmt//+EYcc0v9E//CHdCz05JNpDL7cc+zJaqtFXH99a2w8Ep/6VPuzEC/En2TDczFW0TdK3//wh+lqRFG1Imz/q0hzJm6mah7lDELUeyUggWEjoDAZth2bQvPFc7HssmlBBHcS5DmI7bhjq6cMwavEsBDwSmE2MnWy0XiPgm7UMMn2+c+3Z76sskrEt741+mxI6SW1F6NIWxYpg8yfexFUeE2qVvfwDPoM75eABCRQMgGFScm7M8XnRnowqbfEhnSK/Rjv8hEHeDKyUV+EOiMYnhk8NNk4NuL4KBu1VMjieeih9AppzIiXF7yg8yyqng2OdXLPnfHOuX49niMyhapGllEWcIOO7/0SkIAESiegMCl9h6b4/Ci/Thl27I472oVFP0unPPytt6Y7+T/xIxgBssSc5F46eFSIQ6GRXzaObujbk22sqq4c3VQ7C5PVU/XA9DN37iEIuN4X5557Uon+YTWEZ67WS7Vdsq+o/0KQsSYBCUigTkBh4mdihhKgUmv2agwaZ8JC6gXKfv7ziCWXTEv88IcjTjmltdx6RdW6x2Ws45x6Q78HH4x40YsGR0nZ/BtuaB9nrEDcwZ842Aj335+Oyqj9QrbSI4+k8fA88ftoNhEessFm7t0SkECpBBQmpe5MQ+ZF/xu+0DlKIfajmj3TDwKCXxdYIOKvf013f+YzETvskP5PcCtBrtnwmiAo6E6cjQDaaqE3snroYlw3vDtveEPr1d/8JtVDGdTWWiuCOixVG20Ogz5rvPdTrI62Ad/4RsRdd6X6Kv0alWypaKtJQAISqBNQmPiZmOEEqPqKQMD4i3u++Qab0jvfGXHppWmM+hdgPa2YGifV3jTrrx9xxRWt5x9zzMi+O7zLMdASS7SumyhhQiwJwa5Ve/TRFItDmvJPfhJBs8OZZhqMUS93U/afIys8SRzFVLOWermfa9hbjtBWWCEJT47XiNuxYFyvBL1OAs0joDBp3p4Xt+JqJVW661ab5PUzWVKBP/axdOfKK7cfjdCwj/iGbG97W8S3v936vV7ThAJw1SZ/+cpqRhGvUdCNwm6DGjEv9UDap59OniSyf/DmEKRLj6CJeF6eL8+47LIkir70pYhf/arVXLGXNc09dyoChxeJH7xgzHO0WjC9jOk1EpBAMwkoTJq570Wt+sILW5VT99lnZLrseCdbTQ8maJTg0apVA2R5vR7DUX//9tvbj224hxiKakzJRBy3VHsH5fniGcFTUq8IyzHUYouldOjjjx85v27MiAkhRZqUaI5kyEDq1egIvfrqyQuSf/CGaBKQgAQmgoDCZCIoOsZABDgG4a9rrO7B6GdgSrjn3jWzzZaa7FWtXtcEj80RR7SuIECWQNlsu+8eceyx7WPwRV6NPSHrp9ocsJ9512NgGIO0ZQQLx005e6nT2DQTJItop51GfzJxPAQbE9tBO4BejOaEiA+8TPwsv3xrr3q532skIAEJjJeAwmS8xLx+UgjgASCWgkBUqrhSG6Rf4/6FFkp343H45z8j+Cs/GynDHNHkomjV3jpcQ3oroiMH4nbyuhALQ5Bttp/+NILOxoMYRykbbjhyBERRvX/OaM8hRoaAX2I7shEPg3eEHzwl3QxmiBBqtfAvxzSaBCQggWeLgMLk2SLtc8YksNlmERzpYBRCyz10+sU255ytXjYEjFazcRiz7jWhtgYdjrNtsknExRe3fq97RMhQqYqniajBcvDBEQcdNHLFxGz06uHgbuaFl4OMJwQUc+/FEG/Uctl553Zh08u9XiMBCUhgoggoTCaKpOMMRIC/8vMxxAc/mP66H8SqcSKdAmqJ28BrwrEPtsYa7Wm655wTseWWrRl88YvtBdXwqswxR+t9AmRzp+R+5839nQQIWSxkyGRDOOBBIW33ttsizjorguDVfow4lU03jSCTCWHG0ZEmAQlIYEYSUJjMSPo++/8JcMSw8MLpV45IyD4hPqRfq3o8OAohTqRu1eqtxFJQIj8b86EIWK4UW+/lU/eYkM2DGOrVGBdPDl2OiQ/h+InndRIYdWFCjAhp0Nnw9uy6a+9eFVJ13/OeVKa/WsK/17l7nQQkIIHJJKAwmUy6jj0uAqT23nhjuoUGeYiLfu0jH4k4+eR09557Rhx1VOeRSGeleilW/8J/+9tbjfzwjuSibVxbD37tlLkz2typRvumN0UgboipoeYKmTHMs5MttVQE92TjuOfAA9uvpLAcFW4JJB7NqCdCYO873pHEkCYBCUigRAIKkxJ3paFzQhhst11aPEGgX/ta/yCqfW/wJpBS28nwpuyxR3pnpZVawojfafJ39NGtu6qxKvV6KAgq7u/F8FZQ2C0bwaa8Vu+Rk9+nkFs15ZkjJmqN1I3jJWJ1OOLJ3h/qonBMNW1aSvGd6kYQMqIRphxL8UM2Ekdes8wSQa8eXsNDhncKcchxHsKT7C3Sr7mG9+jyXC2iN9XZuT4JlEJAYVLKTjiP/35JUBskeyYeeCAdb/Rj22wTceaZ6U68C52CSnmPZ/HlnY9sOELKGS14KaqZNnzh5y/3XIE1z63ak6fbfOnBUy3qxvWsm1oovdgnPhHxyU/2cuXwXUO8DKICjw7p04gMhAWeJcQfogLRQIAvxeAQY+MxvE/5yDDfxx7XX0PEEMtjRtJ46HqtBCaGgMJkYjg6ygQRqDbaq9cXGc8j8F4Qe4HVj2jq4xA/csEF6dVqI0GOR6pxLnxpbr11uo5+NvS1yUahMgRHL9apUR8FyhBmvVhVPPVy/Yy85pZb0lEZ6/vRj9L/ER1XX51mhdCgwF0vhkitdllGZFRryfBeNU2aLKNqplUvz/AaCUhgxhNQmMz4PXAGFQJ33hmx3HLpBf5qxaNRbbLXKyz+0s11SPgSXHPN0e+sdgqmEV81TmPBBVsZMVVPRVXMMDKFx269tbfZEXxKE7yq8QVNplA3I3bmxBO7XTX57xPsy/5wREIVXAQcnBFz7Bfvd7Oq94LCejnuZcUV01ELhojTJCCBZhFQmDRrv4ditRxr8GWHcc5PmfrxGIKk6oInPqP6l3Z9LGIKqDybuwrfcEPqsYMRKEpfGmy99VrVV6mzkv/qz+Nde226vptR0I1eNP0Ywo1Gf5NhxM0gDvBgwAyxRPM+PDnUQ6FWCwbbej+fPB8CbLPXgmaDZBRh8GQ83htrLyZjXY4pAQkMFwGFyXDtVyNme955EVtskZZKoTQEA3EgvRrxG/lYhb/qqfzaLQsFb0guS1+to0IzQJoCYlVvygc+kOqHVG3bbSNOO23kLIlfISiT1GC+nDmS6DWepDoaQbp0O+7HiI+hQ/H116cgT+aDuKAqLLE89bL91WfgNSIGg/v5oZkglj0bs8/e3hixn/l5jwQkIIFMQGHiZ6E4AgQ78ld1PlLhyzhnzvQyWdKEOfLAOBYitqGbVY+QKGePGOI44QtfiECoYIgKsl0QOZR+v+KK9lHplVOvsvrgg6nrLlVY+XInLZh6J3Qj7tUQA2QW7btvOj7pZBSRY86sleBQvBvUYqkWZqvfRwApdUxYD8XdyEjJcRu8xvGKJgEJSODZJqAwebaJ+7yeCCBGcl0Pjj7I0MhxB90GoIIslWSx7bePOPXUbnek9yn9no8rOL6hjkk1/oRrEBocNa22WvI+1K1eun6jjVL5+2yHHJJqo+TjoW4zo4cQ3pXc6+exxyIQIWSocMzCkdBo3o58rIKnBq8HHBFPVHvlR5OABCRQIgGFSYm74pz+G/SK5yKng1L3gw67vRgeiuwloeMuaZ+92JFHRuy9d7qSku8c4dDor1odFSHAl3q9FklVeJDZg7EGvB3Vaq54PmhW2KkOSac54vGhbglF2EhR5t6qcazCfFgz4gMRwms8V5OABCQwjAQUJsO4aw2ZM0coHKVgvR7JEKTJF3TOcKkGsnbDxtERQbAYX/aIEDJtqqXmESp88RNPcsYZI0fEQ5Kb/3W6hvc4Aup0L3ErFJXDK9LJiOmAw+tfn466zFjptqO+LwEJDCMBhckw7lpD5sxRBWm42ag1QmXTseyzn43YYYd0BSmsZJSMFpfRaRzqXlB7A0Oo4HmgBke2yy9P2Tn03ulUTRaPy/Tp6bkEy9azV4g14YiImJZspNcSQEoMC8Kqau96V4ovoYR9tWlgQz4CLlMCEmggAYVJAzd9mJaMMEGgYHgxiDUZq65JtUNvvfFeL+s+6aTW0Q/1Qgii5bk5qPWww1IQ6uabdy4hf+656T08InhMqobw2G+/COJM6kb8B94Q/qVMfrZuNVh6WZPXSEACEhgmAgqTYdqtBs71qqsi1lmntfDjjougD04nq6YJ8/54qrHm8UidxdOB8dwrr2wXIbmnTbVJYHUuiChqdyy9dEpT7mZ4cwio5fgJq8bW4EWhJHvVY9NtPN+XgAQkMOwEFCbDvoMNmD9dhnPcBimufFmT2lq3ajdg4kJ6qT7aCV8OnqV2CkcrFHk74IB0Je/R9G3HHTtn+7z//am8fSdRwlEMYyJEstFgj/L2VSPtl2BX4lXIANIkIAEJNImAwqRJuz2ka0UIEPCZjS//HBSbX6OJHl4Kqrhi1DIhbbgfo+HfwQenO/GA/OIXKTMGQxDh1SDW5aKLxjc6zeI4iqoaRzuHHjq+cbxaAhKQwFQmoDCZyrs7hdZGXEe1o+5NN6XKo9l22aXVQwavCp6O8QS9VlF9//up4BhGRdhNN001TrItvnh/JeWpw0LxuKpR/p3xNAlIQAISSAQUJn4ShoIARyMIjvzFjnCgtwuGCKHMOw3ksH7669QhEN9B4TJqqSy5ZCpoNl7r1phvhRVaGUDjHdvrJSABCUxVAgqTqbqzU3BdW20VcfbZrYVRpIwjlqq3hBTh++9PgqIfozAb/W7IqhkteJUUXoJkb7999CdQqfWUUyKmTRu9a/A557R6AvUzV++RgAQkMBUJKEym4q5O0TVRxr3avZfeM6TnrrVWy5NCfMiBB/YOAPFBNs+ZZ6by8516y5CdQ1n4XE2Wyq4c95Cx08k49iF2BAGzzTZp7LrRbZf1dGsu2PtKvFICEpDA1CCgMJka+9iIVRDYusQS7Q3w5puvVaadrBeqtZKu282osIogwetSFyOkC9PADtGD0bfn8ccjqGGCkTJMZhBVZbOR0kssCt2IKQufDeHDsdPdd7deI3uIEvsLLNBtlr4vAQlIoHkEFCbN2/OhXjHFyUbziJAls/HGoy8PMYEQIWOn3gWYfjikJXM/2T0Yxc4QOmuvnY6L1l03vb7IIumHcvXZCMQlILeT0e+HcW++OR3d8Px+A3OHevOcvAQkIIEeCChMeoDkJeUQoAYIHXJzL5w8M8rQ547C1dkiVvihUFu9Bw19cYhRQZBUG/Xl+7fbLuL001OBs7vuavXR4fiFEvG9CpNy6DkTCUhAAuUTUJiUv0fOsEYA70S9eNpRR0XsuWeKA6HuCUXO+P9DD7XfjBcEEbPmmqkZ31iGZ4MKrxjN+yjaRqYOhlflpz9t3Z0Lr7lZEpCABCQwGAGFyWD8vPtZJkDhMwJc60ZqLp6Mep0QrqMo2vveF0FhtpVW6n3ClLQnHgQjgJUjJBr7YXhbqsdBr3pV8qpoEpCABCQwGAGFyWD8vPtZJIBHhEDUXgyRgoeDRn6Uj0e4jNfuuy/iFa9Id9FNGC/Nbbel3znKyXVU+J0MnEsuGe8TvF4CEpCABOoEFCZ+JoonQEn4rbduiYKxJozngu6+dPbtt5ZJHp+CbdRFwV796tQnh+DZ/Pudd7ZmQnDreEvUFw/eCUpAAhKYAQQUJjMAuo/sjQBZLhRVo2Bar7bUUiP70fR6b6fryJ555pkIUpF33jniiCPSVXhS7r23dQdHRdXib4M803slIAEJNJmAwqTJu1/g2mnGR+BqtyJpHM1Qa+QnPxlZh2T69Ii9956YxRFLQlwJmTnHHhtBpg5GrZRq/RM6AecOyBPzZEeRgAQk0EwCCpNm7ntxq6ZbMCXcq3EbnSaJp4JaIO98Z+o4TDpvFgv5eprlPfFECnod1CiORpVX7NJLIzbcMP0fD8rf/tYaXWEyKGnvl4AEJJAIKEz8JMwwAsRw0C+GrsEEmo5llIVHgFDkbNZZ26+k4mo9voOaJqQFD2rrrx9xxRVplGuuSWnGWL1T8Pnnp4qwmgQkIAEJDEZAYTIYP+8eJwEKo117bfI+nHdeq5z8aMMsv3xqqkfw6WhGECrX5RojXEe9EoqqUcJ+ENt++4jPfS6NcOGFEe9+d2u0nXZKpebxqvSaLTTIXLxXAhKQQBMIKEyasMsFrJE+N3gVSN3lmKWbkVFD+i0pv70Y4594YsSuu7auJmWYFGNiTvq1ww9PDfkwOg5TcC0LIMrVL7ZYvyN7nwQkIAEJdCKgMPFzMekE8FzQkff227s/av75k7igbsicc3a/vn4F3pXddougPw1GkCxZNf0aXpLNNkt377tvOtahCixGsCuxJZoEJCABCUwcAYXJxLF0pBoBslkoFU9p914M8fKJTwwetHrddSk4luDUhRceWZa+l7nka6jmmo+R6Knzr39FXHZZepf04RNOGM9oXisBCUhAAt0IKEy6EfL9vggQKEo11GrcR6eBFl00pQZvsEHEggv29aiONz3wQMRXvpIyeAYZl/nPNVfE009HLLNMKlGfhRZBuI88kjJ0NAlIQAISmBgCCpOJ4egoFQIUGvvAB8Y+QiHtdpddIlZdNfW4KdmWXTYFuXIsRJ+eAw5ozfaee1pl60teg3OTgAQkMCwEFCbDslNDMk9iO+aeO3kY6oaHgZTavfZK3odhMbwuZBBhV18dMW1aauBH+nLO2BmWtThPCUhAAqUTUJiUvkNDOD+KoOW6JIiU1VePWGWV1MNmgQWGb0FHHtmqJHvWWalvjyYBCUhAApNDQGEyOVwbPerDD0dQW2TeeVONj2G3r361lX1DPAzHOZoEJCABCUwOAYXJ5HB11ClEgO7GNAfE8JbgNdEkIAEJSGByCChMJoero04hAsTNzDNPxFNPRay8csQNN0yhxbkUCUhAAoURUJgUtiFOp0wClLa/994IapmQhqxJQAISkMDkEFCYTA5XR51iBB56KFV9JYDXuiVTbHNdjgQkUBQBhUlR2+FkJCABCUhAAs0moDBp9v67eglIQAISkEBRBBQmRW2Hk5GABCQgAQk0m4DCpNn77+olIAEJSEACRRFQmBS1HU5GAhKQgAQk0GwCCpNm77+rl4AEJCABCRRFQGFS1HY4GQlIQAISkECzCShMmr3/rl4CEpCABCRQFAGFSVHb4WQkIAEJSEACzSagMGn2/rt6CUhAAhKQQFEEFCZFbYeTkYAEJCABCTSbgMKk2fvv6iUgAQlIQAJFEVCYFLUdTkYCEpCABCTQbAIKk2bvv6uXgAQkIAEJFEVAYVLUdjgZCUhAAhKQQLMJKEyavf+uXgISkIAEJFAUAYVJUdvhZCQgAQlIQALNJqAwafb+u3oJSEACEpBAUQQUJkVth5ORgAQkIAEJNJuAwqTZ++/qJSABCUhAAkURUJgUtR1ORgISkIAEJNBsAgqTZu+/q5eABCQgAQkURUBhUtR2OBkJSEACEpBAswkoTJq9/65eAhKQgAQkUBQBhUlR2+FkJCABCUhAAs0moDBp9v67eglIQAISkEBRBBQmRW2Hk5GABCQgAQk0m4DCpNn77+olIAEJSEACRRFQmBS1HU5GAhKQgAQk0GwCCpNm77+rl4AEJCABCRRFQGFS1HY4GQlIQAISkECzCShMmr3/rl4CEpCABCRQFAGFSVHb4WQkIAEJSEACzSbwv8VG6MZvHMR0AAAAAElFTkSuQmCC',NULL,'ACTIVE',1,'2026-03-23 01:33:47','2026-03-23 01:55:14'), +(17,'0005','PRUEBA','PRUEBA','','PRUEBA@GMAIL.COM','PUESTO PRUEBA','',NULL,'ACTIVE',30,'2026-03-30 20:58:10','2026-03-30 20:58:22'), +(18,'002','EDGAR','DIAZ USCANGA','','INGENIERO2@TRIMAPE.COM','TECNICO','',NULL,'ACTIVE',32,'2026-05-09 17:06:16','2026-05-09 17:06:38'); +/*!40000 ALTER TABLE `hr_person` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_user_assignment_history` +-- + +DROP TABLE IF EXISTS `hr_user_assignment_history`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_user_assignment_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `person_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `action` enum('ASSIGN','UNASSIGN') NOT NULL, + `happened_at` timestamp NOT NULL DEFAULT current_timestamp(), + `actor_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_uah_person` (`person_id`,`happened_at`), + KEY `idx_uah_user` (`user_id`,`happened_at`), + KEY `fk_uah_actor` (`actor_id`), + CONSTRAINT `fk_uah_actor` FOREIGN KEY (`actor_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `fk_uah_person` FOREIGN KEY (`person_id`) REFERENCES `hr_person` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_uah_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_user_assignment_history` +-- + +LOCK TABLES `hr_user_assignment_history` WRITE; +/*!40000 ALTER TABLE `hr_user_assignment_history` DISABLE KEYS */; +INSERT INTO `hr_user_assignment_history` VALUES +(1,1,1,'ASSIGN','2026-03-17 05:48:46',NULL), +(2,2,26,'ASSIGN','2026-03-23 01:03:08',NULL), +(3,1,1,'UNASSIGN','2026-03-23 01:33:53',NULL), +(4,9,1,'ASSIGN','2026-03-23 01:34:00',NULL), +(5,1,30,'ASSIGN','2026-03-30 06:02:26',NULL), +(6,1,31,'ASSIGN','2026-03-30 06:44:47',NULL), +(7,17,30,'ASSIGN','2026-03-30 20:58:22',NULL), +(8,18,32,'ASSIGN','2026-05-09 17:06:38',NULL); +/*!40000 ALTER TABLE `hr_user_assignment_history` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_items` +-- + +DROP TABLE IF EXISTS `inventory_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_items` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `type` enum('vehículo','herramienta','consumible') NOT NULL, + `description` text DEFAULT NULL, + `serial_number` varchar(50) DEFAULT NULL, + `stock` int(11) NOT NULL DEFAULT 0, + `storage_location` varchar(120) DEFAULT NULL, + `image_url` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_inventory_items_storage_location` (`storage_location`) +) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_items` +-- + +LOCK TABLES `inventory_items` WRITE; +/*!40000 ALTER TABLE `inventory_items` DISABLE KEYS */; +INSERT INTO `inventory_items` VALUES +(1,'Prueba','herramienta','DESC 1','21',0,'ANAQUEL 1','/uploads/Inventory/image-1774904075558-659247786.png','2026-03-30 20:54:35','2026-05-26 10:17:34'), +(2,'VEHICULO PRUEBA','vehículo','PRUEBA_DESC','5555',0,'ESTACIONAMIENTO 2','/uploads/Inventory/image-1774904418810-546669453.jpg','2026-03-30 21:00:18','2026-03-30 15:00:41'), +(3,'MANGUERA DE KARCHER','herramienta','Mangueras amarillas de karcher','3/4” 19mm',1,'REPISA 3 SECC 3.1','/uploads/Inventory/image-1780425926667-730358201.jpg','2026-06-02 18:45:26','2026-06-02 12:45:26'), +(4,'MANGUERA KARCHER','herramienta','1/2” 13mm','',1,'Repisa 3-3.2','/uploads/Inventory/image-1780427466272-366256639.jpg','2026-06-02 19:11:06','2026-06-02 13:11:06'), +(5,'Manguera karcher','herramienta','1/2” 13mm','',1,'Repisa 3-3.1','/uploads/Inventory/image-1780427824827-665053046.jpg','2026-06-02 19:17:04','2026-06-02 13:17:04'), +(6,'Manguera karcher ','herramienta','1/2”','',1,'Repisa 3-3.1','/uploads/Inventory/image-1780427892040-467858136.jpg','2026-06-02 19:18:12','2026-06-02 13:18:12'), +(7,'Cables de soldar','herramienta','CABLE KV-200 ','',1,'Repisa 3-4.2','/uploads/Inventory/image-1780428049326-97071501.jpg','2026-06-02 19:20:49','2026-06-02 13:20:49'), +(8,'Mangueras de oxicorte','herramienta','Roja con verde larga','',1,'Repisa 3-4.2','/uploads/Inventory/image-1780428263859-467207205.jpg','2026-06-02 19:24:23','2026-06-02 13:24:23'), +(9,'Manguera de oxicorte','herramienta','Verde roja corta','',1,'Repisa 3-4.2','/uploads/Inventory/image-1780428305805-173339160.jpg','2026-06-02 19:25:05','2026-06-02 13:25:05'), +(10,'Manguera de jardín ','herramienta','Variadas','',2,'Repisa 3-4.2','/uploads/Inventory/image-1780428373165-695879807.jpg','2026-06-02 19:26:13','2026-06-02 13:26:13'), +(11,'Cuerdas','herramienta','Cuerdas amarillas varias','',2,'Repisa 3-4.2','/uploads/Inventory/image-1780428433147-876533090.jpg','2026-06-02 19:27:13','2026-06-02 13:27:13'), +(12,'Extensión sencilla','herramienta','Naranjas','',2,'Repisa 3-4.2','/uploads/Inventory/image-1780428490328-217975664.jpg','2026-06-02 19:28:10','2026-06-02 13:28:10'), +(13,'Extensión de uso rudo','herramienta','Calibre 2x12 30mts','',1,'Repisa 3-4.2','/uploads/Inventory/image-1780428664491-757401596.jpg','2026-06-02 19:31:04','2026-06-02 13:31:04'), +(14,'Extensión de uso rudo','herramienta','Calibre 2x12 10m','',1,'Repisa 3-4.2','/uploads/Inventory/image-1780428723968-843479530.jpg','2026-06-02 19:32:03','2026-06-02 13:32:03'), +(15,'Cuerda de izar','herramienta','Cuerda con ganchos azul','',1,'Repisa 3-4.2','/uploads/Inventory/image-1780428882409-81496121.jpg','2026-06-02 19:34:42','2026-06-02 13:34:42'), +(16,'FAJAS DE SOPORTE LUMBAR','herramienta','Fajas color negro','',2,'Repisa 3-4.2','/uploads/Inventory/image-1780428973496-926181576.jpg','2026-06-02 19:36:13','2026-06-02 13:36:13'), +(17,'Arnes','herramienta','Arnés truper naranja talla 40- hasta 140kg','',2,'Repisa 3-4.2','/uploads/Inventory/image-1780429097593-185479026.jpg','2026-06-02 19:38:17','2026-06-02 13:38:17'), +(18,'Kit de arnés y cuerda','herramienta','Con funda','',3,'Repisa 3-4.2','/uploads/Inventory/image-1780429707819-419063885.jpg','2026-06-02 19:48:27','2026-06-02 13:48:27'), +(19,'Orejeras','herramienta','Par de orejeras amarillas 3m','',2,'Repisa 3-4.2','/uploads/Inventory/image-1780430133022-300046567.jpg','2026-06-02 19:55:33','2026-06-02 13:55:33'), +(20,'Mascarillas respiradores ','herramienta','Mascarillas 3M ','',6,'Repisa 3-4.2','/uploads/Inventory/image-1780430280845-899257154.jpg','2026-06-02 19:58:00','2026-06-02 13:58:00'), +(21,'Mandil de soldador','herramienta','Mandiles rojo y amarillo','',2,'Repisa 3-4.2','/uploads/Inventory/image-1780430553425-525408766.jpg','2026-06-02 20:02:33','2026-06-02 14:02:33'), +(22,'Guantes de soldador','herramienta','Azules','',3,'Repisa 3-4.2','/uploads/Inventory/image-1780430595162-466072690.jpg','2026-06-02 20:03:15','2026-06-02 14:03:15'), +(23,'Laptop uso rudo','herramienta','Laptop ruda marca Dell','PC-03',1,'Repisa 2-4.1','/uploads/Inventory/image-1780431075448-827804939.jpg','2026-06-02 20:11:15','2026-06-02 14:11:15'), +(24,'Laptop uso rudo','herramienta','Laptop ge tac ','PC-01-02_04_05',5,'SECC 2-4.1','/uploads/Inventory/image-1780431197439-188702057.jpg','2026-06-02 20:13:17','2026-06-03 10:37:13'), +(25,'Tablet uso rudo','herramienta','Table uso rudo marca getac','TAB-1-2-3-4',4,'SECC 2-4.1','/uploads/Inventory/image-1780431395628-330155935.jpg','2026-06-02 20:16:35','2026-06-02 14:16:35'), +(26,'Tteclados getac','herramienta','Negros portatiles','Getac-02 getac-01',2,'SECC 2-4.1','/uploads/Inventory/image-1780431651640-489226473.jpg','2026-06-02 20:20:51','2026-06-03 16:21:50'), +(27,'Impresora portátil HP de cartuchos ','herramienta','Gris con maleta ','HP-01 y HP_02',2,'SECC 2-1.1','/uploads/Inventory/image-1780431788969-979275802.jpg','2026-06-02 20:23:08','2026-06-02 14:23:08'), +(28,'Impresora térmica ','herramienta','Impresora de papel termico sin marca blanas','',2,'SECC 2-1.1','/uploads/Inventory/image-1780431962007-98021581.jpg','2026-06-02 20:26:02','2026-06-02 14:26:02'), +(29,'Impresora térmica pomemo','herramienta','Impresora térmica marca pomemo','',1,'SECC 1-1.1','/uploads/Inventory/image-1780432059912-164928649.jpg','2026-06-02 20:27:39','2026-06-02 14:27:39'), +(30,'Portafolios de plástico ','herramienta','Portafolios de plástico negros para escribir','',6,'SECC 1-1.1','/uploads/Inventory/image-1780432392836-215606453.jpg','2026-06-02 20:33:12','2026-06-02 14:33:12'), +(31,'Caja de herramientas husky','herramienta','Matracas dados ','HUSKY-01',1,'SECC 1-1.1','/uploads/Inventory/image-1780432747145-925839417.jpg','2026-06-02 20:39:07','2026-06-03 16:28:27'), +(32,'Caja de herramientas CRAFTMAN','herramienta','Caja de llaves dados etc incompleta ','CRFT-01',1,'SECC 1-1.1','/uploads/Inventory/image-1780432878765-927226808.jpg','2026-06-02 20:41:18','2026-06-03 16:23:18'), +(33,'Convertidores 110 a 220','herramienta','Convertidor de 110 a 220','JOHNSON-01 y 02',2,'SECC 1-1.2','/uploads/Inventory/image-1780433196724-265706929.jpg','2026-06-02 20:46:36','2026-06-02 14:46:36'), +(34,'Caja de herramientas husky','herramienta','Caja de herramientas','Husky-02',1,'SECC 1-1.2','/uploads/Inventory/image-1780433256223-880672727.jpg','2026-06-02 20:47:36','2026-06-02 14:47:36'), +(35,'Roscador de tubos klutch','herramienta','Enroscador de tubos marcaklutch','KLUTCH-01',1,'SECC 1-1.2','/uploads/Inventory/image-1780433765490-211533138.jpg','2026-06-02 20:56:05','2026-06-03 16:22:22'), +(36,'SACA BALEROS HIDRÁULICOS VEVOR','herramienta','Sacabaleros','VEVOR-003',1,'SECC 1-1.2','/uploads/Inventory/image-1780433938591-825495722.jpg','2026-06-02 20:58:58','2026-06-03 16:19:45'), +(37,'Saca baleros de 6”','herramienta','Sacabaleros','',1,'SECC 1-1.3','/uploads/Inventory/image-1780434045643-891693235.jpg','2026-06-02 21:00:45','2026-06-02 15:00:45'), +(38,'Sacabaleros de 4”','herramienta','Sacabaleros','',1,'SECC 1-1.3','/uploads/Inventory/image-1780434091043-139031897.jpg','2026-06-02 21:01:31','2026-06-02 15:01:31'), +(39,'Sacabaleros de 3”','herramienta','Sacabaleros','',1,'SECC 1-1.3','/uploads/Inventory/image-1780434147182-838047036.jpg','2026-06-02 21:02:27','2026-06-02 15:02:27'), +(40,'Sacabaleros de 6”','herramienta','Sacabaleros completo','',1,'SECC 1-1.3','/uploads/Inventory/image-1780434199473-546860635.jpg','2026-06-02 21:03:19','2026-06-02 15:03:19'), +(41,'Sacabaleros de 8”','herramienta','Sacabaleros de 8”','',1,'SECC 1-1.3','/uploads/Inventory/image-1780434305659-644218799.jpg','2026-06-02 21:05:05','2026-06-02 15:05:05'), +(42,'Roscador a de tubos vevor','herramienta','Roscador','VEVOR-002',1,'SECC 1-1.2','/uploads/Inventory/image-1780434462537-421494397.jpg','2026-06-02 21:07:42','2026-06-02 15:07:42'), +(43,'Manómetros de presion','herramienta','Manómetros','Vevor-004',1,'SECC 1-1.2','/uploads/Inventory/image-1780434559704-336521339.jpg','2026-06-02 21:09:19','2026-06-02 15:09:19'), +(44,'Kit extractor e instalador de bujes','herramienta','Kit extractor de bujes','Gen-007',1,'SECC 1-1.2','/uploads/Inventory/image-1780434716038-514911025.jpg','2026-06-02 21:11:56','2026-06-02 15:11:56'), +(45,'Ponchado pinza hidraulica','herramienta','Ponchador','Gen-011',1,'SECC 1-1.2','/uploads/Inventory/image-1780434963745-601945318.jpg','2026-06-02 21:16:03','2026-06-02 15:16:03'), +(46,'Medidor de tierras','herramienta','Medidor de tierras','ETCR-01',1,'SECC 1-4.2','/uploads/Inventory/image-1780435305914-128878882.jpg','2026-06-02 21:21:45','2026-06-02 15:21:45'), +(47,'Medidor de tierras','herramienta','Medidor de tierras','ETCR-01',0,'SECC 1-4.2','/uploads/Inventory/image-1780435305913-816687201.jpg','2026-06-02 21:21:45','2026-06-03 16:32:45'), +(48,'Medidor de tierras','herramienta','Medidor de tierras','ETCR-01',0,'SECC 1-4.2','/uploads/Inventory/image-1780435305924-10042542.jpg','2026-06-02 21:21:45','2026-06-03 16:32:40'), +(49,'Medidor de tierras','herramienta','Medidor de tierras','ETCR-01',0,'SECC 1-4.2','/uploads/Inventory/image-1780435305924-573767387.jpg','2026-06-02 21:21:45','2026-06-03 16:32:37'), +(50,'Medidor de tierras','herramienta','Medidor de tierras','ETCR-01',0,'SECC 1-4.2','/uploads/Inventory/image-1780435305929-612251645.jpg','2026-06-02 21:21:45','2026-06-03 16:32:25'), +(51,'Medidor de tierras','herramienta','Medidor de tierras','ETCR-01',0,'SECC 1-4.2','/uploads/Inventory/image-1780435305933-743759953.jpg','2026-06-02 21:21:45','2026-06-03 16:32:21'), +(52,'Medidor de tierras','herramienta','','ETCR-001',0,'Secc1_4.2','/uploads/Inventory/image-1780435354636-343606169.jpg','2026-06-02 21:22:34','2026-06-03 11:41:10'), +(53,'PRUEBA DE RELACIÓN DE TRANSFORMADOR','herramienta','','ST-01',1,'SECC 1-4.2','/uploads/Inventory/image-1780435482983-407142819.jpg','2026-06-02 21:24:42','2026-06-02 15:24:42'), +(54,'EQUIPOS DE PRUEBA DE RESISTENCIA DE CONTACTO','herramienta','','ST-02 y 02.1',1,'SECC 1-4.2','/uploads/Inventory/image-1780435698883-902820330.jpg','2026-06-02 21:28:18','2026-06-02 15:28:18'), +(55,'EQUIPO PARA PRUEBA DE ACEITE DIELECTRICO','herramienta','','ST-04',1,'SECC 1-4.2','/uploads/Inventory/image-1780435861438-475322957.jpg','2026-06-02 21:31:01','2026-06-02 15:31:01'), +(56,'Pesas para calibración de básculas','herramienta','Basculas','EQMED-01',1,'SECC 1-1.2','/uploads/Inventory/image-1780435994469-770933194.jpg','2026-06-02 21:33:14','2026-06-02 15:33:14'), +(57,'BOMBA DE VACÍO MARCA SPECTAR','herramienta','','BVSPEC-01 BVSPEC-02',2,'SECC 1-4.3','/uploads/Inventory/image-1780436237107-714060669.jpeg','2026-06-02 21:37:17','2026-06-02 15:37:17'), +(58,'MEDIDOR DE TANGENTE DELTA','herramienta','Son dos cajas azules','ST-03',1,'SECC 1-4.2','/uploads/Inventory/image-1780436347265-819114165.jpg','2026-06-02 21:39:07','2026-06-02 15:39:07'), +(59,'LIMPIADORA DE TUBOS marca GOODWAY','herramienta','','GW-01-AWT GW-02-AWT',2,'SECC 1-4.2','/uploads/Inventory/image-1780436768337-659757711.jpeg','2026-06-02 21:46:08','2026-06-03 16:24:01'), +(60,'BOMBA DE VACIO','herramienta','BOMBAS COLOR PLATA','BVGEN-01 BVGEN-02',2,'SECC 1-4.3','/uploads/Inventory/image-1780436977962-551228279.jpeg','2026-06-02 21:49:37','2026-06-02 15:49:37'), +(61,'BOMBAS DE VACIO','herramienta','Color naranja','BVELIT-01 BVELIT-02',2,'SECC 1-4.3','/uploads/Inventory/image-1780437112492-637650553.jpeg','2026-06-02 21:51:52','2026-06-02 15:51:52'), +(62,'BOMBA DE VACÍO VEVOR','herramienta','','VEVOR-01',1,'SECC 1-4.3','/uploads/Inventory/image-1780437545783-396470105.jpeg','2026-06-02 21:59:05','2026-06-03 16:18:46'), +(63,'RECUPERADORA DE GAS ','herramienta','','RR-01',1,'SECC 1-1.3','/uploads/Inventory/image-1780437959561-511071952.jpeg','2026-06-02 22:05:59','2026-06-02 16:05:59'), +(64,'RECUPERADORA DE GAS REFRIGERANTE','herramienta','','RR-02',1,'SECC 1-1.3','/uploads/Inventory/image-1780438003104-132611605.jpeg','2026-06-02 22:06:43','2026-06-02 16:06:43'), +(65,'VERSA','vehículo','Versa gris','DSW 396E',0,'Oficina','/uploads/Inventory/image-1784040047236-816186593.jpg','2026-07-14 14:40:47','2026-07-14 08:54:45'), +(66,'VERSA 1','vehículo','GRIS','NA',0,'OFICINA',NULL,'2026-07-14 14:55:31','2026-07-14 08:57:59'); +/*!40000 ALTER TABLE `inventory_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_movement_signatures` +-- + +DROP TABLE IF EXISTS `inventory_movement_signatures`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_movement_signatures` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `movement_id` int(11) NOT NULL, + `signed_by` int(11) DEFAULT NULL, + `signature_url` text NOT NULL, + `signed_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_movement_signature` (`movement_id`), + CONSTRAINT `inventory_movement_signatures_ibfk_1` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_movement_signatures` +-- + +LOCK TABLES `inventory_movement_signatures` WRITE; +/*!40000 ALTER TABLE `inventory_movement_signatures` DISABLE KEYS */; +INSERT INTO `inventory_movement_signatures` VALUES +(1,1,1,'/uploads/signatures/412af03b-f1e3-4a72-909a-2a53b318440a.png','2026-03-30 14:56:23'), +(2,2,1,'/uploads/signatures/723fc541-00dd-4e18-9618-e2844839959a.png','2026-03-30 15:01:15'), +(3,14,29,'/uploads/signatures/75446890-3b89-4ce5-8d8f-3f80c53d7e1b.png','2026-07-14 08:59:25'); +/*!40000 ALTER TABLE `inventory_movement_signatures` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_movements` +-- + +DROP TABLE IF EXISTS `inventory_movements`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_movements` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` int(11) NOT NULL, + `type` enum('entrada','salida','devolución') NOT NULL, + `quantity` int(11) NOT NULL, + `engineer_id` int(11) DEFAULT NULL, + `reason` text DEFAULT NULL, + `contract_ref` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `status` enum('activo','cancelado') NOT NULL DEFAULT 'activo', + `canceled_at` datetime DEFAULT NULL, + `canceled_by` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `item_id` (`item_id`), + KEY `engineer_id` (`engineer_id`), + KEY `fk_inventory_movements_canceled_by` (`canceled_by`), + KEY `idx_inventory_movements_contract_ref` (`contract_ref`), + CONSTRAINT `fk_inventory_movements_canceled_by` FOREIGN KEY (`canceled_by`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `inventory_movements_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `inventory_items` (`id`), + CONSTRAINT `inventory_movements_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_movements` +-- + +LOCK TABLES `inventory_movements` WRITE; +/*!40000 ALTER TABLE `inventory_movements` DISABLE KEYS */; +INSERT INTO `inventory_movements` VALUES +(1,1,'salida',1,30,'Asignación de herramienta','CONT-260330-001','2026-03-30 20:56:21','activo',NULL,NULL), +(2,2,'salida',1,30,'Asignación de vehículo','CONT-260330-001','2026-03-30 21:00:41','activo',NULL,NULL), +(3,1,'salida',1,NULL,'Ajuste manual administrativo',NULL,'2026-05-26 16:17:34','activo',NULL,NULL), +(4,52,'salida',1,NULL,'Ajuste manual administrativo',NULL,'2026-06-03 17:41:10','activo',NULL,NULL), +(5,51,'salida',1,NULL,'Ajuste manual administrativo',NULL,'2026-06-03 22:32:21','activo',NULL,NULL), +(6,50,'salida',1,NULL,'Ajuste manual administrativo',NULL,'2026-06-03 22:32:25','activo',NULL,NULL), +(7,49,'salida',1,NULL,'Ajuste manual administrativo',NULL,'2026-06-03 22:32:37','activo',NULL,NULL), +(8,48,'salida',1,NULL,'Ajuste manual administrativo',NULL,'2026-06-03 22:32:40','activo',NULL,NULL), +(9,47,'salida',1,NULL,'Ajuste manual administrativo',NULL,'2026-06-03 22:32:45','activo',NULL,NULL), +(10,65,'salida',1,26,'Asignación de vehículo',NULL,'2026-07-14 14:41:49','activo',NULL,NULL), +(11,65,'devolución',1,26,'Devolución de vehículo',NULL,'2026-07-14 14:53:12','cancelado','2026-07-14 08:53:22',29), +(12,65,'devolución',1,26,'Devolución de vehículo',NULL,'2026-07-14 14:53:30','cancelado','2026-07-14 08:54:45',29), +(13,66,'salida',1,26,'Asignación de vehículo',NULL,'2026-07-14 14:56:47','cancelado','2026-07-14 08:56:59',29), +(14,66,'salida',1,26,'Asignación de vehículo','CONT-260714-001','2026-07-14 14:57:59','activo',NULL,NULL); +/*!40000 ALTER TABLE `inventory_movements` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `little_box` +-- + +DROP TABLE IF EXISTS `little_box`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `little_box` ( + `petty_cash_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_user_id` int(11) NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `create_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`petty_cash_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `little_box_ibfk_1` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `little_box` +-- + +LOCK TABLES `little_box` WRITE; +/*!40000 ALTER TABLE `little_box` DISABLE KEYS */; +/*!40000 ALTER TABLE `little_box` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `quote` +-- + +DROP TABLE IF EXISTS `quote`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `quote` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `quote_date` date NOT NULL, + `location` varchar(100) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `entity` varchar(200) DEFAULT NULL, + `sender` varchar(150) DEFAULT NULL, + `department` varchar(200) DEFAULT NULL, + `equipment` text DEFAULT NULL, + `terms_and_conditions` text DEFAULT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_quote_date` (`quote_date`), + KEY `idx_location` (`location`), + KEY `idx_entity` (`entity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `quote` +-- + +LOCK TABLES `quote` WRITE; +/*!40000 ALTER TABLE `quote` DISABLE KEYS */; +/*!40000 ALTER TABLE `quote` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `roles_permissions` +-- + +DROP TABLE IF EXISTS `roles_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `roles_permissions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `role` enum('admin','engineer','technician') NOT NULL, + `permission` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `roles_permissions` +-- + +LOCK TABLES `roles_permissions` WRITE; +/*!40000 ALTER TABLE `roles_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `roles_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `service_orders` +-- + +DROP TABLE IF EXISTS `service_orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `service_orders` ( + `id_service_order` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) DEFAULT NULL, + `folio` varchar(50) DEFAULT NULL, + `fecha` date DEFAULT NULL, + `unidad_aplicativa` varchar(50) DEFAULT NULL, + `direccion` varchar(255) DEFAULT NULL, + `equipo` varchar(255) DEFAULT NULL, + `inventario` varchar(250) DEFAULT NULL, + `marca` varchar(250) DEFAULT NULL, + `serie` varchar(255) DEFAULT NULL, + `modelo` varchar(255) DEFAULT NULL, + `ubicacion` varchar(255) DEFAULT NULL, + `tipo_de_servicio` varchar(100) DEFAULT NULL, + `procedimiento` varchar(1000) DEFAULT NULL, + `foto_antes1` varchar(200) DEFAULT NULL, + `foto_antes2` varchar(200) DEFAULT NULL, + `foto_antes3` varchar(200) DEFAULT NULL, + `foto_durante1` varchar(200) DEFAULT NULL, + `foto_durante2` varchar(200) DEFAULT NULL, + `foto_durante3` varchar(200) DEFAULT NULL, + `foto_despues1` varchar(200) DEFAULT NULL, + `foto_despues2` varchar(200) DEFAULT NULL, + `foto_despues3` varchar(200) DEFAULT NULL, + `creado` date DEFAULT NULL, + `hora` varchar(15) DEFAULT NULL, + `id_ing` int(11) DEFAULT NULL, + `form_parameters` longtext DEFAULT NULL CHECK (json_valid(`form_parameters`)), + `service_order_sheet_route` text DEFAULT NULL, + `state` varchar(255) DEFAULT NULL, + `type_` varchar(255) DEFAULT NULL, + `so_param_type` varchar(255) DEFAULT NULL, + `folio_base` varchar(50) DEFAULT NULL, + `observaciones` varchar(1000) DEFAULT NULL, + PRIMARY KEY (`id_service_order`) +) ENGINE=InnoDB AUTO_INCREMENT=123 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `service_orders` +-- + +LOCK TABLES `service_orders` WRITE; +/*!40000 ALTER TABLE `service_orders` DISABLE KEYS */; +INSERT INTO `service_orders` VALUES +(12,NULL,'TRI-012-2026','2026-03-24','LA TRIBUNA SUCURSAL CENTRO','AQUILES SERDAN #1995 COL.CENTRO','AIRE ACONDICIONADO TIPO MINI SPLIT','N/A','FRIKKO','FKESOJ182C','FKESOJ182C','SALA DE TAIBOL, 2DA PLANTA PEGADO A LA VENTANA','[\"PREVENTIVO\"]','SE REALIZA DESARMADO DE CARCASA, LIMPIEZA DE FILTROS, LIMPIEZA SERPENTINES Y DE EVAPORADORA CON MAQUINA KARCHER, ASI COMO TAMBIÉN EN LA PARTE DE AZOTEA SERPENTINES Y MOTOR.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-24','16:36:59',26,'[]',NULL,'BORRADOR','SERVICE_ORDER',NULL,'012-2026','EL AIRE ACONDICIONADO SE ENCUNETRA EN REGULARES CONDICIONES DEBIDO A LA ANTIGÜEDAD DEL EQUIPO.'), +(13,0,'TRI-013-2026','2026-03-25','HOSPITAL MAC URBAN CENTER','JUAN PABLO II','PLANTA DE EMERGENCIA ','VE01-000257','SIN MARCA','N/A','N/A','ESTACIONAMIENTO DE LA PLAZA',NULL,'TIENE UNA FALLA EN EL CARGADOR DE LA BATERIA QUE PROVOCO UNA SOBRE CARGA EN BATERIAS Y DAÑO EN CELDAS DE LAS MISMAS, SIENDO NECESARIO REEMPLAZAR CARGADOR, BATERIAS, Y DAR MANTENIMIENTO A MARCHA.\r\n\r\nTAMBIÉN SE REQUIERE CAMBIO DE ACEITE Y FILTROS YA QUE EL SISTEMA LO SOLICITA Y REVISIÓN DE SENSORES, TEMPERATURA Y ACEITE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','14:46:03',26,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'013-2026','ES NECESARIO REALIZAR EL CAMBIO DE BATERIAS PARA PONERLA EN MARCHAR Y PODER DETECTAR ALGUNA OTRA ANOMALIA.'), +(14,0,'TRI-014-2026','2026-03-25','HOSPITAL MAC URBAN CENTER','JUAN PABLO II','PLANTA DE EMERGENCIA ','VE01-000257','SIN MARCA','N/A','N/A','ESTACIONAMIENTO DE LA PLAZA',NULL,'TIENE UNA FALLA EN EL CARGADOR DE LA BATERIA QUE PROVOCO UNA SOBRE CARGA EN BATERIAS Y DAÑO EN CELDAS DE LAS MISMAS, SIENDO NECESARIO REEMPLAZAR CARGADOR, BATERIAS, Y DAR MANTENIMIENTO A MARCHA.\r\n\r\nTAMBIÉN SE REQUIERE CAMBIO DE ACEITE Y FILTROS YA QUE EL SISTEMA LO SOLICITA Y REVISIÓN DE SENSORES, TEMPERATURA Y ACEITE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','14:46:43',26,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'014-2026','ES NECESARIO REALIZAR EL CAMBIO DE BATERIAS PARA PONERLA EN MARCHAR Y PODER DETECTAR ALGUNA OTRA ANOMALIA.'), +(15,0,'TRI-015-2026','2026-03-25','HOSPITAL MAC URBAN CENTER','JUAN PABLO II','PLANTA DE EMERGENCIA ','VE01-000257','SIN MARCA','N/A','N/A','ESTACIONAMIENTO DE LA PLAZA',NULL,'FALLA EN EL CARGADOR DE LA BATERIA LO QUE PROVOCO UNA SOBRE CARGA EN BATERIAS Y DAÑO EN CELDAS DE LAS MISMAS, SIENDO NECESARIO REEMPLAZAR CARGADOR, BATERIAS, Y DAR MANTENIMIENTO A MARCHA.\r\n\r\nTAMBIÉN SE REQUIERE CAMBIO DE ACEITE, FILTROS, REVISIÓN DE SENSORES, TEMPERATURA YA QUE EL SISTEMA LO SOLICITA.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','16:11:46',26,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'015-2026','ES NECESARIO REALIZAR EL CAMBIO DE BATERIAS PARA PONERLA EN MARCHA Y PODER DETECTAR SI EXISTE ALGUNA OTRA ANOMALIA.'), +(16,0,'TRI-016-2026','2026-03-25','HOSPITAL MAC URBAN CENTER','JUAN PABLO II','PLANTA DE EMERGENCIA ','VE01-000257','SIN MARCA','N/A','N/A','ESTACIONAMIENTO DE LA PLAZA',NULL,'FALLA EN EL CARGADOR DE LA BATERIA LO QUE PROVOCO UNA SOBRE CARGA EN BATERIAS Y DAÑO EN CELDAS DE LAS MISMAS, SIENDO NECESARIO REEMPLAZAR CARGADOR, BATERIAS, Y DAR MANTENIMIENTO A MARCHA.\r\n\r\nTAMBIÉN SE REQUIERE CAMBIO DE ACEITE, FILTROS, REVISIÓN DE SENSORES, TEMPERATURA YA QUE EL SISTEMA LO SOLICITA.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','16:17:09',26,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'016-2026','ES NECESARIO REALIZAR EL CAMBIO DE BATERIAS PARA PONERLA EN MARCHA Y PODER DETECTAR SI EXISTE ALGUNA OTRA ANOMALIA.'), +(17,0,'TRI-017-2026','2026-03-25','HOSPITAL MAC URBAN CENTER','JUAN PABLO II','PLANTA DE EMERGENCIA ','VE01-000257','SIN MARCA','N/A','N/A','ESTACIONAMIENTO DE LA PLAZA',NULL,'FALLA EN EL CARGADOR DE LA BATERIA LO QUE PROVOCO UNA SOBRE CARGA EN BATERIAS Y DAÑO EN CELDAS DE LAS MISMAS, SIENDO NECESARIO REEMPLAZAR CARGADOR, BATERIAS, Y DAR MANTENIMIENTO A MARCHA.\r\n\r\nTAMBIÉN SE REQUIERE CAMBIO DE ACEITE, FILTROS, REVISIÓN DE SENSORES, TEMPERATURA YA QUE EL SISTEMA LO SOLICITA.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','16:52:42',26,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'017-2026','ES NECESARIO REALIZAR EL CAMBIO DE BATERIAS PARA PONERLA EN MARCHA Y PODER DETECTAR SI EXISTE ALGUNA OTRA ANOMALIA.'), +(18,0,'TRI-018-2026','2026-03-26','7575','765','765','765','7657','656','576','5765',NULL,'675',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','16:57:56',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'018-2026','76'), +(19,0,'TRI-019-2026','2026-03-25','HOSPITAL MAC URBAN CENTER','JUAN PABLO II','PLANTA DE EMERGENCIA ','VE01-000257','SIN MARCA','N/A','N/A','ESTACIONAMIENTO DE LA PLAZA',NULL,'FALLA EN EL CARGADOR DE LA BATERIA LO QUE PROVOCO UNA SOBRE CARGA EN BATERIAS Y DAÑO EN CELDAS DE LAS MISMAS, SIENDO NECESARIO REEMPLAZAR CARGADOR, BATERIAS, Y DAR MANTENIMIENTO A MARCHA.\r\n\r\nTAMBIÉN SE REQUIERE CAMBIO DE ACEITE, FILTROS, REVISIÓN DE SENSORES, TEMPERATURA YA QUE EL SISTEMA LO SOLICITA.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','16:59:57',26,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'019-2026','ES NECESARIO REALIZAR EL CAMBIO DE BATERIAS PARA PONERLA EN MARCHA Y PODER DETECTAR SI EXISTE ALGUNA OTRA ANOMALIA.'), +(20,0,'TRI-020-2026','2026-03-25','HOSPITAL MAC URBAN CENTER','JUAN PABLO II','PLANTA DE EMERGENCIA ','VE01-000257','SIN MARCA','N/A','N/A','ESTACIONAMIENTO DE LA PLAZA',NULL,'FALLA EN EL CARGADOR DE LA BATERIA LO QUE PROVOCO UNA SOBRE CARGA EN BATERIAS Y DAÑO EN CELDAS DE LAS MISMAS, SIENDO NECESARIO REEMPLAZAR CARGADOR, BATERIAS, Y DAR MANTENIMIENTO A MARCHA.\r\n\r\nTAMBIÉN SE REQUIERE CAMBIO DE ACEITE, FILTROS, REVISIÓN DE SENSORES, TEMPERATURA YA QUE EL SISTEMA LO SOLICITA.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','17:07:21',26,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'020-2026','ES NECESARIO REALIZAR EL CAMBIO DE BATERIAS PARA PONERLA EN MARCHA Y PODER DETECTAR SI EXISTE ALGUNA OTRA ANOMALIA.'), +(21,0,'TRI-021-2026',NULL,'6','86','876','786','876','87','687','687',NULL,'687',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','17:11:04',1,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'021-2026','6'), +(22,0,'TRI-022-2026',NULL,'6','86','876','786','876','87','687','687',NULL,'687',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-25','17:12:32',1,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'022-2026','6'), +(23,0,'TRI-023-2026','2026-03-26','678','6786','76','876','76','8','687','6',NULL,'9',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','00:35:01',1,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'023-2026','776'), +(24,0,'TRI-024-2026','2026-03-26','678','6786','76','876','76','8','687','6',NULL,'9',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','00:35:37',1,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'024-2026','776867'), +(25,0,'TRI-025-2026','2026-03-26','678','6786','76','876','76','8','687','6',NULL,'9798796676786768767678676576765764354656546324356',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','00:36:13',1,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'025-2026','776867'), +(26,NULL,'TRI-026-2026','2026-03-26','7978','6876','86','79','97089','7','8967','9','[\"PREVENTIVO\",\"CORRECTIVO\"]','798765765','uploads/fotosAntes1-1774507071217-21190883.jpg',NULL,NULL,'uploads/fotosDurante1-1774904290851-406187624.jpg',NULL,NULL,'uploads/fotosDespues1-1774904290852-323081805.jpg',NULL,NULL,'2026-03-26','00:37:51',1,'[]','uploads/OsScannedPdf/osEscaneada-1778274002023-487930942.pdf','FINALIZADO','SERVICE_ORDER',NULL,'026-2026','6'), +(27,0,'TRI-027-2026','2026-03-29','56756','697857','6','75','876786','7687','6987','null',NULL,'null',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','00:43:05',1,NULL,NULL,'BORRADOR','WARRANTY_SHEET',NULL,'027-2026','null'), +(28,0,'TRI-028-2026','2026-03-27','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','DIAGNOSTICO','minusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculas',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','00:50:35',1,NULL,NULL,'BORRADOR','WARRANTY_SHEET',NULL,'028-2026','minusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculas'), +(29,0,'TRI-029-2026','2026-03-26','76','876','6','6756','978','65','7','8','DIAGNOSTICO','67',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','00:51:49',1,NULL,NULL,'BORRADOR','WARRANTY_SHEET',NULL,'029-2026',NULL), +(30,0,'TRI-030-2026','2026-03-26','678','6786','76','876','76','8','687','6',NULL,'9798796676786768767678676576765764354656546324356',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','01:36:28',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'030-2026','776867'), +(31,0,'TRI-031-2026','2026-03-26','678','6786','76','876','76','8','687','6',NULL,'9798796676786768767678676576765764354656546324356',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','01:38:23',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'031-2026','7768672123213123'), +(32,0,'TRI-032-2026','2026-03-26','OFICINA minusculas','BUGAMBILIA minusculas','ERP minusculas','NA minusculas','minusculas','minusculas','minusculas','minusculas','INSTALACION,OTROS','REVISANDO minusculas',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','15:50:57',29,NULL,NULL,'FINALIZADO','WARRANTY_SHEET',NULL,'032-2026',NULL), +(33,0,'TRI-033-2026','2026-03-26','OFICINA minusculas','BUGAMBILIA minusculas','ERP minusculas','N/A minusculas','N/A minusculas','N/A minusculas','N/A minusculas','N/A minusculas',NULL,'minusculas REVISANDO',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','15:56:15',29,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'033-2026','minusculas REVISANDO'), +(34,0,'TRI-034-2026','2026-03-26','ERP OFICINAminusculas','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas',NULL,'minusculas',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','16:07:01',26,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'034-2026','minusculas'), +(35,NULL,'TRI-OS-034-2026-01','2026-03-26','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','[\"OTROS\",\"INSTALACION\",\"DIAGNOSTICO\",\"CORRECTIVO\",\"PREVENTIVO\"]','minusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculas','uploads/fotosAntes1-1774563044562-429265022.jpg','uploads/fotosAntes2-1774563044563-311969935.jpg','uploads/fotosAntes3-1774563044564-543655713.jpg','uploads/fotosDurante1-1774563044565-919153713.jpg','uploads/fotosDurante2-1774563044565-893043342.jpg','uploads/fotosDurante3-1774563044565-528279368.jpg','uploads/fotosDespues1-1774563044566-275172132.jpg',NULL,'uploads/fotosDespues3-1774563044567-486147015.jpg','2026-03-26','16:10:44',26,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'034-2026','minusculas'), +(36,0,'TRI-GT-034-2026-01','2026-03-27','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','minusculas','PREVENTIVO,CORRECTIVO','minusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculasminusculas',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-26','16:14:31',26,NULL,NULL,'FINALIZADO','WARRANTY_SHEET',NULL,'034-2026',NULL), +(37,0,'TRI-GT-026-2026-01','2026-03-30','789','867','786','9786','9','687','576','5564','INSTALACION,DIAGNOSTICO','se realizó el procedimiento correctamente',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-29','22:49:07',1,NULL,NULL,'FINALIZADO','WARRANTY_SHEET',NULL,'026-2026','no se encontraron observaciones'), +(38,0,'TRI-035-2026','2026-03-30','78657','7856','57565','7768','5856','8567','587567','56757',NULL,'65567',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-30','00:05:22',30,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'035-2026','6757'), +(39,0,'TRI-036-2026','2026-03-30','yiuty','676','876','786','786','786','786','78',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-30','00:15:52',30,NULL,'uploads/OsScannedPdf/osEscaneada-1774852116211-745952820.pdf','BORRADOR','DIAGNOSTIC_SHEET',NULL,'036-2026',NULL), +(40,NULL,'TRI-OS-036-2026-01','2026-03-30','6575','657','568','7','56','55','75','56757','[\"DIAGNOSTICO\",\"CORRECTIVO\"]','dsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusad','uploads/fotosAntes1-1774851694925-153388381.jpg',NULL,NULL,'uploads/fotosDurante1-1774851694925-641042519.jpg',NULL,NULL,'uploads/fotosDespues1-1774851694925-813372532.jpg',NULL,NULL,'2026-03-30','00:21:34',30,'[]','uploads/OsScannedPdf/osEscaneada-1774852687629-389089896.pdf','FINALIZADO','SERVICE_ORDER',NULL,'036-2026','dsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusaddsadsuhdiuhduidusad'), +(41,0,'TRI-GT-036-2026-01','2026-03-30','unidad 34','veracruz','chiller','123124','max','234ef','plus','planta alta','DIAGNOSTICO,CORRECTIVO','se realizo mantenimiento',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-30','00:31:46',30,NULL,'uploads/OsScannedPdf/osEscaneada-1774852634244-911071926.pdf','FINALIZADO','WARRANTY_SHEET',NULL,'036-2026','todo correcto'), +(42,0,'TRI-GT-036-2026-02','2026-03-30','yyuiy','uiyiuy','uiy','uiyiuyui','yuiy','uiy','uiy','iy','CORRECTIVO,DIAGNOSTICO','yuiyyui',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-30','00:41:56',30,NULL,NULL,'FINALIZADO','WARRANTY_SHEET',NULL,'036-2026','uyuityutguyg'), +(43,0,'TRI-037-2026',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-30','13:51:39',1,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'037-2026','minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas minúsculas '), +(44,0,'TRI-038-2026','2026-03-25','WELLDEX | VENKEL','BLVR. PORTUARIO, 91709','PLANTA DE EMERGENCIA','N/A','N/A','N/A','N/A','PATIO',NULL,'AL LLEGAR A REVISAR EL EQUIPO SE ENCUENTRA EN MODO FUERA, LO QUE QUIERE DECIR QUE NO ESTABA TRABAJANDO EN MODO AUTOMATICO, SE VERIFICO EL NIVEL DE ACEITE Y ANTICONGELANTE. SE PROCEDIO A REALIZAR UNA PRUEBA SIN CARGA Y SE ENVIO A RESETEO PARA ENVIARSE A MODO AUTOMATICO, EL PERSONAL DE WELLDEX PERMITIO REALIZAR PRUEBAS EN MODO AUTOMATICO Y EL EQUIPO COMENZO A FUNCIONAR, POSTERIORMENTE SE HICIERON PRUEBAS EN DIFERENTES FASES LAS CUALES EL PERSONAL DE WELLDEX VERIFICO EN OFICINA OBSERVANDO EL CAMBIO DE LA TRANSFERENCIA, QUEDANDO RESUELTA LA FALLA PREVIA. \r\n\r\nTRIMAPE RECOMIENDA REALIZAR UN SERVICIO PREVENTIVO MAYOR PARA DEJAR EL EQUIPO FUNCIONANDO CORRECTAMENTE, ASI COMO SUS MANTENIMIENTOS PREVENTIVOS SEMESTRALES. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-04-07','12:55:01',29,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'038-2026','SE RECOMIENDA UN MANTENIMIENTO PREVENTIVO MAYOR ANUAL Y 1 MANTENIMIENTO PREVENTIVO SEMESTRAL'), +(45,0,'TRI-039-2026','2026-04-10','56756','6757','768567','5657','567675','576','645','45',NULL,'967856',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-04-10','12:34:29',30,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'039-2026','657'), +(46,0,'TRI-040-2026','2026-04-10','Bar la tribuna','Arista esq madero','campana de cocina','Campana sucursal uno','s/m','n/a','n/a','cocina',NULL,'Se realizo inspección del sistema de extracción del área de cocina, con exceso de cochambre, siendo necesario limpieza de ductos, asi como pintura anti cochambre en ducto interior y ducto de salida, dicho servicio se realizara hasta donde sea accesible debido a que el ducto se encuentra abrazado por tabla roca. \r\nAsi como también el mantenimiento preventivo del motor extractor, baleros, lavado y barnizado de bobina , asi como limpieza de ventilador pintura y cambio de tornillería en dado caso.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-04-10','12:51:20',26,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'040-2026','El tiempo para realizar el trabajo es de 48 horas aproximadamente esto dependiendo del día en que se pueda realizar.'), +(47,NULL,'TRI-041-2026','2026-05-04','UMAE 14','Av cuahutemoc','Aire axón.','24677543','gmtc','vgbhhh234678','cgghfgc57898','cocina','[\"PREVENTIVO\"]','Gvfgygygfcfdtguhjnhvgvhbg','uploads/fotosAntes1-1777915226528-161939202.jpg','uploads/fotosAntes2-1777915226530-204423982.jpg','uploads/fotosAntes3-1777915226531-763987526.jpg','uploads/fotosDurante1-1777915226533-301784125.jpg','uploads/fotosDurante2-1777915226536-577840699.jpg','uploads/fotosDurante3-1777915226538-456843336.jpg','uploads/fotosDespues1-1777915226539-543909123.jpg','uploads/fotosDespues2-1777915226540-319935999.jpg','uploads/fotosDespues3-1777915226541-676018413.jpg','2026-05-04','11:20:26',26,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'041-2026','el equipo queda funcionando correctamente'), +(48,NULL,'TRI-042-2026','2026-05-11','Umf#10','Calle hidalgo#53','Refrigerador con grafica ','122357864fd','gemetec','tr123456','wsr32456','Zona fria','[\"PREVENTIVO\"]','se realizo limpieza a refrigerador aplicando liquido coil cleaner a condensador\r\nLubricacion y chequeo de motor ventilador, se checo precion y amperaje','uploads/fotosAntes1-1777916207965-728570613.jpg','uploads/fotosAntes2-1777916207966-726022921.jpg','uploads/fotosAntes3-1777916207966-962852354.jpg','uploads/fotosDurante1-1777916207967-977844085.jpg','uploads/fotosDurante2-1777916207967-271775399.jpg','uploads/fotosDurante3-1777916207967-640346540.jpg','uploads/fotosDespues1-1777916207969-685673867.jpg','uploads/fotosDespues2-1777916207969-627730450.jpg','uploads/fotosDespues3-1777916207970-627448283.jpg','2026-05-04','11:36:47',26,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'042-2026','el equipo quéda funcionando correctamente'), +(49,NULL,'TRI-043-2026','2026-05-04','Umae 14','Av Cuauhtémoc ','aire acondicionado ','jfhghh','lg','1455476','n/a','cocina','[\"PREVENTIVO\"]','mantenimiento a aire acondicionado ','uploads/fotosAntes1-1777916748355-741355388.jpg','uploads/fotosAntes2-1777916748355-898054716.jpg','uploads/fotosAntes3-1777916748356-114090952.jpg','uploads/fotosDurante1-1777916748357-492681685.jpg','uploads/fotosDurante2-1777916748358-121006905.jpg','uploads/fotosDurante3-1777916748359-658715818.jpg','uploads/fotosDespues1-1777916748359-950972351.jpg','uploads/fotosDespues2-1777916748360-481625691.jpg','uploads/fotosDespues3-1777916748362-863709966.jpg','2026-05-04','11:45:48',26,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'043-2026','el equipo queda funcionando correctamente '), +(50,NULL,'TRI-044-2026','2026-05-06','UMAE 14','AV CUAUHTEMOC','AIRE ACONDICIONADO TIPO MINI SPLIT','NN3458USH','LG','IMSS-2158634','LG-PH JENIDWOAK','COCINA','[\"PREVENTIVO\"]','SE REALIZO MANTENIMIENTO PREVENTIVO A MINI SPLIT, SE RETIRARON CARCAZAS DE PLASTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.','uploads/fotosAntes1-1778089198194-666880925.jpg','uploads/fotosAntes2-1778089198194-65340467.jpg','uploads/fotosAntes3-1778089198194-255036829.jpg','uploads/fotosDurante1-1778089198195-928691356.jpg','uploads/fotosDurante2-1778089198195-740396746.jpg','uploads/fotosDurante3-1778089198195-547501190.jpg','uploads/fotosDespues1-1778089198196-6071948.jpg','uploads/fotosDespues2-1778089198197-295310470.jpg','uploads/fotosDespues3-1778089198199-110490958.jpg','2026-05-06','11:39:58',26,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'044-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE'), +(51,NULL,'TRI-045-2026','2026-05-14','UMF No. 20','Narciso Mendoza 104 ','Refrigerador para vacunas de 17.6 FT3','202280018666','gemetec','2208019','RV-17.6','Red fria','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DE VACUNAS 19 PIES REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, RE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778169032371-682970459.jpg','uploads/fotosAntes2-1778169032372-612970246.jpg','uploads/fotosAntes3-1778169032372-186530723.jpg','uploads/fotosDurante1-1778169032373-761987142.jpg','uploads/fotosDurante2-1778169032374-892703537.jpg','uploads/fotosDurante3-1778169032374-449774901.jpg','uploads/fotosDespues1-1778169032375-981189659.jpg','uploads/fotosDespues2-1778169032376-146004519.jpg','uploads/fotosDespues3-1778169032376-672853285.jpg','2026-05-07','09:50:32',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'045-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE '), +(52,NULL,'TRI-046-2026','2026-05-14','UMF No. 20','Narciso Mendoza Norte 104','Congelador','200880010864','Ojeda','0386113-32896-N','Chp-05','Red fria','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR PARA LABORATORIO REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, RE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778170512842-873887222.jpg','uploads/fotosAntes2-1778170512843-764487468.jpg','uploads/fotosAntes3-1778170512844-986968860.jpg','uploads/fotosDurante1-1778170512844-66531918.jpg','uploads/fotosDurante2-1778170512845-34013616.jpg','uploads/fotosDurante3-1778170512846-814767574.jpg','uploads/fotosDespues1-1778170512847-904403359.jpg','uploads/fotosDespues2-1778170512847-420831008.jpg','uploads/fotosDespues3-1778170512848-600823651.jpg','2026-05-07','10:15:12',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'046-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE '), +(53,NULL,'TRI-047-2026','2026-05-14','UMF No. 20','Narciso Mendoza Norte 104','Refrigerador para vacunas','202280032502','Ojeda','RVBM-500LAB','0036185-31012-B','Farmacia','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DE VACUNAS REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, RE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778171652642-679904623.jpg','uploads/fotosAntes2-1778171652643-838723884.jpg','uploads/fotosAntes3-1778171652643-890654041.jpg','uploads/fotosDurante1-1778171652643-938997955.jpg','uploads/fotosDurante2-1778171652644-796266302.jpg','uploads/fotosDurante3-1778171652644-265663683.jpg','uploads/fotosDespues1-1778171652645-756196178.jpg','uploads/fotosDespues2-1778171652645-350839598.jpg','uploads/fotosDespues3-1778171652645-293809393.jpg','2026-05-07','10:34:12',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'047-2026','El equipo quedó funcionando correctamente'), +(54,NULL,'TRI-048-2026','2026-05-07','UMF No. 48','16 de septiembre 1a','refrigerador de 19 pies','202080008651','Gemetec','1910093','rv-17.6','farmacio','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DE 19 PIES REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778183812633-228541285.jpg','uploads/fotosAntes2-1778183812634-515562718.jpg','uploads/fotosAntes3-1778183812634-414675096.jpg','uploads/fotosDurante1-1778183812635-216454252.jpg','uploads/fotosDurante2-1778183812635-804242201.jpg','uploads/fotosDurante3-1778183812636-450315897.jpg','uploads/fotosDespues1-1778183812636-319993727.jpg','uploads/fotosDespues2-1778183812638-579565014.jpg','uploads/fotosDespues3-1778183812639-667339258.jpg','2026-05-07','13:56:52',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'048-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE '), +(55,NULL,'TRI-049-2026',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-07','15:29:26',NULL,NULL,NULL,NULL,NULL,NULL,'049-2026',NULL), +(56,NULL,'TRI-050-2026',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-07','15:29:38',NULL,NULL,NULL,NULL,NULL,NULL,'050-2026',NULL), +(57,NULL,'TRI-051-2026','2026-05-08','Umf No. 17','Sta. Elena','refrigerador para vacunas 13 pies','202280032513','ojeda','0036182-31012-B','Rvbm-500lab','farmacia','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DE VACUNAS REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778267736193-336134069.jpg','uploads/fotosAntes2-1778267736195-599409525.jpg','uploads/fotosAntes3-1778267736196-838815224.jpg','uploads/fotosDurante1-1778267736196-983893717.jpg','uploads/fotosDurante2-1778267736197-580182281.jpg','uploads/fotosDurante3-1778267736197-742606022.jpg','uploads/fotosDespues1-1778267736198-378425514.jpg','uploads/fotosDespues2-1778267736199-919762517.jpg','uploads/fotosDespues3-1778267736199-597162256.jpg','2026-05-08','13:15:36',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'051-2026','El equipo queda funcionando correctamente'), +(58,NULL,'TRI-052-2026','2026-05-08','umf No. 17','Sta. Elena','Refrigerador de vacunas del 19 ft','2022 8001 8665','gemetec','2208016','rv-17.6','red fria','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DE 19 FT REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778269361932-940699281.jpg','uploads/fotosAntes2-1778269361932-954225851.jpg','uploads/fotosAntes3-1778269361934-784816599.jpg','uploads/fotosDurante1-1778269361934-174009927.jpg','uploads/fotosDurante2-1778269361935-302526791.jpg','uploads/fotosDurante3-1778269361935-366992502.jpg','uploads/fotosDespues1-1778269361935-59282914.jpg','uploads/fotosDespues2-1778269361936-266348611.jpg','uploads/fotosDespues3-1778269361937-230289870.jpg','2026-05-08','13:42:41',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'052-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE '), +(59,NULL,'TRI-053-2026','2026-05-08','umf No. 17','Sta. Elena','Congelador doméstico','20088000163','ojeda','0327359-32514-M','Chp-05','red fria','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR DOMESTICO REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778271352057-323604843.jpg','uploads/fotosAntes2-1778271352058-920426668.jpg','uploads/fotosAntes3-1778271352058-962057747.jpg','uploads/fotosDurante1-1778271352059-479508210.jpg','uploads/fotosDurante2-1778271352059-482946034.jpg','uploads/fotosDurante3-1778271352060-552775925.jpg','uploads/fotosDespues1-1778271352061-669958635.jpg','uploads/fotosDespues2-1778271352061-117056994.jpg','uploads/fotosDespues3-1778271352062-528557800.jpg','2026-05-08','14:15:52',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'053-2026','El equipo queda funcionando correctamente'), +(60,NULL,'TRI-054-2026','2026-05-08','umf No. 18','Ávila Camacho s/n','Refrigerador para vacunas de 13 ft','20220032511','ojeda','0036183- 31012-B','RVBM-500LAB','farmacia','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DE 13 FT REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778280566322-465591978.jpg','uploads/fotosAntes2-1778280566322-896908275.jpg','uploads/fotosAntes3-1778280566323-904293830.jpg','uploads/fotosDurante1-1778280566324-193102265.jpg','uploads/fotosDurante2-1778280566325-837179184.jpg','uploads/fotosDurante3-1778280566326-418913310.jpg','uploads/fotosDespues1-1778280566327-236751259.jpg','uploads/fotosDespues2-1778280566328-795009686.jpg','uploads/fotosDespues3-1778280566329-791016369.jpg','2026-05-08','16:49:26',32,'[{\"plataforma\":\"n/a\"},{\"ubicacion\":\"farmacia \"},{\"nivel\":\"1\"},{\"marca\":\"ojeda\"},{\"modelo\":\"RVBM-500-LAB\"},{\"serie\":\"0036183- 31012-B\"},{\"capacidad\":\"13 ft\"},{\"no_equipo_sap\":\"n/a\"},{\"no_orden_sap\":\"n/a\"},{\"inicio_mantto\":\"2026-05-08\"},{\"fin_mantto\":\"2026-05-08\"},{\"tiempo_ejecucion_jornadas\":\"25\"},{\"fecha_instalacion_equipo\":\"2026-05-08\"},{\"partida_anexo_c\":\"n/a\"},{\"tipo_mantenimiento\":\"SEMESTRAL\"},{\"pl0\":\"10\"},{\"pl1\":\"10\"},{\"pc0\":\"5\"},{\"pc1\":\"5\"},{\"pc2\":\"5\"},{\"pc3\":\"5\"},{\"po00\":\"120.2\"},{\"po01\":\"119.9\"},{\"po02\":\"121.3\"},{\"po10\":\"2.86\"},{\"po11\":\"2.80\"},{\"po12\":\"2.78\"},{\"po20\":\".797\"},{\"po21\":\".795\"},{\"po22\":\".796\"},{\"po30\":\"4 lb\"},{\"po31\":\"4 lb\"},{\"po32\":\"4 lb\"}]',NULL,'FINALIZADO','SERVICE_ORDER','refrigerador','054-2026','El equipo queda funcionando correctamente'), +(61,NULL,'TRI-055-2026','2026-05-09','Umf No. 8','Guillermo Valle 10015','Refrigerador 19 ft','2002900859','ojeda','0591488-30704-R','rvbm-500','cocina','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DE 19 FT REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778350520055-556957234.jpg','uploads/fotosAntes2-1778350520055-700858177.jpg','uploads/fotosAntes3-1778350520055-780513642.jpg','uploads/fotosDurante1-1778350520058-539927959.jpg','uploads/fotosDurante2-1778350520058-111677327.jpg','uploads/fotosDurante3-1778350520059-806122702.jpg','uploads/fotosDespues1-1778350520060-387318336.jpg','uploads/fotosDespues2-1778350520060-136931963.jpg','uploads/fotosDespues3-1778350520061-569905379.jpg','2026-05-09','12:15:20',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'055-2026','El equipo se queda funcionando correctamente'), +(62,NULL,'TRI-056-2026','2026-05-09','umf No. 8','Guillermo Valle 115','Conservador de 2 puertas','Bmnc.nutric.almacen.-2','Frigotherm','n/a','n/a','cocina','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONSERVADOR DE DOS PUERTAS REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778351513334-391815762.jpg','uploads/fotosAntes2-1778351513335-522612147.jpg','uploads/fotosAntes3-1778351513335-430117912.jpg','uploads/fotosDurante1-1778351513336-125068879.jpg','uploads/fotosDurante2-1778351513337-742445819.jpg','uploads/fotosDurante3-1778351513338-340431188.jpg','uploads/fotosDespues1-1778351513339-632388387.jpg','uploads/fotosDespues2-1778351513341-594156794.jpg','uploads/fotosDespues3-1778351513342-164050706.jpg','2026-05-09','12:31:53',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'056-2026','El equipo queda funcionando correctamente'), +(63,NULL,'TRI-057-2026','2026-05-09','umf No. 8','Guillermo Valle 115','Refrigerador vertical','2011 0000 1665','imbera','067101100101','VR12 D BMAD','cocina','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR VERTICAL REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778352919335-645516286.jpg','uploads/fotosAntes2-1778352919336-880348376.jpg','uploads/fotosAntes3-1778352919336-962695801.jpg','uploads/fotosDurante1-1778352919337-634631480.jpg','uploads/fotosDurante2-1778352919337-887651052.jpg','uploads/fotosDurante3-1778352919338-628306613.jpg','uploads/fotosDespues1-1778352919339-221847711.jpg','uploads/fotosDespues2-1778352919339-83067364.jpg','uploads/fotosDespues3-1778352919340-643418734.jpg','2026-05-09','12:55:19',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'057-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE'), +(64,NULL,'TRI-058-2026','2026-05-09','umf No. 8','Guillermo Valle 115','Refrigerador para laboratorio ','2002900867','ojeda','15741-30706-G','RVBM-290','cocina','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR PARA LABORATORIO REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778353839855-820633100.jpg','uploads/fotosAntes2-1778353839856-89823529.jpg','uploads/fotosAntes3-1778353839857-880629319.jpg','uploads/fotosDurante1-1778353839858-213922114.jpg','uploads/fotosDurante2-1778353839859-586645634.jpg','uploads/fotosDurante3-1778353839859-916243349.jpg','uploads/fotosDespues1-1778353839860-529201744.jpg','uploads/fotosDespues2-1778353839862-548858390.jpg','uploads/fotosDespues3-1778353839862-962587594.jpg','2026-05-09','13:10:39',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'058-2026','El equipo queda funcionando correctamente'), +(65,NULL,'TRI-059-2026','2026-05-09','umf No.8','Guillermo Valle 115','Refrigerador para laboratorio','1998014140','hussmann','AM98L046271','rc-400w','cocina','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR PARA LABORATORIO REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778354642804-612320053.jpg','uploads/fotosAntes2-1778354642804-357686781.jpg','uploads/fotosAntes3-1778354642805-872943770.jpg','uploads/fotosDurante1-1778354642807-818726103.jpg','uploads/fotosDurante2-1778354642807-934458719.jpg','uploads/fotosDurante3-1778354642811-783910508.jpg','uploads/fotosDespues1-1778354642812-333696657.jpg','uploads/fotosDespues2-1778354642813-901741681.jpg','uploads/fotosDespues3-1778354642813-911050958.jpg','2026-05-09','13:24:02',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'059-2026','El equipo queda funcionando correctamente'), +(66,NULL,'TRI-060-2026','2026-05-09','umf No. 8','Guillermo Valle 115','Refrigerador para vacunas','2003900631','ojeda','79893-31001-I','rvbm-500','Medicina preventiva','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR PARA VACUNAS REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778356068897-788501236.jpg','uploads/fotosAntes2-1778356068898-242663398.jpg','uploads/fotosAntes3-1778356068910-991277699.jpg','uploads/fotosDurante1-1778356068910-853731763.jpg','uploads/fotosDurante2-1778356068911-228968992.jpg','uploads/fotosDurante3-1778356068912-427874393.jpg','uploads/fotosDespues1-1778356068913-654477589.jpg','uploads/fotosDespues2-1778356068914-169795499.jpg','uploads/fotosDespues3-1778356068915-595669398.jpg','2026-05-09','13:47:48',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'060-2026','El equipo queda Funcionando correctamente'), +(67,NULL,'TRI-061-2026','2026-05-09','umf No. 8','Guillermo Valle 115','Congelador de baúl',' n/a','Torrey','b30jj5e0p00qmn4f0131','Chtc-55 d','Medicina preventiva','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR DE BAÚL REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778356767318-118550024.jpg','uploads/fotosAntes2-1778356767319-487406847.jpg','uploads/fotosAntes3-1778356767319-204097669.jpg','uploads/fotosDurante1-1778356767320-460400610.jpg','uploads/fotosDurante2-1778356767320-125447557.jpg','uploads/fotosDurante3-1778356767321-781298711.jpg','uploads/fotosDespues1-1778356767321-493538092.jpg','uploads/fotosDespues2-1778356767322-891063320.jpg','uploads/fotosDespues3-1778356767322-306454049.jpg','2026-05-09','13:59:27',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'061-2026','El equipo queda funcionando correctamente'), +(68,NULL,'TRI-062-2026','2026-05-09','umf No. 8','Guillermo Valle 115','Congelador para vacunas','2008 80010862','ojeda','0386116-32896-N','CHP-05','Medicina preventiva','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR PARA VACUNAS REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778357651993-946862143.jpg','uploads/fotosAntes2-1778357651993-629886879.jpg','uploads/fotosAntes3-1778357651993-979771693.jpg','uploads/fotosDurante1-1778357651994-314746266.jpg','uploads/fotosDurante2-1778357651995-672240499.jpg','uploads/fotosDurante3-1778357651997-506665646.jpg','uploads/fotosDespues1-1778357651998-862808459.jpg','uploads/fotosDespues2-1778357652000-702627651.jpg','uploads/fotosDespues3-1778357652001-515208712.jpg','2026-05-09','14:14:12',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'062-2026','El equipo queda funcionando correctamente'), +(69,NULL,'TRI-063-2026','2026-05-09','umf No. 8','Guillermo Valle 115','Congelador para vacunas','200390 0047','Ojeda ','0386136-32896-N','CHP-05','Medicina preventiva','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR PARA VACUNAS REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778359210449-375505962.jpg','uploads/fotosAntes2-1778359210449-131350489.jpg','uploads/fotosAntes3-1778359210452-1571209.jpg','uploads/fotosDurante1-1778359210453-875801058.jpg','uploads/fotosDurante2-1778359210453-247575506.jpg','uploads/fotosDurante3-1778359210454-841443662.jpg','uploads/fotosDespues1-1778359210455-964350953.jpg','uploads/fotosDespues2-1778359210456-411821995.jpg','uploads/fotosDespues3-1778359210457-594657544.jpg','2026-05-09','14:40:10',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'063-2026','El equipo queda funcionando correctamente'), +(70,NULL,'TRI-064-2026','2026-05-09','Umf No. 8','Guillermo Valle 115','Refrigerador doméstico','199806817','Kelvinator','n/a','n/a','Hospitalización ','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778360897858-699058326.jpg','uploads/fotosAntes2-1778360897858-519580088.jpg','uploads/fotosAntes3-1778360897859-319580483.jpg','uploads/fotosDurante1-1778360897860-656060630.jpg','uploads/fotosDurante2-1778360897861-697594079.jpg','uploads/fotosDurante3-1778360897861-361487542.jpg','uploads/fotosDespues1-1778360897863-941189303.jpg','uploads/fotosDespues2-1778360897864-187108816.jpg','uploads/fotosDespues3-1778360897865-272665334.jpg','2026-05-09','15:08:17',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'064-2026','El equipo queda funcionando correctamente'), +(71,NULL,'TRI-065-2026','2026-05-09','Umf No. 8','Guillermo Valle 115','Refrigerador doméstico ','n/a','Samsung inverter','0BCW4DBFC00320Y','rt46h5501sl','pediatría ','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DE REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778362005046-495845924.jpg',NULL,NULL,'uploads/fotosDurante1-1778362005046-264743265.jpg','uploads/fotosDurante2-1778362005047-292533453.jpg','uploads/fotosDurante3-1778362005047-408819006.jpg','uploads/fotosDespues1-1778362005047-466110150.jpg','uploads/fotosDespues2-1778362005047-964348663.jpg','uploads/fotosDespues3-1778362005049-25543753.jpg','2026-05-09','15:26:45',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'065-2026','El equipo queda funcionando correctamente'), +(72,NULL,'TRI-066-2026','2026-05-09','umf No. 8','Guillermo Valle 115','Refrigerador Domestico','1998006817','kelvinator','n/a','n/a','hospitalización ','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778362706954-576123880.jpg','uploads/fotosAntes2-1778362706954-84188164.jpg','uploads/fotosAntes3-1778362706954-112005425.jpg','uploads/fotosDurante1-1778362706955-847503402.jpg','uploads/fotosDurante2-1778362706956-770305634.jpg','uploads/fotosDurante3-1778362706957-88539844.jpg','uploads/fotosDespues1-1778362706958-748981526.jpg','uploads/fotosDespues2-1778362706959-968131467.jpg','uploads/fotosDespues3-1778362706960-354250678.jpg','2026-05-09','15:38:26',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'066-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE '), +(73,NULL,'TRI-067-2026','2026-05-10','Umf No. 8','Guillermo Valle 115','congelador para vacunas','200880010871','ojeda','0386049-32896-N','chp-05','Laboratorio ','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR PARA VACUNAS REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778430648642-378539645.jpg','uploads/fotosAntes2-1778430648644-332715459.jpg','uploads/fotosAntes3-1778430648645-641477057.jpg','uploads/fotosDurante1-1778430648646-167813046.jpg','uploads/fotosDurante2-1778430648646-487774723.jpg','uploads/fotosDurante3-1778430648647-589859456.jpg','uploads/fotosDespues1-1778430648648-671146899.jpg','uploads/fotosDespues2-1778430648648-927796700.jpg','uploads/fotosDespues3-1778430648649-623234016.jpg','2026-05-10','10:30:48',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'067-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE '), +(74,NULL,'TRI-068-2026','2026-05-10','umf No. 8','Guillermo Valle 115','Refrigerador doméstico ','1995200634','ojeda','0801144-38204-W','RVBM-399','Labor de parto','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMÉSTICO REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778431615266-222294962.jpg','uploads/fotosAntes2-1778431615267-616400627.jpg','uploads/fotosAntes3-1778431615268-460993269.jpg','uploads/fotosDurante1-1778431615269-138632272.jpg','uploads/fotosDurante2-1778431615270-351329094.jpg','uploads/fotosDurante3-1778431615270-851322846.jpg','uploads/fotosDespues1-1778431615271-233609645.jpg','uploads/fotosDespues2-1778431615271-911412364.jpg','uploads/fotosDespues3-1778431615272-943686740.jpg','2026-05-10','10:46:55',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'068-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE '), +(75,NULL,'TRI-069-2026','2026-05-10','umf No. 8','Guillermo Valle 115','Refrigerador con graficador','20228003515','Ojeda','0036179-31012-B','RVBM-500 LAB','farmacia ','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR CON GRAFICADOR REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778433535366-58065425.jpg','uploads/fotosAntes2-1778433535366-592890192.jpg','uploads/fotosAntes3-1778433535366-948794177.jpg','uploads/fotosDurante1-1778433535366-257838983.jpg','uploads/fotosDurante2-1778433535367-256185763.jpg','uploads/fotosDurante3-1778433535367-177566550.jpg','uploads/fotosDespues1-1778433535368-596064681.jpg','uploads/fotosDespues2-1778433535369-336856829.jpg','uploads/fotosDespues3-1778433535369-143589367.jpg','2026-05-10','11:18:55',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'069-2026','El equipo queda funcionando correctamente'), +(76,NULL,'TRI-070-2026','2026-05-10','umf No. 8','Guillermo Valle 115','Refrigerador 13 ft','2002915307','Ojeda ','56956-30902-H','RVBM-500','farmacia ','[\"CORRECTIVO\"]','Se midieron los sensores de temperatura y calibraron, se calibraron a 4 grados','uploads/fotosAntes1-1778433976252-241873420.jpg','uploads/fotosAntes2-1778433976252-852817507.jpg','uploads/fotosAntes3-1778433976253-920179850.jpg','uploads/fotosDurante1-1778433976254-908772570.jpg',NULL,'uploads/fotosDurante3-1778433976254-369674726.jpg','uploads/fotosDespues1-1778433976255-225426383.jpg',NULL,NULL,'2026-05-10','11:26:16',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'070-2026','el equipo queda funcionando correctamente '), +(77,NULL,'TRI-071-2026','2026-05-11','umf No. 8','Guillermo Valle 115','Refrigerador doméstico ','1995200634','Sanyo','940600672','SR-900','Labor de parto','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778535582817-461068384.jpg','uploads/fotosAntes2-1778535582817-618119430.jpg','uploads/fotosAntes3-1778535582818-647546685.jpg','uploads/fotosDurante1-1778535582818-458275951.jpg','uploads/fotosDurante2-1778535582819-747023277.jpg','uploads/fotosDurante3-1778535582819-578900977.jpg','uploads/fotosDespues1-1778535582820-916401357.jpg','uploads/fotosDespues2-1778535582820-877895071.jpg','uploads/fotosDespues3-1778535582822-306378396.jpg','2026-05-11','15:39:42',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'071-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE'), +(78,NULL,'TRI-072-2026','2026-05-11','umf No. 8','Guillermo Valle 115','Aire acondicionado ','n/a','Mirage','n/a','ESF181B','Rayos x','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD\r\nEVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD\r\nCONDENSADORA.','uploads/fotosAntes1-1778540076296-180502236.jpg','uploads/fotosAntes2-1778540076296-423754817.jpg','uploads/fotosAntes3-1778540076296-968959299.jpg','uploads/fotosDurante1-1778540076298-64786258.jpg','uploads/fotosDurante2-1778540076299-593467414.jpg','uploads/fotosDurante3-1778540076299-617289436.jpg','uploads/fotosDespues1-1778540076300-382460404.jpg','uploads/fotosDespues2-1778540076300-308519207.jpg','uploads/fotosDespues3-1778540076301-694733813.jpg','2026-05-11','16:54:36',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'072-2026','El equipo queda funcionando correctamente '), +(79,NULL,'TRI-073-2026','2026-05-08','umf No. 18','Ávila Camacho s/n','Congelador doméstico ','200 88010868','Ojeda','0386090-32896-N','chp-05','vacunas','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR DE DOMÉSTICO REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.','uploads/fotosAntes1-1778551299692-932058223.jpg',NULL,NULL,'uploads/fotosDurante1-1778551299693-169722730.jpg',NULL,NULL,'uploads/fotosDespues1-1778551299693-508463059.jpg',NULL,NULL,'2026-05-11','20:01:39',32,'[{\"plataforma\":\"n/a\"},{\"ubicacion\":\"vacunas\"},{\"nivel\":\"1\"},{\"marca\":\"ojeda\"},{\"modelo\":\"chp-05\"},{\"serie\":\"0386090-32896-N\"},{\"capacidad\":\"13ft\"},{\"no_equipo_sap\":\"n/a\"},{\"no_orden_sap\":\"n/a\"},{\"inicio_mantto\":\"2026-05-08\"},{\"fin_mantto\":\"2026-05-08\"},{\"tiempo_ejecucion_jornadas\":\"25\"},{\"fecha_instalacion_equipo\":\"2026-05-08\"},{\"partida_anexo_c\":\"n/a\"},{\"tipo_mantenimiento\":\"SEMESTRAL\"},{\"pl0\":\"10\"},{\"pl1\":\"10\"},{\"pc1\":\"15\"},{\"pc2\":\"5\"},{\"pc3\":\"5\"},{\"po00\":\"104.7 v\"},{\"po01\":\"108.5 v\"},{\"po02\":\"107.5 v\"},{\"po10\":\"2.02\"},{\"po11\":\"2.05\"},{\"po12\":\"2.07\"},{\"po20\":\".117\"},{\"po21\":\".104\"},{\"po22\":\".109\"},{\"po30\":\"3 lb\"},{\"po31\":\"3 lb\"},{\"po32\":\"3 lb\"}]',NULL,'FINALIZADO','SERVICE_ORDER','refrigerador','073-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE'), +(80,NULL,'TRI-074-2026','2026-05-08','UMF 18','AVILA CAMACHO S/N','REFRIGERADOR DE 19 PIES','202280018654','GEMETEC','S/N','S/M','VACUNAS','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DE 19 FT REALIZANDO LIMPIEZA DE\r\nCONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.\r\n','uploads/fotosAntes1-1779158660829-718060681.jpeg','uploads/fotosAntes2-1779158660832-68868549.jpeg','uploads/fotosAntes3-1779158660834-969766541.jpeg','uploads/fotosDurante1-1779158660836-231944182.jpeg','uploads/fotosDurante2-1779158660838-949802183.jpeg','uploads/fotosDurante3-1779158660840-430972057.jpeg','uploads/fotosDespues1-1779158660844-266316396.jpeg','uploads/fotosDespues2-1779158660846-34587638.jpeg','uploads/fotosDespues3-1779158660849-367801317.jpeg','2026-05-18','20:44:20',32,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'074-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(81,NULL,'TRI-075-2026','2026-05-11','UMF 8','GUILLERMO VALLE','MINI SPLIT DE HASTA 18 000 BTUS','YHGE12ZTMDMHORX','S/M','S/N','S/M','PEDIATRIA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA. ','uploads/fotosAntes1-1779299076704-848920255.jpg','uploads/fotosAntes2-1779299076705-387481197.jpg','uploads/fotosAntes3-1779299076705-222468556.jpg','uploads/fotosDurante1-1779299076705-452315230.jpg','uploads/fotosDurante2-1779299076706-116319220.jpg','uploads/fotosDurante3-1779299076706-163737927.jpg','uploads/fotosDespues1-1779299076707-830379233.jpg','uploads/fotosDespues2-1779299076708-7454036.jpg','uploads/fotosDespues3-1779299076709-849332577.jpg','2026-05-20','11:44:36',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'075-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE. '), +(82,NULL,'TRI-076-2026','2026-05-11','UMF 8','GUILLERMO VALLE','MINI SPLIT DE HASTA 18 000 BTU','YNFFXCO36BAAD-FX','YORK','S/N','S/M','ULTRASONIDO','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA. ','uploads/fotosAntes1-1779299293518-232896672.jpg','uploads/fotosAntes2-1779299293519-225404365.jpg','uploads/fotosAntes3-1779299293520-876325236.jpg','uploads/fotosDurante1-1779299293520-651686489.jpg','uploads/fotosDurante2-1779299293523-563221197.jpg','uploads/fotosDurante3-1779299293524-534043043.jpg','uploads/fotosDespues1-1779299293524-303594629.jpg','uploads/fotosDespues2-1779299293524-598545952.jpg','uploads/fotosDespues3-1779299293525-353526301.jpg','2026-05-20','11:48:13',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'076-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE. '), +(83,NULL,'TRI-077-2026','2026-05-11','UMF 8','GUILLERMO VALLE','MINI SPLIT DE HASTA 18 000 BTU','IUMS2-EV24FRZ','IUSA','SN','SM','COCINA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.','uploads/fotosAntes1-1779299761732-484747022.jpg','uploads/fotosAntes2-1779299761733-568096843.jpg','uploads/fotosAntes3-1779299761735-282261925.jpg','uploads/fotosDurante1-1779299761737-428643430.jpg','uploads/fotosDurante2-1779299761738-936462139.jpg','uploads/fotosDurante3-1779299761739-367960556.jpg','uploads/fotosDespues1-1779299761740-249314017.jpg','uploads/fotosDespues2-1779299761741-308435700.jpg','uploads/fotosDespues3-1779299761742-421411765.jpg','2026-05-20','11:56:01',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'077-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE. '), +(84,NULL,'TRI-078-2026','2026-05-11','UMF 8','GUILLERMO VALLE','MINI SPLIT DE HASTA 60 000 BTUS','ESF181B','MIRAGE','SN','SM','RAYOS X','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA. ','uploads/fotosAntes1-1779299960947-531564555.jpg','uploads/fotosAntes2-1779299960947-638115555.jpg','uploads/fotosAntes3-1779299960948-889281009.jpg','uploads/fotosDurante1-1779299960949-389518873.jpg','uploads/fotosDurante2-1779299960951-854614419.jpg','uploads/fotosDurante3-1779299960953-816565205.jpg','uploads/fotosDespues1-1779299960954-591729237.jpg','uploads/fotosDespues2-1779299960956-668283335.jpg','uploads/fotosDespues3-1779299960957-576206647.jpg','2026-05-20','11:59:20',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'078-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE. '), +(85,NULL,'TRI-079-2026','2026-05-11','UMF 8','GUILLERMO VALLE','MINI SPLIT DE HASTA 18 000 BTUS','SN','SM','SN','SM','MEDICINA PREVENTIVA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA. ','uploads/fotosAntes1-1779300446522-179651509.jpg','uploads/fotosAntes2-1779300446523-347990978.jpg','uploads/fotosAntes3-1779300446524-138181489.jpg','uploads/fotosDurante1-1779300446525-284551167.jpg','uploads/fotosDurante2-1779300446526-580158710.jpg','uploads/fotosDurante3-1779300446528-103727195.jpg','uploads/fotosDespues1-1779300446529-746423744.jpg','uploads/fotosDespues2-1779300446529-170219964.jpg','uploads/fotosDespues3-1779300446530-875553424.jpg','2026-05-20','12:07:26',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'079-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE. '), +(86,NULL,'TRI-080-2026','2026-05-20','576','576','576','567','567','56','765','5645646','[\"INSTALACION\",\"CORRECTIVO\"]','8686754657898',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','12:11:42',1,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'080-2026','976757'), +(87,NULL,'TRI-081-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMA','2002900859','OJEDA','SN','SM','COCINA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMA REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','12:44:52',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'081-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(88,NULL,'TRI-082-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMA','20228003515','OJEDA','SN','SM','FARMACIA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMA REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','13:53:46',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'082-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(89,NULL,'TRI-083-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMА','201780009264','OJEDA','SN','SM','QUIMICA','[\"PREVENTIVO\"]','REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMА REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','13:56:34',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'083-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(90,NULL,'TRI-084-2026','2026-05-11','UMF 8','GUILLERMO VALLE','CONGELADOR TIPO DOMESTICO DE 9 PIES','200880010871','OJEDA','SN','SM','LABORATORIO','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR DE CONGELADOR TIPO DOMESTICO DE 9 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','13:59:55',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'084-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.\r\n'), +(91,NULL,'TRI-085-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 13 PIES','1998006817','KELVINATOR','SN','SM','PEDIATRIA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 13 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','14:03:06',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'085-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE'), +(92,NULL,'TRI-086-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 13 PIES','SN','SM','SN','rt46h5501sl','HOSPITALES','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 13 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','17:19:50',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'086-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.\r\n'), +(93,NULL,'TRI-087-2026','2026-05-11','UMF 8','GUILLERMO VALLE','CONGELADOR TIPO DOMESTICO DE 9 PIES','2003900047','OJEDA','SN','SM','MEDICINA PREVENTIVA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR TIPO DOMESTICO DE 9 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','17:24:33',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'087-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(94,NULL,'TRI-088-2026','2026-05-11','UMF 8','GUILLERMO VALLE','CONGELADOR TIPO DOMESTICO DE 9 PIES','SN','OJEDA','SN','SM','MEDICINA PREVENTIVA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR TIPO DOMESTICO DE 9 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','17:28:08',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'088-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(95,NULL,'TRI-089-2026','2026-05-11','UMF 8','GUILLERMO VALLE','CONGELADOR TIPO DOMESTICO DE 9 PIES','SN','TORREY','b30jj5e0p00qmn4f0131','SM','MEDICINA PREVENTIVA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR TIPO DOMESTICO DE 9 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','17:35:06',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'089-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(96,NULL,'TRI-090-2026','2026-05-11','UMF 8','GUILLERMO VALLE','CONGELADOR TIPO DOMESTICO DE 9 PIES ','SN','OJEDA','200880010862','SM','MEDICINA PREVENTIVA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR TIPO DOMESTICO DE 9 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','17:39:40',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'090-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(97,NULL,'TRI-091-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMAS','2003900631','OJEDA','SN','SM','MEDICINA PREVENTIVA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMAS REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','17:43:19',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'091-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.\r\n'), +(98,NULL,'TRI-092-2026','2026-05-11','UMF 8','GUILLERMO VALLE','CONGELADOR METALICO DE 19 PIES','bmnc. Nutrición. Almacén. - 2','FRIGOTHERM','SN','SM','ALMACÉN COCINA','[\"PREVENTIVO\",\"CORRECTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR METALICO DE 19 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. \r\nSE REALIZA CAMBIO DE COMPRESOR DAÑADO.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','17:50:23',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'092-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.\r\n'), +(99,NULL,'TRI-093-2026','2026-05-11','UMF 08','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 13 PIES','SN','IMBERA','201100001665','SM','COCINA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 13 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','17:54:54',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'093-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.\r\n'), +(100,NULL,'TRI-094-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMA','SN','OJEDA','2002900867','SM','COCINA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMA REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO\r\nPRESIÓN Y AMPERAJE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','18:00:29',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'094-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(101,NULL,'TRI-095-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOS DOMESTICO DE 13 PIES','SN','HUSSMANN','1998014140','SM','COCINA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOS DOMESTICO DE 13 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, RE REVISO PRESIÓN Y AMPERAJE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','18:06:22',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'095-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(102,NULL,'TRI-096-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR TIPO FRIGOBAR DE 9 PIES','SN','PHILIPS','1991016761','SM','URGENCIAS','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR TIPO FRIGOBAR DE 9 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','18:10:32',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'096-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(103,NULL,'TRI-097-2026','2026-05-11','UMF 08','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMA','2002916307','OJEDA','SN','SM','FARMACIA RED FRIA','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMA REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.\r\n\r\nSE REALIZA CAMBIO DE PILAS.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','18:14:18',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'097-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(104,NULL,'TRI-098-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR TIPO FRIGOBAR DE 9 PIES','SN','SM','1995200634','SM','LABOR DE PARTO','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR TIPO FRIGOBAR DE 9 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-20','18:22:34',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'098-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(105,NULL,'TRI-099-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','MINI SPLIT DE HASTA 18 000 BTUS','SN','TEMPBLUE','SN','40Tbvc143a-e','OFICINA DE CONTRATOS II','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','13:10:59',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'099-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(106,NULL,'TRI-100-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','MINI SPLIT DE HASTA 18 000 BTU','SN','TEMPBLUE','SN','53tbvc124a','OFICINA DE CONTRATOS','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','13:14:01',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'100-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(107,NULL,'TRI-101-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','MINI SPLIT DE HASTA 18 000 BTUS','SN','TEMPBLUE','SN','40TBVC223A-E','OFICINA DE ADQUISICIONES ','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','13:16:25',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'101-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(108,NULL,'TRI-102-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','MINI SPLIT DE HASTA 18 000 BTUS','SN','TEMPBLUE','SN','40TBVC243A-E','SALA DE USOS MULTIPLES','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','13:18:52',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'102-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(109,NULL,'TRI-103-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','MINI SPLIT DE HASTA 18 000 BTUS','SN','FREYVEM','SN','40frq183a-e','OFICINA DEL DELEGADO','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','13:21:32',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'103-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(110,NULL,'TRI-104-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','MINI SPLIT DE HASTA 18 000 BTUS','SN','TEMPBLUE','SN','40tbvc143a-e','CONTROL DE ABASTOS','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','14:31:38',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'104-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE'), +(111,NULL,'TRI-105-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','MINI SPLIT DE HASTA 18 000 BTUS','SN','TEMPBLUE','SN','53tbvc243a','ADQUISICIONES','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','14:34:50',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'105-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE'), +(112,NULL,'TRI-106-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','MINI SPLIT DE HASTA 18 000 BTUS','SN','TEMPBLUE','SN','53tbvc123a','PLANEACIÓN','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','14:37:03',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'106-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(113,NULL,'TRI-107-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','MINI SPLIT DE HASTA 18 000 BTUS','SN','CARRIER','SN','40upc123a-e','CITE COMPUTO','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','14:39:20',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'107-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(114,NULL,'TRI-108-2026','2026-05-21','ALMACEN DELEGACIONAL','LIBRAMIENTO PONIENTE SN','CONGELADOR TIPO DOMESTICO DE 9 PIES','SN','OJEDA','SN','200880010870','RED FRIA ALMACEN','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR TIPO DOMESTICO DE 9 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','15:19:02',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'108-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(115,NULL,'TRI-109-2026','2026-05-21','ALMACEN DELEGACION','LIBRAMIENTO PONIENTE SN','CONGELADOR METALICO DE 19 PIES','SN','SM','SN','198302348','ALMACEN DE ABASTOS','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CONGELADOR METALICO DE 19 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, LE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-21','15:27:29',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'109-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE'), +(116,NULL,'TRI-110-2026','2026-05-22','OFICINAS ADMINISTRATIVAS CALLE 6','CALLE 6','MINI SPLIT DE HASTA 18 000 BTUS','SN','FREYVEM','SN','40fvc123b-e','OFICINA DEL ENCARGADO DE CONSERVACIÓN ','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A MINI SPLIT, RETIRARON CARCAZAS DE PLÁSTICO DE UNIDAD EVAPORADORA, SE LIMPIO APLICANDO COIL CLEANER AL IGUAL QUE A LA UNIDAD CONDENSADORA. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-25','11:16:39',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'110-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE. '), +(117,NULL,'TRI-111-2026','2026-05-16','UMF 8','GUILLERMO VALLE','CAMARA MORTUORIA','SN','SM','SN','SM','PASILLO ROJO','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A CAMARA MORTUORIA REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE.\r\n',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-25','13:54:30',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'111-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.\r\n'), +(118,NULL,'TRI-112-2026','2026-05-11','UMF 8','GUILLERMO VALLE','REFRIGERADOR DOMESTICO DE 13 PIES','SN','PHILIPS','SN','SM','URGENCIAS','[\"PREVENTIVO\"]','SE REALIZÓ MANTENIMIENTO A REFRIGERADOR DOMESTICO DE 13 PIES REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR, SE REVISO PRESIÓN Y AMPERAJE. ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-25','15:10:46',29,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'112-2026','EL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE.'), +(119,NULL,'TRI-OS-037-2026-01','2026-05-27','PRUEBA','PRUEBA','PRUEBA','PRUEBA','PRUEBA','PRUEBA','PRUEBA','PRUEBA','[\"PREVENTIVO\"]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-27','10:49:24',1,'[]',NULL,'BORRADOR','SERVICE_ORDER',NULL,'037-2026',NULL), +(120,NULL,'TRI-OS-037-2026-02','2026-05-27','PRUEBA','PRUEBA','PRUEBA','PRUEBA','PRUEBA','PRUEBA','PRUEBA','PRUEBA','[\"PREVENTIVO\"]','PRUEBA',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-27','10:58:45',1,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'037-2026','PRUEBA'), +(121,NULL,'TRI-113-2026','2026-05-18','Umf 51','Dirección jose ma. Morelos 11','REFRIGERADOR DOMESTICO DE 19 PIES CON CONTROL DE GRAFICAS Y ALARMA.','Inv 20080000170','Ojeda','N/A','N/A','Ubicación medicina preventiva','[\"PREVENTIVO\"]','SE REALIZA MANTENIMIENTO A REFRIGERADOR, REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR Y SE REVISA PRESION Y AMPERAJE.\r\nEL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-27','13:04:41',1,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'113-2026','N/A'), +(122,NULL,'TRI-114-2026','2026-05-18','Umf 5',' jose ma. Morelos 11 ','Congelador tipo domestico de 9 pies',' 202280032514','Ojeda','N/A','N/A','farmacia','[\"PREVENTIVO\"]','SE REALIZA MANTENIMIENTO A CONGELADOR, REALIZANDO LIMPIEZA DE CONDENSADOR APLICANDO COIL CLEANER, SE LUBRICO MOTOR DE CONDENSADOR Y SE REVISA PRESION Y AMPERAJE.\r\nEL EQUIPO QUEDA FUNCIONANDO CORRECTAMENTE ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-05-27','13:08:09',1,'[]',NULL,'FINALIZADO','SERVICE_ORDER',NULL,'114-2026','N/A'); +/*!40000 ALTER TABLE `service_orders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sessions` +-- + +DROP TABLE IF EXISTS `sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `sessions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `token` text NOT NULL, + `expiration` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + CONSTRAINT `sessions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sessions` +-- + +LOCK TABLES `sessions` WRITE; +/*!40000 ALTER TABLE `sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sp_debug_log` +-- + +DROP TABLE IF EXISTS `sp_debug_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `sp_debug_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `invoked_at` datetime DEFAULT NULL, + `action` varchar(50) DEFAULT NULL, + `p_id` int(11) DEFAULT NULL, + `p_name` varchar(100) DEFAULT NULL, + `p_stock` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sp_debug_log` +-- + +LOCK TABLES `sp_debug_log` WRITE; +/*!40000 ALTER TABLE `sp_debug_log` DISABLE KEYS */; +INSERT INTO `sp_debug_log` VALUES +(1,'2026-06-03 10:37:13','update_item',24,'Laptop uso rudo',5), +(2,'2026-06-03 16:18:46','update_item',62,'BOMBA DE VACÍO VEVOR',1), +(3,'2026-06-03 16:19:45','update_item',36,'SACA BALEROS HIDRÁULICOS VEVOR',1), +(4,'2026-06-03 16:21:50','update_item',26,'Tteclados getac',2), +(5,'2026-06-03 16:22:22','update_item',35,'Roscador de tubos klutch',1), +(6,'2026-06-03 16:23:18','update_item',32,'Caja de herramientas CRAFTMAN',1), +(7,'2026-06-03 16:24:01','update_item',59,'LIMPIADORA DE TUBOS marca GOODWAY',2), +(8,'2026-06-03 16:28:27','update_item',31,'Caja de herramientas husky',1); +/*!40000 ALTER TABLE `sp_debug_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `surveys_answers` +-- + +DROP TABLE IF EXISTS `surveys_answers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `surveys_answers` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `context_id` varchar(50) DEFAULT NULL, + `id_user` int(11) DEFAULT NULL, + `engineer_name` varchar(255) DEFAULT NULL, + `rh_name` varchar(255) DEFAULT NULL, + `snapshot_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`snapshot_json`)), + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `surveys_answers` +-- + +LOCK TABLES `surveys_answers` WRITE; +/*!40000 ALTER TABLE `surveys_answers` DISABLE KEYS */; +INSERT INTO `surveys_answers` VALUES +(1,'0',NULL,NULL,'MARIO BONOLA','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":5},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":5},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":3}]','2026-03-17 05:32:10'), +(2,'0',1,'DOMINIC JOSAFAT VALDES GASCA','ROBERTO VASQUEZ','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":5},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":4},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":3}]','2026-03-17 06:33:12'), +(3,'TRI-006-2026',1,'DOMINIC JOSAFAT VALDES GASCA','PEDRO VELEZ','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":2},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":5},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":3}]','2026-03-17 06:39:52'), +(4,'TRI-007-2026',1,'DOMINIC JOSAFAT VALDES GASCA','PABLO PEREZ','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":5},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":4},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":2}]','2026-03-17 06:49:06'), +(5,'1',1,'DOMINIC JOSAFAT VALDES GASCA','Cliente','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":5},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":2},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":2}]','2026-03-17 07:05:35'), +(6,'TRI-011-2026',1,'Alberto Sánchez','MARIO CASTILLO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":4},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":4},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":3},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":4}]','2026-03-24 19:54:28'), +(7,'TRI-018-2026',1,'Alberto Sánchez','preuba 2','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":4},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-25 22:57:57'), +(8,'TRI-020-2026',26,'Gabriel Diaz Rosales','MARIO GARCIA AGUILAR','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-25 23:07:21'), +(9,'TRI-030-2026',1,'Alberto Sánchez','7865','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":4},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":4}]','2026-03-26 07:36:29'), +(10,'TRI-031-2026',1,'Alberto Sánchez','7865','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-26 07:38:23'), +(11,'TRI-031-2026',1,'Alberto Sánchez','7865','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":4},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-26 07:45:11'), +(12,'TRI-028-2026',1,'Alberto Sánchez','57667','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-26 07:49:44'), +(13,'TRI-032-2026',29,'Indra Admin','LIC. INDRA GARCIA ORDUÑA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":3},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":3},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":2},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":3},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":3},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":3},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":3},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":3},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":3},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":2},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":3}]','2026-03-26 21:50:57'), +(14,'TRI-033-2026',29,'Indra Admin','Lic. Indra Gacía Orduña ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-26 21:56:16'), +(15,'TRI-032-2026',29,'Indra Admin','Cliente','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-26 22:00:28'), +(16,'TRI-034-2026',26,'Gabriel Diaz Rosales','indris patiguis','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-26 22:07:02'), +(17,'TRI-OS-034-2026-01',26,'Gabriel Diaz Rosales','minusculas','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-26 22:10:44'), +(18,'TRI-GT-034-2026-01',26,'Gabriel Diaz Rosales','Cliente','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-26 22:14:31'), +(19,'TRI-035-2026',30,'DOMINIC JOSAFAT VALDES GASCA','MARIO PEREZ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":4},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":4},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":4},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-30 06:10:59'), +(20,'TRI-OS-036-2026-01',30,'DOMINIC JOSAFAT VALDES GASCA','PEDRO PEREZ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":4},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":4},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":4}]','2026-03-30 06:21:35'), +(21,'TRI-GT-036-2026-01',30,'DOMINIC JOSAFAT VALDES GASCA','Cliente','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":3},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":2},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":4},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":4},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":3},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-30 06:31:47'), +(22,'TRI-GT-036-2026-02',30,'DOMINIC JOSAFAT VALDES GASCA','Cliente','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":2},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":3},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":4},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":4},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-30 06:41:56'), +(23,'TRI-GT-026-2026-01',1,'Alberto Sánchez','PEDRO PEREZ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":4},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-30 20:49:57'), +(24,'TRI-026-2026',1,'Alberto Sánchez','67865','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":4},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-30 20:58:11'), +(25,'TRI-026-2026',1,'Alberto Sánchez','67865','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":4},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-03-30 21:05:59'), +(26,'TRI-038-2026',29,'Indra Admin','JESUS JIMENEZ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-04-07 19:15:07'), +(27,'TRI-038-2026',29,'Indra Admin','JESUS JIMENEZ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-04-07 19:44:29'), +(28,'TRI-038-2026',29,'Indra Admin','JESUS JIMENEZ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-04-07 19:48:19'), +(29,'TRI-038-2026',29,'Indra Admin','JESUS JIMENEZ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-04-07 19:48:55'), +(30,'TRI-039-2026',30,'PRUEBA PRUEBA','MARIO PEREZ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":4},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":4}]','2026-04-10 18:34:29'), +(31,'TRI-041-2026',26,'Gabriel Diaz Rosales','matro. Carlos ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-04 17:20:26'), +(32,'TRI-042-2026',26,'Gabriel Diaz Rosales','juan carlos','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":4},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-04 17:36:48'), +(33,'TRI-043-2026',26,'Gabriel Diaz Rosales','alexander canales','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-04 17:45:48'), +(34,'TRI-044-2026',26,'Gabriel Diaz Rosales','NOMBRE DE ALGUIEN DE LA UNIDAD MEDICA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-06 17:39:58'), +(35,'TRI-045-2026',32,'EDGAR DIAZ','Teresita De Jesus Portillo','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-07 15:59:13'), +(36,'TRI-046-2026',32,'EDGAR DIAZ','Teresita De Jesus Porras Portillo','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-07 16:15:13'), +(37,'TRI-047-2026',32,'EDGAR DIAZ','Teresita De Jesus Porra Portillo','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-07 16:34:12'), +(38,'TRI-048-2026',32,'EDGAR DIAZ','Joaquin Meza Morales','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-07 19:56:52'), +(39,'TRI-051-2026',32,'EDGAR DIAZ','patricia Pérez Gómez','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-08 19:15:36'), +(40,'TRI-052-2026',32,'EDGAR DIAZ','Patricia Pérez Gómez ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-08 19:42:42'), +(41,'TRI-053-2026',32,'EDGAR DIAZ','Patricia Pérez Gómez ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-08 20:15:52'), +(42,'TRI-054-2026',32,'EDGAR DIAZ','Teresita Pérez Gómez ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-08 22:49:26'), +(43,'TRI-054-2026',32,'EDGAR DIAZ USCANGA','Teresita Pérez Gómez ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 17:08:47'), +(44,'TRI-055-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 18:15:20'), +(45,'TRI-056-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 18:31:53'), +(46,'TRI-057-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 18:55:19'), +(47,'TRI-058-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 19:10:40'), +(48,'TRI-059-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 19:24:03'), +(49,'TRI-060-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 19:47:49'), +(50,'TRI-061-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 19:59:27'), +(51,'TRI-062-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 20:14:12'), +(52,'TRI-063-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 20:40:10'), +(53,'TRI-064-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 21:08:18'), +(54,'TRI-065-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 21:26:45'), +(55,'TRI-066-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-09 21:38:27'), +(56,'TRI-067-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-10 16:30:49'), +(57,'TRI-068-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-10 16:46:55'), +(58,'TRI-069-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-10 17:18:55'), +(59,'TRI-070-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-10 17:26:16'), +(60,'TRI-071-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodriguéz Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-11 21:39:43'), +(61,'TRI-072-2026',32,'EDGAR DIAZ USCANGA','José Alfonso Rodríguez Padilla','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-11 22:54:36'), +(62,'TRI-073-2026',32,'EDGAR DIAZ USCANGA','Teresita Pérez Gómez ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-12 02:01:39'), +(63,'TRI-074-2026',32,'EDGAR DIAZ USCANGA','TERESITA PÉREZ GÓMEZ','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-19 02:44:21'), +(64,'TRI-075-2026',29,'Indra Admin','ING. JOSÉ ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 17:44:36'), +(65,'TRI-076-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 17:48:13'), +(66,'TRI-077-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 17:56:02'), +(67,'TRI-078-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 17:59:21'), +(68,'TRI-079-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 18:07:26'), +(69,'TRI-080-2026',1,'Alberto Sánchez','jose sanchez','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":4},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 18:11:42'), +(70,'TRI-081-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 18:44:52'), +(71,'TRI-079-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 18:55:20'), +(72,'TRI-081-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 19:15:19'), +(73,'TRI-081-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 19:16:28'), +(74,'TRI-081-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 19:42:20'), +(75,'TRI-081-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 19:49:20'), +(76,'TRI-082-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 19:53:46'), +(77,'TRI-083-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 19:56:34'), +(78,'TRI-084-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 19:59:55'), +(79,'TRI-085-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 20:03:07'), +(80,'TRI-086-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 23:19:50'), +(81,'TRI-087-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 23:24:33'), +(82,'TRI-088-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 23:28:09'), +(83,'TRI-089-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 23:35:06'), +(84,'TRI-090-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 23:39:41'), +(85,'TRI-091-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 23:43:19'), +(86,'TRI-092-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 23:50:23'), +(87,'TRI-093-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-20 23:54:54'), +(88,'TRI-094-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 00:00:31'), +(89,'TRI-095-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 00:06:23'), +(90,'TRI-096-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 00:10:32'), +(91,'TRI-097-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 00:14:19'), +(92,'TRI-097-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 00:15:33'), +(93,'TRI-098-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 00:22:34'), +(94,'TRI-099-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 19:11:00'), +(95,'TRI-100-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 19:14:01'), +(96,'TRI-101-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 19:16:25'), +(97,'TRI-102-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 19:18:52'), +(98,'TRI-103-2026',29,'Indra Admin','FERNANDO HERNDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 19:21:32'), +(99,'TRI-104-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 20:31:39'), +(100,'TRI-105-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 20:34:50'), +(101,'TRI-106-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 20:37:03'), +(102,'TRI-107-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 20:39:21'), +(103,'TRI-108-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 21:19:02'), +(104,'TRI-109-2026',29,'Indra Admin','FERNANDO HERNANDEZ RUANO','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-21 21:27:29'), +(105,'TRI-110-2026',29,'Indra Admin','ING.BERNI','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-25 17:16:39'), +(106,'TRI-110-2026',29,'Indra Admin','ING.BERNI','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-25 17:18:05'), +(107,'TRI-110-2026',29,'Indra Admin','ING. RICARDO PEREZ ARAIZA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-25 17:48:09'), +(108,'TRI-111-2026',29,'Indra Admin','ING. JOSE ALFONSO HERNANDEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-25 19:54:31'), +(109,'TRI-112-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-25 21:10:47'), +(110,'TRI-111-2026',29,'Indra Admin','ING. JOSE ALFONSO RODRIGUEZ PADILLA','[{\"question\":\"PUNTUALIDAD DEL TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"PRESENTACION E IDENTIFICACION\",\"levels\":5,\"answer\":5},{\"question\":\"TRATO Y ACTITUD\",\"levels\":3,\"answer\":3},{\"question\":\"CONOCIMIENTO TECNICO\",\"levels\":5,\"answer\":5},{\"question\":\"CLARIDAD AL EXPLICAR EL TRABAJO\",\"levels\":5,\"answer\":5},{\"question\":\"ORDEN Y LIMPIEZA\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE EJECUCION\",\"levels\":5,\"answer\":5},{\"question\":\"FUNCIONAMIENTO POSTERIOR DEL EQUIPO\",\"levels\":5,\"answer\":5},{\"question\":\"TIEMPO DE RESPUESTA\",\"levels\":5,\"answer\":5},{\"question\":\"¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?\",\"levels\":3,\"answer\":3},{\"question\":\"EN GENERAL, NIVEL DE SATISFACCION\",\"levels\":5,\"answer\":5}]','2026-05-25 21:11:23'); +/*!40000 ALTER TABLE `surveys_answers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `surveys_questions` +-- + +DROP TABLE IF EXISTS `surveys_questions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `surveys_questions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `question` varchar(255) DEFAULT NULL, + `levels` int(11) DEFAULT 5, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `surveys_questions` +-- + +LOCK TABLES `surveys_questions` WRITE; +/*!40000 ALTER TABLE `surveys_questions` DISABLE KEYS */; +INSERT INTO `surveys_questions` VALUES +(1,'PUNTUALIDAD DEL TECNICO',5,'2026-03-24 18:40:31'), +(2,'PRESENTACION E IDENTIFICACION',5,'2026-03-24 18:40:31'), +(3,'TRATO Y ACTITUD',3,'2026-03-24 18:40:31'), +(4,'CONOCIMIENTO TECNICO',5,'2026-03-24 18:40:31'), +(5,'CLARIDAD AL EXPLICAR EL TRABAJO',5,'2026-03-24 18:40:31'), +(6,'ORDEN Y LIMPIEZA',5,'2026-03-24 18:40:31'), +(7,'TIEMPO DE EJECUCION',5,'2026-03-24 18:40:31'), +(8,'FUNCIONAMIENTO POSTERIOR DEL EQUIPO',5,'2026-03-24 18:40:31'), +(9,'TIEMPO DE RESPUESTA',5,'2026-03-24 18:40:31'), +(10,'¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?',3,'2026-03-24 18:40:31'), +(11,'EN GENERAL, NIVEL DE SATISFACCION',5,'2026-03-24 18:40:31'); +/*!40000 ALTER TABLE `surveys_questions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `termsFinance` +-- + +DROP TABLE IF EXISTS `termsFinance`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `termsFinance` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `term` text NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `termsFinance` +-- + +LOCK TABLES `termsFinance` WRITE; +/*!40000 ALTER TABLE `termsFinance` DISABLE KEYS */; +/*!40000 ALTER TABLE `termsFinance` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `email` varchar(100) NOT NULL, + `profile_picture` varchar(255) DEFAULT NULL, + `password` varchar(255) NOT NULL, + `role` enum('admin','engineer','technician') NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `status` enum('active','inactive') NOT NULL DEFAULT 'active', + `created_by` int(11) DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `updated_by` int(11) DEFAULT NULL, + `last_login` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `email` (`email`), + UNIQUE KEY `unique_email` (`email`) +) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES +(1,'Admin','alsanchezbeltran@gmail.com','/uploads/profilePicture-1772602718872-500676084.png','$2b$10$uXLDSJ3UwZKEjZc93w0tCeDKUo834aZ03mARR.IrSGqQLaOHI0KoG','admin','2025-07-30 04:05:21','active',NULL,'2026-07-15 02:30:56',1,'2026-07-14 20:30:56'), +(26,'INGENIERO1','ingeniero1@trimape.com',NULL,'$2b$10$WHEn0eQsBTpxWWAMBHeH1OSEKHPwx78R6c/wZ0PmDSA7sHae2kFAC','engineer','2026-01-08 10:57:58','active',1,'2026-05-08 21:15:34',1,'2026-05-08 15:15:34'), +(27,'ADMIN2','admin2@trimape.com',NULL,'$2b$10$yn3fcLmvdCvRdvNZNfcop.PsC22ev/sUp0naNL3lhNHcNHnXM3MHW','admin','2026-02-04 22:40:24','active',1,'2026-02-17 00:28:51',NULL,'2026-02-16 18:28:51'), +(28,'ADMIN3','admin3@trimape.com',NULL,'$2b$10$2/.4gSrvmlKq1Vg/9541u.qOw1KtWaOi/ZhIDhgqDXqebUY8CwAbm','admin','2026-02-16 23:03:44','active',1,'2026-02-16 23:03:44',NULL,NULL), +(29,'Indra Admin','Administracion@trimape.com',NULL,'$2b$10$VEyaxTNIj8faOVbM5Irh7uAhsKJIKdWdjDtpyCo/sXTu/TereP0m6','admin','2026-03-24 21:58:58','active',1,'2026-07-14 14:56:23',1,'2026-07-14 08:56:23'), +(30,'ING_PRUEBA','dom@gmail.com',NULL,'$2b$10$ejtzC.njZJ6BlOhCJ2NRxO1KdFSYfhpeNnoSbVEkl7omxT3PVFciy','engineer','2026-03-30 06:02:07','active',1,'2026-04-10 18:33:03',NULL,'2026-04-10 12:33:03'), +(31,'TECNICO PRUEBA','tecnico@trimape.com',NULL,'$2b$10$joluW3w3Cipi.jwQTsoXSO8Zt1sDxgAVw9k01Vp3DK.jFqKSTmjUS','technician','2026-03-30 06:44:09','active',1,'2026-03-30 21:51:09',NULL,'2026-03-30 15:51:09'), +(32,'EDGAR DIAZ','INGENIERO2@TRIMAPE.COM',NULL,'$2b$10$A2Dgc6COhWVx8UEMXnNnqOQuxKX5IZZDvbarSKY/pRjQhPF2i4F8i','technician','2026-05-06 18:48:03','active',29,'2026-05-19 16:32:40',NULL,'2026-05-19 10:32:40'); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `v_user_person` +-- + +DROP TABLE IF EXISTS `v_user_person`; +/*!50001 DROP VIEW IF EXISTS `v_user_person`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `v_user_person` AS SELECT + 1 AS `user_id`, + 1 AS `hr_person_id`, + 1 AS `person_full_name`, + 1 AS `person_status`, + 1 AS `user_name_fallback` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `vehicle_movement_data` +-- + +DROP TABLE IF EXISTS `vehicle_movement_data`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_movement_data` ( + `movement_id` int(11) NOT NULL, + `inventory_item_id` int(11) NOT NULL, + `engineer_id` int(11) DEFAULT NULL, + `event_type` enum('SALIDA','DEVOLUCION') NOT NULL, + `checks_snapshot_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`checks_snapshot_json`)), + `contract_ref` varchar(100) DEFAULT NULL, + `time_out` time DEFAULT NULL, + `time_in` time DEFAULT NULL, + `observations` text DEFAULT NULL, + `route_summary` text DEFAULT NULL, + `created_by` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `authorized_drivers_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + PRIMARY KEY (`movement_id`), + KEY `idx_vmd_item` (`inventory_item_id`), + KEY `idx_vmd_engineer` (`engineer_id`), + KEY `idx_vmd_event` (`event_type`,`created_at`), + KEY `fk_vmd_created_by` (`created_by`), + CONSTRAINT `fk_vmd_created_by` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_vmd_engineer` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_vmd_item` FOREIGN KEY (`inventory_item_id`) REFERENCES `inventory_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vmd_movement` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) ON DELETE CASCADE, + CONSTRAINT `authorized_drivers_json_chk` CHECK (`authorized_drivers_json` is null or json_valid(`authorized_drivers_json`)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_movement_data` +-- + +LOCK TABLES `vehicle_movement_data` WRITE; +/*!40000 ALTER TABLE `vehicle_movement_data` DISABLE KEYS */; +INSERT INTO `vehicle_movement_data` VALUES +(14,66,26,'SALIDA','{\"P01_UNIDAD_LUCES\":false,\"P02_4_LUCES\":false,\"P03_ANTENA\":false,\"P04_ESPEJO_LATERAL_DERECHO\":false,\"P05_ESPEJO_LATERAL_IZQUIERDO\":false,\"P06_TAPONES_LLANTAS\":false,\"P07_DEFENSA_TRASERA\":false,\"P08_DEFENSA_DELANTERA\":false,\"P09_4_LLANTAS\":false,\"P10_MOLDURAS_COMPLETAS\":false,\"P11_TAPON_GASOLINA\":false,\"P12_GOLPES\":false,\"P13_BOCINAS_CLAXON\":false,\"P14_LODERAS\":false,\"P15_VINILES_ROTULACION\":false,\"P16_LLANTA_REFACCION\":false,\"P17_ESCAPE\":false,\"P18_PUERTA_BATEA\":false,\"P19_BOLA_REMOLQUE\":false,\"P20_GOLPES_CARROCERIA\":false,\"P21_RAYONES_CARROCERIA\":true,\"P22_BOLAS_EN_LLANTAS\":false,\"P23_SEGURO_COFRE\":false,\"P24_PLACA_TRASERA\":false,\"P25_PLACA_DELANTERA\":false,\"P26_NO_APLICA\":false,\"P27_GATO\":false,\"P28_MANERAL_GATO\":false,\"P29_LLAVE_RUEDAS\":false,\"P30_ESTUCHE_HERRAMIENTA\":false,\"P31_TRIANGULO\":false,\"P32_EXTINGUIDOR\":false,\"P33_VESTIDURAS\":false,\"P34_ESPEJO_RETROVISOR\":false,\"P35_CINTURONES\":false,\"P36_PALANCA\":false,\"P37_ESTEREO\":false,\"P38_CONSOLA_AC\":false,\"P39_LLANTA_REFACCION\":false,\"DOC_CIRCULACION\":true,\"DOC_SEGURO\":true,\"DOC_VERIFICACION\":true}','CONT-260714-001','08:58:00',NULL,'OK, RAYONES SUPERFICIALES','Oficina weldex rec. Portuario of trimape',29,'2026-07-14 14:59:06','2026-07-14 14:59:06','[{\"name\":\"DANIEL FLORES BENITEZ\",\"license\":\"No trae\"}]'); +/*!40000 ALTER TABLE `vehicle_movement_data` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicle_movement_photos` +-- + +DROP TABLE IF EXISTS `vehicle_movement_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_movement_photos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `movement_id` int(11) NOT NULL, + `slot` enum('TABLERO_SALIDA','TABLERO_REGRESO','LADO_PASAJERO','LADO_CONDUCTOR','EXTRA_1','EXTRA_2','EXTRA_3','EXTRA_4') NOT NULL, + `url` varchar(255) NOT NULL, + `uploaded_by` int(11) DEFAULT NULL, + `uploaded_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_vehicle_photo_slot` (`movement_id`,`slot`), + KEY `idx_vehicle_photo_movement` (`movement_id`), + KEY `fk_vmp_uploaded_by` (`uploaded_by`), + CONSTRAINT `fk_vmp_movement` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vmp_uploaded_by` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_movement_photos` +-- + +LOCK TABLES `vehicle_movement_photos` WRITE; +/*!40000 ALTER TABLE `vehicle_movement_photos` DISABLE KEYS */; +INSERT INTO `vehicle_movement_photos` VALUES +(1,2,'TABLERO_SALIDA','/uploads/VehicleLogs/2/TABLERO_SALIDA-1774904473592-8poq3q.jpg',1,'2026-03-30 21:01:13'), +(2,2,'LADO_PASAJERO','/uploads/VehicleLogs/2/LADO_PASAJERO-1774904473592-swmfsz.jpg',1,'2026-03-30 21:01:13'), +(3,2,'LADO_CONDUCTOR','/uploads/VehicleLogs/2/LADO_CONDUCTOR-1774904473592-a0os66.jpg',1,'2026-03-30 21:01:13'), +(4,2,'EXTRA_1','/uploads/VehicleLogs/2/EXTRA_1-1774904473592-e2ac1g.jpg',1,'2026-03-30 21:01:13'), +(5,2,'EXTRA_2','/uploads/VehicleLogs/2/EXTRA_2-1774904473592-cehic5.jpg',1,'2026-03-30 21:01:13'), +(11,14,'TABLERO_SALIDA','/uploads/VehicleLogs/14/TABLERO_SALIDA-1784041155857-gav2gc.jpg',29,'2026-07-14 14:59:16'), +(12,14,'LADO_PASAJERO','/uploads/VehicleLogs/14/LADO_PASAJERO-1784041156049-gjsx2j.jpg',29,'2026-07-14 14:59:16'), +(13,14,'LADO_CONDUCTOR','/uploads/VehicleLogs/14/LADO_CONDUCTOR-1784041156175-uob669.jpg',29,'2026-07-14 14:59:16'), +(14,14,'EXTRA_1','/uploads/VehicleLogs/14/EXTRA_1-1784041156293-jqm2cm.jpg',29,'2026-07-14 14:59:16'), +(15,14,'EXTRA_2','/uploads/VehicleLogs/14/EXTRA_2-1784041156429-h6086w.jpg',29,'2026-07-14 14:59:16'); +/*!40000 ALTER TABLE `vehicle_movement_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicle_state` +-- + +DROP TABLE IF EXISTS `vehicle_state`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_state` ( + `inventory_item_id` int(11) NOT NULL, + `unit_number` varchar(50) DEFAULT NULL, + `plates` varchar(20) DEFAULT NULL, + `checks_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`checks_json`)), + `notes` text DEFAULT NULL, + `updated_by` int(11) DEFAULT NULL, + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`inventory_item_id`), + KEY `fk_vehicle_state_updated_by` (`updated_by`), + CONSTRAINT `fk_vehicle_state_item` FOREIGN KEY (`inventory_item_id`) REFERENCES `inventory_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vehicle_state_updated_by` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_state` +-- + +LOCK TABLES `vehicle_state` WRITE; +/*!40000 ALTER TABLE `vehicle_state` DISABLE KEYS */; +INSERT INTO `vehicle_state` VALUES +(2,'V-0002','555555','{\"P01_UNIDAD_LUCES\":false,\"P02_4_LUCES\":false,\"P03_ANTENA\":false,\"P04_ESPEJO_LATERAL_DERECHO\":false,\"P05_ESPEJO_LATERAL_IZQUIERDO\":false,\"P06_TAPONES_LLANTAS\":false,\"P07_DEFENSA_TRASERA\":false,\"P08_DEFENSA_DELANTERA\":false,\"P09_4_LLANTAS\":false,\"P10_MOLDURAS_COMPLETAS\":false,\"P11_TAPON_GASOLINA\":false,\"P12_GOLPES\":false,\"P13_BOCINAS_CLAXON\":false,\"P14_LODERAS\":false,\"P15_VINILES_ROTULACION\":false,\"P16_LLANTA_REFACCION\":false,\"P17_ESCAPE\":false,\"P18_PUERTA_BATEA\":false,\"P19_BOLA_REMOLQUE\":false,\"P20_GOLPES_CARROCERIA\":false,\"P21_RAYONES_CARROCERIA\":false,\"P22_BOLAS_EN_LLANTAS\":false,\"P23_SEGURO_COFRE\":false,\"P24_PLACA_TRASERA\":false,\"P25_PLACA_DELANTERA\":false,\"P26_NO_APLICA\":false,\"P27_GATO\":false,\"P28_MANERAL_GATO\":false,\"P29_LLAVE_RUEDAS\":false,\"P30_ESTUCHE_HERRAMIENTA\":false,\"P31_TRIANGULO\":false,\"P32_EXTINGUIDOR\":false,\"P33_VESTIDURAS\":false,\"P34_ESPEJO_RETROVISOR\":false,\"P35_CINTURONES\":false,\"P36_PALANCA\":false,\"P37_ESTEREO\":false,\"P38_CONSOLA_AC\":false,\"P39_LLANTA_REFACCION\":false,\"DOC_CIRCULACION\":true,\"DOC_SEGURO\":true,\"DOC_VERIFICACION\":true}','VEHICULO EN BUEN ESTADO',1,'2026-03-30 21:01:13'), +(65,'V-0065','DSW395E','{\"P01_UNIDAD_LUCES\":false,\"P02_4_LUCES\":false,\"P03_ANTENA\":false,\"P04_ESPEJO_LATERAL_DERECHO\":false,\"P05_ESPEJO_LATERAL_IZQUIERDO\":false,\"P06_TAPONES_LLANTAS\":false,\"P07_DEFENSA_TRASERA\":false,\"P08_DEFENSA_DELANTERA\":false,\"P09_4_LLANTAS\":false,\"P10_MOLDURAS_COMPLETAS\":false,\"P11_TAPON_GASOLINA\":false,\"P12_GOLPES\":false,\"P13_BOCINAS_CLAXON\":false,\"P14_LODERAS\":false,\"P15_VINILES_ROTULACION\":false,\"P16_LLANTA_REFACCION\":false,\"P17_ESCAPE\":false,\"P18_PUERTA_BATEA\":false,\"P19_BOLA_REMOLQUE\":false,\"P20_GOLPES_CARROCERIA\":false,\"P21_RAYONES_CARROCERIA\":true,\"P22_BOLAS_EN_LLANTAS\":false,\"P23_SEGURO_COFRE\":false,\"P24_PLACA_TRASERA\":false,\"P25_PLACA_DELANTERA\":false,\"P26_NO_APLICA\":false,\"P27_GATO\":false,\"P28_MANERAL_GATO\":false,\"P29_LLAVE_RUEDAS\":false,\"P30_ESTUCHE_HERRAMIENTA\":false,\"P31_TRIANGULO\":false,\"P32_EXTINGUIDOR\":false,\"P33_VESTIDURAS\":false,\"P34_ESPEJO_RETROVISOR\":false,\"P35_CINTURONES\":false,\"P36_PALANCA\":false,\"P37_ESTEREO\":false,\"P38_CONSOLA_AC\":false,\"P39_LLANTA_REFACCION\":false,\"DOC_CIRCULACION\":true,\"DOC_SEGURO\":true,\"DOC_VERIFICACION\":true}','Todo ok rayones simples ',29,'2026-07-14 14:41:34'), +(66,'V-0066','DSW395E','{\"P01_UNIDAD_LUCES\":false,\"P02_4_LUCES\":false,\"P03_ANTENA\":false,\"P04_ESPEJO_LATERAL_DERECHO\":false,\"P05_ESPEJO_LATERAL_IZQUIERDO\":false,\"P06_TAPONES_LLANTAS\":false,\"P07_DEFENSA_TRASERA\":false,\"P08_DEFENSA_DELANTERA\":false,\"P09_4_LLANTAS\":false,\"P10_MOLDURAS_COMPLETAS\":false,\"P11_TAPON_GASOLINA\":false,\"P12_GOLPES\":false,\"P13_BOCINAS_CLAXON\":false,\"P14_LODERAS\":false,\"P15_VINILES_ROTULACION\":false,\"P16_LLANTA_REFACCION\":false,\"P17_ESCAPE\":false,\"P18_PUERTA_BATEA\":false,\"P19_BOLA_REMOLQUE\":false,\"P20_GOLPES_CARROCERIA\":false,\"P21_RAYONES_CARROCERIA\":true,\"P22_BOLAS_EN_LLANTAS\":false,\"P23_SEGURO_COFRE\":false,\"P24_PLACA_TRASERA\":false,\"P25_PLACA_DELANTERA\":false,\"P26_NO_APLICA\":false,\"P27_GATO\":false,\"P28_MANERAL_GATO\":false,\"P29_LLAVE_RUEDAS\":false,\"P30_ESTUCHE_HERRAMIENTA\":false,\"P31_TRIANGULO\":false,\"P32_EXTINGUIDOR\":false,\"P33_VESTIDURAS\":false,\"P34_ESPEJO_RETROVISOR\":false,\"P35_CINTURONES\":false,\"P36_PALANCA\":false,\"P37_ESTEREO\":false,\"P38_CONSOLA_AC\":false,\"P39_LLANTA_REFACCION\":false,\"DOC_CIRCULACION\":true,\"DOC_SEGURO\":true,\"DOC_VERIFICACION\":true}','OK, RAYONES SUPERFICIALES',29,'2026-07-14 14:59:06'); +/*!40000 ALTER TABLE `vehicle_state` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicles` +-- + +DROP TABLE IF EXISTS `vehicles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type` varchar(50) NOT NULL, + `license_plate` varchar(20) NOT NULL, + `status` enum('available','assigned','maintenance') DEFAULT 'available', + `current_mileage` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicles` +-- + +LOCK TABLES `vehicles` WRITE; +/*!40000 ALTER TABLE `vehicles` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vouchers` +-- + +DROP TABLE IF EXISTS `vouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vouchers` ( + `voucher_id` int(11) NOT NULL AUTO_INCREMENT, + `fund_transaction_id` int(11) NOT NULL, + `file_path` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `date_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`voucher_id`), + KEY `fund_transaction_id` (`fund_transaction_id`), + CONSTRAINT `vouchers_ibfk_1` FOREIGN KEY (`fund_transaction_id`) REFERENCES `fund_transactions` (`transaction_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vouchers` +-- + +LOCK TABLES `vouchers` WRITE; +/*!40000 ALTER TABLE `vouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `vouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Final view structure for view `engineer_ratings_view` +-- + +/*!50001 DROP VIEW IF EXISTS `engineer_ratings_view`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb3 */; +/*!50001 SET character_set_results = utf8mb3 */; +/*!50001 SET collation_connection = utf8mb3_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`trimape_admin`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `engineer_ratings_view` AS select `s`.`engineer_name` AS `engineer_name`,`s`.`id_user` AS `id_user`,count(distinct `s`.`id`) AS `total_surveys`,round(avg(`jt`.`answer` / `jt`.`levels` * 5),2) AS `average_rating` from (`trimape_db`.`surveys_answers` `s` join JSON_TABLE(`s`.`snapshot_json`, '$[*]' COLUMNS (`answer` decimal(5,2) PATH '$.answer', `levels` decimal(5,2) PATH '$.levels')) `jt` on(`s`.`snapshot_json` is not null)) where `s`.`id_user` is not null group by `s`.`id_user`,`s`.`engineer_name` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + +-- +-- Final view structure for view `v_user_person` +-- + +/*!50001 DROP VIEW IF EXISTS `v_user_person`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`trimape_admin`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `v_user_person` AS with last_action as (select `h`.`user_id` AS `user_id`,`h`.`person_id` AS `person_id`,`h`.`action` AS `action`,`h`.`happened_at` AS `happened_at` from (`hr_user_assignment_history` `h` join (select `hr_user_assignment_history`.`user_id` AS `user_id`,max(`hr_user_assignment_history`.`happened_at`) AS `max_ts` from `hr_user_assignment_history` group by `hr_user_assignment_history`.`user_id`) `m` on(`m`.`user_id` = `h`.`user_id` and `m`.`max_ts` = `h`.`happened_at`)))select `u`.`id` AS `user_id`,coalesce(`hp_direct`.`id`,case when `la`.`action` = 'ASSIGN' then `hp_hist`.`id` end) AS `hr_person_id`,coalesce(`format_person_name`(`hp_direct`.`first_name`,`hp_direct`.`last_name`),case when `la`.`action` = 'ASSIGN' then `format_person_name`(`hp_hist`.`first_name`,`hp_hist`.`last_name`) end) AS `person_full_name`,coalesce(`hp_direct`.`status`,`hp_hist`.`status`) AS `person_status`,`u`.`name` AS `user_name_fallback` from (((`users` `u` left join `hr_person` `hp_direct` on(`hp_direct`.`user_id` = `u`.`id`)) left join `last_action` `la` on(`la`.`user_id` = `u`.`id`)) left join `hr_person` `hp_hist` on(`hp_hist`.`id` = `la`.`person_id`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-07-14 20:57:40 diff --git a/db_backups/trimape_db_backup_2026-03-24.sql b/db_backups/trimape_db_backup_2026-03-24.sql new file mode 100644 index 0000000..24b583e --- /dev/null +++ b/db_backups/trimape_db_backup_2026-03-24.sql @@ -0,0 +1,1843 @@ +/*M!999999\- enable the sandbox mode */ +-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: trimape_db +-- ------------------------------------------------------ +-- Server version 10.11.14-MariaDB-0ubuntu0.24.04.1 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Sequence structure for `folio_seq` +-- + +DROP SEQUENCE IF EXISTS `folio_seq`; +CREATE SEQUENCE `folio_seq` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 nocache nocycle ENGINE=InnoDB; +DO SETVAL(`folio_seq`, 10, 0); + +-- +-- Table structure for table `OSFirmas` +-- + +DROP TABLE IF EXISTS `OSFirmas`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OSFirmas` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `firma_ruta` text DEFAULT NULL, + `nombre_responsable` varchar(255) DEFAULT NULL, + `puesto` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `id_service_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OSFirmas` +-- + +LOCK TABLES `OSFirmas` WRITE; +/*!40000 ALTER TABLE `OSFirmas` DISABLE KEYS */; +INSERT INTO `OSFirmas` VALUES +(1,'uploads/signatures/signature_0_1773336337465.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-12 17:25:37',2), +(2,'uploads/signatures/signature_1_1773336337466.png','JUAN LOPEZ','RESPONSABLE DE ÁREA','2026-03-12 17:25:37',2), +(7,'uploads/signatures/signature_0_1773337756296.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-12 17:50:46',1), +(8,'uploads/signatures/signature_1_1773337756296.png','PEDRO PEREZ','RESPONSABLE DE ÁREA','2026-03-12 17:50:46',1), +(13,'uploads/signatures/signature_0_1773725490016.png','JUAN PEREZ','INGENIERO DE SERVICIO','2026-03-17 05:32:10',3), +(14,'uploads/signatures/signature_1_1773725490017.png','MARIO BONOLA','RESPONSABLE DE ÁREA','2026-03-17 05:32:10',3), +(16,'uploads/signatures/signature_0_1773727150499.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-17 05:59:10',4), +(17,'uploads/signatures/signature_1_1773727150500.png','MARIO PEREZ','RESPONSABLE DE ÁREA','2026-03-17 05:59:10',4), +(19,'uploads/signatures/signature_0_1773729192394.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-17 06:33:12',5), +(20,'uploads/signatures/signature_1_1773729192394.png','ROBERTO VASQUEZ','RESPONSABLE DE ÁREA','2026-03-17 06:33:12',5), +(22,'uploads/signatures/signature_0_1773729591917.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-17 06:39:51',6), +(23,'uploads/signatures/signature_1_1773729591918.png','PEDRO VELEZ','RESPONSABLE DE ÁREA','2026-03-17 06:39:51',6), +(25,'uploads/signatures/signature_0_1773730146241.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-17 06:49:06',7), +(26,'uploads/signatures/signature_1_1773730146241.png','PABLO PEREZ','RESPONSABLE DE ÁREA','2026-03-17 06:49:06',7), +(27,'uploads/signatures/signature_0_1773965880157.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-20 00:18:00',9), +(28,'uploads/signatures/signature_1_1773965880157.png','MANUEL GONZALES','RESPONSABLE DE ÁREA','2026-03-20 00:18:00',9); +/*!40000 ALTER TABLE `OSFirmas` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OSrefacciones` +-- + +DROP TABLE IF EXISTS `OSrefacciones`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OSrefacciones` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `OS_id` bigint(20) unsigned NOT NULL, + `codigo` varchar(255) NOT NULL, + `descripcion` text DEFAULT NULL, + `cantidad` int(11) NOT NULL, + `tipo` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_sheet_tipo` (`OS_id`) +) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OSrefacciones` +-- + +LOCK TABLES `OSrefacciones` WRITE; +/*!40000 ALTER TABLE `OSrefacciones` DISABLE KEYS */; +INSERT INTO `OSrefacciones` VALUES +(1,2,'1','TORNILLOS',12,'DIAGNOSTIC_SHEET'), +(2,2,'2','TALADRO',3,'DIAGNOSTIC_SHEET'), +(3,2,'3','MANGUERAS',1,'DIAGNOSTIC_SHEET'), +(13,1,'65','87',56,'SERVICE_ORDER'), +(14,1,'89','676',6,'SERVICE_ORDER'), +(15,1,'877654','567',86,'SERVICE_ORDER'), +(17,3,'54','654',654,'DIAGNOSTIC_SHEET'), +(18,4,'576','576',5,'DIAGNOSTIC_SHEET'), +(19,5,'76','8767',68,'DIAGNOSTIC_SHEET'), +(20,6,'67','876',76,'DIAGNOSTIC_SHEET'), +(21,7,'68','68',76,'DIAGNOSTIC_SHEET'), +(22,1,'656','765',65,'WARRANTY_SHEET'), +(23,9,'6765','765',675,'DIAGNOSTIC_SHEET'); +/*!40000 ALTER TABLE `OSrefacciones` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OsPhotos` +-- + +DROP TABLE IF EXISTS `OsPhotos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OsPhotos` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `OS_id` int(10) unsigned NOT NULL, + `ruta_foto` varchar(255) NOT NULL, + `tipo` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OsPhotos` +-- + +LOCK TABLES `OsPhotos` WRITE; +/*!40000 ALTER TABLE `OsPhotos` DISABLE KEYS */; +INSERT INTO `OsPhotos` VALUES +(1,2,'/uploads/photo-1773336337462-467260244.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(2,2,'/uploads/photo-1773336337463-755903050.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(3,2,'/uploads/photo-1773336337463-866035631.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(4,2,'/uploads/photo-1773336337464-551825949.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(8,3,'/uploads/photo-1773725490013-294004423.jpg','DIAGNOSTIC_SHEET','2026-03-17 05:31:30'), +(9,4,'/uploads/photo-1773727150497-985487998.jpg','DIAGNOSTIC_SHEET','2026-03-17 05:59:10'), +(10,5,'/uploads/photo-1773729192392-779700747.jpg','DIAGNOSTIC_SHEET','2026-03-17 06:33:12'), +(11,6,'/uploads/photo-1773729591917-57185875.jpg','DIAGNOSTIC_SHEET','2026-03-17 06:39:51'), +(12,7,'/uploads/photo-1773730146239-223144524.jpg','DIAGNOSTIC_SHEET','2026-03-17 06:49:06'), +(13,1,'/uploads/photo-1773731135101-13745451.jpg','WARRANTY_SHEET','2026-03-17 07:05:35'), +(14,9,'/uploads/photo-1773965880155-290854041.jpg','DIAGNOSTIC_SHEET','2026-03-20 00:18:00'); +/*!40000 ALTER TABLE `OsPhotos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `adminBudgets` +-- + +DROP TABLE IF EXISTS `adminBudgets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `adminBudgets` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_admin` int(10) unsigned NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `adminBudgets` +-- + +LOCK TABLES `adminBudgets` WRITE; +/*!40000 ALTER TABLE `adminBudgets` DISABLE KEYS */; +/*!40000 ALTER TABLE `adminBudgets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `adminVouchers` +-- + +DROP TABLE IF EXISTS `adminVouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `adminVouchers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `admin_expense_id` int(11) NOT NULL, + `ruta_voucher` varchar(255) NOT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `admin_expense_id` (`admin_expense_id`), + CONSTRAINT `adminVouchers_ibfk_1` FOREIGN KEY (`admin_expense_id`) REFERENCES `admin_expenses` (`expense_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `adminVouchers` +-- + +LOCK TABLES `adminVouchers` WRITE; +/*!40000 ALTER TABLE `adminVouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `adminVouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admin_expenses` +-- + +DROP TABLE IF EXISTS `admin_expenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_expenses` ( + `expense_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_user_id` int(11) NOT NULL, + `concepto` varchar(100) NOT NULL, + `descripcion` text DEFAULT NULL, + `monto` decimal(12,2) NOT NULL, + `ruta_voucher` text DEFAULT NULL, + `fecha` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`expense_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `admin_expenses_ibfk_1` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_expenses` +-- + +LOCK TABLES `admin_expenses` WRITE; +/*!40000 ALTER TABLE `admin_expenses` DISABLE KEYS */; +/*!40000 ALTER TABLE `admin_expenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `budgetVouchers` +-- + +DROP TABLE IF EXISTS `budgetVouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `budgetVouchers` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `budget_id` int(10) unsigned DEFAULT NULL, + `file_path` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `budgetVouchers` +-- + +LOCK TABLES `budgetVouchers` WRITE; +/*!40000 ALTER TABLE `budgetVouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `budgetVouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `check_ins` +-- + +DROP TABLE IF EXISTS `check_ins`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `check_ins` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `service_order_id` int(11) DEFAULT NULL, + `contract_id` int(11) DEFAULT NULL, + `timestamp` timestamp NOT NULL DEFAULT current_timestamp(), + `check_out_at` datetime DEFAULT NULL, + `latitude` decimal(10,8) DEFAULT NULL, + `longitude` decimal(11,8) DEFAULT NULL, + `photo` text NOT NULL, + `check_out_lat` decimal(10,8) DEFAULT NULL, + `check_out_lng` decimal(11,8) DEFAULT NULL, + `check_out_photo` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + KEY `ix_checkins_user_date` (`user_id`,`timestamp`), + KEY `ix_checkins_date` (`timestamp`), + CONSTRAINT `check_ins_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, + CONSTRAINT `check_ins_ibfk_2` FOREIGN KEY (`service_order_id`) REFERENCES `service_orders` (`id_service_order`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `check_ins` +-- + +LOCK TABLES `check_ins` WRITE; +/*!40000 ALTER TABLE `check_ins` DISABLE KEYS */; +/*!40000 ALTER TABLE `check_ins` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `clients` +-- + +DROP TABLE IF EXISTS `clients`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `clients` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `rfc` varchar(20) DEFAULT NULL, + `email` varchar(100) DEFAULT NULL, + `phone` varchar(15) DEFAULT NULL, + `address` text DEFAULT NULL, + `company` varchar(100) DEFAULT NULL, + `unit_key` varchar(10) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `clients` +-- + +LOCK TABLES `clients` WRITE; +/*!40000 ALTER TABLE `clients` DISABLE KEYS */; +INSERT INTO `clients` VALUES +(1,'IMSS','ABCD001231XXX','imss@correo.com',NULL,NULL,NULL,NULL,'2026-03-18 02:53:30'); +/*!40000 ALTER TABLE `clients` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `concepts` +-- + +DROP TABLE IF EXISTS `concepts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `concepts` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `quote_id` bigint(20) unsigned NOT NULL, + `concept` varchar(255) NOT NULL, + `quantity` decimal(12,2) NOT NULL DEFAULT 0.00, + `unit_price` decimal(12,2) NOT NULL DEFAULT 0.00, + `tax_rate` decimal(5,4) NOT NULL DEFAULT 0.1600, + `subtotal` decimal(14,2) GENERATED ALWAYS AS (`quantity` * `unit_price`) STORED, + `iva` decimal(14,2) GENERATED ALWAYS AS (round(`quantity` * `unit_price` * `tax_rate`,2)) STORED, + `total` decimal(14,2) GENERATED ALWAYS AS (round(`quantity` * `unit_price` + `quantity` * `unit_price` * `tax_rate`,2)) STORED, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_concepts_quote_id` (`quote_id`), + CONSTRAINT `fk_concepts_quote` FOREIGN KEY (`quote_id`) REFERENCES `quote` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `CONSTRAINT_1` CHECK (`quantity` >= 0), + CONSTRAINT `CONSTRAINT_2` CHECK (`unit_price` >= 0), + CONSTRAINT `CONSTRAINT_3` CHECK (`tax_rate` >= 0 and `tax_rate` <= 1) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `concepts` +-- + +LOCK TABLES `concepts` WRITE; +/*!40000 ALTER TABLE `concepts` DISABLE KEYS */; +/*!40000 ALTER TABLE `concepts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_assignees` +-- + +DROP TABLE IF EXISTS `contract_assignees`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_assignees` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `role` varchar(50) DEFAULT NULL, + `is_primary` tinyint(1) NOT NULL DEFAULT 0, + `assigned_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_contract_user` (`contract_id`,`user_id`), + KEY `idx_contract` (`contract_id`), + KEY `idx_user` (`user_id`), + KEY `idx_ca_user_contract` (`user_id`,`contract_id`), + KEY `idx_ca_contract_user` (`contract_id`,`user_id`), + CONSTRAINT `fk_ca_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_ca_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_assignees` +-- + +LOCK TABLES `contract_assignees` WRITE; +/*!40000 ALTER TABLE `contract_assignees` DISABLE KEYS */; +INSERT INTO `contract_assignees` VALUES +(1,1,26,'engineer',1,'2026-03-17 20:54:11'); +/*!40000 ALTER TABLE `contract_assignees` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_document_types` +-- + +DROP TABLE IF EXISTS `contract_document_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_document_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(50) NOT NULL, + `name` varchar(150) NOT NULL, + `allows_multiple` tinyint(1) NOT NULL DEFAULT 0, + `is_system` tinyint(1) NOT NULL DEFAULT 0, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_cdt_code` (`code`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_document_types` +-- + +LOCK TABLES `contract_document_types` WRITE; +/*!40000 ALTER TABLE `contract_document_types` DISABLE KEYS */; +INSERT INTO `contract_document_types` VALUES +(2,'xml_factura','xml_factura',0,0,1,'2026-03-18 23:14:55'); +/*!40000 ALTER TABLE `contract_document_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_documents` +-- + +DROP TABLE IF EXISTS `contract_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_documents` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `document_type_id` int(10) unsigned DEFAULT NULL, + `file_name` varchar(255) NOT NULL, + `file_path` varchar(500) NOT NULL, + `uploaded_by` int(11) NOT NULL, + `uploaded_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_contract` (`contract_id`), + KEY `fk_cdocs_user` (`uploaded_by`), + KEY `fk_cdocs_type` (`document_type_id`), + KEY `idx_cdocs_round` (`contract_round_id`), + CONSTRAINT `fk_cdocs_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cdocs_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_cdocs_type` FOREIGN KEY (`document_type_id`) REFERENCES `contract_document_types` (`id`), + CONSTRAINT `fk_cdocs_user` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_documents` +-- + +LOCK TABLES `contract_documents` WRITE; +/*!40000 ALTER TABLE `contract_documents` DISABLE KEYS */; +INSERT INTO `contract_documents` VALUES +(2,1,1,2,'SOLICITUD 236103 DTDI XALAPA DACIA.xml','/uploads/contracts/1/doc-1773875714167-22745289.xml',1,'2026-03-18 17:15:14'); +/*!40000 ALTER TABLE `contract_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_required_documents` +-- + +DROP TABLE IF EXISTS `contract_required_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_required_documents` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `document_type_id` int(10) unsigned NOT NULL, + `is_required` tinyint(1) NOT NULL DEFAULT 0, + `sort_order` int(11) DEFAULT 1, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_crd_type` (`document_type_id`) USING BTREE, + KEY `idx_crd_round` (`contract_round_id`) USING BTREE, + CONSTRAINT `fk_crd_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_crd_type` FOREIGN KEY (`document_type_id`) REFERENCES `contract_document_types` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_required_documents` +-- + +LOCK TABLES `contract_required_documents` WRITE; +/*!40000 ALTER TABLE `contract_required_documents` DISABLE KEYS */; +INSERT INTO `contract_required_documents` VALUES +(5,1,2,0,9999,1,'2026-03-18 23:16:48'), +(6,2,2,1,9999,1,'2026-03-18 23:16:48'); +/*!40000 ALTER TABLE `contract_required_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_rounds` +-- + +DROP TABLE IF EXISTS `contract_rounds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_rounds` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `name` varchar(100) NOT NULL, + `sort_order` int(11) NOT NULL DEFAULT 1, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_cr_contract` (`contract_id`), + CONSTRAINT `fk_cr_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_rounds` +-- + +LOCK TABLES `contract_rounds` WRITE; +/*!40000 ALTER TABLE `contract_rounds` DISABLE KEYS */; +INSERT INTO `contract_rounds` VALUES +(1,1,'PARTIDA 1',1,1,'2026-03-18 23:13:47'), +(2,1,'PARTIDA 2',2,1,'2026-03-18 23:16:40'); +/*!40000 ALTER TABLE `contract_rounds` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_transfers` +-- + +DROP TABLE IF EXISTS `contract_transfers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_transfers` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `from_user_id` int(11) DEFAULT NULL, + `to_user_id` int(11) NOT NULL, + `reason` varchar(300) DEFAULT NULL, + `transferred_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_ct_contract` (`contract_id`), + KEY `idx_ct_from` (`from_user_id`), + KEY `idx_ct_to` (`to_user_id`), + CONSTRAINT `fk_ct_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_ct_from_user_nullable_20251012` FOREIGN KEY (`from_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_ct_to_user` FOREIGN KEY (`to_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_transfers` +-- + +LOCK TABLES `contract_transfers` WRITE; +/*!40000 ALTER TABLE `contract_transfers` DISABLE KEYS */; +INSERT INTO `contract_transfers` VALUES +(1,1,NULL,26,'Asignación múltiple','2026-03-17 20:54:11'); +/*!40000 ALTER TABLE `contract_transfers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_xml_invoices` +-- + +DROP TABLE IF EXISTS `contract_xml_invoices`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_xml_invoices` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `contract_document_id` bigint(20) unsigned DEFAULT NULL, + `invoice_ref` varchar(100) DEFAULT NULL, + `uuid` char(36) DEFAULT NULL, + `amount` decimal(14,2) NOT NULL, + `amount_source` enum('xml','manual') NOT NULL DEFAULT 'xml', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_cxi_uuid` (`uuid`), + KEY `idx_cxi_contract` (`contract_id`), + KEY `idx_cxi_round` (`contract_round_id`), + KEY `idx_cxi_doc` (`contract_document_id`), + CONSTRAINT `fk_cxi_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cxi_document` FOREIGN KEY (`contract_document_id`) REFERENCES `contract_documents` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cxi_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_xml_invoices` +-- + +LOCK TABLES `contract_xml_invoices` WRITE; +/*!40000 ALTER TABLE `contract_xml_invoices` DISABLE KEYS */; +INSERT INTO `contract_xml_invoices` VALUES +(1,1,1,2,NULL,'5ED770E1-8AD2-4F75-97D7-8E3C953C7D26',1380.40,'xml','2026-03-18 23:15:14'); +/*!40000 ALTER TABLE `contract_xml_invoices` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contracts` +-- + +DROP TABLE IF EXISTS `contracts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contracts` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `client_id` int(11) DEFAULT NULL, + `created_by` int(11) DEFAULT NULL, + `owner_user_id` int(11) DEFAULT NULL, + `folio` varchar(50) NOT NULL, + `dependency_contract_number` varchar(100) DEFAULT NULL, + `place` varchar(150) DEFAULT NULL, + `delegation` varchar(120) DEFAULT NULL, + `municipality` varchar(120) DEFAULT NULL, + `name` varchar(100) NOT NULL, + `description` text DEFAULT NULL, + `total_amount` decimal(14,2) NOT NULL DEFAULT 0.00, + `start_date` date DEFAULT NULL, + `end_date` date DEFAULT NULL, + `status` enum('Borrador','Firmado','Activo','Finalizado','Cancelado') DEFAULT 'Borrador', + `finalized_at` datetime DEFAULT NULL, + `document_path` varchar(255) DEFAULT NULL, + `signature_path` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `folio` (`folio`), + UNIQUE KEY `folio_2` (`folio`), + KEY `fk_contracts_client` (`client_id`), + KEY `fk_contracts_user` (`created_by`), + KEY `idx_contracts_owner` (`owner_user_id`), + KEY `idx_contracts_created_at` (`created_at`), + CONSTRAINT `fk_contracts_client` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_contracts_owner` FOREIGN KEY (`owner_user_id`) REFERENCES `users` (`id`), + CONSTRAINT `fk_contracts_user` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contracts` +-- + +LOCK TABLES `contracts` WRITE; +/*!40000 ALTER TABLE `contracts` DISABLE KEYS */; +INSERT INTO `contracts` VALUES +(1,1,1,26,'CONT-260317-001','1','PENDIENTE','PENDIENTE','PENDIENTE','CONTRATO-1','CONTRATO DE PRUEBA',15000.00,'2026-03-17','2026-12-31','Borrador',NULL,NULL,NULL,'2026-03-18 02:53:58'), +(2,1,1,1,'CONT-260317-002','2','PENDIENTE','PENDIENTE','PENDIENTE','CONTRATO-2','PRUEBA',20000.00,'2026-03-17','2026-03-31','Borrador',NULL,NULL,NULL,'2026-03-18 02:55:04'); +/*!40000 ALTER TABLE `contracts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_report_photos` +-- + +DROP TABLE IF EXISTS `daily_report_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `daily_report_photos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `report_id` int(11) NOT NULL, + `photo_url` varchar(512) NOT NULL, + `sort_order` int(11) NOT NULL DEFAULT 1, + `caption` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_drp_report_order` (`report_id`,`sort_order`), + KEY `idx_drp_report` (`report_id`), + CONSTRAINT `fk_drp_report` FOREIGN KEY (`report_id`) REFERENCES `daily_reports` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_report_photos` +-- + +LOCK TABLES `daily_report_photos` WRITE; +/*!40000 ALTER TABLE `daily_report_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_report_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_reports` +-- + +DROP TABLE IF EXISTS `daily_reports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `daily_reports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `engineer_id` int(11) NOT NULL, + `service_order_id` int(11) DEFAULT NULL, + `report_date` date NOT NULL DEFAULT curdate(), + `unidad_aplicativa` varchar(100) DEFAULT NULL, + `direccion` varchar(255) DEFAULT NULL, + `equipo` varchar(100) DEFAULT NULL, + `inventario` varchar(50) DEFAULT NULL, + `marca` varchar(50) DEFAULT NULL, + `serie` varchar(50) DEFAULT NULL, + `modelo` varchar(50) DEFAULT NULL, + `ubicacion` varchar(100) DEFAULT NULL, + `activities` text DEFAULT NULL, + `observations` text DEFAULT NULL, + `codigo` varchar(50) DEFAULT NULL, + `descripcion` varchar(255) DEFAULT NULL, + `cantidad` int(11) DEFAULT 0, + `refacciones` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`refacciones`)), + `signature_url` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `hr_person_id` int(11) DEFAULT NULL, + `printed_person_name` varchar(205) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `service_order_id` (`service_order_id`), + KEY `idx_contract_id` (`contract_id`), + KEY `idx_engineer_id` (`engineer_id`), + KEY `idx_report_date` (`report_date`), + KEY `fk_dr_hr_person` (`hr_person_id`), + FULLTEXT KEY `idx_text_fields` (`activities`,`observations`,`equipo`,`descripcion`), + CONSTRAINT `daily_reports_ibfk_1` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `daily_reports_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, + CONSTRAINT `daily_reports_ibfk_3` FOREIGN KEY (`service_order_id`) REFERENCES `service_orders` (`id_service_order`) ON DELETE SET NULL, + CONSTRAINT `fk_dr_hr_person` FOREIGN KEY (`hr_person_id`) REFERENCES `hr_person` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_reports` +-- + +LOCK TABLES `daily_reports` WRITE; +/*!40000 ALTER TABLE `daily_reports` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_reports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `diagnostic_photos` +-- + +DROP TABLE IF EXISTS `diagnostic_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `diagnostic_photos` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `diagnostic_sheet_id` bigint(20) unsigned NOT NULL, + `photo_path` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_sheet` (`diagnostic_sheet_id`), + CONSTRAINT `fk_photo_sheet` FOREIGN KEY (`diagnostic_sheet_id`) REFERENCES `diagnostic_sheets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `diagnostic_photos` +-- + +LOCK TABLES `diagnostic_photos` WRITE; +/*!40000 ALTER TABLE `diagnostic_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `diagnostic_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `diagnostic_sheets` +-- + +DROP TABLE IF EXISTS `diagnostic_sheets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `diagnostic_sheets` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `folio` varchar(30) NOT NULL, + `fecha` date NOT NULL, + `unidad_aplicativa` varchar(255) NOT NULL, + `direccion` varchar(255) NOT NULL, + `equipo` varchar(255) NOT NULL, + `inventario` varchar(100) NOT NULL, + `marca` varchar(100) NOT NULL, + `serie` varchar(100) NOT NULL, + `modelo` varchar(100) NOT NULL, + `ubicacion` varchar(255) NOT NULL, + `diagnostico` text NOT NULL, + `id_user` int(10) unsigned NOT NULL, + `contract_id` int(10) unsigned DEFAULT NULL, + `state` varchar(50) NOT NULL DEFAULT 'BORRADOR', + `firma_ing` varchar(255) DEFAULT NULL, + `firma_responsable` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `folio` (`folio`), + KEY `idx_folio` (`folio`), + KEY `idx_fecha` (`fecha`), + KEY `idx_user` (`id_user`), + KEY `idx_contract` (`contract_id`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `diagnostic_sheets` +-- + +LOCK TABLES `diagnostic_sheets` WRITE; +/*!40000 ALTER TABLE `diagnostic_sheets` DISABLE KEYS */; +/*!40000 ALTER TABLE `diagnostic_sheets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `engineer_inventory` +-- + +DROP TABLE IF EXISTS `engineer_inventory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `engineer_inventory` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` int(11) NOT NULL, + `engineer_id` int(11) NOT NULL, + `contract_ref` varchar(100) DEFAULT NULL, + `quantity` int(11) NOT NULL DEFAULT 1, + `date_assigned` timestamp NULL DEFAULT current_timestamp(), + `expected_return` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `ux_engineer_item_contract` (`engineer_id`,`item_id`,`contract_ref`), + KEY `item_id` (`item_id`), + CONSTRAINT `engineer_inventory_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `inventory_items` (`id`), + CONSTRAINT `engineer_inventory_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `engineer_inventory` +-- + +LOCK TABLES `engineer_inventory` WRITE; +/*!40000 ALTER TABLE `engineer_inventory` DISABLE KEYS */; +INSERT INTO `engineer_inventory` VALUES +(1,1,26,'CONT-260317-001',1,'2026-03-20 16:10:34','2026-03-28'), +(2,2,26,'CONT-260317-001',1,'2026-03-20 16:19:41','2026-03-20'); +/*!40000 ALTER TABLE `engineer_inventory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `expenses` +-- + +DROP TABLE IF EXISTS `expenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `expenses` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `concept` varchar(255) NOT NULL, + `amount` decimal(10,2) NOT NULL, + `date` date NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `contract_id` (`contract_id`), + CONSTRAINT `expenses_ibfk_1` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `expenses` +-- + +LOCK TABLES `expenses` WRITE; +/*!40000 ALTER TABLE `expenses` DISABLE KEYS */; +/*!40000 ALTER TABLE `expenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `finances` +-- + +DROP TABLE IF EXISTS `finances`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `finances` ( + `finance_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_expense_id` int(11) NOT NULL, + `file_path` varchar(255) DEFAULT NULL, + `date_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`finance_id`), + KEY `fund_transaction_id` (`admin_expense_id`) +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `finances` +-- + +LOCK TABLES `finances` WRITE; +/*!40000 ALTER TABLE `finances` DISABLE KEYS */; +/*!40000 ALTER TABLE `finances` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `fund_transactions` +-- + +DROP TABLE IF EXISTS `fund_transactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `fund_transactions` ( + `transaction_id` int(11) NOT NULL AUTO_INCREMENT, + `fund_id` int(11) NOT NULL, + `type_` enum('ABONO','GASTO') NOT NULL, + `amount` decimal(12,2) NOT NULL, + `crt_time` datetime DEFAULT current_timestamp(), + `description` text DEFAULT NULL, + `concept` text DEFAULT NULL, + `admin_user_id` int(11) DEFAULT NULL, + `tipo_pago` varchar(255) DEFAULT NULL, + `nombre_rh` varchar(255) DEFAULT NULL, + PRIMARY KEY (`transaction_id`), + KEY `fund_id` (`fund_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `fund_transactions_ibfk_1` FOREIGN KEY (`fund_id`) REFERENCES `funds` (`fund_id`), + CONSTRAINT `fund_transactions_ibfk_2` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `fund_transactions` +-- + +LOCK TABLES `fund_transactions` WRITE; +/*!40000 ALTER TABLE `fund_transactions` DISABLE KEYS */; +/*!40000 ALTER TABLE `fund_transactions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `funds` +-- + +DROP TABLE IF EXISTS `funds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `funds` ( + `fund_id` int(11) NOT NULL AUTO_INCREMENT, + `technician_user_id` int(11) NOT NULL, + `contract_id` int(11) NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `crt_date` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`fund_id`), + KEY `idx_funds_tech_contract` (`technician_user_id`,`contract_id`), + KEY `idx_funds_contract_tech` (`contract_id`,`technician_user_id`), + CONSTRAINT `funds_ibfk_1` FOREIGN KEY (`technician_user_id`) REFERENCES `users` (`id`), + CONSTRAINT `funds_ibfk_2` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `funds` +-- + +LOCK TABLES `funds` WRITE; +/*!40000 ALTER TABLE `funds` DISABLE KEYS */; +/*!40000 ALTER TABLE `funds` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `history_service_orders` +-- + +DROP TABLE IF EXISTS `history_service_orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `history_service_orders` ( + `id_h_so` int(11) NOT NULL AUTO_INCREMENT, + `id_ing` int(11) DEFAULT NULL, + `sealed_service_order` varchar(50) DEFAULT NULL, + `create_at` date DEFAULT curdate(), + PRIMARY KEY (`id_h_so`), + UNIQUE KEY `id_h_so` (`id_h_so`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `history_service_orders` +-- + +LOCK TABLES `history_service_orders` WRITE; +/*!40000 ALTER TABLE `history_service_orders` DISABLE KEYS */; +/*!40000 ALTER TABLE `history_service_orders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document` +-- + +DROP TABLE IF EXISTS `hr_document`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `person_id` int(11) NOT NULL, + `document_type_id` int(11) NOT NULL, + `status` enum('PENDING','RECEIVED','REJECTED','EXPIRED') NOT NULL DEFAULT 'PENDING', + `issue_date` date DEFAULT NULL, + `expiry_date` date DEFAULT NULL, + `notes` varchar(255) DEFAULT NULL, + `is_current` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `fk_hr_document_type` (`document_type_id`), + KEY `idx_hr_doc_person_type` (`person_id`,`document_type_id`,`is_current`), + KEY `idx_hr_doc_expiry` (`expiry_date`), + KEY `idx_hr_doc_person_type_iscurrent` (`person_id`,`document_type_id`,`is_current`), + KEY `idx_hr_doc_expiry_date` (`expiry_date`), + CONSTRAINT `fk_hr_document_person` FOREIGN KEY (`person_id`) REFERENCES `hr_person` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_hr_document_type` FOREIGN KEY (`document_type_id`) REFERENCES `hr_document_type` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document` +-- + +LOCK TABLES `hr_document` WRITE; +/*!40000 ALTER TABLE `hr_document` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document_file` +-- + +DROP TABLE IF EXISTS `hr_document_file`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document_file` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `document_id` int(11) NOT NULL, + `side` enum('FRONT','BACK','SINGLE','OTHER') NOT NULL DEFAULT 'SINGLE', + `file_url` varchar(255) NOT NULL, + `checksum_md5` char(32) DEFAULT NULL, + `uploaded_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_hr_document_file_doc` (`document_id`), + KEY `idx_hr_doc_file_doc` (`document_id`), + CONSTRAINT `fk_hr_document_file_doc` FOREIGN KEY (`document_id`) REFERENCES `hr_document` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document_file` +-- + +LOCK TABLES `hr_document_file` WRITE; +/*!40000 ALTER TABLE `hr_document_file` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document_file` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document_type` +-- + +DROP TABLE IF EXISTS `hr_document_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `code` varchar(40) NOT NULL, + `name` varchar(120) NOT NULL, + `requires_both_sides` tinyint(1) NOT NULL DEFAULT 0, + `allows_multiple` tinyint(1) NOT NULL DEFAULT 0, + `requires_expiry` tinyint(1) NOT NULL DEFAULT 0, + `active` tinyint(1) NOT NULL DEFAULT 1, + `sort_order` int(11) DEFAULT 9999, + PRIMARY KEY (`id`), + UNIQUE KEY `uq_hr_document_type_code` (`code`), + KEY `idx_hr_document_type_active` (`active`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document_type` +-- + +LOCK TABLES `hr_document_type` WRITE; +/*!40000 ALTER TABLE `hr_document_type` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document_type` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_person` +-- + +DROP TABLE IF EXISTS `hr_person`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_person` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `employee_code` varchar(30) NOT NULL, + `first_name` varchar(100) NOT NULL, + `last_name` varchar(100) NOT NULL, + `phone` varchar(30) DEFAULT NULL, + `email` varchar(150) DEFAULT NULL, + `position` varchar(150) DEFAULT NULL, + `signature_data` mediumtext DEFAULT NULL, + `photo_url` varchar(255) DEFAULT NULL, + `status` enum('ACTIVE','INACTIVE') NOT NULL DEFAULT 'ACTIVE', + `user_id` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uq_hr_person_employee_code` (`employee_code`), + UNIQUE KEY `uq_hr_person_user_id` (`user_id`), + CONSTRAINT `fk_hr_person_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_person` +-- + +LOCK TABLES `hr_person` WRITE; +/*!40000 ALTER TABLE `hr_person` DISABLE KEYS */; +INSERT INTO `hr_person` VALUES +(1,'001','DOMINIC JOSAFAT','VALDES GASCA','2294797622','dom@gmail.com',NULL,NULL,NULL,'ACTIVE',NULL,'2026-03-17 05:48:27','2026-03-23 01:33:53'), +(2,'003','Gabriel ','Diaz Rosales','','gabriel@correo.com','INGENIEROS DE SERVICIOS','',NULL,'ACTIVE',26,'2026-03-23 01:02:57','2026-03-23 02:10:53'), +(9,'222','Alberto','Sánchez','','alsanchezbeltran@gmail.com','CORDINACION DE PROYECTOS','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiYAAACWCAYAAADqm0MaAAAflUlEQVR4Xu2dCbi1U9nHbx9FyBwqigqRNEcRknkqQ4pQiddQpiQyj72mkCmFpIwJZQqRhFDSgCaUimgwNQv1fb/Wtb797Ofsc/Y+e5/jXfs8v/u6zvW+Z+/nWc9av7Wva//Pve5hpv/8n4UmAQlIQAISkIAECiAwk8KkgF1wChKQgAQkIAEJ/JeAwsQPggQkIAEJSEACxRBQmBSzFU5EAhKQgAQkIAGFiZ8BCUhAAhKQgASKIaAwKWYrnIgEJCABCUhAAgoTPwMSkIAEJCABCRRDQGFSzFY4EQlIQAISkIAEFCZ+BiQgAQlIQAISKIaAwqSYrXAiEpCABCQgAQkoTPwMSEACEpCABCRQDAGFSTFb4UQkIAEJSEACElCY+BmQgAQkIAEJSKAYAgqTYrbCiUhAAhKQgAQkoDDxMyABCUhAAhKQQDEEFCbFbIUTkYAEJCABCUhAYeJnQAISkIAEJCCBYggoTIrZCiciAQlIQAISkIDCxM+ABCQgAQlIQALFEFCYFLMVTkQCEpCABCQgAYWJnwEJSEACEpCABIohoDApZiuciAQkIAEJSEACChM/AxKQgAQkIAEJFENAYVLMVjgRCUhAAhKQgAQUJn4GJCABCUhAAhIohoDCpJitcCISkIAEJCABCShM/AxIQAISkIAEJFAMAYVJMVvhRCQgAQlIQAISUJj4GZCABCQgAQlIoBgCCpNitsKJSEACEpCABCSgMPEzIAEJSEACEpBAMQQUJsVshRORgAQkIAEJSEBh4mdAAhKQgAQkIIFiCChMitkKJyIBCUhAAhKQgMLEz4AEJCABCUhAAsUQUJgUsxVORAISkIAEJCABhYmfAQlIQAISkIAEiiGgMClmK5yIBCQgAQlIQAIKEz8DEpCABCQgAQkUQ0BhUsxWOBEJSEACEpCABBQmfgYk0IXAxz8e8bnPRey4Y8T06ZOL68knI7bcMuKqqyI23DDii1+MmHnmyX2mo0tAAhIoiYDCpKTdcC5FEvif/4n4z38i+Pcf/4h47nMnb5pnnBGx7bat8U85JQkiTQISkEBTCChMmrLTrrNvAvPPH/Hoo+l2hMM22/Q9VNcbP/vZiB12aF22wgoRt9zS9TYvkIAEJDBlCChMpsxWupDJInD22RFbbZVGX2yxiJ/9LGLWWSfnaRzdvP/9rbFnnz3ib3+bnGc5qgQkIIESCShMStwV51QUgaeeinjhCyMeeSRN65BDIvbff3KmePTREcS0VA0htNRSk/M8R5WABCRQGgGFSWk74nyKJPCGN0TccUea2kwzJa/JkktO/FSPOipir73axz388Ih99pn4ZzmiBCQggRIJKExK3BXnVByBqjBhchy3fOELEz/Nk06K2Hnn9nE/8pGIE0+c+Gc5ogQkIIESCShMStwV5zQuAjmd933vizj55N5vHU8aMOMiELI9//kRDz4Ywb8TaWeeOTK49sMfjkCwaBKQgASaQEBh0oRdHpI1/vOfEcccE3H66RF/+lMEsR3/+ldr8gScctSBR4HjlGw5nZffX/e6iK99LWLRRbsvupoG/MwzY1//xBNpzL/8pXUdgao5KLb703q74jOfidhpp/Zrt98+4tRTe7vfqyQgAQkMOwGFybDv4BSZ/667Rpx7bhIk3WyJJVIcBmm7CJQFF4z44x9bd80xR8RZZ0VsssnYI80zTwSCA7v55oi3vnXs6xEhZOhk22CDiEsv7Tbb8b1//PERu+/efg/PRQRpEpCABJpAQGHShF0ufI2f/nTEbruNf5Jkytx4Y0rdRdjgKcmej+c8J4IMF14fzQ4+OOKgg9K7222XqruOZdddF7H66q0rZpst4vHHJzZ1+MILIzbbrH0W73lPxPnnj5+Pd0hAAhIYRgIKk2HctSk0ZyqpvuxlEQ8/3FrUW94S8YpXpNez/ehHEV/96siF4y0h/mPTTSOuvjoFpf7+963rXvKS5IlZccWR9/74xxGveU16HS/L3XdHvPSlo8P9978jFlqo3avzne9EMN+Jsssvj8ATU7Wtt04eIE0CEpBAEwgoTJqwywWvsRpU+qpXRXz/+6N7IDjmWW+9iO9+d+SCSKclrfbKKyM22qg9NoVYErwdq67afh9l5ilgRmwLtsUWEeecMzasadMiTjutdc0JJ4zMohkE9yWXRGy8cfsIvXhzBnmm90pAAhIoiYDCpKTdaOBc6DtDkCt20UUjv5Q7IaFs+4EHtntGuI6YE0rGH3tsxB57tN/5pjdF4N2YZZb219/85ojvfa/12k03dfau5Cs4LnrXu1rX09emKlQG3cKvfCXi3e9uH+WAAyI4dtIkIAEJNIGAwqQJu1zwGnNmDDEh1QycblMm2PW974345jfbr7z44uQxWW65iDvvbH+PzBYyXKr22tdGcEyUjY6+iI/RjKyceedtxbIgbG67rdtse3+fYyfSnqtGltKHPtT7GF4pAQlIYJgJKEyGefeGfO70gJlzzrSIRRaJ+O1vx78gvAmHHtq675WvTIIEAUG8SDW993nPSxVbiTvJdthh7eXlZ545eWJo3DearbNOxFVXpXe5njgZhNVEWKc6Juedl0SYJgEJSKAJBBQmTdjlQteIEMkigVRdUnbHa2ThrLlmu+fkmmsi1lgjZbJsvnn7iHvvHTF9euu1xx5L9UmqjfI4KiKWZDQjVZl6KtmIi3n968c7887X1wu5cRVBuq9+9cSM7ygSkIAESiegMCl9h6bw/PhCf+Mb0wIREBxj9GO//nXEMstE/P3v6W6yee67L/2fVNsvf7k16otfHPHAA+1PqQe0InTI8BnNfvGL9qZ6F1wwMsW3n3Vwz3HHRXz0o+13/+AHERw5aRKQgASaQEBh0oRdLnSNfPmvvXaaHOXhjzyy/4kSl1EVNvfeG/Hyl0f87ncRSy8d8ec/t8YmLRghk42g2Ho68S9/GbH44p3nQ9rwXHO1vCwT2WSPsfbbr/25xMAQM6NJQAISaAIBhUkTdrnQNX796xHrrpsmt//+EYcc0v9E//CHdCz05JNpDL7cc+zJaqtFXH99a2w8Ep/6VPuzEC/En2TDczFW0TdK3//wh+lqRFG1Imz/q0hzJm6mah7lDELUeyUggWEjoDAZth2bQvPFc7HssmlBBHcS5DmI7bhjq6cMwavEsBDwSmE2MnWy0XiPgm7UMMn2+c+3Z76sskrEt741+mxI6SW1F6NIWxYpg8yfexFUeE2qVvfwDPoM75eABCRQMgGFScm7M8XnRnowqbfEhnSK/Rjv8hEHeDKyUV+EOiMYnhk8NNk4NuL4KBu1VMjieeih9AppzIiXF7yg8yyqng2OdXLPnfHOuX49niMyhapGllEWcIOO7/0SkIAESiegMCl9h6b4/Ci/Thl27I472oVFP0unPPytt6Y7+T/xIxgBssSc5F46eFSIQ6GRXzaObujbk22sqq4c3VQ7C5PVU/XA9DN37iEIuN4X5557Uon+YTWEZ67WS7Vdsq+o/0KQsSYBCUigTkBh4mdihhKgUmv2agwaZ8JC6gXKfv7ziCWXTEv88IcjTjmltdx6RdW6x2Ws45x6Q78HH4x40YsGR0nZ/BtuaB9nrEDcwZ842Aj335+Oyqj9QrbSI4+k8fA88ftoNhEessFm7t0SkECpBBQmpe5MQ+ZF/xu+0DlKIfajmj3TDwKCXxdYIOKvf013f+YzETvskP5PcCtBrtnwmiAo6E6cjQDaaqE3snroYlw3vDtveEPr1d/8JtVDGdTWWiuCOixVG20Ogz5rvPdTrI62Ad/4RsRdd6X6Kv0alWypaKtJQAISqBNQmPiZmOEEqPqKQMD4i3u++Qab0jvfGXHppWmM+hdgPa2YGifV3jTrrx9xxRWt5x9zzMi+O7zLMdASS7SumyhhQiwJwa5Ve/TRFItDmvJPfhJBs8OZZhqMUS93U/afIys8SRzFVLOWermfa9hbjtBWWCEJT47XiNuxYFyvBL1OAs0joDBp3p4Xt+JqJVW661ab5PUzWVKBP/axdOfKK7cfjdCwj/iGbG97W8S3v936vV7ThAJw1SZ/+cpqRhGvUdCNwm6DGjEv9UDap59OniSyf/DmEKRLj6CJeF6eL8+47LIkir70pYhf/arVXLGXNc09dyoChxeJH7xgzHO0WjC9jOk1EpBAMwkoTJq570Wt+sILW5VT99lnZLrseCdbTQ8maJTg0apVA2R5vR7DUX//9tvbj224hxiKakzJRBy3VHsH5fniGcFTUq8IyzHUYouldOjjjx85v27MiAkhRZqUaI5kyEDq1egIvfrqyQuSf/CGaBKQgAQmgoDCZCIoOsZABDgG4a9rrO7B6GdgSrjn3jWzzZaa7FWtXtcEj80RR7SuIECWQNlsu+8eceyx7WPwRV6NPSHrp9ocsJ9512NgGIO0ZQQLx005e6nT2DQTJItop51GfzJxPAQbE9tBO4BejOaEiA+8TPwsv3xrr3q532skIAEJjJeAwmS8xLx+UgjgASCWgkBUqrhSG6Rf4/6FFkp343H45z8j+Cs/GynDHNHkomjV3jpcQ3oroiMH4nbyuhALQ5Bttp/+NILOxoMYRykbbjhyBERRvX/OaM8hRoaAX2I7shEPg3eEHzwl3QxmiBBqtfAvxzSaBCQggWeLgMLk2SLtc8YksNlmERzpYBRCyz10+sU255ytXjYEjFazcRiz7jWhtgYdjrNtsknExRe3fq97RMhQqYqniajBcvDBEQcdNHLFxGz06uHgbuaFl4OMJwQUc+/FEG/Uctl553Zh08u9XiMBCUhgoggoTCaKpOMMRIC/8vMxxAc/mP66H8SqcSKdAmqJ28BrwrEPtsYa7Wm655wTseWWrRl88YvtBdXwqswxR+t9AmRzp+R+5839nQQIWSxkyGRDOOBBIW33ttsizjorguDVfow4lU03jSCTCWHG0ZEmAQlIYEYSUJjMSPo++/8JcMSw8MLpV45IyD4hPqRfq3o8OAohTqRu1eqtxFJQIj8b86EIWK4UW+/lU/eYkM2DGOrVGBdPDl2OiQ/h+InndRIYdWFCjAhp0Nnw9uy6a+9eFVJ13/OeVKa/WsK/17l7nQQkIIHJJKAwmUy6jj0uAqT23nhjuoUGeYiLfu0jH4k4+eR09557Rhx1VOeRSGeleilW/8J/+9tbjfzwjuSibVxbD37tlLkz2typRvumN0UgboipoeYKmTHMs5MttVQE92TjuOfAA9uvpLAcFW4JJB7NqCdCYO873pHEkCYBCUigRAIKkxJ3paFzQhhst11aPEGgX/ta/yCqfW/wJpBS28nwpuyxR3pnpZVawojfafJ39NGtu6qxKvV6KAgq7u/F8FZQ2C0bwaa8Vu+Rk9+nkFs15ZkjJmqN1I3jJWJ1OOLJ3h/qonBMNW1aSvGd6kYQMqIRphxL8UM2Ekdes8wSQa8eXsNDhncKcchxHsKT7C3Sr7mG9+jyXC2iN9XZuT4JlEJAYVLKTjiP/35JUBskeyYeeCAdb/Rj22wTceaZ6U68C52CSnmPZ/HlnY9sOELKGS14KaqZNnzh5y/3XIE1z63ak6fbfOnBUy3qxvWsm1oovdgnPhHxyU/2cuXwXUO8DKICjw7p04gMhAWeJcQfogLRQIAvxeAQY+MxvE/5yDDfxx7XX0PEEMtjRtJ46HqtBCaGgMJkYjg6ygQRqDbaq9cXGc8j8F4Qe4HVj2jq4xA/csEF6dVqI0GOR6pxLnxpbr11uo5+NvS1yUahMgRHL9apUR8FyhBmvVhVPPVy/Yy85pZb0lEZ6/vRj9L/ER1XX51mhdCgwF0vhkitdllGZFRryfBeNU2aLKNqplUvz/AaCUhgxhNQmMz4PXAGFQJ33hmx3HLpBf5qxaNRbbLXKyz+0s11SPgSXHPN0e+sdgqmEV81TmPBBVsZMVVPRVXMMDKFx269tbfZEXxKE7yq8QVNplA3I3bmxBO7XTX57xPsy/5wREIVXAQcnBFz7Bfvd7Oq94LCejnuZcUV01ELhojTJCCBZhFQmDRrv4ditRxr8GWHcc5PmfrxGIKk6oInPqP6l3Z9LGIKqDybuwrfcEPqsYMRKEpfGmy99VrVV6mzkv/qz+Nde226vptR0I1eNP0Ywo1Gf5NhxM0gDvBgwAyxRPM+PDnUQ6FWCwbbej+fPB8CbLPXgmaDZBRh8GQ83htrLyZjXY4pAQkMFwGFyXDtVyNme955EVtskZZKoTQEA3EgvRrxG/lYhb/qqfzaLQsFb0guS1+to0IzQJoCYlVvygc+kOqHVG3bbSNOO23kLIlfISiT1GC+nDmS6DWepDoaQbp0O+7HiI+hQ/H116cgT+aDuKAqLLE89bL91WfgNSIGg/v5oZkglj0bs8/e3hixn/l5jwQkIIFMQGHiZ6E4AgQ78ld1PlLhyzhnzvQyWdKEOfLAOBYitqGbVY+QKGePGOI44QtfiECoYIgKsl0QOZR+v+KK9lHplVOvsvrgg6nrLlVY+XInLZh6J3Qj7tUQA2QW7btvOj7pZBSRY86sleBQvBvUYqkWZqvfRwApdUxYD8XdyEjJcRu8xvGKJgEJSODZJqAwebaJ+7yeCCBGcl0Pjj7I0MhxB90GoIIslWSx7bePOPXUbnek9yn9no8rOL6hjkk1/oRrEBocNa22WvI+1K1eun6jjVL5+2yHHJJqo+TjoW4zo4cQ3pXc6+exxyIQIWSocMzCkdBo3o58rIKnBq8HHBFPVHvlR5OABCRQIgGFSYm74pz+G/SK5yKng1L3gw67vRgeiuwloeMuaZ+92JFHRuy9d7qSku8c4dDor1odFSHAl3q9FklVeJDZg7EGvB3Vaq54PmhW2KkOSac54vGhbglF2EhR5t6qcazCfFgz4gMRwms8V5OABCQwjAQUJsO4aw2ZM0coHKVgvR7JEKTJF3TOcKkGsnbDxtERQbAYX/aIEDJtqqXmESp88RNPcsYZI0fEQ5Kb/3W6hvc4Aup0L3ErFJXDK9LJiOmAw+tfn466zFjptqO+LwEJDCMBhckw7lpD5sxRBWm42ag1QmXTseyzn43YYYd0BSmsZJSMFpfRaRzqXlB7A0Oo4HmgBke2yy9P2Tn03ulUTRaPy/Tp6bkEy9azV4g14YiImJZspNcSQEoMC8Kqau96V4ovoYR9tWlgQz4CLlMCEmggAYVJAzd9mJaMMEGgYHgxiDUZq65JtUNvvfFeL+s+6aTW0Q/1Qgii5bk5qPWww1IQ6uabdy4hf+656T08InhMqobw2G+/COJM6kb8B94Q/qVMfrZuNVh6WZPXSEACEhgmAgqTYdqtBs71qqsi1lmntfDjjougD04nq6YJ8/54qrHm8UidxdOB8dwrr2wXIbmnTbVJYHUuiChqdyy9dEpT7mZ4cwio5fgJq8bW4EWhJHvVY9NtPN+XgAQkMOwEFCbDvoMNmD9dhnPcBimufFmT2lq3ajdg4kJ6qT7aCV8OnqV2CkcrFHk74IB0Je/R9G3HHTtn+7z//am8fSdRwlEMYyJEstFgj/L2VSPtl2BX4lXIANIkIAEJNImAwqRJuz2ka0UIEPCZjS//HBSbX6OJHl4Kqrhi1DIhbbgfo+HfwQenO/GA/OIXKTMGQxDh1SDW5aKLxjc6zeI4iqoaRzuHHjq+cbxaAhKQwFQmoDCZyrs7hdZGXEe1o+5NN6XKo9l22aXVQwavCp6O8QS9VlF9//up4BhGRdhNN001TrItvnh/JeWpw0LxuKpR/p3xNAlIQAISSAQUJn4ShoIARyMIjvzFjnCgtwuGCKHMOw3ksH7669QhEN9B4TJqqSy5ZCpoNl7r1phvhRVaGUDjHdvrJSABCUxVAgqTqbqzU3BdW20VcfbZrYVRpIwjlqq3hBTh++9PgqIfozAb/W7IqhkteJUUXoJkb7999CdQqfWUUyKmTRu9a/A557R6AvUzV++RgAQkMBUJKEym4q5O0TVRxr3avZfeM6TnrrVWy5NCfMiBB/YOAPFBNs+ZZ6by8516y5CdQ1n4XE2Wyq4c95Cx08k49iF2BAGzzTZp7LrRbZf1dGsu2PtKvFICEpDA1CCgMJka+9iIVRDYusQS7Q3w5puvVaadrBeqtZKu282osIogwetSFyOkC9PADtGD0bfn8ccjqGGCkTJMZhBVZbOR0kssCt2IKQufDeHDsdPdd7deI3uIEvsLLNBtlr4vAQlIoHkEFCbN2/OhXjHFyUbziJAls/HGoy8PMYEQIWOn3gWYfjikJXM/2T0Yxc4QOmuvnY6L1l03vb7IIumHcvXZCMQlILeT0e+HcW++OR3d8Px+A3OHevOcvAQkIIEeCChMeoDkJeUQoAYIHXJzL5w8M8rQ547C1dkiVvihUFu9Bw19cYhRQZBUG/Xl+7fbLuL001OBs7vuavXR4fiFEvG9CpNy6DkTCUhAAuUTUJiUv0fOsEYA70S9eNpRR0XsuWeKA6HuCUXO+P9DD7XfjBcEEbPmmqkZ31iGZ4MKrxjN+yjaRqYOhlflpz9t3Z0Lr7lZEpCABCQwGAGFyWD8vPtZJkDhMwJc60ZqLp6Mep0QrqMo2vveF0FhtpVW6n3ClLQnHgQjgJUjJBr7YXhbqsdBr3pV8qpoEpCABCQwGAGFyWD8vPtZJIBHhEDUXgyRgoeDRn6Uj0e4jNfuuy/iFa9Id9FNGC/Nbbel3znKyXVU+J0MnEsuGe8TvF4CEpCABOoEFCZ+JoonQEn4rbduiYKxJozngu6+dPbtt5ZJHp+CbdRFwV796tQnh+DZ/Pudd7ZmQnDreEvUFw/eCUpAAhKYAQQUJjMAuo/sjQBZLhRVo2Bar7bUUiP70fR6b6fryJ555pkIUpF33jniiCPSVXhS7r23dQdHRdXib4M803slIAEJNJmAwqTJu1/g2mnGR+BqtyJpHM1Qa+QnPxlZh2T69Ii9956YxRFLQlwJmTnHHhtBpg5GrZRq/RM6AecOyBPzZEeRgAQk0EwCCpNm7ntxq6ZbMCXcq3EbnSaJp4JaIO98Z+o4TDpvFgv5eprlPfFECnod1CiORpVX7NJLIzbcMP0fD8rf/tYaXWEyKGnvl4AEJJAIKEz8JMwwAsRw0C+GrsEEmo5llIVHgFDkbNZZ26+k4mo9voOaJqQFD2rrrx9xxRVplGuuSWnGWL1T8Pnnp4qwmgQkIAEJDEZAYTIYP+8eJwEKo117bfI+nHdeq5z8aMMsv3xqqkfw6WhGECrX5RojXEe9EoqqUcJ+ENt++4jPfS6NcOGFEe9+d2u0nXZKpebxqvSaLTTIXLxXAhKQQBMIKEyasMsFrJE+N3gVSN3lmKWbkVFD+i0pv70Y4594YsSuu7auJmWYFGNiTvq1ww9PDfkwOg5TcC0LIMrVL7ZYvyN7nwQkIAEJdCKgMPFzMekE8FzQkff227s/av75k7igbsicc3a/vn4F3pXddougPw1GkCxZNf0aXpLNNkt377tvOtahCixGsCuxJZoEJCABCUwcAYXJxLF0pBoBslkoFU9p914M8fKJTwwetHrddSk4luDUhRceWZa+l7nka6jmmo+R6Knzr39FXHZZepf04RNOGM9oXisBCUhAAt0IKEy6EfL9vggQKEo11GrcR6eBFl00pQZvsEHEggv29aiONz3wQMRXvpIyeAYZl/nPNVfE009HLLNMKlGfhRZBuI88kjJ0NAlIQAISmBgCCpOJ4egoFQIUGvvAB8Y+QiHtdpddIlZdNfW4KdmWXTYFuXIsRJ+eAw5ozfaee1pl60teg3OTgAQkMCwEFCbDslNDMk9iO+aeO3kY6oaHgZTavfZK3odhMbwuZBBhV18dMW1aauBH+nLO2BmWtThPCUhAAqUTUJiUvkNDOD+KoOW6JIiU1VePWGWV1MNmgQWGb0FHHtmqJHvWWalvjyYBCUhAApNDQGEyOVwbPerDD0dQW2TeeVONj2G3r361lX1DPAzHOZoEJCABCUwOAYXJ5HB11ClEgO7GNAfE8JbgNdEkIAEJSGByCChMJoero04hAsTNzDNPxFNPRay8csQNN0yhxbkUCUhAAoURUJgUtiFOp0wClLa/994IapmQhqxJQAISkMDkEFCYTA5XR51iBB56KFV9JYDXuiVTbHNdjgQkUBQBhUlR2+FkJCABCUhAAs0moDBp9v67eglIQAISkEBRBBQmRW2Hk5GABCQgAQk0m4DCpNn77+olIAEJSEACRRFQmBS1HU5GAhKQgAQk0GwCCpNm77+rl4AEJCABCRRFQGFS1HY4GQlIQAISkECzCShMmr3/rl4CEpCABCRQFAGFSVHb4WQkIAEJSEACzSagMGn2/rt6CUhAAhKQQFEEFCZFbYeTkYAEJCABCTSbgMKk2fvv6iUgAQlIQAJFEVCYFLUdTkYCEpCABCTQbAIKk2bvv6uXgAQkIAEJFEVAYVLUdjgZCUhAAhKQQLMJKEyavf+uXgISkIAEJFAUAYVJUdvhZCQgAQlIQALNJqAwafb+u3oJSEACEpBAUQQUJkVth5ORgAQkIAEJNJuAwqTZ++/qJSABCUhAAkURUJgUtR1ORgISkIAEJNBsAgqTZu+/q5eABCQgAQkURUBhUtR2OBkJSEACEpBAswkoTJq9/65eAhKQgAQkUBQBhUlR2+FkJCABCUhAAs0moDBp9v67eglIQAISkEBRBBQmRW2Hk5GABCQgAQk0m4DCpNn77+olIAEJSEACRRFQmBS1HU5GAhKQgAQk0GwCCpNm77+rl4AEJCABCRRFQGFS1HY4GQlIQAISkECzCShMmr3/rl4CEpCABCRQFAGFSVHb4WQkIAEJSEACzSbwv8VG6MZvHMR0AAAAAElFTkSuQmCC',NULL,'ACTIVE',1,'2026-03-23 01:33:47','2026-03-23 01:55:14'); +/*!40000 ALTER TABLE `hr_person` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_user_assignment_history` +-- + +DROP TABLE IF EXISTS `hr_user_assignment_history`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_user_assignment_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `person_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `action` enum('ASSIGN','UNASSIGN') NOT NULL, + `happened_at` timestamp NOT NULL DEFAULT current_timestamp(), + `actor_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_uah_person` (`person_id`,`happened_at`), + KEY `idx_uah_user` (`user_id`,`happened_at`), + KEY `fk_uah_actor` (`actor_id`), + CONSTRAINT `fk_uah_actor` FOREIGN KEY (`actor_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `fk_uah_person` FOREIGN KEY (`person_id`) REFERENCES `hr_person` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_uah_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_user_assignment_history` +-- + +LOCK TABLES `hr_user_assignment_history` WRITE; +/*!40000 ALTER TABLE `hr_user_assignment_history` DISABLE KEYS */; +INSERT INTO `hr_user_assignment_history` VALUES +(1,1,1,'ASSIGN','2026-03-17 05:48:46',NULL), +(2,2,26,'ASSIGN','2026-03-23 01:03:08',NULL), +(3,1,1,'UNASSIGN','2026-03-23 01:33:53',NULL), +(4,9,1,'ASSIGN','2026-03-23 01:34:00',NULL); +/*!40000 ALTER TABLE `hr_user_assignment_history` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_items` +-- + +DROP TABLE IF EXISTS `inventory_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_items` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `type` enum('vehículo','herramienta','consumible') NOT NULL, + `description` text DEFAULT NULL, + `serial_number` varchar(50) DEFAULT NULL, + `stock` int(11) NOT NULL DEFAULT 0, + `storage_location` varchar(120) DEFAULT NULL, + `image_url` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_inventory_items_storage_location` (`storage_location`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_items` +-- + +LOCK TABLES `inventory_items` WRITE; +/*!40000 ALTER TABLE `inventory_items` DISABLE KEYS */; +INSERT INTO `inventory_items` VALUES +(1,'TALADRO','herramienta','TALADRO TRUPER SEMINUEVO','21412421',1,'GABETA 1','/uploads/Inventory/image-1774023018294-575233736.jpg','2026-03-20 16:10:18','2026-03-20 10:10:34'), +(2,'TOYOTA COROLLA','vehículo','CARRO SEMINUEVO','43248',0,'LOTE 4','/uploads/Inventory/image-1774023393903-870974513.jpeg','2026-03-20 16:16:33','2026-03-20 10:19:41'); +/*!40000 ALTER TABLE `inventory_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_movement_signatures` +-- + +DROP TABLE IF EXISTS `inventory_movement_signatures`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_movement_signatures` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `movement_id` int(11) NOT NULL, + `signed_by` int(11) DEFAULT NULL, + `signature_url` text NOT NULL, + `signed_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_movement_signature` (`movement_id`), + CONSTRAINT `inventory_movement_signatures_ibfk_1` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_movement_signatures` +-- + +LOCK TABLES `inventory_movement_signatures` WRITE; +/*!40000 ALTER TABLE `inventory_movement_signatures` DISABLE KEYS */; +INSERT INTO `inventory_movement_signatures` VALUES +(1,1,1,'/uploads/signatures/f8f6247e-c6b6-4f67-b80d-bc80acec51fd.png','2026-03-20 10:10:37'), +(2,2,1,'/uploads/signatures/5df5ff45-daaa-4e85-9445-8ce6c8920413.png','2026-03-20 10:21:56'); +/*!40000 ALTER TABLE `inventory_movement_signatures` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_movements` +-- + +DROP TABLE IF EXISTS `inventory_movements`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_movements` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` int(11) NOT NULL, + `type` enum('entrada','salida','devolución') NOT NULL, + `quantity` int(11) NOT NULL, + `engineer_id` int(11) DEFAULT NULL, + `reason` text DEFAULT NULL, + `contract_ref` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `status` enum('activo','cancelado') NOT NULL DEFAULT 'activo', + `canceled_at` datetime DEFAULT NULL, + `canceled_by` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `item_id` (`item_id`), + KEY `engineer_id` (`engineer_id`), + KEY `fk_inventory_movements_canceled_by` (`canceled_by`), + KEY `idx_inventory_movements_contract_ref` (`contract_ref`), + CONSTRAINT `fk_inventory_movements_canceled_by` FOREIGN KEY (`canceled_by`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `inventory_movements_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `inventory_items` (`id`), + CONSTRAINT `inventory_movements_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_movements` +-- + +LOCK TABLES `inventory_movements` WRITE; +/*!40000 ALTER TABLE `inventory_movements` DISABLE KEYS */; +INSERT INTO `inventory_movements` VALUES +(1,1,'salida',1,26,'Asignación de herramienta','CONT-260317-001','2026-03-20 16:10:34','activo',NULL,NULL), +(2,2,'salida',1,26,'Asignación de vehículo','CONT-260317-001','2026-03-20 16:19:41','activo',NULL,NULL); +/*!40000 ALTER TABLE `inventory_movements` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `little_box` +-- + +DROP TABLE IF EXISTS `little_box`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `little_box` ( + `petty_cash_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_user_id` int(11) NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `create_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`petty_cash_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `little_box_ibfk_1` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `little_box` +-- + +LOCK TABLES `little_box` WRITE; +/*!40000 ALTER TABLE `little_box` DISABLE KEYS */; +/*!40000 ALTER TABLE `little_box` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `quote` +-- + +DROP TABLE IF EXISTS `quote`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `quote` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `quote_date` date NOT NULL, + `location` varchar(100) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `entity` varchar(200) DEFAULT NULL, + `sender` varchar(150) DEFAULT NULL, + `department` varchar(200) DEFAULT NULL, + `equipment` text DEFAULT NULL, + `terms_and_conditions` text DEFAULT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_quote_date` (`quote_date`), + KEY `idx_location` (`location`), + KEY `idx_entity` (`entity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `quote` +-- + +LOCK TABLES `quote` WRITE; +/*!40000 ALTER TABLE `quote` DISABLE KEYS */; +/*!40000 ALTER TABLE `quote` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `roles_permissions` +-- + +DROP TABLE IF EXISTS `roles_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `roles_permissions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `role` enum('admin','engineer','technician') NOT NULL, + `permission` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `roles_permissions` +-- + +LOCK TABLES `roles_permissions` WRITE; +/*!40000 ALTER TABLE `roles_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `roles_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `service_orders` +-- + +DROP TABLE IF EXISTS `service_orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `service_orders` ( + `id_service_order` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) DEFAULT NULL, + `folio` varchar(50) DEFAULT NULL, + `fecha` date DEFAULT NULL, + `unidad_aplicativa` varchar(50) DEFAULT NULL, + `direccion` varchar(100) DEFAULT NULL, + `equipo` varchar(50) DEFAULT NULL, + `inventario` varchar(45) DEFAULT NULL, + `marca` varchar(50) DEFAULT NULL, + `serie` varchar(35) DEFAULT NULL, + `modelo` varchar(45) DEFAULT NULL, + `ubicacion` varchar(60) DEFAULT NULL, + `tipo_de_servicio` varchar(60) DEFAULT NULL, + `procedimiento` varchar(1000) DEFAULT NULL, + `foto_antes1` varchar(200) DEFAULT NULL, + `foto_antes2` varchar(200) DEFAULT NULL, + `foto_antes3` varchar(200) DEFAULT NULL, + `foto_durante1` varchar(200) DEFAULT NULL, + `foto_durante2` varchar(200) DEFAULT NULL, + `foto_durante3` varchar(200) DEFAULT NULL, + `foto_despues1` varchar(200) DEFAULT NULL, + `foto_despues2` varchar(200) DEFAULT NULL, + `foto_despues3` varchar(200) DEFAULT NULL, + `creado` date DEFAULT NULL, + `hora` varchar(15) DEFAULT NULL, + `id_ing` int(11) DEFAULT NULL, + `form_parameters` longtext DEFAULT NULL CHECK (json_valid(`form_parameters`)), + `service_order_sheet_route` text DEFAULT NULL, + `state` varchar(255) DEFAULT NULL, + `type_` varchar(255) DEFAULT NULL, + `so_param_type` varchar(255) DEFAULT NULL, + `folio_base` varchar(50) DEFAULT NULL, + `observaciones` varchar(1000) DEFAULT NULL, + PRIMARY KEY (`id_service_order`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `service_orders` +-- + +LOCK TABLES `service_orders` WRITE; +/*!40000 ALTER TABLE `service_orders` DISABLE KEYS */; +INSERT INTO `service_orders` VALUES +(1,0,'TRI-001-2026','2026-03-17','6','876','7576','56','567','5','75','765','PREVENTIVO','65',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-12','10:15:23',1,NULL,NULL,'FINALIZADO','WARRANTY_SHEET',NULL,'001-2026',NULL), +(2,0,'TRI-002-2026','2026-03-12','UNIDAD 23','AV LEONA VICARIO','CHILLER','12323','LG','456334','PLUS','PISO 2',NULL,'EL EQUIPO ESTA FALLANDO',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-12','11:25:37',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'002-2026','TODO BIEN'), +(3,0,'TRI-003-2026','2026-03-16','456','5','45','465','45','4','654','654',NULL,'5',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-16','23:31:30',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'003-2026','323'), +(4,0,'TRI-004-2026','2026-03-01','5765','765','867','7','5','6','8765','65',NULL,'76576',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-16','23:59:10',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'004-2026','576'), +(5,0,'TRI-005-2026','2026-03-17','768','678','678','678','678','67','86','768',NULL,'7',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-17','00:33:12',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'005-2026','6876'), +(6,0,'TRI-006-2026','2026-03-17','576','576','5','46','57','857','67','7',NULL,'786',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-17','00:39:51',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'006-2026','86'), +(7,0,'TRI-007-2026','2026-03-17','456','54','6547','656','46','7','7','456467',NULL,'768',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-17','00:49:06',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'007-2026','67'), +(8,1,'TRI-008-2026','2026-03-18','1981','PENDIENTE','PENDIENTE','PENDIENTE','PENDIENTE','5555555','2322223','PENDIENTE','[\"INSTALACION\"]','SE REALIZO UN PROCEDIMIENTO',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-17','22:07:11',26,'[]',NULL,'BORRADOR','SERVICE_ORDER',NULL,'008-2026','OBSERVACION 1'), +(9,0,'TRI-009-2026','2026-03-19','577','6565','4654','67','5464','646','6','46',NULL,'756',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-19','18:18:00',1,NULL,NULL,'BORRADOR','DIAGNOSTIC_SHEET',NULL,'009-2026','456'); +/*!40000 ALTER TABLE `service_orders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sessions` +-- + +DROP TABLE IF EXISTS `sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `sessions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `token` text NOT NULL, + `expiration` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + CONSTRAINT `sessions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sessions` +-- + +LOCK TABLES `sessions` WRITE; +/*!40000 ALTER TABLE `sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sp_debug_log` +-- + +DROP TABLE IF EXISTS `sp_debug_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `sp_debug_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `invoked_at` datetime DEFAULT NULL, + `action` varchar(50) DEFAULT NULL, + `p_id` int(11) DEFAULT NULL, + `p_name` varchar(100) DEFAULT NULL, + `p_stock` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sp_debug_log` +-- + +LOCK TABLES `sp_debug_log` WRITE; +/*!40000 ALTER TABLE `sp_debug_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `sp_debug_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `surveys_answers` +-- + +DROP TABLE IF EXISTS `surveys_answers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `surveys_answers` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `context_id` varchar(50) DEFAULT NULL, + `id_user` int(11) DEFAULT NULL, + `engineer_name` varchar(255) DEFAULT NULL, + `rh_name` varchar(255) DEFAULT NULL, + `snapshot_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`snapshot_json`)), + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `surveys_answers` +-- + +LOCK TABLES `surveys_answers` WRITE; +/*!40000 ALTER TABLE `surveys_answers` DISABLE KEYS */; +INSERT INTO `surveys_answers` VALUES +(1,'0',NULL,NULL,'MARIO BONOLA','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":5},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":5},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":3}]','2026-03-17 05:32:10'), +(2,'0',1,'DOMINIC JOSAFAT VALDES GASCA','ROBERTO VASQUEZ','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":5},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":4},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":3}]','2026-03-17 06:33:12'), +(3,'TRI-006-2026',1,'DOMINIC JOSAFAT VALDES GASCA','PEDRO VELEZ','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":2},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":5},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":3}]','2026-03-17 06:39:52'), +(4,'TRI-007-2026',1,'DOMINIC JOSAFAT VALDES GASCA','PABLO PEREZ','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":5},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":4},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":2}]','2026-03-17 06:49:06'), +(5,'1',1,'DOMINIC JOSAFAT VALDES GASCA','Cliente','[{\"question\":\"DESEMPEÑO INGENIERO\",\"levels\":5,\"answer\":5},{\"question\":\"LIMPIEZA DEL AREA\",\"levels\":5,\"answer\":2},{\"question\":\"tiempo de ejecucion\",\"levels\":3,\"answer\":2}]','2026-03-17 07:05:35'); +/*!40000 ALTER TABLE `surveys_answers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `surveys_questions` +-- + +DROP TABLE IF EXISTS `surveys_questions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `surveys_questions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `question` varchar(255) DEFAULT NULL, + `levels` int(11) DEFAULT 5, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `surveys_questions` +-- + +LOCK TABLES `surveys_questions` WRITE; +/*!40000 ALTER TABLE `surveys_questions` DISABLE KEYS */; +INSERT INTO `surveys_questions` VALUES +(1,'PUNTUALIDAD DEL TECNICO',5,'2026-03-24 18:40:31'), +(2,'PRESENTACION E IDENTIFICACION',5,'2026-03-24 18:40:31'), +(3,'TRATO Y ACTITUD',3,'2026-03-24 18:40:31'), +(4,'CONOCIMIENTO TECNICO',5,'2026-03-24 18:40:31'), +(5,'CLARIDAD AL EXPLICAR EL TRABAJO',5,'2026-03-24 18:40:31'), +(6,'ORDEN Y LIMPIEZA',5,'2026-03-24 18:40:31'), +(7,'TIEMPO DE EJECUCION',5,'2026-03-24 18:40:31'), +(8,'FUNCIONAMIENTO POSTERIOR DEL EQUIPO',5,'2026-03-24 18:40:31'), +(9,'TIEMPO DE RESPUESTA',5,'2026-03-24 18:40:31'), +(10,'¿EL TECNICO RESOLVIO COMPLETAMENTE LA SITUACION REPORTADA?',3,'2026-03-24 18:40:31'), +(11,'EN GENERAL, NIVEL DE SATISFACCION',5,'2026-03-24 18:40:31'); +/*!40000 ALTER TABLE `surveys_questions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `termsFinance` +-- + +DROP TABLE IF EXISTS `termsFinance`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `termsFinance` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `term` text NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `termsFinance` +-- + +LOCK TABLES `termsFinance` WRITE; +/*!40000 ALTER TABLE `termsFinance` DISABLE KEYS */; +/*!40000 ALTER TABLE `termsFinance` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `email` varchar(100) NOT NULL, + `profile_picture` varchar(255) DEFAULT NULL, + `password` varchar(255) NOT NULL, + `role` enum('admin','engineer','technician') NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `status` enum('active','inactive') NOT NULL DEFAULT 'active', + `created_by` int(11) DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `updated_by` int(11) DEFAULT NULL, + `last_login` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `email` (`email`), + UNIQUE KEY `unique_email` (`email`) +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES +(1,'Admin','alsanchezbeltran@gmail.com','/uploads/profilePicture-1772602718872-500676084.png','$2b$10$uXLDSJ3UwZKEjZc93w0tCeDKUo834aZ03mARR.IrSGqQLaOHI0KoG','admin','2025-07-30 04:05:21','active',NULL,'2026-03-24 18:35:48',1,'2026-03-24 12:35:48'), +(26,'INGENIERO1','ingeniero1@trimape.com',NULL,'$2b$10$WHEn0eQsBTpxWWAMBHeH1OSEKHPwx78R6c/wZ0PmDSA7sHae2kFAC','engineer','2026-01-08 10:57:58','active',1,'2026-03-20 00:07:08',1,'2026-03-19 18:07:08'), +(27,'ADMIN2','admin2@trimape.com',NULL,'$2b$10$yn3fcLmvdCvRdvNZNfcop.PsC22ev/sUp0naNL3lhNHcNHnXM3MHW','admin','2026-02-04 22:40:24','active',1,'2026-02-17 00:28:51',NULL,'2026-02-16 18:28:51'), +(28,'ADMIN3','admin3@trimape.com',NULL,'$2b$10$2/.4gSrvmlKq1Vg/9541u.qOw1KtWaOi/ZhIDhgqDXqebUY8CwAbm','admin','2026-02-16 23:03:44','active',1,'2026-02-16 23:03:44',NULL,NULL); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `v_user_person` +-- + +DROP TABLE IF EXISTS `v_user_person`; +/*!50001 DROP VIEW IF EXISTS `v_user_person`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `v_user_person` AS SELECT + 1 AS `user_id`, + 1 AS `hr_person_id`, + 1 AS `person_full_name`, + 1 AS `person_status`, + 1 AS `user_name_fallback` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `vehicle_movement_data` +-- + +DROP TABLE IF EXISTS `vehicle_movement_data`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_movement_data` ( + `movement_id` int(11) NOT NULL, + `inventory_item_id` int(11) NOT NULL, + `engineer_id` int(11) DEFAULT NULL, + `event_type` enum('SALIDA','DEVOLUCION') NOT NULL, + `checks_snapshot_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`checks_snapshot_json`)), + `contract_ref` varchar(100) DEFAULT NULL, + `time_out` time DEFAULT NULL, + `time_in` time DEFAULT NULL, + `observations` text DEFAULT NULL, + `route_summary` text DEFAULT NULL, + `created_by` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `authorized_drivers_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + PRIMARY KEY (`movement_id`), + KEY `idx_vmd_item` (`inventory_item_id`), + KEY `idx_vmd_engineer` (`engineer_id`), + KEY `idx_vmd_event` (`event_type`,`created_at`), + KEY `fk_vmd_created_by` (`created_by`), + CONSTRAINT `fk_vmd_created_by` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_vmd_engineer` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_vmd_item` FOREIGN KEY (`inventory_item_id`) REFERENCES `inventory_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vmd_movement` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) ON DELETE CASCADE, + CONSTRAINT `authorized_drivers_json_chk` CHECK (`authorized_drivers_json` is null or json_valid(`authorized_drivers_json`)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_movement_data` +-- + +LOCK TABLES `vehicle_movement_data` WRITE; +/*!40000 ALTER TABLE `vehicle_movement_data` DISABLE KEYS */; +INSERT INTO `vehicle_movement_data` VALUES +(2,2,26,'SALIDA','{\"P01_UNIDAD_LUCES\":true,\"P02_4_LUCES\":false,\"P03_ANTENA\":false,\"P04_ESPEJO_LATERAL_DERECHO\":false,\"P05_ESPEJO_LATERAL_IZQUIERDO\":false,\"P06_TAPONES_LLANTAS\":false,\"P07_DEFENSA_TRASERA\":false,\"P08_DEFENSA_DELANTERA\":true,\"P09_4_LLANTAS\":false,\"P10_MOLDURAS_COMPLETAS\":false,\"P11_TAPON_GASOLINA\":false,\"P12_GOLPES\":false,\"P13_BOCINAS_CLAXON\":false,\"P14_LODERAS\":false,\"P15_VINILES_ROTULACION\":false,\"P16_LLANTA_REFACCION\":false,\"P17_ESCAPE\":true,\"P18_PUERTA_BATEA\":false,\"P19_BOLA_REMOLQUE\":false,\"P20_GOLPES_CARROCERIA\":false,\"P21_RAYONES_CARROCERIA\":false,\"P22_BOLAS_EN_LLANTAS\":false,\"P23_SEGURO_COFRE\":true,\"P24_PLACA_TRASERA\":false,\"P25_PLACA_DELANTERA\":false,\"P26_NO_APLICA\":false,\"P27_GATO\":false,\"P28_MANERAL_GATO\":false,\"P29_LLAVE_RUEDAS\":true,\"P30_ESTUCHE_HERRAMIENTA\":false,\"P31_TRIANGULO\":false,\"P32_EXTINGUIDOR\":false,\"P33_VESTIDURAS\":false,\"P34_ESPEJO_RETROVISOR\":false,\"P35_CINTURONES\":false,\"P36_PALANCA\":false,\"P37_ESTEREO\":false,\"P38_CONSOLA_AC\":false,\"P39_LLANTA_REFACCION\":false,\"DOC_CIRCULACION\":true,\"DOC_SEGURO\":true,\"DOC_VERIFICACION\":true}','CONT-260317-001','10:19:00',NULL,'SE ENCUENTRA EN BUEN ESTADO',NULL,1,'2026-03-20 16:21:51','2026-03-20 16:21:51','[{\"name\":\"DOMINIC VALDES\",\"license\":\"324734798\"}]'); +/*!40000 ALTER TABLE `vehicle_movement_data` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicle_movement_photos` +-- + +DROP TABLE IF EXISTS `vehicle_movement_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_movement_photos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `movement_id` int(11) NOT NULL, + `slot` enum('TABLERO_SALIDA','TABLERO_REGRESO','LADO_PASAJERO','LADO_CONDUCTOR','EXTRA_1','EXTRA_2','EXTRA_3','EXTRA_4') NOT NULL, + `url` varchar(255) NOT NULL, + `uploaded_by` int(11) DEFAULT NULL, + `uploaded_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_vehicle_photo_slot` (`movement_id`,`slot`), + KEY `idx_vehicle_photo_movement` (`movement_id`), + KEY `fk_vmp_uploaded_by` (`uploaded_by`), + CONSTRAINT `fk_vmp_movement` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vmp_uploaded_by` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_movement_photos` +-- + +LOCK TABLES `vehicle_movement_photos` WRITE; +/*!40000 ALTER TABLE `vehicle_movement_photos` DISABLE KEYS */; +INSERT INTO `vehicle_movement_photos` VALUES +(1,2,'TABLERO_SALIDA','/uploads/VehicleLogs/2/TABLERO_SALIDA-1774023712578-0n13x6.jpg',1,'2026-03-20 16:21:52'), +(2,2,'LADO_PASAJERO','/uploads/VehicleLogs/2/LADO_PASAJERO-1774023712590-3ckx7u.png',1,'2026-03-20 16:21:52'), +(3,2,'LADO_CONDUCTOR','/uploads/VehicleLogs/2/LADO_CONDUCTOR-1774023712593-wj7akj.jpeg',1,'2026-03-20 16:21:52'), +(4,2,'EXTRA_1','/uploads/VehicleLogs/2/EXTRA_1-1774023712596-adhm31.jpg',1,'2026-03-20 16:21:52'), +(5,2,'EXTRA_2','/uploads/VehicleLogs/2/EXTRA_2-1774023712597-nc2prr.jpg',1,'2026-03-20 16:21:52'); +/*!40000 ALTER TABLE `vehicle_movement_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicle_state` +-- + +DROP TABLE IF EXISTS `vehicle_state`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_state` ( + `inventory_item_id` int(11) NOT NULL, + `unit_number` varchar(50) DEFAULT NULL, + `plates` varchar(20) DEFAULT NULL, + `checks_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`checks_json`)), + `notes` text DEFAULT NULL, + `updated_by` int(11) DEFAULT NULL, + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`inventory_item_id`), + KEY `fk_vehicle_state_updated_by` (`updated_by`), + CONSTRAINT `fk_vehicle_state_item` FOREIGN KEY (`inventory_item_id`) REFERENCES `inventory_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vehicle_state_updated_by` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_state` +-- + +LOCK TABLES `vehicle_state` WRITE; +/*!40000 ALTER TABLE `vehicle_state` DISABLE KEYS */; +INSERT INTO `vehicle_state` VALUES +(2,'V-0002','VB23023','{\"P01_UNIDAD_LUCES\":true,\"P02_4_LUCES\":false,\"P03_ANTENA\":false,\"P04_ESPEJO_LATERAL_DERECHO\":false,\"P05_ESPEJO_LATERAL_IZQUIERDO\":false,\"P06_TAPONES_LLANTAS\":false,\"P07_DEFENSA_TRASERA\":false,\"P08_DEFENSA_DELANTERA\":true,\"P09_4_LLANTAS\":false,\"P10_MOLDURAS_COMPLETAS\":false,\"P11_TAPON_GASOLINA\":false,\"P12_GOLPES\":false,\"P13_BOCINAS_CLAXON\":false,\"P14_LODERAS\":false,\"P15_VINILES_ROTULACION\":false,\"P16_LLANTA_REFACCION\":false,\"P17_ESCAPE\":true,\"P18_PUERTA_BATEA\":false,\"P19_BOLA_REMOLQUE\":false,\"P20_GOLPES_CARROCERIA\":false,\"P21_RAYONES_CARROCERIA\":false,\"P22_BOLAS_EN_LLANTAS\":false,\"P23_SEGURO_COFRE\":true,\"P24_PLACA_TRASERA\":false,\"P25_PLACA_DELANTERA\":false,\"P26_NO_APLICA\":false,\"P27_GATO\":false,\"P28_MANERAL_GATO\":false,\"P29_LLAVE_RUEDAS\":true,\"P30_ESTUCHE_HERRAMIENTA\":false,\"P31_TRIANGULO\":false,\"P32_EXTINGUIDOR\":false,\"P33_VESTIDURAS\":false,\"P34_ESPEJO_RETROVISOR\":false,\"P35_CINTURONES\":false,\"P36_PALANCA\":false,\"P37_ESTEREO\":false,\"P38_CONSOLA_AC\":false,\"P39_LLANTA_REFACCION\":false,\"DOC_CIRCULACION\":true,\"DOC_SEGURO\":true,\"DOC_VERIFICACION\":true}','SE ENCUENTRA EN BUEN ESTADO',1,'2026-03-20 16:21:51'); +/*!40000 ALTER TABLE `vehicle_state` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicles` +-- + +DROP TABLE IF EXISTS `vehicles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type` varchar(50) NOT NULL, + `license_plate` varchar(20) NOT NULL, + `status` enum('available','assigned','maintenance') DEFAULT 'available', + `current_mileage` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicles` +-- + +LOCK TABLES `vehicles` WRITE; +/*!40000 ALTER TABLE `vehicles` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vouchers` +-- + +DROP TABLE IF EXISTS `vouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vouchers` ( + `voucher_id` int(11) NOT NULL AUTO_INCREMENT, + `fund_transaction_id` int(11) NOT NULL, + `file_path` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `date_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`voucher_id`), + KEY `fund_transaction_id` (`fund_transaction_id`), + CONSTRAINT `vouchers_ibfk_1` FOREIGN KEY (`fund_transaction_id`) REFERENCES `fund_transactions` (`transaction_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vouchers` +-- + +LOCK TABLES `vouchers` WRITE; +/*!40000 ALTER TABLE `vouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `vouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Final view structure for view `v_user_person` +-- + +/*!50001 DROP VIEW IF EXISTS `v_user_person`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`trimape_admin`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `v_user_person` AS with last_action as (select `h`.`user_id` AS `user_id`,`h`.`person_id` AS `person_id`,`h`.`action` AS `action`,`h`.`happened_at` AS `happened_at` from (`hr_user_assignment_history` `h` join (select `hr_user_assignment_history`.`user_id` AS `user_id`,max(`hr_user_assignment_history`.`happened_at`) AS `max_ts` from `hr_user_assignment_history` group by `hr_user_assignment_history`.`user_id`) `m` on(`m`.`user_id` = `h`.`user_id` and `m`.`max_ts` = `h`.`happened_at`)))select `u`.`id` AS `user_id`,coalesce(`hp_direct`.`id`,case when `la`.`action` = 'ASSIGN' then `hp_hist`.`id` end) AS `hr_person_id`,coalesce(`format_person_name`(`hp_direct`.`first_name`,`hp_direct`.`last_name`),case when `la`.`action` = 'ASSIGN' then `format_person_name`(`hp_hist`.`first_name`,`hp_hist`.`last_name`) end) AS `person_full_name`,coalesce(`hp_direct`.`status`,`hp_hist`.`status`) AS `person_status`,`u`.`name` AS `user_name_fallback` from (((`users` `u` left join `hr_person` `hp_direct` on(`hp_direct`.`user_id` = `u`.`id`)) left join `last_action` `la` on(`la`.`user_id` = `u`.`id`)) left join `hr_person` `hp_hist` on(`hp_hist`.`id` = `la`.`person_id`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-03-24 12:58:31 diff --git a/db_backups/trimape_db_backup_after_surveys_schema.sql b/db_backups/trimape_db_backup_after_surveys_schema.sql new file mode 100644 index 0000000..50f057b --- /dev/null +++ b/db_backups/trimape_db_backup_after_surveys_schema.sql @@ -0,0 +1,1741 @@ +/*M!999999\- enable the sandbox mode */ +-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: trimape_db +-- ------------------------------------------------------ +-- Server version 10.11.14-MariaDB-0ubuntu0.24.04.1 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Sequence structure for `folio_seq` +-- + +DROP SEQUENCE IF EXISTS `folio_seq`; +CREATE SEQUENCE `folio_seq` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 nocache nocycle ENGINE=InnoDB; +DO SETVAL(`folio_seq`, 10, 0); + +-- +-- Table structure for table `OSFirmas` +-- + +DROP TABLE IF EXISTS `OSFirmas`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OSFirmas` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `firma_ruta` text DEFAULT NULL, + `nombre_responsable` varchar(255) DEFAULT NULL, + `puesto` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `id_service_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OSFirmas` +-- + +LOCK TABLES `OSFirmas` WRITE; +/*!40000 ALTER TABLE `OSFirmas` DISABLE KEYS */; +INSERT INTO `OSFirmas` VALUES +(1,'uploads/signatures/signature_0_1773336337465.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-12 17:25:37',2), +(2,'uploads/signatures/signature_1_1773336337466.png','JUAN LOPEZ','RESPONSABLE DE ÁREA','2026-03-12 17:25:37',2), +(7,'uploads/signatures/signature_0_1773337756296.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-12 17:50:46',1), +(8,'uploads/signatures/signature_1_1773337756296.png','PEDRO PEREZ','RESPONSABLE DE ÁREA','2026-03-12 17:50:46',1); +/*!40000 ALTER TABLE `OSFirmas` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OSrefacciones` +-- + +DROP TABLE IF EXISTS `OSrefacciones`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OSrefacciones` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `OS_id` bigint(20) unsigned NOT NULL, + `codigo` varchar(255) NOT NULL, + `descripcion` text DEFAULT NULL, + `cantidad` int(11) NOT NULL, + `tipo` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_sheet_tipo` (`OS_id`) +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OSrefacciones` +-- + +LOCK TABLES `OSrefacciones` WRITE; +/*!40000 ALTER TABLE `OSrefacciones` DISABLE KEYS */; +INSERT INTO `OSrefacciones` VALUES +(1,2,'1','TORNILLOS',12,'DIAGNOSTIC_SHEET'), +(2,2,'2','TALADRO',3,'DIAGNOSTIC_SHEET'), +(3,2,'3','MANGUERAS',1,'DIAGNOSTIC_SHEET'), +(13,1,'65','87',56,'SERVICE_ORDER'), +(14,1,'89','676',6,'SERVICE_ORDER'), +(15,1,'877654','567',86,'SERVICE_ORDER'); +/*!40000 ALTER TABLE `OSrefacciones` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OsPhotos` +-- + +DROP TABLE IF EXISTS `OsPhotos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OsPhotos` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `OS_id` int(10) unsigned NOT NULL, + `ruta_foto` varchar(255) NOT NULL, + `tipo` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OsPhotos` +-- + +LOCK TABLES `OsPhotos` WRITE; +/*!40000 ALTER TABLE `OsPhotos` DISABLE KEYS */; +INSERT INTO `OsPhotos` VALUES +(1,2,'/uploads/photo-1773336337462-467260244.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(2,2,'/uploads/photo-1773336337463-755903050.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(3,2,'/uploads/photo-1773336337463-866035631.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(4,2,'/uploads/photo-1773336337464-551825949.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'); +/*!40000 ALTER TABLE `OsPhotos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `adminBudgets` +-- + +DROP TABLE IF EXISTS `adminBudgets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `adminBudgets` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_admin` int(10) unsigned NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `adminBudgets` +-- + +LOCK TABLES `adminBudgets` WRITE; +/*!40000 ALTER TABLE `adminBudgets` DISABLE KEYS */; +/*!40000 ALTER TABLE `adminBudgets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `adminVouchers` +-- + +DROP TABLE IF EXISTS `adminVouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `adminVouchers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `admin_expense_id` int(11) NOT NULL, + `ruta_voucher` varchar(255) NOT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `admin_expense_id` (`admin_expense_id`), + CONSTRAINT `adminVouchers_ibfk_1` FOREIGN KEY (`admin_expense_id`) REFERENCES `admin_expenses` (`expense_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `adminVouchers` +-- + +LOCK TABLES `adminVouchers` WRITE; +/*!40000 ALTER TABLE `adminVouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `adminVouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admin_expenses` +-- + +DROP TABLE IF EXISTS `admin_expenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_expenses` ( + `expense_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_user_id` int(11) NOT NULL, + `concepto` varchar(100) NOT NULL, + `descripcion` text DEFAULT NULL, + `monto` decimal(12,2) NOT NULL, + `ruta_voucher` text DEFAULT NULL, + `fecha` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`expense_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `admin_expenses_ibfk_1` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_expenses` +-- + +LOCK TABLES `admin_expenses` WRITE; +/*!40000 ALTER TABLE `admin_expenses` DISABLE KEYS */; +/*!40000 ALTER TABLE `admin_expenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `budgetVouchers` +-- + +DROP TABLE IF EXISTS `budgetVouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `budgetVouchers` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `budget_id` int(10) unsigned DEFAULT NULL, + `file_path` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `budgetVouchers` +-- + +LOCK TABLES `budgetVouchers` WRITE; +/*!40000 ALTER TABLE `budgetVouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `budgetVouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `check_ins` +-- + +DROP TABLE IF EXISTS `check_ins`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `check_ins` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `service_order_id` int(11) DEFAULT NULL, + `contract_id` int(11) DEFAULT NULL, + `timestamp` timestamp NOT NULL DEFAULT current_timestamp(), + `check_out_at` datetime DEFAULT NULL, + `latitude` decimal(10,8) DEFAULT NULL, + `longitude` decimal(11,8) DEFAULT NULL, + `photo` text NOT NULL, + `check_out_lat` decimal(10,8) DEFAULT NULL, + `check_out_lng` decimal(11,8) DEFAULT NULL, + `check_out_photo` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + KEY `ix_checkins_user_date` (`user_id`,`timestamp`), + KEY `ix_checkins_date` (`timestamp`), + CONSTRAINT `check_ins_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, + CONSTRAINT `check_ins_ibfk_2` FOREIGN KEY (`service_order_id`) REFERENCES `service_orders` (`id_service_order`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `check_ins` +-- + +LOCK TABLES `check_ins` WRITE; +/*!40000 ALTER TABLE `check_ins` DISABLE KEYS */; +/*!40000 ALTER TABLE `check_ins` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `clients` +-- + +DROP TABLE IF EXISTS `clients`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `clients` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `rfc` varchar(20) DEFAULT NULL, + `email` varchar(100) DEFAULT NULL, + `phone` varchar(15) DEFAULT NULL, + `address` text DEFAULT NULL, + `company` varchar(100) DEFAULT NULL, + `unit_key` varchar(10) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `clients` +-- + +LOCK TABLES `clients` WRITE; +/*!40000 ALTER TABLE `clients` DISABLE KEYS */; +/*!40000 ALTER TABLE `clients` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `concepts` +-- + +DROP TABLE IF EXISTS `concepts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `concepts` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `quote_id` bigint(20) unsigned NOT NULL, + `concept` varchar(255) NOT NULL, + `quantity` decimal(12,2) NOT NULL DEFAULT 0.00, + `unit_price` decimal(12,2) NOT NULL DEFAULT 0.00, + `tax_rate` decimal(5,4) NOT NULL DEFAULT 0.1600, + `subtotal` decimal(14,2) GENERATED ALWAYS AS (`quantity` * `unit_price`) STORED, + `iva` decimal(14,2) GENERATED ALWAYS AS (round(`quantity` * `unit_price` * `tax_rate`,2)) STORED, + `total` decimal(14,2) GENERATED ALWAYS AS (round(`quantity` * `unit_price` + `quantity` * `unit_price` * `tax_rate`,2)) STORED, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_concepts_quote_id` (`quote_id`), + CONSTRAINT `fk_concepts_quote` FOREIGN KEY (`quote_id`) REFERENCES `quote` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `CONSTRAINT_1` CHECK (`quantity` >= 0), + CONSTRAINT `CONSTRAINT_2` CHECK (`unit_price` >= 0), + CONSTRAINT `CONSTRAINT_3` CHECK (`tax_rate` >= 0 and `tax_rate` <= 1) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `concepts` +-- + +LOCK TABLES `concepts` WRITE; +/*!40000 ALTER TABLE `concepts` DISABLE KEYS */; +/*!40000 ALTER TABLE `concepts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_assignees` +-- + +DROP TABLE IF EXISTS `contract_assignees`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_assignees` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `role` varchar(50) DEFAULT NULL, + `is_primary` tinyint(1) NOT NULL DEFAULT 0, + `assigned_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_contract_user` (`contract_id`,`user_id`), + KEY `idx_contract` (`contract_id`), + KEY `idx_user` (`user_id`), + KEY `idx_ca_user_contract` (`user_id`,`contract_id`), + KEY `idx_ca_contract_user` (`contract_id`,`user_id`), + CONSTRAINT `fk_ca_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_ca_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_assignees` +-- + +LOCK TABLES `contract_assignees` WRITE; +/*!40000 ALTER TABLE `contract_assignees` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_assignees` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_document_types` +-- + +DROP TABLE IF EXISTS `contract_document_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_document_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(50) NOT NULL, + `name` varchar(150) NOT NULL, + `allows_multiple` tinyint(1) NOT NULL DEFAULT 0, + `is_system` tinyint(1) NOT NULL DEFAULT 0, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_cdt_code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_document_types` +-- + +LOCK TABLES `contract_document_types` WRITE; +/*!40000 ALTER TABLE `contract_document_types` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_document_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_documents` +-- + +DROP TABLE IF EXISTS `contract_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_documents` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `document_type_id` int(10) unsigned DEFAULT NULL, + `file_name` varchar(255) NOT NULL, + `file_path` varchar(500) NOT NULL, + `uploaded_by` int(11) NOT NULL, + `uploaded_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_contract` (`contract_id`), + KEY `fk_cdocs_user` (`uploaded_by`), + KEY `fk_cdocs_type` (`document_type_id`), + KEY `idx_cdocs_round` (`contract_round_id`), + CONSTRAINT `fk_cdocs_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cdocs_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_cdocs_type` FOREIGN KEY (`document_type_id`) REFERENCES `contract_document_types` (`id`), + CONSTRAINT `fk_cdocs_user` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_documents` +-- + +LOCK TABLES `contract_documents` WRITE; +/*!40000 ALTER TABLE `contract_documents` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_required_documents` +-- + +DROP TABLE IF EXISTS `contract_required_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_required_documents` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `document_type_id` int(10) unsigned NOT NULL, + `is_required` tinyint(1) NOT NULL DEFAULT 0, + `sort_order` int(11) DEFAULT 1, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_crd_type` (`document_type_id`) USING BTREE, + KEY `idx_crd_round` (`contract_round_id`) USING BTREE, + CONSTRAINT `fk_crd_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_crd_type` FOREIGN KEY (`document_type_id`) REFERENCES `contract_document_types` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_required_documents` +-- + +LOCK TABLES `contract_required_documents` WRITE; +/*!40000 ALTER TABLE `contract_required_documents` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_required_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_rounds` +-- + +DROP TABLE IF EXISTS `contract_rounds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_rounds` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `name` varchar(100) NOT NULL, + `sort_order` int(11) NOT NULL DEFAULT 1, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_cr_contract` (`contract_id`), + CONSTRAINT `fk_cr_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_rounds` +-- + +LOCK TABLES `contract_rounds` WRITE; +/*!40000 ALTER TABLE `contract_rounds` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_rounds` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_transfers` +-- + +DROP TABLE IF EXISTS `contract_transfers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_transfers` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `from_user_id` int(11) DEFAULT NULL, + `to_user_id` int(11) NOT NULL, + `reason` varchar(300) DEFAULT NULL, + `transferred_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_ct_contract` (`contract_id`), + KEY `idx_ct_from` (`from_user_id`), + KEY `idx_ct_to` (`to_user_id`), + CONSTRAINT `fk_ct_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_ct_from_user_nullable_20251012` FOREIGN KEY (`from_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_ct_to_user` FOREIGN KEY (`to_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_transfers` +-- + +LOCK TABLES `contract_transfers` WRITE; +/*!40000 ALTER TABLE `contract_transfers` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_transfers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_xml_invoices` +-- + +DROP TABLE IF EXISTS `contract_xml_invoices`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_xml_invoices` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `contract_document_id` bigint(20) unsigned DEFAULT NULL, + `invoice_ref` varchar(100) DEFAULT NULL, + `uuid` char(36) DEFAULT NULL, + `amount` decimal(14,2) NOT NULL, + `amount_source` enum('xml','manual') NOT NULL DEFAULT 'xml', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_cxi_uuid` (`uuid`), + KEY `idx_cxi_contract` (`contract_id`), + KEY `idx_cxi_round` (`contract_round_id`), + KEY `idx_cxi_doc` (`contract_document_id`), + CONSTRAINT `fk_cxi_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cxi_document` FOREIGN KEY (`contract_document_id`) REFERENCES `contract_documents` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cxi_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_xml_invoices` +-- + +LOCK TABLES `contract_xml_invoices` WRITE; +/*!40000 ALTER TABLE `contract_xml_invoices` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_xml_invoices` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contracts` +-- + +DROP TABLE IF EXISTS `contracts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contracts` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `client_id` int(11) DEFAULT NULL, + `created_by` int(11) DEFAULT NULL, + `owner_user_id` int(11) DEFAULT NULL, + `folio` varchar(50) NOT NULL, + `dependency_contract_number` varchar(100) DEFAULT NULL, + `place` varchar(150) DEFAULT NULL, + `delegation` varchar(120) DEFAULT NULL, + `municipality` varchar(120) DEFAULT NULL, + `name` varchar(100) NOT NULL, + `description` text DEFAULT NULL, + `total_amount` decimal(14,2) NOT NULL DEFAULT 0.00, + `start_date` date DEFAULT NULL, + `end_date` date DEFAULT NULL, + `status` enum('Borrador','Firmado','Activo','Finalizado','Cancelado') DEFAULT 'Borrador', + `finalized_at` datetime DEFAULT NULL, + `document_path` varchar(255) DEFAULT NULL, + `signature_path` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `folio` (`folio`), + UNIQUE KEY `folio_2` (`folio`), + KEY `fk_contracts_client` (`client_id`), + KEY `fk_contracts_user` (`created_by`), + KEY `idx_contracts_owner` (`owner_user_id`), + KEY `idx_contracts_created_at` (`created_at`), + CONSTRAINT `fk_contracts_client` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_contracts_owner` FOREIGN KEY (`owner_user_id`) REFERENCES `users` (`id`), + CONSTRAINT `fk_contracts_user` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contracts` +-- + +LOCK TABLES `contracts` WRITE; +/*!40000 ALTER TABLE `contracts` DISABLE KEYS */; +/*!40000 ALTER TABLE `contracts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_report_photos` +-- + +DROP TABLE IF EXISTS `daily_report_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `daily_report_photos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `report_id` int(11) NOT NULL, + `photo_url` varchar(512) NOT NULL, + `sort_order` int(11) NOT NULL DEFAULT 1, + `caption` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_drp_report_order` (`report_id`,`sort_order`), + KEY `idx_drp_report` (`report_id`), + CONSTRAINT `fk_drp_report` FOREIGN KEY (`report_id`) REFERENCES `daily_reports` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_report_photos` +-- + +LOCK TABLES `daily_report_photos` WRITE; +/*!40000 ALTER TABLE `daily_report_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_report_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_reports` +-- + +DROP TABLE IF EXISTS `daily_reports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `daily_reports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `engineer_id` int(11) NOT NULL, + `service_order_id` int(11) DEFAULT NULL, + `report_date` date NOT NULL DEFAULT curdate(), + `unidad_aplicativa` varchar(100) DEFAULT NULL, + `direccion` varchar(255) DEFAULT NULL, + `equipo` varchar(100) DEFAULT NULL, + `inventario` varchar(50) DEFAULT NULL, + `marca` varchar(50) DEFAULT NULL, + `serie` varchar(50) DEFAULT NULL, + `modelo` varchar(50) DEFAULT NULL, + `ubicacion` varchar(100) DEFAULT NULL, + `activities` text DEFAULT NULL, + `observations` text DEFAULT NULL, + `codigo` varchar(50) DEFAULT NULL, + `descripcion` varchar(255) DEFAULT NULL, + `cantidad` int(11) DEFAULT 0, + `refacciones` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`refacciones`)), + `signature_url` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `hr_person_id` int(11) DEFAULT NULL, + `printed_person_name` varchar(205) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `service_order_id` (`service_order_id`), + KEY `idx_contract_id` (`contract_id`), + KEY `idx_engineer_id` (`engineer_id`), + KEY `idx_report_date` (`report_date`), + KEY `fk_dr_hr_person` (`hr_person_id`), + FULLTEXT KEY `idx_text_fields` (`activities`,`observations`,`equipo`,`descripcion`), + CONSTRAINT `daily_reports_ibfk_1` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `daily_reports_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, + CONSTRAINT `daily_reports_ibfk_3` FOREIGN KEY (`service_order_id`) REFERENCES `service_orders` (`id_service_order`) ON DELETE SET NULL, + CONSTRAINT `fk_dr_hr_person` FOREIGN KEY (`hr_person_id`) REFERENCES `hr_person` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_reports` +-- + +LOCK TABLES `daily_reports` WRITE; +/*!40000 ALTER TABLE `daily_reports` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_reports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `diagnostic_photos` +-- + +DROP TABLE IF EXISTS `diagnostic_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `diagnostic_photos` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `diagnostic_sheet_id` bigint(20) unsigned NOT NULL, + `photo_path` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_sheet` (`diagnostic_sheet_id`), + CONSTRAINT `fk_photo_sheet` FOREIGN KEY (`diagnostic_sheet_id`) REFERENCES `diagnostic_sheets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `diagnostic_photos` +-- + +LOCK TABLES `diagnostic_photos` WRITE; +/*!40000 ALTER TABLE `diagnostic_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `diagnostic_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `diagnostic_sheets` +-- + +DROP TABLE IF EXISTS `diagnostic_sheets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `diagnostic_sheets` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `folio` varchar(30) NOT NULL, + `fecha` date NOT NULL, + `unidad_aplicativa` varchar(255) NOT NULL, + `direccion` varchar(255) NOT NULL, + `equipo` varchar(255) NOT NULL, + `inventario` varchar(100) NOT NULL, + `marca` varchar(100) NOT NULL, + `serie` varchar(100) NOT NULL, + `modelo` varchar(100) NOT NULL, + `ubicacion` varchar(255) NOT NULL, + `diagnostico` text NOT NULL, + `id_user` int(10) unsigned NOT NULL, + `contract_id` int(10) unsigned DEFAULT NULL, + `state` varchar(50) NOT NULL DEFAULT 'BORRADOR', + `firma_ing` varchar(255) DEFAULT NULL, + `firma_responsable` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `folio` (`folio`), + KEY `idx_folio` (`folio`), + KEY `idx_fecha` (`fecha`), + KEY `idx_user` (`id_user`), + KEY `idx_contract` (`contract_id`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `diagnostic_sheets` +-- + +LOCK TABLES `diagnostic_sheets` WRITE; +/*!40000 ALTER TABLE `diagnostic_sheets` DISABLE KEYS */; +/*!40000 ALTER TABLE `diagnostic_sheets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `engineer_inventory` +-- + +DROP TABLE IF EXISTS `engineer_inventory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `engineer_inventory` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` int(11) NOT NULL, + `engineer_id` int(11) NOT NULL, + `contract_ref` varchar(100) DEFAULT NULL, + `quantity` int(11) NOT NULL DEFAULT 1, + `date_assigned` timestamp NULL DEFAULT current_timestamp(), + `expected_return` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `ux_engineer_item_contract` (`engineer_id`,`item_id`,`contract_ref`), + KEY `item_id` (`item_id`), + CONSTRAINT `engineer_inventory_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `inventory_items` (`id`), + CONSTRAINT `engineer_inventory_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `engineer_inventory` +-- + +LOCK TABLES `engineer_inventory` WRITE; +/*!40000 ALTER TABLE `engineer_inventory` DISABLE KEYS */; +/*!40000 ALTER TABLE `engineer_inventory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `expenses` +-- + +DROP TABLE IF EXISTS `expenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `expenses` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `concept` varchar(255) NOT NULL, + `amount` decimal(10,2) NOT NULL, + `date` date NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `contract_id` (`contract_id`), + CONSTRAINT `expenses_ibfk_1` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `expenses` +-- + +LOCK TABLES `expenses` WRITE; +/*!40000 ALTER TABLE `expenses` DISABLE KEYS */; +/*!40000 ALTER TABLE `expenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `finances` +-- + +DROP TABLE IF EXISTS `finances`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `finances` ( + `finance_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_expense_id` int(11) NOT NULL, + `file_path` varchar(255) DEFAULT NULL, + `date_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`finance_id`), + KEY `fund_transaction_id` (`admin_expense_id`) +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `finances` +-- + +LOCK TABLES `finances` WRITE; +/*!40000 ALTER TABLE `finances` DISABLE KEYS */; +/*!40000 ALTER TABLE `finances` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `fund_transactions` +-- + +DROP TABLE IF EXISTS `fund_transactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `fund_transactions` ( + `transaction_id` int(11) NOT NULL AUTO_INCREMENT, + `fund_id` int(11) NOT NULL, + `type_` enum('ABONO','GASTO') NOT NULL, + `amount` decimal(12,2) NOT NULL, + `crt_time` datetime DEFAULT current_timestamp(), + `description` text DEFAULT NULL, + `concept` text DEFAULT NULL, + `admin_user_id` int(11) DEFAULT NULL, + `tipo_pago` varchar(255) DEFAULT NULL, + `nombre_rh` varchar(255) DEFAULT NULL, + PRIMARY KEY (`transaction_id`), + KEY `fund_id` (`fund_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `fund_transactions_ibfk_1` FOREIGN KEY (`fund_id`) REFERENCES `funds` (`fund_id`), + CONSTRAINT `fund_transactions_ibfk_2` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `fund_transactions` +-- + +LOCK TABLES `fund_transactions` WRITE; +/*!40000 ALTER TABLE `fund_transactions` DISABLE KEYS */; +/*!40000 ALTER TABLE `fund_transactions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `funds` +-- + +DROP TABLE IF EXISTS `funds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `funds` ( + `fund_id` int(11) NOT NULL AUTO_INCREMENT, + `technician_user_id` int(11) NOT NULL, + `contract_id` int(11) NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `crt_date` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`fund_id`), + KEY `idx_funds_tech_contract` (`technician_user_id`,`contract_id`), + KEY `idx_funds_contract_tech` (`contract_id`,`technician_user_id`), + CONSTRAINT `funds_ibfk_1` FOREIGN KEY (`technician_user_id`) REFERENCES `users` (`id`), + CONSTRAINT `funds_ibfk_2` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `funds` +-- + +LOCK TABLES `funds` WRITE; +/*!40000 ALTER TABLE `funds` DISABLE KEYS */; +/*!40000 ALTER TABLE `funds` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `history_service_orders` +-- + +DROP TABLE IF EXISTS `history_service_orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `history_service_orders` ( + `id_h_so` int(11) NOT NULL AUTO_INCREMENT, + `id_ing` int(11) DEFAULT NULL, + `sealed_service_order` varchar(50) DEFAULT NULL, + `create_at` date DEFAULT curdate(), + PRIMARY KEY (`id_h_so`), + UNIQUE KEY `id_h_so` (`id_h_so`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `history_service_orders` +-- + +LOCK TABLES `history_service_orders` WRITE; +/*!40000 ALTER TABLE `history_service_orders` DISABLE KEYS */; +/*!40000 ALTER TABLE `history_service_orders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document` +-- + +DROP TABLE IF EXISTS `hr_document`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `person_id` int(11) NOT NULL, + `document_type_id` int(11) NOT NULL, + `status` enum('PENDING','RECEIVED','REJECTED','EXPIRED') NOT NULL DEFAULT 'PENDING', + `issue_date` date DEFAULT NULL, + `expiry_date` date DEFAULT NULL, + `notes` varchar(255) DEFAULT NULL, + `is_current` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `fk_hr_document_type` (`document_type_id`), + KEY `idx_hr_doc_person_type` (`person_id`,`document_type_id`,`is_current`), + KEY `idx_hr_doc_expiry` (`expiry_date`), + KEY `idx_hr_doc_person_type_iscurrent` (`person_id`,`document_type_id`,`is_current`), + KEY `idx_hr_doc_expiry_date` (`expiry_date`), + CONSTRAINT `fk_hr_document_person` FOREIGN KEY (`person_id`) REFERENCES `hr_person` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_hr_document_type` FOREIGN KEY (`document_type_id`) REFERENCES `hr_document_type` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document` +-- + +LOCK TABLES `hr_document` WRITE; +/*!40000 ALTER TABLE `hr_document` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document_file` +-- + +DROP TABLE IF EXISTS `hr_document_file`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document_file` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `document_id` int(11) NOT NULL, + `side` enum('FRONT','BACK','SINGLE','OTHER') NOT NULL DEFAULT 'SINGLE', + `file_url` varchar(255) NOT NULL, + `checksum_md5` char(32) DEFAULT NULL, + `uploaded_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_hr_document_file_doc` (`document_id`), + KEY `idx_hr_doc_file_doc` (`document_id`), + CONSTRAINT `fk_hr_document_file_doc` FOREIGN KEY (`document_id`) REFERENCES `hr_document` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document_file` +-- + +LOCK TABLES `hr_document_file` WRITE; +/*!40000 ALTER TABLE `hr_document_file` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document_file` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document_type` +-- + +DROP TABLE IF EXISTS `hr_document_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `code` varchar(40) NOT NULL, + `name` varchar(120) NOT NULL, + `requires_both_sides` tinyint(1) NOT NULL DEFAULT 0, + `allows_multiple` tinyint(1) NOT NULL DEFAULT 0, + `requires_expiry` tinyint(1) NOT NULL DEFAULT 0, + `active` tinyint(1) NOT NULL DEFAULT 1, + `sort_order` int(11) DEFAULT 9999, + PRIMARY KEY (`id`), + UNIQUE KEY `uq_hr_document_type_code` (`code`), + KEY `idx_hr_document_type_active` (`active`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document_type` +-- + +LOCK TABLES `hr_document_type` WRITE; +/*!40000 ALTER TABLE `hr_document_type` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document_type` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_person` +-- + +DROP TABLE IF EXISTS `hr_person`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_person` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `employee_code` varchar(30) NOT NULL, + `first_name` varchar(100) NOT NULL, + `last_name` varchar(100) NOT NULL, + `phone` varchar(30) DEFAULT NULL, + `email` varchar(150) DEFAULT NULL, + `photo_url` varchar(255) DEFAULT NULL, + `status` enum('ACTIVE','INACTIVE') NOT NULL DEFAULT 'ACTIVE', + `user_id` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uq_hr_person_employee_code` (`employee_code`), + UNIQUE KEY `uq_hr_person_user_id` (`user_id`), + CONSTRAINT `fk_hr_person_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_person` +-- + +LOCK TABLES `hr_person` WRITE; +/*!40000 ALTER TABLE `hr_person` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_person` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_user_assignment_history` +-- + +DROP TABLE IF EXISTS `hr_user_assignment_history`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_user_assignment_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `person_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `action` enum('ASSIGN','UNASSIGN') NOT NULL, + `happened_at` timestamp NOT NULL DEFAULT current_timestamp(), + `actor_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_uah_person` (`person_id`,`happened_at`), + KEY `idx_uah_user` (`user_id`,`happened_at`), + KEY `fk_uah_actor` (`actor_id`), + CONSTRAINT `fk_uah_actor` FOREIGN KEY (`actor_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `fk_uah_person` FOREIGN KEY (`person_id`) REFERENCES `hr_person` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_uah_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_user_assignment_history` +-- + +LOCK TABLES `hr_user_assignment_history` WRITE; +/*!40000 ALTER TABLE `hr_user_assignment_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_user_assignment_history` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_items` +-- + +DROP TABLE IF EXISTS `inventory_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_items` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `type` enum('vehículo','herramienta','consumible') NOT NULL, + `description` text DEFAULT NULL, + `serial_number` varchar(50) DEFAULT NULL, + `stock` int(11) NOT NULL DEFAULT 0, + `storage_location` varchar(120) DEFAULT NULL, + `image_url` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_inventory_items_storage_location` (`storage_location`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_items` +-- + +LOCK TABLES `inventory_items` WRITE; +/*!40000 ALTER TABLE `inventory_items` DISABLE KEYS */; +/*!40000 ALTER TABLE `inventory_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_movement_signatures` +-- + +DROP TABLE IF EXISTS `inventory_movement_signatures`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_movement_signatures` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `movement_id` int(11) NOT NULL, + `signed_by` int(11) DEFAULT NULL, + `signature_url` text NOT NULL, + `signed_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_movement_signature` (`movement_id`), + CONSTRAINT `inventory_movement_signatures_ibfk_1` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_movement_signatures` +-- + +LOCK TABLES `inventory_movement_signatures` WRITE; +/*!40000 ALTER TABLE `inventory_movement_signatures` DISABLE KEYS */; +/*!40000 ALTER TABLE `inventory_movement_signatures` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_movements` +-- + +DROP TABLE IF EXISTS `inventory_movements`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_movements` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` int(11) NOT NULL, + `type` enum('entrada','salida','devolución') NOT NULL, + `quantity` int(11) NOT NULL, + `engineer_id` int(11) DEFAULT NULL, + `reason` text DEFAULT NULL, + `contract_ref` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `status` enum('activo','cancelado') NOT NULL DEFAULT 'activo', + `canceled_at` datetime DEFAULT NULL, + `canceled_by` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `item_id` (`item_id`), + KEY `engineer_id` (`engineer_id`), + KEY `fk_inventory_movements_canceled_by` (`canceled_by`), + KEY `idx_inventory_movements_contract_ref` (`contract_ref`), + CONSTRAINT `fk_inventory_movements_canceled_by` FOREIGN KEY (`canceled_by`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `inventory_movements_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `inventory_items` (`id`), + CONSTRAINT `inventory_movements_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_movements` +-- + +LOCK TABLES `inventory_movements` WRITE; +/*!40000 ALTER TABLE `inventory_movements` DISABLE KEYS */; +/*!40000 ALTER TABLE `inventory_movements` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `little_box` +-- + +DROP TABLE IF EXISTS `little_box`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `little_box` ( + `petty_cash_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_user_id` int(11) NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `create_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`petty_cash_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `little_box_ibfk_1` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `little_box` +-- + +LOCK TABLES `little_box` WRITE; +/*!40000 ALTER TABLE `little_box` DISABLE KEYS */; +/*!40000 ALTER TABLE `little_box` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `quote` +-- + +DROP TABLE IF EXISTS `quote`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `quote` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `quote_date` date NOT NULL, + `location` varchar(100) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `entity` varchar(200) DEFAULT NULL, + `sender` varchar(150) DEFAULT NULL, + `department` varchar(200) DEFAULT NULL, + `equipment` text DEFAULT NULL, + `terms_and_conditions` text DEFAULT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_quote_date` (`quote_date`), + KEY `idx_location` (`location`), + KEY `idx_entity` (`entity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `quote` +-- + +LOCK TABLES `quote` WRITE; +/*!40000 ALTER TABLE `quote` DISABLE KEYS */; +/*!40000 ALTER TABLE `quote` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `roles_permissions` +-- + +DROP TABLE IF EXISTS `roles_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `roles_permissions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `role` enum('admin','engineer','technician') NOT NULL, + `permission` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `roles_permissions` +-- + +LOCK TABLES `roles_permissions` WRITE; +/*!40000 ALTER TABLE `roles_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `roles_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `service_orders` +-- + +DROP TABLE IF EXISTS `service_orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `service_orders` ( + `id_service_order` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) DEFAULT NULL, + `folio` varchar(50) DEFAULT NULL, + `fecha` date DEFAULT NULL, + `unidad_aplicativa` varchar(50) DEFAULT NULL, + `direccion` varchar(100) DEFAULT NULL, + `equipo` varchar(50) DEFAULT NULL, + `inventario` varchar(45) DEFAULT NULL, + `marca` varchar(50) DEFAULT NULL, + `serie` varchar(35) DEFAULT NULL, + `modelo` varchar(45) DEFAULT NULL, + `ubicacion` varchar(60) DEFAULT NULL, + `tipo_de_servicio` varchar(60) DEFAULT NULL, + `procedimiento` varchar(1000) DEFAULT NULL, + `foto_antes1` varchar(200) DEFAULT NULL, + `foto_antes2` varchar(200) DEFAULT NULL, + `foto_antes3` varchar(200) DEFAULT NULL, + `foto_durante1` varchar(200) DEFAULT NULL, + `foto_durante2` varchar(200) DEFAULT NULL, + `foto_durante3` varchar(200) DEFAULT NULL, + `foto_despues1` varchar(200) DEFAULT NULL, + `foto_despues2` varchar(200) DEFAULT NULL, + `foto_despues3` varchar(200) DEFAULT NULL, + `creado` date DEFAULT NULL, + `hora` varchar(15) DEFAULT NULL, + `id_ing` int(11) DEFAULT NULL, + `form_parameters` longtext DEFAULT NULL CHECK (json_valid(`form_parameters`)), + `service_order_sheet_route` text DEFAULT NULL, + `state` varchar(255) DEFAULT NULL, + `type_` varchar(255) DEFAULT NULL, + `so_param_type` varchar(255) DEFAULT NULL, + `folio_base` varchar(50) DEFAULT NULL, + `observaciones` varchar(1000) DEFAULT NULL, + PRIMARY KEY (`id_service_order`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `service_orders` +-- + +LOCK TABLES `service_orders` WRITE; +/*!40000 ALTER TABLE `service_orders` DISABLE KEYS */; +INSERT INTO `service_orders` VALUES +(1,NULL,'TRI-001-2026','2026-03-12','768','767','87','56','765','65','565','896','[\"DIAGNOSTICO\"]','78','uploads/fotosAntes1-1773337756294-221889783.jpg',NULL,NULL,'uploads/fotosDurante1-1773337756294-387998681.jpg',NULL,NULL,'uploads/fotosDespues1-1773337756295-633141515.jpg',NULL,NULL,'2026-03-12','10:15:23',1,'[]',NULL,'FINALIZADO','SERVICE_ORDER','automotriz','001-2026','335353'), +(2,0,'TRI-002-2026','2026-03-12','UNIDAD 23','AV LEONA VICARIO','CHILLER','12323','LG','456334','PLUS','PISO 2',NULL,'EL EQUIPO ESTA FALLANDO',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-12','11:25:37',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'002-2026','TODO BIEN'); +/*!40000 ALTER TABLE `service_orders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sessions` +-- + +DROP TABLE IF EXISTS `sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `sessions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `token` text NOT NULL, + `expiration` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + CONSTRAINT `sessions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sessions` +-- + +LOCK TABLES `sessions` WRITE; +/*!40000 ALTER TABLE `sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sp_debug_log` +-- + +DROP TABLE IF EXISTS `sp_debug_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `sp_debug_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `invoked_at` datetime DEFAULT NULL, + `action` varchar(50) DEFAULT NULL, + `p_id` int(11) DEFAULT NULL, + `p_name` varchar(100) DEFAULT NULL, + `p_stock` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sp_debug_log` +-- + +LOCK TABLES `sp_debug_log` WRITE; +/*!40000 ALTER TABLE `sp_debug_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `sp_debug_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `surveys_answers` +-- + +DROP TABLE IF EXISTS `surveys_answers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `surveys_answers` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `context_id` int(11) DEFAULT NULL, + `id_user` int(11) DEFAULT NULL, + `rh_name` varchar(255) DEFAULT NULL, + `snapshot_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`snapshot_json`)), + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `surveys_answers` +-- + +LOCK TABLES `surveys_answers` WRITE; +/*!40000 ALTER TABLE `surveys_answers` DISABLE KEYS */; +/*!40000 ALTER TABLE `surveys_answers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `surveys_questions` +-- + +DROP TABLE IF EXISTS `surveys_questions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `surveys_questions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `question` varchar(255) DEFAULT NULL, + `levels` int(11) DEFAULT 5, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `surveys_questions` +-- + +LOCK TABLES `surveys_questions` WRITE; +/*!40000 ALTER TABLE `surveys_questions` DISABLE KEYS */; +INSERT INTO `surveys_questions` VALUES +(1,'DESEMPEÑO INGENIERO',5,'2026-03-17 05:04:33'), +(2,'LIMPIEZA DEL AREA',5,'2026-03-17 05:04:33'), +(3,'tiempo de ejecucion',3,'2026-03-17 05:04:33'); +/*!40000 ALTER TABLE `surveys_questions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `termsFinance` +-- + +DROP TABLE IF EXISTS `termsFinance`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `termsFinance` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `term` text NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `termsFinance` +-- + +LOCK TABLES `termsFinance` WRITE; +/*!40000 ALTER TABLE `termsFinance` DISABLE KEYS */; +/*!40000 ALTER TABLE `termsFinance` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `email` varchar(100) NOT NULL, + `profile_picture` varchar(255) DEFAULT NULL, + `password` varchar(255) NOT NULL, + `role` enum('admin','engineer','technician') NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `status` enum('active','inactive') NOT NULL DEFAULT 'active', + `created_by` int(11) DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `updated_by` int(11) DEFAULT NULL, + `last_login` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `email` (`email`), + UNIQUE KEY `unique_email` (`email`) +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES +(1,'Admin','alsanchezbeltran@gmail.com','/uploads/profilePicture-1772602718872-500676084.png','$2b$10$uXLDSJ3UwZKEjZc93w0tCeDKUo834aZ03mARR.IrSGqQLaOHI0KoG','admin','2025-07-30 04:05:21','active',NULL,'2026-03-17 04:51:48',1,'2026-03-16 22:51:48'), +(26,'INGENIERO1','ingeniero1@trimape.com',NULL,'$2b$10$WHEn0eQsBTpxWWAMBHeH1OSEKHPwx78R6c/wZ0PmDSA7sHae2kFAC','engineer','2026-01-08 10:57:58','active',1,'2026-03-12 00:30:41',1,'2026-03-11 18:30:41'), +(27,'ADMIN2','admin2@trimape.com',NULL,'$2b$10$yn3fcLmvdCvRdvNZNfcop.PsC22ev/sUp0naNL3lhNHcNHnXM3MHW','admin','2026-02-04 22:40:24','active',1,'2026-02-17 00:28:51',NULL,'2026-02-16 18:28:51'), +(28,'ADMIN3','admin3@trimape.com',NULL,'$2b$10$2/.4gSrvmlKq1Vg/9541u.qOw1KtWaOi/ZhIDhgqDXqebUY8CwAbm','admin','2026-02-16 23:03:44','active',1,'2026-02-16 23:03:44',NULL,NULL); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `v_user_person` +-- + +DROP TABLE IF EXISTS `v_user_person`; +/*!50001 DROP VIEW IF EXISTS `v_user_person`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `v_user_person` AS SELECT + 1 AS `user_id`, + 1 AS `hr_person_id`, + 1 AS `person_full_name`, + 1 AS `person_status`, + 1 AS `user_name_fallback` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `vehicle_movement_data` +-- + +DROP TABLE IF EXISTS `vehicle_movement_data`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_movement_data` ( + `movement_id` int(11) NOT NULL, + `inventory_item_id` int(11) NOT NULL, + `engineer_id` int(11) DEFAULT NULL, + `event_type` enum('SALIDA','DEVOLUCION') NOT NULL, + `checks_snapshot_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`checks_snapshot_json`)), + `contract_ref` varchar(100) DEFAULT NULL, + `time_out` time DEFAULT NULL, + `time_in` time DEFAULT NULL, + `observations` text DEFAULT NULL, + `route_summary` text DEFAULT NULL, + `created_by` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `authorized_drivers_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + PRIMARY KEY (`movement_id`), + KEY `idx_vmd_item` (`inventory_item_id`), + KEY `idx_vmd_engineer` (`engineer_id`), + KEY `idx_vmd_event` (`event_type`,`created_at`), + KEY `fk_vmd_created_by` (`created_by`), + CONSTRAINT `fk_vmd_created_by` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_vmd_engineer` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_vmd_item` FOREIGN KEY (`inventory_item_id`) REFERENCES `inventory_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vmd_movement` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) ON DELETE CASCADE, + CONSTRAINT `authorized_drivers_json_chk` CHECK (`authorized_drivers_json` is null or json_valid(`authorized_drivers_json`)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_movement_data` +-- + +LOCK TABLES `vehicle_movement_data` WRITE; +/*!40000 ALTER TABLE `vehicle_movement_data` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicle_movement_data` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicle_movement_photos` +-- + +DROP TABLE IF EXISTS `vehicle_movement_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_movement_photos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `movement_id` int(11) NOT NULL, + `slot` enum('TABLERO_SALIDA','TABLERO_REGRESO','LADO_PASAJERO','LADO_CONDUCTOR','EXTRA_1','EXTRA_2','EXTRA_3','EXTRA_4') NOT NULL, + `url` varchar(255) NOT NULL, + `uploaded_by` int(11) DEFAULT NULL, + `uploaded_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_vehicle_photo_slot` (`movement_id`,`slot`), + KEY `idx_vehicle_photo_movement` (`movement_id`), + KEY `fk_vmp_uploaded_by` (`uploaded_by`), + CONSTRAINT `fk_vmp_movement` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vmp_uploaded_by` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_movement_photos` +-- + +LOCK TABLES `vehicle_movement_photos` WRITE; +/*!40000 ALTER TABLE `vehicle_movement_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicle_movement_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicle_state` +-- + +DROP TABLE IF EXISTS `vehicle_state`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_state` ( + `inventory_item_id` int(11) NOT NULL, + `unit_number` varchar(50) DEFAULT NULL, + `plates` varchar(20) DEFAULT NULL, + `checks_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`checks_json`)), + `notes` text DEFAULT NULL, + `updated_by` int(11) DEFAULT NULL, + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`inventory_item_id`), + KEY `fk_vehicle_state_updated_by` (`updated_by`), + CONSTRAINT `fk_vehicle_state_item` FOREIGN KEY (`inventory_item_id`) REFERENCES `inventory_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vehicle_state_updated_by` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_state` +-- + +LOCK TABLES `vehicle_state` WRITE; +/*!40000 ALTER TABLE `vehicle_state` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicle_state` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicles` +-- + +DROP TABLE IF EXISTS `vehicles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type` varchar(50) NOT NULL, + `license_plate` varchar(20) NOT NULL, + `status` enum('available','assigned','maintenance') DEFAULT 'available', + `current_mileage` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicles` +-- + +LOCK TABLES `vehicles` WRITE; +/*!40000 ALTER TABLE `vehicles` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vouchers` +-- + +DROP TABLE IF EXISTS `vouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vouchers` ( + `voucher_id` int(11) NOT NULL AUTO_INCREMENT, + `fund_transaction_id` int(11) NOT NULL, + `file_path` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `date_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`voucher_id`), + KEY `fund_transaction_id` (`fund_transaction_id`), + CONSTRAINT `vouchers_ibfk_1` FOREIGN KEY (`fund_transaction_id`) REFERENCES `fund_transactions` (`transaction_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vouchers` +-- + +LOCK TABLES `vouchers` WRITE; +/*!40000 ALTER TABLE `vouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `vouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Final view structure for view `v_user_person` +-- + +/*!50001 DROP VIEW IF EXISTS `v_user_person`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`trimape_admin`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `v_user_person` AS with last_action as (select `h`.`user_id` AS `user_id`,`h`.`person_id` AS `person_id`,`h`.`action` AS `action`,`h`.`happened_at` AS `happened_at` from (`hr_user_assignment_history` `h` join (select `hr_user_assignment_history`.`user_id` AS `user_id`,max(`hr_user_assignment_history`.`happened_at`) AS `max_ts` from `hr_user_assignment_history` group by `hr_user_assignment_history`.`user_id`) `m` on(`m`.`user_id` = `h`.`user_id` and `m`.`max_ts` = `h`.`happened_at`)))select `u`.`id` AS `user_id`,coalesce(`hp_direct`.`id`,case when `la`.`action` = 'ASSIGN' then `hp_hist`.`id` end) AS `hr_person_id`,coalesce(`format_person_name`(`hp_direct`.`first_name`,`hp_direct`.`last_name`),case when `la`.`action` = 'ASSIGN' then `format_person_name`(`hp_hist`.`first_name`,`hp_hist`.`last_name`) end) AS `person_full_name`,coalesce(`hp_direct`.`status`,`hp_hist`.`status`) AS `person_status`,`u`.`name` AS `user_name_fallback` from (((`users` `u` left join `hr_person` `hp_direct` on(`hp_direct`.`user_id` = `u`.`id`)) left join `last_action` `la` on(`la`.`user_id` = `u`.`id`)) left join `hr_person` `hp_hist` on(`hp_hist`.`id` = `la`.`person_id`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-03-16 23:15:12 diff --git a/db_backups/trimape_db_backup_before_surveys.sql b/db_backups/trimape_db_backup_before_surveys.sql new file mode 100644 index 0000000..a720b0d --- /dev/null +++ b/db_backups/trimape_db_backup_before_surveys.sql @@ -0,0 +1,1765 @@ +/*M!999999\- enable the sandbox mode */ +-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: trimape_db +-- ------------------------------------------------------ +-- Server version 10.11.14-MariaDB-0ubuntu0.24.04.1 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Sequence structure for `folio_seq` +-- + +DROP SEQUENCE IF EXISTS `folio_seq`; +CREATE SEQUENCE `folio_seq` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 nocache nocycle ENGINE=InnoDB; +DO SETVAL(`folio_seq`, 10, 0); + +-- +-- Table structure for table `OSFirmas` +-- + +DROP TABLE IF EXISTS `OSFirmas`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OSFirmas` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `firma_ruta` text DEFAULT NULL, + `nombre_responsable` varchar(255) DEFAULT NULL, + `puesto` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `id_service_order` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OSFirmas` +-- + +LOCK TABLES `OSFirmas` WRITE; +/*!40000 ALTER TABLE `OSFirmas` DISABLE KEYS */; +INSERT INTO `OSFirmas` VALUES +(1,'uploads/signatures/signature_0_1773336337465.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-12 17:25:37',2), +(2,'uploads/signatures/signature_1_1773336337466.png','JUAN LOPEZ','RESPONSABLE DE ÁREA','2026-03-12 17:25:37',2), +(7,'uploads/signatures/signature_0_1773337756296.png','DOMINIC VALDES','INGENIERO DE SERVICIO','2026-03-12 17:50:46',1), +(8,'uploads/signatures/signature_1_1773337756296.png','PEDRO PEREZ','RESPONSABLE DE ÁREA','2026-03-12 17:50:46',1); +/*!40000 ALTER TABLE `OSFirmas` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OSrefacciones` +-- + +DROP TABLE IF EXISTS `OSrefacciones`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OSrefacciones` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `OS_id` bigint(20) unsigned NOT NULL, + `codigo` varchar(255) NOT NULL, + `descripcion` text DEFAULT NULL, + `cantidad` int(11) NOT NULL, + `tipo` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_sheet_tipo` (`OS_id`) +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OSrefacciones` +-- + +LOCK TABLES `OSrefacciones` WRITE; +/*!40000 ALTER TABLE `OSrefacciones` DISABLE KEYS */; +INSERT INTO `OSrefacciones` VALUES +(1,2,'1','TORNILLOS',12,'DIAGNOSTIC_SHEET'), +(2,2,'2','TALADRO',3,'DIAGNOSTIC_SHEET'), +(3,2,'3','MANGUERAS',1,'DIAGNOSTIC_SHEET'), +(13,1,'65','87',56,'SERVICE_ORDER'), +(14,1,'89','676',6,'SERVICE_ORDER'), +(15,1,'877654','567',86,'SERVICE_ORDER'); +/*!40000 ALTER TABLE `OSrefacciones` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OsPhotos` +-- + +DROP TABLE IF EXISTS `OsPhotos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `OsPhotos` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `OS_id` int(10) unsigned NOT NULL, + `ruta_foto` varchar(255) NOT NULL, + `tipo` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OsPhotos` +-- + +LOCK TABLES `OsPhotos` WRITE; +/*!40000 ALTER TABLE `OsPhotos` DISABLE KEYS */; +INSERT INTO `OsPhotos` VALUES +(1,2,'/uploads/photo-1773336337462-467260244.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(2,2,'/uploads/photo-1773336337463-755903050.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(3,2,'/uploads/photo-1773336337463-866035631.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'), +(4,2,'/uploads/photo-1773336337464-551825949.jpg','DIAGNOSTIC_SHEET','2026-03-12 17:25:37'); +/*!40000 ALTER TABLE `OsPhotos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `adminBudgets` +-- + +DROP TABLE IF EXISTS `adminBudgets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `adminBudgets` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_admin` int(10) unsigned NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `adminBudgets` +-- + +LOCK TABLES `adminBudgets` WRITE; +/*!40000 ALTER TABLE `adminBudgets` DISABLE KEYS */; +/*!40000 ALTER TABLE `adminBudgets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `adminVouchers` +-- + +DROP TABLE IF EXISTS `adminVouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `adminVouchers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `admin_expense_id` int(11) NOT NULL, + `ruta_voucher` varchar(255) NOT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `admin_expense_id` (`admin_expense_id`), + CONSTRAINT `adminVouchers_ibfk_1` FOREIGN KEY (`admin_expense_id`) REFERENCES `admin_expenses` (`expense_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `adminVouchers` +-- + +LOCK TABLES `adminVouchers` WRITE; +/*!40000 ALTER TABLE `adminVouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `adminVouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `admin_expenses` +-- + +DROP TABLE IF EXISTS `admin_expenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `admin_expenses` ( + `expense_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_user_id` int(11) NOT NULL, + `concepto` varchar(100) NOT NULL, + `descripcion` text DEFAULT NULL, + `monto` decimal(12,2) NOT NULL, + `ruta_voucher` text DEFAULT NULL, + `fecha` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`expense_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `admin_expenses_ibfk_1` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `admin_expenses` +-- + +LOCK TABLES `admin_expenses` WRITE; +/*!40000 ALTER TABLE `admin_expenses` DISABLE KEYS */; +/*!40000 ALTER TABLE `admin_expenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `budgetVouchers` +-- + +DROP TABLE IF EXISTS `budgetVouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `budgetVouchers` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `budget_id` int(10) unsigned DEFAULT NULL, + `file_path` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `budgetVouchers` +-- + +LOCK TABLES `budgetVouchers` WRITE; +/*!40000 ALTER TABLE `budgetVouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `budgetVouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `check_ins` +-- + +DROP TABLE IF EXISTS `check_ins`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `check_ins` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `service_order_id` int(11) DEFAULT NULL, + `contract_id` int(11) DEFAULT NULL, + `timestamp` timestamp NOT NULL DEFAULT current_timestamp(), + `check_out_at` datetime DEFAULT NULL, + `latitude` decimal(10,8) DEFAULT NULL, + `longitude` decimal(11,8) DEFAULT NULL, + `photo` text NOT NULL, + `check_out_lat` decimal(10,8) DEFAULT NULL, + `check_out_lng` decimal(11,8) DEFAULT NULL, + `check_out_photo` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + KEY `ix_checkins_user_date` (`user_id`,`timestamp`), + KEY `ix_checkins_date` (`timestamp`), + CONSTRAINT `check_ins_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, + CONSTRAINT `check_ins_ibfk_2` FOREIGN KEY (`service_order_id`) REFERENCES `service_orders` (`id_service_order`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `check_ins` +-- + +LOCK TABLES `check_ins` WRITE; +/*!40000 ALTER TABLE `check_ins` DISABLE KEYS */; +/*!40000 ALTER TABLE `check_ins` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `clients` +-- + +DROP TABLE IF EXISTS `clients`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `clients` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `rfc` varchar(20) DEFAULT NULL, + `email` varchar(100) DEFAULT NULL, + `phone` varchar(15) DEFAULT NULL, + `address` text DEFAULT NULL, + `company` varchar(100) DEFAULT NULL, + `unit_key` varchar(10) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `clients` +-- + +LOCK TABLES `clients` WRITE; +/*!40000 ALTER TABLE `clients` DISABLE KEYS */; +/*!40000 ALTER TABLE `clients` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `concepts` +-- + +DROP TABLE IF EXISTS `concepts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `concepts` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `quote_id` bigint(20) unsigned NOT NULL, + `concept` varchar(255) NOT NULL, + `quantity` decimal(12,2) NOT NULL DEFAULT 0.00, + `unit_price` decimal(12,2) NOT NULL DEFAULT 0.00, + `tax_rate` decimal(5,4) NOT NULL DEFAULT 0.1600, + `subtotal` decimal(14,2) GENERATED ALWAYS AS (`quantity` * `unit_price`) STORED, + `iva` decimal(14,2) GENERATED ALWAYS AS (round(`quantity` * `unit_price` * `tax_rate`,2)) STORED, + `total` decimal(14,2) GENERATED ALWAYS AS (round(`quantity` * `unit_price` + `quantity` * `unit_price` * `tax_rate`,2)) STORED, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_concepts_quote_id` (`quote_id`), + CONSTRAINT `fk_concepts_quote` FOREIGN KEY (`quote_id`) REFERENCES `quote` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `CONSTRAINT_1` CHECK (`quantity` >= 0), + CONSTRAINT `CONSTRAINT_2` CHECK (`unit_price` >= 0), + CONSTRAINT `CONSTRAINT_3` CHECK (`tax_rate` >= 0 and `tax_rate` <= 1) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `concepts` +-- + +LOCK TABLES `concepts` WRITE; +/*!40000 ALTER TABLE `concepts` DISABLE KEYS */; +/*!40000 ALTER TABLE `concepts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_assignees` +-- + +DROP TABLE IF EXISTS `contract_assignees`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_assignees` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `role` varchar(50) DEFAULT NULL, + `is_primary` tinyint(1) NOT NULL DEFAULT 0, + `assigned_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_contract_user` (`contract_id`,`user_id`), + KEY `idx_contract` (`contract_id`), + KEY `idx_user` (`user_id`), + KEY `idx_ca_user_contract` (`user_id`,`contract_id`), + KEY `idx_ca_contract_user` (`contract_id`,`user_id`), + CONSTRAINT `fk_ca_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_ca_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_assignees` +-- + +LOCK TABLES `contract_assignees` WRITE; +/*!40000 ALTER TABLE `contract_assignees` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_assignees` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_document_types` +-- + +DROP TABLE IF EXISTS `contract_document_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_document_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `code` varchar(50) NOT NULL, + `name` varchar(150) NOT NULL, + `allows_multiple` tinyint(1) NOT NULL DEFAULT 0, + `is_system` tinyint(1) NOT NULL DEFAULT 0, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_cdt_code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_document_types` +-- + +LOCK TABLES `contract_document_types` WRITE; +/*!40000 ALTER TABLE `contract_document_types` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_document_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_documents` +-- + +DROP TABLE IF EXISTS `contract_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_documents` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `document_type_id` int(10) unsigned DEFAULT NULL, + `file_name` varchar(255) NOT NULL, + `file_path` varchar(500) NOT NULL, + `uploaded_by` int(11) NOT NULL, + `uploaded_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_contract` (`contract_id`), + KEY `fk_cdocs_user` (`uploaded_by`), + KEY `fk_cdocs_type` (`document_type_id`), + KEY `idx_cdocs_round` (`contract_round_id`), + CONSTRAINT `fk_cdocs_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cdocs_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_cdocs_type` FOREIGN KEY (`document_type_id`) REFERENCES `contract_document_types` (`id`), + CONSTRAINT `fk_cdocs_user` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_documents` +-- + +LOCK TABLES `contract_documents` WRITE; +/*!40000 ALTER TABLE `contract_documents` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_required_documents` +-- + +DROP TABLE IF EXISTS `contract_required_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_required_documents` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `document_type_id` int(10) unsigned NOT NULL, + `is_required` tinyint(1) NOT NULL DEFAULT 0, + `sort_order` int(11) DEFAULT 1, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_crd_type` (`document_type_id`) USING BTREE, + KEY `idx_crd_round` (`contract_round_id`) USING BTREE, + CONSTRAINT `fk_crd_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_crd_type` FOREIGN KEY (`document_type_id`) REFERENCES `contract_document_types` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_required_documents` +-- + +LOCK TABLES `contract_required_documents` WRITE; +/*!40000 ALTER TABLE `contract_required_documents` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_required_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_rounds` +-- + +DROP TABLE IF EXISTS `contract_rounds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_rounds` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `name` varchar(100) NOT NULL, + `sort_order` int(11) NOT NULL DEFAULT 1, + `active` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_cr_contract` (`contract_id`), + CONSTRAINT `fk_cr_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_rounds` +-- + +LOCK TABLES `contract_rounds` WRITE; +/*!40000 ALTER TABLE `contract_rounds` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_rounds` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_transfers` +-- + +DROP TABLE IF EXISTS `contract_transfers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_transfers` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `from_user_id` int(11) DEFAULT NULL, + `to_user_id` int(11) NOT NULL, + `reason` varchar(300) DEFAULT NULL, + `transferred_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_ct_contract` (`contract_id`), + KEY `idx_ct_from` (`from_user_id`), + KEY `idx_ct_to` (`to_user_id`), + CONSTRAINT `fk_ct_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_ct_from_user_nullable_20251012` FOREIGN KEY (`from_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_ct_to_user` FOREIGN KEY (`to_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_transfers` +-- + +LOCK TABLES `contract_transfers` WRITE; +/*!40000 ALTER TABLE `contract_transfers` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_transfers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contract_xml_invoices` +-- + +DROP TABLE IF EXISTS `contract_xml_invoices`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contract_xml_invoices` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `contract_round_id` int(10) unsigned DEFAULT NULL, + `contract_document_id` bigint(20) unsigned DEFAULT NULL, + `invoice_ref` varchar(100) DEFAULT NULL, + `uuid` char(36) DEFAULT NULL, + `amount` decimal(14,2) NOT NULL, + `amount_source` enum('xml','manual') NOT NULL DEFAULT 'xml', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_cxi_uuid` (`uuid`), + KEY `idx_cxi_contract` (`contract_id`), + KEY `idx_cxi_round` (`contract_round_id`), + KEY `idx_cxi_doc` (`contract_document_id`), + CONSTRAINT `fk_cxi_contract` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cxi_document` FOREIGN KEY (`contract_document_id`) REFERENCES `contract_documents` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_cxi_round` FOREIGN KEY (`contract_round_id`) REFERENCES `contract_rounds` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contract_xml_invoices` +-- + +LOCK TABLES `contract_xml_invoices` WRITE; +/*!40000 ALTER TABLE `contract_xml_invoices` DISABLE KEYS */; +/*!40000 ALTER TABLE `contract_xml_invoices` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `contracts` +-- + +DROP TABLE IF EXISTS `contracts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `contracts` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `client_id` int(11) DEFAULT NULL, + `created_by` int(11) DEFAULT NULL, + `owner_user_id` int(11) DEFAULT NULL, + `folio` varchar(50) NOT NULL, + `dependency_contract_number` varchar(100) DEFAULT NULL, + `place` varchar(150) DEFAULT NULL, + `delegation` varchar(120) DEFAULT NULL, + `municipality` varchar(120) DEFAULT NULL, + `name` varchar(100) NOT NULL, + `description` text DEFAULT NULL, + `total_amount` decimal(14,2) NOT NULL DEFAULT 0.00, + `start_date` date DEFAULT NULL, + `end_date` date DEFAULT NULL, + `status` enum('Borrador','Firmado','Activo','Finalizado','Cancelado') DEFAULT 'Borrador', + `finalized_at` datetime DEFAULT NULL, + `document_path` varchar(255) DEFAULT NULL, + `signature_path` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `folio` (`folio`), + UNIQUE KEY `folio_2` (`folio`), + KEY `fk_contracts_client` (`client_id`), + KEY `fk_contracts_user` (`created_by`), + KEY `idx_contracts_owner` (`owner_user_id`), + KEY `idx_contracts_created_at` (`created_at`), + CONSTRAINT `fk_contracts_client` FOREIGN KEY (`client_id`) REFERENCES `clients` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_contracts_owner` FOREIGN KEY (`owner_user_id`) REFERENCES `users` (`id`), + CONSTRAINT `fk_contracts_user` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `contracts` +-- + +LOCK TABLES `contracts` WRITE; +/*!40000 ALTER TABLE `contracts` DISABLE KEYS */; +/*!40000 ALTER TABLE `contracts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_report_photos` +-- + +DROP TABLE IF EXISTS `daily_report_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `daily_report_photos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `report_id` int(11) NOT NULL, + `photo_url` varchar(512) NOT NULL, + `sort_order` int(11) NOT NULL DEFAULT 1, + `caption` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_drp_report_order` (`report_id`,`sort_order`), + KEY `idx_drp_report` (`report_id`), + CONSTRAINT `fk_drp_report` FOREIGN KEY (`report_id`) REFERENCES `daily_reports` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_report_photos` +-- + +LOCK TABLES `daily_report_photos` WRITE; +/*!40000 ALTER TABLE `daily_report_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_report_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_reports` +-- + +DROP TABLE IF EXISTS `daily_reports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `daily_reports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `engineer_id` int(11) NOT NULL, + `service_order_id` int(11) DEFAULT NULL, + `report_date` date NOT NULL DEFAULT curdate(), + `unidad_aplicativa` varchar(100) DEFAULT NULL, + `direccion` varchar(255) DEFAULT NULL, + `equipo` varchar(100) DEFAULT NULL, + `inventario` varchar(50) DEFAULT NULL, + `marca` varchar(50) DEFAULT NULL, + `serie` varchar(50) DEFAULT NULL, + `modelo` varchar(50) DEFAULT NULL, + `ubicacion` varchar(100) DEFAULT NULL, + `activities` text DEFAULT NULL, + `observations` text DEFAULT NULL, + `codigo` varchar(50) DEFAULT NULL, + `descripcion` varchar(255) DEFAULT NULL, + `cantidad` int(11) DEFAULT 0, + `refacciones` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`refacciones`)), + `signature_url` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `hr_person_id` int(11) DEFAULT NULL, + `printed_person_name` varchar(205) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `service_order_id` (`service_order_id`), + KEY `idx_contract_id` (`contract_id`), + KEY `idx_engineer_id` (`engineer_id`), + KEY `idx_report_date` (`report_date`), + KEY `fk_dr_hr_person` (`hr_person_id`), + FULLTEXT KEY `idx_text_fields` (`activities`,`observations`,`equipo`,`descripcion`), + CONSTRAINT `daily_reports_ibfk_1` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE, + CONSTRAINT `daily_reports_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, + CONSTRAINT `daily_reports_ibfk_3` FOREIGN KEY (`service_order_id`) REFERENCES `service_orders` (`id_service_order`) ON DELETE SET NULL, + CONSTRAINT `fk_dr_hr_person` FOREIGN KEY (`hr_person_id`) REFERENCES `hr_person` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_reports` +-- + +LOCK TABLES `daily_reports` WRITE; +/*!40000 ALTER TABLE `daily_reports` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_reports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `diagnostic_photos` +-- + +DROP TABLE IF EXISTS `diagnostic_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `diagnostic_photos` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `diagnostic_sheet_id` bigint(20) unsigned NOT NULL, + `photo_path` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_sheet` (`diagnostic_sheet_id`), + CONSTRAINT `fk_photo_sheet` FOREIGN KEY (`diagnostic_sheet_id`) REFERENCES `diagnostic_sheets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `diagnostic_photos` +-- + +LOCK TABLES `diagnostic_photos` WRITE; +/*!40000 ALTER TABLE `diagnostic_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `diagnostic_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `diagnostic_sheets` +-- + +DROP TABLE IF EXISTS `diagnostic_sheets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `diagnostic_sheets` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `folio` varchar(30) NOT NULL, + `fecha` date NOT NULL, + `unidad_aplicativa` varchar(255) NOT NULL, + `direccion` varchar(255) NOT NULL, + `equipo` varchar(255) NOT NULL, + `inventario` varchar(100) NOT NULL, + `marca` varchar(100) NOT NULL, + `serie` varchar(100) NOT NULL, + `modelo` varchar(100) NOT NULL, + `ubicacion` varchar(255) NOT NULL, + `diagnostico` text NOT NULL, + `id_user` int(10) unsigned NOT NULL, + `contract_id` int(10) unsigned DEFAULT NULL, + `state` varchar(50) NOT NULL DEFAULT 'BORRADOR', + `firma_ing` varchar(255) DEFAULT NULL, + `firma_responsable` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `folio` (`folio`), + KEY `idx_folio` (`folio`), + KEY `idx_fecha` (`fecha`), + KEY `idx_user` (`id_user`), + KEY `idx_contract` (`contract_id`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `diagnostic_sheets` +-- + +LOCK TABLES `diagnostic_sheets` WRITE; +/*!40000 ALTER TABLE `diagnostic_sheets` DISABLE KEYS */; +/*!40000 ALTER TABLE `diagnostic_sheets` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `engineer_inventory` +-- + +DROP TABLE IF EXISTS `engineer_inventory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `engineer_inventory` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` int(11) NOT NULL, + `engineer_id` int(11) NOT NULL, + `contract_ref` varchar(100) DEFAULT NULL, + `quantity` int(11) NOT NULL DEFAULT 1, + `date_assigned` timestamp NULL DEFAULT current_timestamp(), + `expected_return` date DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `ux_engineer_item_contract` (`engineer_id`,`item_id`,`contract_ref`), + KEY `item_id` (`item_id`), + CONSTRAINT `engineer_inventory_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `inventory_items` (`id`), + CONSTRAINT `engineer_inventory_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `engineer_inventory` +-- + +LOCK TABLES `engineer_inventory` WRITE; +/*!40000 ALTER TABLE `engineer_inventory` DISABLE KEYS */; +/*!40000 ALTER TABLE `engineer_inventory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `expenses` +-- + +DROP TABLE IF EXISTS `expenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `expenses` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) NOT NULL, + `concept` varchar(255) NOT NULL, + `amount` decimal(10,2) NOT NULL, + `date` date NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `contract_id` (`contract_id`), + CONSTRAINT `expenses_ibfk_1` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `expenses` +-- + +LOCK TABLES `expenses` WRITE; +/*!40000 ALTER TABLE `expenses` DISABLE KEYS */; +/*!40000 ALTER TABLE `expenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `finances` +-- + +DROP TABLE IF EXISTS `finances`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `finances` ( + `finance_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_expense_id` int(11) NOT NULL, + `file_path` varchar(255) DEFAULT NULL, + `date_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`finance_id`), + KEY `fund_transaction_id` (`admin_expense_id`) +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `finances` +-- + +LOCK TABLES `finances` WRITE; +/*!40000 ALTER TABLE `finances` DISABLE KEYS */; +/*!40000 ALTER TABLE `finances` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `fund_transactions` +-- + +DROP TABLE IF EXISTS `fund_transactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `fund_transactions` ( + `transaction_id` int(11) NOT NULL AUTO_INCREMENT, + `fund_id` int(11) NOT NULL, + `type_` enum('ABONO','GASTO') NOT NULL, + `amount` decimal(12,2) NOT NULL, + `crt_time` datetime DEFAULT current_timestamp(), + `description` text DEFAULT NULL, + `concept` text DEFAULT NULL, + `admin_user_id` int(11) DEFAULT NULL, + `tipo_pago` varchar(255) DEFAULT NULL, + `nombre_rh` varchar(255) DEFAULT NULL, + PRIMARY KEY (`transaction_id`), + KEY `fund_id` (`fund_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `fund_transactions_ibfk_1` FOREIGN KEY (`fund_id`) REFERENCES `funds` (`fund_id`), + CONSTRAINT `fund_transactions_ibfk_2` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `fund_transactions` +-- + +LOCK TABLES `fund_transactions` WRITE; +/*!40000 ALTER TABLE `fund_transactions` DISABLE KEYS */; +/*!40000 ALTER TABLE `fund_transactions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `funds` +-- + +DROP TABLE IF EXISTS `funds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `funds` ( + `fund_id` int(11) NOT NULL AUTO_INCREMENT, + `technician_user_id` int(11) NOT NULL, + `contract_id` int(11) NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `crt_date` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`fund_id`), + KEY `idx_funds_tech_contract` (`technician_user_id`,`contract_id`), + KEY `idx_funds_contract_tech` (`contract_id`,`technician_user_id`), + CONSTRAINT `funds_ibfk_1` FOREIGN KEY (`technician_user_id`) REFERENCES `users` (`id`), + CONSTRAINT `funds_ibfk_2` FOREIGN KEY (`contract_id`) REFERENCES `contracts` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `funds` +-- + +LOCK TABLES `funds` WRITE; +/*!40000 ALTER TABLE `funds` DISABLE KEYS */; +/*!40000 ALTER TABLE `funds` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `history_service_orders` +-- + +DROP TABLE IF EXISTS `history_service_orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `history_service_orders` ( + `id_h_so` int(11) NOT NULL AUTO_INCREMENT, + `id_ing` int(11) DEFAULT NULL, + `sealed_service_order` varchar(50) DEFAULT NULL, + `create_at` date DEFAULT curdate(), + PRIMARY KEY (`id_h_so`), + UNIQUE KEY `id_h_so` (`id_h_so`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `history_service_orders` +-- + +LOCK TABLES `history_service_orders` WRITE; +/*!40000 ALTER TABLE `history_service_orders` DISABLE KEYS */; +/*!40000 ALTER TABLE `history_service_orders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document` +-- + +DROP TABLE IF EXISTS `hr_document`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `person_id` int(11) NOT NULL, + `document_type_id` int(11) NOT NULL, + `status` enum('PENDING','RECEIVED','REJECTED','EXPIRED') NOT NULL DEFAULT 'PENDING', + `issue_date` date DEFAULT NULL, + `expiry_date` date DEFAULT NULL, + `notes` varchar(255) DEFAULT NULL, + `is_current` tinyint(1) NOT NULL DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `fk_hr_document_type` (`document_type_id`), + KEY `idx_hr_doc_person_type` (`person_id`,`document_type_id`,`is_current`), + KEY `idx_hr_doc_expiry` (`expiry_date`), + KEY `idx_hr_doc_person_type_iscurrent` (`person_id`,`document_type_id`,`is_current`), + KEY `idx_hr_doc_expiry_date` (`expiry_date`), + CONSTRAINT `fk_hr_document_person` FOREIGN KEY (`person_id`) REFERENCES `hr_person` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_hr_document_type` FOREIGN KEY (`document_type_id`) REFERENCES `hr_document_type` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document` +-- + +LOCK TABLES `hr_document` WRITE; +/*!40000 ALTER TABLE `hr_document` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document_file` +-- + +DROP TABLE IF EXISTS `hr_document_file`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document_file` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `document_id` int(11) NOT NULL, + `side` enum('FRONT','BACK','SINGLE','OTHER') NOT NULL DEFAULT 'SINGLE', + `file_url` varchar(255) NOT NULL, + `checksum_md5` char(32) DEFAULT NULL, + `uploaded_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_hr_document_file_doc` (`document_id`), + KEY `idx_hr_doc_file_doc` (`document_id`), + CONSTRAINT `fk_hr_document_file_doc` FOREIGN KEY (`document_id`) REFERENCES `hr_document` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document_file` +-- + +LOCK TABLES `hr_document_file` WRITE; +/*!40000 ALTER TABLE `hr_document_file` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document_file` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_document_type` +-- + +DROP TABLE IF EXISTS `hr_document_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_document_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `code` varchar(40) NOT NULL, + `name` varchar(120) NOT NULL, + `requires_both_sides` tinyint(1) NOT NULL DEFAULT 0, + `allows_multiple` tinyint(1) NOT NULL DEFAULT 0, + `requires_expiry` tinyint(1) NOT NULL DEFAULT 0, + `active` tinyint(1) NOT NULL DEFAULT 1, + `sort_order` int(11) DEFAULT 9999, + PRIMARY KEY (`id`), + UNIQUE KEY `uq_hr_document_type_code` (`code`), + KEY `idx_hr_document_type_active` (`active`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_document_type` +-- + +LOCK TABLES `hr_document_type` WRITE; +/*!40000 ALTER TABLE `hr_document_type` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_document_type` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_person` +-- + +DROP TABLE IF EXISTS `hr_person`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_person` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `employee_code` varchar(30) NOT NULL, + `first_name` varchar(100) NOT NULL, + `last_name` varchar(100) NOT NULL, + `phone` varchar(30) DEFAULT NULL, + `email` varchar(150) DEFAULT NULL, + `photo_url` varchar(255) DEFAULT NULL, + `status` enum('ACTIVE','INACTIVE') NOT NULL DEFAULT 'ACTIVE', + `user_id` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uq_hr_person_employee_code` (`employee_code`), + UNIQUE KEY `uq_hr_person_user_id` (`user_id`), + CONSTRAINT `fk_hr_person_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_person` +-- + +LOCK TABLES `hr_person` WRITE; +/*!40000 ALTER TABLE `hr_person` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_person` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `hr_user_assignment_history` +-- + +DROP TABLE IF EXISTS `hr_user_assignment_history`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `hr_user_assignment_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `person_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `action` enum('ASSIGN','UNASSIGN') NOT NULL, + `happened_at` timestamp NOT NULL DEFAULT current_timestamp(), + `actor_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `idx_uah_person` (`person_id`,`happened_at`), + KEY `idx_uah_user` (`user_id`,`happened_at`), + KEY `fk_uah_actor` (`actor_id`), + CONSTRAINT `fk_uah_actor` FOREIGN KEY (`actor_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `fk_uah_person` FOREIGN KEY (`person_id`) REFERENCES `hr_person` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_uah_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `hr_user_assignment_history` +-- + +LOCK TABLES `hr_user_assignment_history` WRITE; +/*!40000 ALTER TABLE `hr_user_assignment_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `hr_user_assignment_history` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_items` +-- + +DROP TABLE IF EXISTS `inventory_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_items` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `type` enum('vehículo','herramienta','consumible') NOT NULL, + `description` text DEFAULT NULL, + `serial_number` varchar(50) DEFAULT NULL, + `stock` int(11) NOT NULL DEFAULT 0, + `storage_location` varchar(120) DEFAULT NULL, + `image_url` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_inventory_items_storage_location` (`storage_location`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_items` +-- + +LOCK TABLES `inventory_items` WRITE; +/*!40000 ALTER TABLE `inventory_items` DISABLE KEYS */; +/*!40000 ALTER TABLE `inventory_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_movement_signatures` +-- + +DROP TABLE IF EXISTS `inventory_movement_signatures`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_movement_signatures` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `movement_id` int(11) NOT NULL, + `signed_by` int(11) DEFAULT NULL, + `signature_url` text NOT NULL, + `signed_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_movement_signature` (`movement_id`), + CONSTRAINT `inventory_movement_signatures_ibfk_1` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_movement_signatures` +-- + +LOCK TABLES `inventory_movement_signatures` WRITE; +/*!40000 ALTER TABLE `inventory_movement_signatures` DISABLE KEYS */; +/*!40000 ALTER TABLE `inventory_movement_signatures` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `inventory_movements` +-- + +DROP TABLE IF EXISTS `inventory_movements`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `inventory_movements` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` int(11) NOT NULL, + `type` enum('entrada','salida','devolución') NOT NULL, + `quantity` int(11) NOT NULL, + `engineer_id` int(11) DEFAULT NULL, + `reason` text DEFAULT NULL, + `contract_ref` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `status` enum('activo','cancelado') NOT NULL DEFAULT 'activo', + `canceled_at` datetime DEFAULT NULL, + `canceled_by` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `item_id` (`item_id`), + KEY `engineer_id` (`engineer_id`), + KEY `fk_inventory_movements_canceled_by` (`canceled_by`), + KEY `idx_inventory_movements_contract_ref` (`contract_ref`), + CONSTRAINT `fk_inventory_movements_canceled_by` FOREIGN KEY (`canceled_by`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `inventory_movements_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `inventory_items` (`id`), + CONSTRAINT `inventory_movements_ibfk_2` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `inventory_movements` +-- + +LOCK TABLES `inventory_movements` WRITE; +/*!40000 ALTER TABLE `inventory_movements` DISABLE KEYS */; +/*!40000 ALTER TABLE `inventory_movements` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `little_box` +-- + +DROP TABLE IF EXISTS `little_box`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `little_box` ( + `petty_cash_id` int(11) NOT NULL AUTO_INCREMENT, + `admin_user_id` int(11) NOT NULL, + `initial_amount` decimal(12,2) NOT NULL, + `current_amount` decimal(12,2) NOT NULL, + `create_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`petty_cash_id`), + KEY `admin_user_id` (`admin_user_id`), + CONSTRAINT `little_box_ibfk_1` FOREIGN KEY (`admin_user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `little_box` +-- + +LOCK TABLES `little_box` WRITE; +/*!40000 ALTER TABLE `little_box` DISABLE KEYS */; +/*!40000 ALTER TABLE `little_box` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `quote` +-- + +DROP TABLE IF EXISTS `quote`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `quote` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `quote_date` date NOT NULL, + `location` varchar(100) DEFAULT NULL, + `address` varchar(255) DEFAULT NULL, + `entity` varchar(200) DEFAULT NULL, + `sender` varchar(150) DEFAULT NULL, + `department` varchar(200) DEFAULT NULL, + `equipment` text DEFAULT NULL, + `terms_and_conditions` text DEFAULT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `idx_quote_date` (`quote_date`), + KEY `idx_location` (`location`), + KEY `idx_entity` (`entity`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `quote` +-- + +LOCK TABLES `quote` WRITE; +/*!40000 ALTER TABLE `quote` DISABLE KEYS */; +/*!40000 ALTER TABLE `quote` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `roles_permissions` +-- + +DROP TABLE IF EXISTS `roles_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `roles_permissions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `role` enum('admin','engineer','technician') NOT NULL, + `permission` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `roles_permissions` +-- + +LOCK TABLES `roles_permissions` WRITE; +/*!40000 ALTER TABLE `roles_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `roles_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `service_orders` +-- + +DROP TABLE IF EXISTS `service_orders`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `service_orders` ( + `id_service_order` int(11) NOT NULL AUTO_INCREMENT, + `contract_id` int(11) DEFAULT NULL, + `folio` varchar(50) DEFAULT NULL, + `fecha` date DEFAULT NULL, + `unidad_aplicativa` varchar(50) DEFAULT NULL, + `direccion` varchar(100) DEFAULT NULL, + `equipo` varchar(50) DEFAULT NULL, + `inventario` varchar(45) DEFAULT NULL, + `marca` varchar(50) DEFAULT NULL, + `serie` varchar(35) DEFAULT NULL, + `modelo` varchar(45) DEFAULT NULL, + `ubicacion` varchar(60) DEFAULT NULL, + `tipo_de_servicio` varchar(60) DEFAULT NULL, + `procedimiento` varchar(1000) DEFAULT NULL, + `foto_antes1` varchar(200) DEFAULT NULL, + `foto_antes2` varchar(200) DEFAULT NULL, + `foto_antes3` varchar(200) DEFAULT NULL, + `foto_durante1` varchar(200) DEFAULT NULL, + `foto_durante2` varchar(200) DEFAULT NULL, + `foto_durante3` varchar(200) DEFAULT NULL, + `foto_despues1` varchar(200) DEFAULT NULL, + `foto_despues2` varchar(200) DEFAULT NULL, + `foto_despues3` varchar(200) DEFAULT NULL, + `creado` date DEFAULT NULL, + `hora` varchar(15) DEFAULT NULL, + `id_ing` int(11) DEFAULT NULL, + `form_parameters` longtext DEFAULT NULL CHECK (json_valid(`form_parameters`)), + `service_order_sheet_route` text DEFAULT NULL, + `state` varchar(255) DEFAULT NULL, + `type_` varchar(255) DEFAULT NULL, + `so_param_type` varchar(255) DEFAULT NULL, + `folio_base` varchar(50) DEFAULT NULL, + `observaciones` varchar(1000) DEFAULT NULL, + PRIMARY KEY (`id_service_order`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `service_orders` +-- + +LOCK TABLES `service_orders` WRITE; +/*!40000 ALTER TABLE `service_orders` DISABLE KEYS */; +INSERT INTO `service_orders` VALUES +(1,NULL,'TRI-001-2026','2026-03-12','768','767','87','56','765','65','565','896','[\"DIAGNOSTICO\"]','78','uploads/fotosAntes1-1773337756294-221889783.jpg',NULL,NULL,'uploads/fotosDurante1-1773337756294-387998681.jpg',NULL,NULL,'uploads/fotosDespues1-1773337756295-633141515.jpg',NULL,NULL,'2026-03-12','10:15:23',1,'[]',NULL,'FINALIZADO','SERVICE_ORDER','automotriz','001-2026','335353'), +(2,0,'TRI-002-2026','2026-03-12','UNIDAD 23','AV LEONA VICARIO','CHILLER','12323','LG','456334','PLUS','PISO 2',NULL,'EL EQUIPO ESTA FALLANDO',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-03-12','11:25:37',1,NULL,NULL,'FINALIZADO','DIAGNOSTIC_SHEET',NULL,'002-2026','TODO BIEN'); +/*!40000 ALTER TABLE `service_orders` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sessions` +-- + +DROP TABLE IF EXISTS `sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `sessions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `token` text NOT NULL, + `expiration` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + CONSTRAINT `sessions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sessions` +-- + +LOCK TABLES `sessions` WRITE; +/*!40000 ALTER TABLE `sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `sp_debug_log` +-- + +DROP TABLE IF EXISTS `sp_debug_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `sp_debug_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `invoked_at` datetime DEFAULT NULL, + `action` varchar(50) DEFAULT NULL, + `p_id` int(11) DEFAULT NULL, + `p_name` varchar(100) DEFAULT NULL, + `p_stock` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `sp_debug_log` +-- + +LOCK TABLES `sp_debug_log` WRITE; +/*!40000 ALTER TABLE `sp_debug_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `sp_debug_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `surveys` +-- + +DROP TABLE IF EXISTS `surveys`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `surveys` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `doc_type` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `surveys` +-- + +LOCK TABLES `surveys` WRITE; +/*!40000 ALTER TABLE `surveys` DISABLE KEYS */; +/*!40000 ALTER TABLE `surveys` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `surveys_answers` +-- + +DROP TABLE IF EXISTS `surveys_answers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `surveys_answers` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `id_question` int(11) DEFAULT NULL, + `id_survey` int(11) DEFAULT NULL, + `id_user` int(11) DEFAULT NULL, + `rh_name` varchar(255) DEFAULT NULL, + `answer` varchar(255) DEFAULT NULL, + `question` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `surveys_answers` +-- + +LOCK TABLES `surveys_answers` WRITE; +/*!40000 ALTER TABLE `surveys_answers` DISABLE KEYS */; +/*!40000 ALTER TABLE `surveys_answers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `surveys_questions` +-- + +DROP TABLE IF EXISTS `surveys_questions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `surveys_questions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `id_survey` int(11) DEFAULT NULL, + `type_question` varchar(50) DEFAULT NULL, + `question` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `surveys_questions` +-- + +LOCK TABLES `surveys_questions` WRITE; +/*!40000 ALTER TABLE `surveys_questions` DISABLE KEYS */; +/*!40000 ALTER TABLE `surveys_questions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `termsFinance` +-- + +DROP TABLE IF EXISTS `termsFinance`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `termsFinance` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `term` text NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `termsFinance` +-- + +LOCK TABLES `termsFinance` WRITE; +/*!40000 ALTER TABLE `termsFinance` DISABLE KEYS */; +/*!40000 ALTER TABLE `termsFinance` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `email` varchar(100) NOT NULL, + `profile_picture` varchar(255) DEFAULT NULL, + `password` varchar(255) NOT NULL, + `role` enum('admin','engineer','technician') NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `status` enum('active','inactive') NOT NULL DEFAULT 'active', + `created_by` int(11) DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `updated_by` int(11) DEFAULT NULL, + `last_login` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `email` (`email`), + UNIQUE KEY `unique_email` (`email`) +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES +(1,'Admin','alsanchezbeltran@gmail.com','/uploads/profilePicture-1772602718872-500676084.png','$2b$10$uXLDSJ3UwZKEjZc93w0tCeDKUo834aZ03mARR.IrSGqQLaOHI0KoG','admin','2025-07-30 04:05:21','active',NULL,'2026-03-17 04:51:48',1,'2026-03-16 22:51:48'), +(26,'INGENIERO1','ingeniero1@trimape.com',NULL,'$2b$10$WHEn0eQsBTpxWWAMBHeH1OSEKHPwx78R6c/wZ0PmDSA7sHae2kFAC','engineer','2026-01-08 10:57:58','active',1,'2026-03-12 00:30:41',1,'2026-03-11 18:30:41'), +(27,'ADMIN2','admin2@trimape.com',NULL,'$2b$10$yn3fcLmvdCvRdvNZNfcop.PsC22ev/sUp0naNL3lhNHcNHnXM3MHW','admin','2026-02-04 22:40:24','active',1,'2026-02-17 00:28:51',NULL,'2026-02-16 18:28:51'), +(28,'ADMIN3','admin3@trimape.com',NULL,'$2b$10$2/.4gSrvmlKq1Vg/9541u.qOw1KtWaOi/ZhIDhgqDXqebUY8CwAbm','admin','2026-02-16 23:03:44','active',1,'2026-02-16 23:03:44',NULL,NULL); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Temporary table structure for view `v_user_person` +-- + +DROP TABLE IF EXISTS `v_user_person`; +/*!50001 DROP VIEW IF EXISTS `v_user_person`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8mb4; +/*!50001 CREATE VIEW `v_user_person` AS SELECT + 1 AS `user_id`, + 1 AS `hr_person_id`, + 1 AS `person_full_name`, + 1 AS `person_status`, + 1 AS `user_name_fallback` */; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `vehicle_movement_data` +-- + +DROP TABLE IF EXISTS `vehicle_movement_data`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_movement_data` ( + `movement_id` int(11) NOT NULL, + `inventory_item_id` int(11) NOT NULL, + `engineer_id` int(11) DEFAULT NULL, + `event_type` enum('SALIDA','DEVOLUCION') NOT NULL, + `checks_snapshot_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`checks_snapshot_json`)), + `contract_ref` varchar(100) DEFAULT NULL, + `time_out` time DEFAULT NULL, + `time_in` time DEFAULT NULL, + `observations` text DEFAULT NULL, + `route_summary` text DEFAULT NULL, + `created_by` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `authorized_drivers_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + PRIMARY KEY (`movement_id`), + KEY `idx_vmd_item` (`inventory_item_id`), + KEY `idx_vmd_engineer` (`engineer_id`), + KEY `idx_vmd_event` (`event_type`,`created_at`), + KEY `fk_vmd_created_by` (`created_by`), + CONSTRAINT `fk_vmd_created_by` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_vmd_engineer` FOREIGN KEY (`engineer_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, + CONSTRAINT `fk_vmd_item` FOREIGN KEY (`inventory_item_id`) REFERENCES `inventory_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vmd_movement` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) ON DELETE CASCADE, + CONSTRAINT `authorized_drivers_json_chk` CHECK (`authorized_drivers_json` is null or json_valid(`authorized_drivers_json`)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_movement_data` +-- + +LOCK TABLES `vehicle_movement_data` WRITE; +/*!40000 ALTER TABLE `vehicle_movement_data` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicle_movement_data` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicle_movement_photos` +-- + +DROP TABLE IF EXISTS `vehicle_movement_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_movement_photos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `movement_id` int(11) NOT NULL, + `slot` enum('TABLERO_SALIDA','TABLERO_REGRESO','LADO_PASAJERO','LADO_CONDUCTOR','EXTRA_1','EXTRA_2','EXTRA_3','EXTRA_4') NOT NULL, + `url` varchar(255) NOT NULL, + `uploaded_by` int(11) DEFAULT NULL, + `uploaded_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uq_vehicle_photo_slot` (`movement_id`,`slot`), + KEY `idx_vehicle_photo_movement` (`movement_id`), + KEY `fk_vmp_uploaded_by` (`uploaded_by`), + CONSTRAINT `fk_vmp_movement` FOREIGN KEY (`movement_id`) REFERENCES `inventory_movements` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vmp_uploaded_by` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_movement_photos` +-- + +LOCK TABLES `vehicle_movement_photos` WRITE; +/*!40000 ALTER TABLE `vehicle_movement_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicle_movement_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicle_state` +-- + +DROP TABLE IF EXISTS `vehicle_state`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicle_state` ( + `inventory_item_id` int(11) NOT NULL, + `unit_number` varchar(50) DEFAULT NULL, + `plates` varchar(20) DEFAULT NULL, + `checks_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`checks_json`)), + `notes` text DEFAULT NULL, + `updated_by` int(11) DEFAULT NULL, + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`inventory_item_id`), + KEY `fk_vehicle_state_updated_by` (`updated_by`), + CONSTRAINT `fk_vehicle_state_item` FOREIGN KEY (`inventory_item_id`) REFERENCES `inventory_items` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_vehicle_state_updated_by` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicle_state` +-- + +LOCK TABLES `vehicle_state` WRITE; +/*!40000 ALTER TABLE `vehicle_state` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicle_state` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vehicles` +-- + +DROP TABLE IF EXISTS `vehicles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vehicles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type` varchar(50) NOT NULL, + `license_plate` varchar(20) NOT NULL, + `status` enum('available','assigned','maintenance') DEFAULT 'available', + `current_mileage` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vehicles` +-- + +LOCK TABLES `vehicles` WRITE; +/*!40000 ALTER TABLE `vehicles` DISABLE KEYS */; +/*!40000 ALTER TABLE `vehicles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vouchers` +-- + +DROP TABLE IF EXISTS `vouchers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8mb4 */; +CREATE TABLE `vouchers` ( + `voucher_id` int(11) NOT NULL AUTO_INCREMENT, + `fund_transaction_id` int(11) NOT NULL, + `file_path` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `date_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`voucher_id`), + KEY `fund_transaction_id` (`fund_transaction_id`), + CONSTRAINT `vouchers_ibfk_1` FOREIGN KEY (`fund_transaction_id`) REFERENCES `fund_transactions` (`transaction_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vouchers` +-- + +LOCK TABLES `vouchers` WRITE; +/*!40000 ALTER TABLE `vouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `vouchers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Final view structure for view `v_user_person` +-- + +/*!50001 DROP VIEW IF EXISTS `v_user_person`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`trimape_admin`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `v_user_person` AS with last_action as (select `h`.`user_id` AS `user_id`,`h`.`person_id` AS `person_id`,`h`.`action` AS `action`,`h`.`happened_at` AS `happened_at` from (`hr_user_assignment_history` `h` join (select `hr_user_assignment_history`.`user_id` AS `user_id`,max(`hr_user_assignment_history`.`happened_at`) AS `max_ts` from `hr_user_assignment_history` group by `hr_user_assignment_history`.`user_id`) `m` on(`m`.`user_id` = `h`.`user_id` and `m`.`max_ts` = `h`.`happened_at`)))select `u`.`id` AS `user_id`,coalesce(`hp_direct`.`id`,case when `la`.`action` = 'ASSIGN' then `hp_hist`.`id` end) AS `hr_person_id`,coalesce(`format_person_name`(`hp_direct`.`first_name`,`hp_direct`.`last_name`),case when `la`.`action` = 'ASSIGN' then `format_person_name`(`hp_hist`.`first_name`,`hp_hist`.`last_name`) end) AS `person_full_name`,coalesce(`hp_direct`.`status`,`hp_hist`.`status`) AS `person_status`,`u`.`name` AS `user_name_fallback` from (((`users` `u` left join `hr_person` `hp_direct` on(`hp_direct`.`user_id` = `u`.`id`)) left join `last_action` `la` on(`la`.`user_id` = `u`.`id`)) left join `hr_person` `hp_hist` on(`hp_hist`.`id` = `la`.`person_id`)) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-03-16 22:54:16 diff --git a/db_backups/update_survey_answers_sp.sql b/db_backups/update_survey_answers_sp.sql new file mode 100644 index 0000000..2dbea1e --- /dev/null +++ b/db_backups/update_survey_answers_sp.sql @@ -0,0 +1,16 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS sp_save_survey_answers$$ +CREATE PROCEDURE sp_save_survey_answers( + IN p_surveyId INT, + IN p_idUser INT, + IN p_engineerName VARCHAR(255), + IN p_rhName VARCHAR(255), + IN p_answers_json JSON +) +BEGIN + INSERT INTO surveys_answers (context_id, id_user, engineer_name, rh_name, snapshot_json) + VALUES (p_surveyId, p_idUser, p_engineerName, p_rhName, p_answers_json); + + SELECT 1 AS success; +END$$ +DELIMITER ; diff --git a/db_backups/update_survey_answers_sp_varchar.sql b/db_backups/update_survey_answers_sp_varchar.sql new file mode 100644 index 0000000..150edcf --- /dev/null +++ b/db_backups/update_survey_answers_sp_varchar.sql @@ -0,0 +1,16 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS sp_save_survey_answers$$ +CREATE PROCEDURE sp_save_survey_answers( + IN p_surveyId VARCHAR(50), + IN p_idUser INT, + IN p_engineerName VARCHAR(255), + IN p_rhName VARCHAR(255), + IN p_answers_json JSON +) +BEGIN + INSERT INTO surveys_answers (context_id, id_user, engineer_name, rh_name, snapshot_json) + VALUES (p_surveyId, p_idUser, p_engineerName, p_rhName, p_answers_json); + + SELECT 1 AS success; +END$$ +DELIMITER ; diff --git a/index.html b/index.html new file mode 100644 index 0000000..eb2d253 --- /dev/null +++ b/index.html @@ -0,0 +1,28 @@ + + + + + Domain Default page + + + + +

What is Plesk

+

+ Plesk is a hosting panel with simple and secure web server, website and web apps management tools. It is specially designed to help web professionals manage web, DNS, mail and other services through a comprehensive and user-friendly GUI. Plesk is about intelligently managing servers, apps, websites and hosting businesses, on both traditional and cloud hosting. +

+

+ Try Plesk Now! +

+ + +

Do you host WordPress sites outside of Plesk? Try WP Guardian - it provides complete visibility into the health of your WordPress websites in one place and keeps them protected with flexible updates management

+ + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..51e3643 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,224 @@ +{ + "name": "api", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "multer": "^1.4.5-lts.1" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..99964d6 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "multer": "^1.4.5-lts.1" + } +} diff --git a/update_sp.sql b/update_sp.sql new file mode 100644 index 0000000..d35e91f --- /dev/null +++ b/update_sp.sql @@ -0,0 +1,184 @@ +DELIMITER $$ +DROP PROCEDURE IF EXISTS `sp_upsert_vehicle_movement_data`$$ + +CREATE DEFINER=`trimape_admin`@`%` PROCEDURE `sp_upsert_vehicle_movement_data`( + IN `p_movement_id` INT, + IN `p_event_type` VARCHAR(20), + IN `p_checks_snapshot_json` JSON, + IN `p_contract_ref` VARCHAR(100), + IN `p_time_out` TIME, + IN `p_time_in` TIME, + IN `p_observations` TEXT, + IN `p_route_summary` TEXT, + IN `p_authorized_drivers_json` LONGTEXT, + IN `p_user_id` INT +) +BEGIN + DECLARE v_item_id INT; + DECLARE v_engineer_id INT; + DECLARE v_item_type VARCHAR(50); + + DECLARE v_prev_drivers LONGTEXT; + DECLARE v_prev_contract VARCHAR(100); + + -- =============================== + -- Validaciones básicas + -- =============================== + IF p_movement_id IS NULL OR p_movement_id <= 0 THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'movement_id inválido'; + END IF; + + IF p_checks_snapshot_json IS NULL OR JSON_VALID(p_checks_snapshot_json) = 0 THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'checks_snapshot_json es requerido y debe ser JSON válido'; + END IF; + + IF p_event_type NOT IN ('SALIDA','DEVOLUCION') THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'event_type inválido'; + END IF; + + -- ELIMINADA: Validación estricta de contrato en SALIDA + -- A partir de ahora es opcional. + + -- Drivers solo pueden venir en SALIDA + IF p_event_type = 'SALIDA' THEN + IF p_authorized_drivers_json IS NOT NULL AND JSON_VALID(p_authorized_drivers_json) = 0 THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'authorized_drivers_json debe ser JSON válido'; + END IF; + END IF; + + -- =============================== + -- Resolver movimiento → vehículo + -- =============================== + SELECT m.item_id, m.engineer_id, i.type + INTO v_item_id, v_engineer_id, v_item_type + FROM inventory_movements m + JOIN inventory_items i ON i.id = m.item_id + WHERE m.id = p_movement_id + LIMIT 1; + + IF v_item_id IS NULL THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'Movimiento no existe'; + END IF; + + IF v_item_type <> 'vehículo' THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'Este movimiento no corresponde a un vehículo'; + END IF; + + -- =============================== + -- Resolver heredados en DEVOLUCION + -- =============================== + SET v_prev_drivers = NULL; + SET v_prev_contract = NULL; + + IF p_event_type = 'DEVOLUCION' THEN + -- Heredar drivers de la última SALIDA del mismo vehículo + SELECT vmd.authorized_drivers_json + INTO v_prev_drivers + FROM vehicle_movement_data vmd + WHERE vmd.inventory_item_id = v_item_id + AND vmd.event_type = 'SALIDA' + AND vmd.authorized_drivers_json IS NOT NULL + ORDER BY vmd.created_at DESC + LIMIT 1; + + -- Heredar contrato de la última SALIDA del mismo vehículo (ya no validamos que no sea N/A) + SELECT vmd.contract_ref + INTO v_prev_contract + FROM vehicle_movement_data vmd + WHERE vmd.inventory_item_id = v_item_id + AND vmd.event_type = 'SALIDA' + ORDER BY vmd.created_at DESC + LIMIT 1; + + -- Si no hay SALIDA previa, fallar + IF v_prev_contract IS NULL AND NOT EXISTS ( + SELECT 1 FROM vehicle_movement_data + WHERE inventory_item_id = v_item_id AND event_type = 'SALIDA' + ) THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'No existe salida previa para esta DEVOLUCION'; + END IF; + END IF; + + -- =============================== + -- Bitácora (histórico) + -- =============================== + INSERT INTO vehicle_movement_data ( + movement_id, + inventory_item_id, + engineer_id, + event_type, + checks_snapshot_json, + contract_ref, + time_out, + time_in, + observations, + route_summary, + authorized_drivers_json, + created_by + ) + VALUES ( + p_movement_id, + v_item_id, + v_engineer_id, + p_event_type, + p_checks_snapshot_json, + + CASE + WHEN p_event_type = 'SALIDA' THEN p_contract_ref + ELSE v_prev_contract + END, + + p_time_out, + p_time_in, + p_observations, + p_route_summary, + + CASE + WHEN p_event_type = 'SALIDA' THEN p_authorized_drivers_json + ELSE v_prev_drivers + END, + + p_user_id + ) + ON DUPLICATE KEY UPDATE + event_type = VALUES(event_type), + checks_snapshot_json = VALUES(checks_snapshot_json), + contract_ref = VALUES(contract_ref), + time_out = VALUES(time_out), + time_in = VALUES(time_in), + observations = VALUES(observations), + route_summary = VALUES(route_summary), + authorized_drivers_json = VALUES(authorized_drivers_json), + updated_at = CURRENT_TIMESTAMP; + + -- =============================== + -- Estado vivo del vehículo (SIN contract_ref) + -- =============================== + INSERT INTO vehicle_state ( + inventory_item_id, + checks_json, + notes, + updated_by + ) + VALUES ( + v_item_id, + p_checks_snapshot_json, + p_observations, + p_user_id + ) + ON DUPLICATE KEY UPDATE + checks_json = VALUES(checks_json), + notes = VALUES(notes), + updated_by = VALUES(updated_by), + updated_at = CURRENT_TIMESTAMP; + + SELECT p_movement_id AS movement_id; +END$$ +DELIMITER ;