[encoded data, 144268 characters]','https://verificacfdi.facturaelectronica.sat.gob.mx/verificaccp/default.aspx?IdCCP=CCCe8881-14b5-41cc-b91a-a385b93547a5&FechaOrig=2026-04-16T10:20:51&FechaTimb=2026-04-20T15:30:27','REM',5,NULL,NULL,NULL,NULL,'CCCe8881-14b5-41cc-b91a-a385b93547a5','No',2290,'01','01','No');
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_before_insert` BEFORE INSERT ON `remisiones`
 FOR EACH ROW BEGIN

   DECLARE vFolio INT(11);
   DECLARE vSerie VARCHAR(3);

      SELECT gf_remisiones(NEW.sucursales_id) INTO vFolio;

      SELECT gs_remisiones(NEW.sucursales_id) INTO vSerie;

      SET NEW.remision = CONCAT(vSerie, vFolio);

      SET NEW.fecha_hora = NOW();

	  SET NEW.serie = vSerie;
      SET NEW.folio = vFolio;
      
      SET NEW.existen_autopistas = 0;
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_after_insert` AFTER INSERT ON `remisiones`
 FOR EACH ROW BEGIN 
  DECLARE lidremision_return INT(11);
  DECLARE total_abonos FLOAT ;
  DECLARE total_abonos_contenedor FLOAT ;
  
  SELECT conceptos_cobro_from_remision(NEW.id) INTO lidremision_return ;
  
	IF (NEW.solicitudes_servicio_id IS NOT NULL) THEN 
    	UPDATE solicitudes_servicio SET solicitudes_servicio.remisiones_id = NEW.id, solicitudes_servicio.estatus='En Remision' 
        WHERE solicitudes_servicio.id = NEW.solicitudes_servicio_id; 
    END IF; 
    
    IF (NEW.monitoreo_contenedores = "Con Monitoreo") THEN
    	IF (NEW.numero_contenedor_a IS NOT NULL AND NEW.numero_contenedor_a <> '') THEN
        	INSERT INTO monitoreo_contenedores (remisiones_id, numero_contenedor, estatus) VALUES (NEW.id, NEW.numero_contenedor_a, 'Inicio Monitoreo');
        END IF;
        IF (NEW.numero_contenedor_b IS NOT NULL AND NEW.numero_contenedor_b <> '') THEN
        	INSERT INTO monitoreo_contenedores (remisiones_id, numero_contenedor, estatus) VALUES (NEW.id, NEW.numero_contenedor_b, 'Inicio Monitoreo');
        END IF;
    	 
    END IF;

  SET total_abonos = 0 ;
  SELECT COALESCE(SUM(remisiones.egresos_prestamos_descontado)) INTO total_abonos
   FROM remisiones
   WHERE remisiones.lq_prestamos_operadores_id = NEW.lq_prestamos_operadores_id
   			AND remisiones.id <> NEW.id
            AND remisiones.estatus <> 'Cancelada' ;
  
  SELECT COALESCE(total_abonos, 0) + COALESCE(NEW.egresos_prestamos_descontado,0) INTO total_abonos ; 

 UPDATE prestamos_operadores 
     SET prestamos_operadores.abonado = total_abonos,
         prestamos_operadores.saldo = prestamos_operadores.importe - total_abonos
     WHERE prestamos_operadores.id = NEW.lq_prestamos_operadores_id ;
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_before_update` BEFORE UPDATE ON `remisiones`
 FOR EACH ROW BEGIN
	IF (NEW.existen_autopistas IS NULL AND OLD.existen_autopistas IS NOT NULL) THEN
    	SET NEW.existen_autopistas = OLD.existen_autopistas;
    END IF;
    
	IF (NEW.lq_estatus='Autorizada' AND OLD.lq_estatus <> 'Autorizada') THEN
    	SET NEW.estatus='Terminado';
        IF(NEW.monitoreo='Con Monitoreo') THEN
        	INSERT INTO eventos_monitoreo (remisiones_id, estatus_monitoreo_id) VALUES (NEW.id, 23);
        END IF;
        
    END IF;
    IF (NEW.facturas_id IS NULL AND OLD.facturas_id IS NOT NULL) THEN
    	IF EXISTS (SELECT * FROM facturas_remisiones WHERE facturas_remisiones.remisiones_id=NEW.id) THEN
        	SET NEW.facturas_id=OLD.facturas_id;
        END IF;
    END IF;
    IF (NEW.facturas_id IS NOT NULL AND OLD.facturas_id IS NULL) THEN
    	IF NOT EXISTS (SELECT * FROM facturas_remisiones WHERE facturas_remisiones.remisiones_id=NEW.id) THEN
        	SET NEW.facturas_id=OLD.facturas_id;
        END IF;
    END IF;
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_after_update` AFTER UPDATE ON `remisiones`
 FOR EACH ROW BEGIN 
    DECLARE total_abonos FLOAT ;
       
	IF (NEW.solicitudes_servicio_id IS NOT NULL) THEN 
    	UPDATE solicitudes_servicio SET solicitudes_servicio.remisiones_id = NEW.id, solicitudes_servicio.estatus='En Remision' 
        WHERE solicitudes_servicio.id = NEW.solicitudes_servicio_id; 
    ELSE
    	IF (OLD.solicitudes_servicio_id IS NOT NULL) THEN
    		UPDATE solicitudes_servicio SET solicitudes_servicio.remisiones_id = null, solicitudes_servicio.estatus='Capturada' 
       		WHERE solicitudes_servicio.id = OLD.solicitudes_servicio_id;
        END IF;
    END IF; 
    
    IF (NEW.monitoreo_contenedores = "Con Monitoreo" AND OLD.monitoreo_contenedores = "Sin Monitoreo") THEN
    	IF (NEW.numero_contenedor_a IS NOT NULL AND NEW.numero_contenedor_a <> '') THEN
        	INSERT INTO monitoreo_contenedores (remisiones_id, numero_contenedor, estatus) VALUES (NEW.id, NEW.numero_contenedor_a, 'Inicio Monitoreo');
        END IF;
        IF (NEW.numero_contenedor_b IS NOT NULL AND NEW.numero_contenedor_b <> '') THEN
        	INSERT INTO monitoreo_contenedores (remisiones_id, numero_contenedor, estatus) VALUES (NEW.id, NEW.numero_contenedor_b, 'Inicio Monitoreo');
        END IF;
    END IF;
        
    IF (NEW.lq_estatus = 'Autorizada') THEN
    	UPDATE remisiones_combustibles_detalle SET remisiones_combustibles_detalle.estatus='Autorizado' WHERE remisiones_combustibles_detalle.remisiones_id = NEW.id AND remisiones_combustibles_detalle.estatus NOT IN ('Cancelado', 'Cancelada', 'Autorizado');
        UPDATE remisiones_egresos_detalle SET remisiones_egresos_detalle.estatus='Autorizado' WHERE remisiones_egresos_detalle.remisiones_id = NEW.id AND remisiones_egresos_detalle.estatus NOT IN ('Cancelado', 'Cancelada', 'Autorizado');
        UPDATE remisiones_conceptos_cobro_gastos SET remisiones_conceptos_cobro_gastos.estatus='Autorizado' WHERE remisiones_conceptos_cobro_gastos.remisiones_id = NEW.id AND remisiones_conceptos_cobro_gastos.estatus NOT IN ('Cancelado', 'Cancelada', 'Autorizado');
    END IF;
    
   SET total_abonos = 0 ;

   		SELECT COALESCE(SUM(remisiones.egresos_prestamos_descontado), 0) INTO total_abonos
   			FROM remisiones
   			WHERE remisiones.lq_prestamos_operadores_id = NEW.lq_prestamos_operadores_id AND
   					remisiones.id <> NEW.id AND remisiones.estatus <> 'Cancelada' ;

	   	SELECT COALESCE(total_abonos, 0) + COALESCE(NEW.egresos_prestamos_descontado,0) INTO total_abonos ;

		UPDATE prestamos_operadores
			SET prestamos_operadores.abonado = total_abonos, prestamos_operadores.saldo = prestamos_operadores.importe - total_abonos
			WHERE prestamos_operadores.id = COALESCE(NEW.lq_prestamos_operadores_id, OLD.lq_prestamos_operadores_id) ;
    
    IF (NEW.estatus_monitoreo_id <> OLD.estatus_monitoreo_id) THEN
    	INSERT INTO eventos_monitoreo (remisiones_id, estatus_monitoreo_id, estatus_monitoreo_anterior_id) VALUES (NEW.id, NEW.estatus_monitoreo_id, OLD.estatus_monitoreo_id);
    END IF;
    
    IF (NEW.estatus="Cancelado") THEN
    	UPDATE solicitudes_servicio SET solicitudes_servicio.remisiones_id = NULL, solicitudes_servicio.estatus='Capturada' 
        WHERE solicitudes_servicio.id = NEW.solicitudes_servicio_id;
    END IF;
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_after_delete` AFTER DELETE ON `remisiones`
 FOR EACH ROW BEGIN 
   DECLARE total_abonos FLOAT ;
   SET total_abonos = 0 ;

      SELECT COALESCE(SUM(remisiones.egresos_prestamos_descontado), 0) INTO total_abonos
        FROM remisiones
        WHERE remisiones.prestamos_operadores_id = OLD.lq_prestamos_operadores_id AND
            remisiones.id <> OLD.id AND remisiones.estatus <> 'Cancelada' ;

      SELECT COALESCE(total_abonos, 0) INTO total_abonos ;
      
    UPDATE prestamos_operadores
      SET prestamos_operadores.abonado = total_abonos, prestamos_operadores.saldo = prestamos_operadores.importe - total_abonos
      WHERE prestamos_operadores.id = OLD.lq_prestamos_operadores_id ;

END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_archivos`
--

CREATE TABLE `remisiones_archivos` (
  `nombre` varchar(60) NOT NULL,
  `ubicacion` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_archivos`
--


--
-- Table structure for table `remisiones_casetas_electronicas`
--

CREATE TABLE `remisiones_casetas_electronicas` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `codigo` varchar(50) DEFAULT NULL,
  `unidades_id` int(11) NOT NULL,
  `fecha` date DEFAULT NULL,
  `hora` time DEFAULT NULL,
  `caseta` varchar(50) DEFAULT NULL,
  `importe` decimal(11,2) NOT NULL,
  `remisiones_id` int(11) DEFAULT NULL,
  `estatus` varchar(20) NOT NULL DEFAULT 'Capturada',
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_duplicate` (`codigo`,`unidades_id`,`fecha`,`hora`,`caseta`,`importe`) USING BTREE,
  KEY `unidades_id` (`unidades_id`),
  KEY `remisiones_id` (`remisiones_id`),
  CONSTRAINT `remisiones_casetas_electronicas_ibfk_1` FOREIGN KEY (`unidades_id`) REFERENCES `unidades` (`id`),
  CONSTRAINT `remisiones_casetas_electronicas_ibfk_2` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_casetas_electronicas`
--

INSERT INTO `remisiones_casetas_electronicas` VALUES (1,'IMDM27122462..',1,'2025-06-22','11:01:00','ARMERIA VIAPASS',590.00,1,'Capturada'),(2,'IMDM27122462..',1,'2025-06-22','10:00:00','SAN MARCOS II',302.00,1,'Capturada'),(3,'IMDM27122462..',1,'2025-06-22','09:01:00','SAYULA',132.00,1,'Capturada'),(4,'IMDM27122462..',1,'2025-06-22','09:00:00','ACATLAN II',171.00,1,'Capturada'),(5,'IMDM27122462..',1,'2025-06-21','14:01:00','TEPATITLAN',425.00,1,'Capturada'),(6,'IMDM27122462..',1,'2025-06-21','14:00:00','TEPATITLAN',82.00,1,'Capturada'),(7,'IMDM27122462..',1,'2025-06-21','13:02:00','JALOSTOTITLAN',502.00,1,'Capturada'),(8,'IMDM27122462..',1,'2025-06-21','12:01:00','LAGOS DE MORENO',403.00,1,'Capturada'),(9,'IMDM27122462..',1,'2025-06-21','09:01:00','LIB. PTE. S.L.P.',226.00,1,'Capturada'),(10,'IMDM27122462..',1,'2025-06-21','05:01:00','LIB. PTE. S.L.P.',227.00,1,'Capturada'),(11,'IMDM27122462..',1,'2025-06-20','14:02:00','LAGOS DE MORENO',403.00,1,'Capturada'),(12,'IMDM27122462..',1,'2025-06-20','13:00:00','JALOSTOTITLAN',502.00,1,'Capturada'),(13,'IMDM27122462..',1,'2025-06-20','12:02:00','TEPATITLAN',638.00,1,'Capturada'),(14,'IMDM27122462..',1,'2025-06-20','12:00:00','LIB. SUR DE GUAD.',175.00,1,'Capturada'),(15,'IMDM27122462..',1,'2025-06-20','11:01:00','CHAPALA',217.00,1,'Capturada'),(16,'IMDM27122462..',1,'2025-06-20','10:02:00','ACATLAN II',285.00,1,'Capturada'),(17,'IMDM27122462..',1,'2025-06-20','09:02:00','SAYULA',213.00,1,'Capturada'),(18,'IMDM27122462..',1,'2025-06-20','08:02:00','SAN MARCOS II',499.00,1,'Capturada'),(19,'IMDM27122462..',1,'2025-06-20','04:02:00','ARMERIA VIAPASS',662.00,1,'Capturada'),(20,'IMDM27122462..',3,'2025-06-22','11:01:00','ARMERIA VIAPASS',590.00,2,'Capturada'),(21,'IMDM27122462..',3,'2025-06-22','10:00:00','SAN MARCOS II',302.00,2,'Capturada'),(22,'IMDM27122462..',3,'2025-06-22','09:01:00','SAYULA',132.00,2,'Capturada'),(23,'IMDM27122462..',3,'2025-06-22','09:00:00','ACATLAN II',171.00,2,'Capturada'),(24,'IMDM27122462..',3,'2025-06-21','14:01:00','TEPATITLAN',425.00,2,'Capturada'),(25,'IMDM27122462..',3,'2025-06-21','14:00:00','TEPATITLAN',82.00,2,'Capturada'),(26,'IMDM27122462..',3,'2025-06-21','13:02:00','JALOSTOTITLAN',502.00,2,'Capturada'),(27,'IMDM27122462..',3,'2025-06-21','12:01:00','LAGOS DE MORENO',403.00,2,'Capturada'),(28,'IMDM27122462..',3,'2025-06-21','09:01:00','LIB. PTE. S.L.P.',226.00,2,'Capturada'),(29,'IMDM27122462..',3,'2025-06-21','05:01:00','LIB. PTE. S.L.P.',227.00,2,'Capturada'),(30,'IMDM27122462..',3,'2025-06-20','14:02:00','LAGOS DE MORENO',403.00,2,'Capturada'),(31,'IMDM27122462..',3,'2025-06-20','13:00:00','JALOSTOTITLAN',502.00,2,'Capturada'),(32,'IMDM27122462..',3,'2025-06-20','12:02:00','TEPATITLAN',638.00,2,'Capturada'),(33,'IMDM27122462..',3,'2025-06-20','12:00:00','LIB. SUR DE GUAD.',175.00,2,'Capturada'),(34,'IMDM27122462..',3,'2025-06-20','11:01:00','CHAPALA',217.00,2,'Capturada'),(35,'IMDM27122462..',3,'2025-06-20','10:02:00','ACATLAN II',285.00,2,'Capturada'),(36,'IMDM27122462..',3,'2025-06-20','09:02:00','SAYULA',213.00,2,'Capturada'),(37,'IMDM27122462..',3,'2025-06-20','08:02:00','SAN MARCOS II',499.00,2,'Capturada'),(38,'IMDM27122462..',3,'2025-06-20','04:02:00','ARMERIA VIAPASS',662.00,2,'Capturada'),(39,'IMDM27122462..',7,'2025-06-22','11:01:00','ARMERIA VIAPASS',590.00,3,'Capturada'),(40,'IMDM27122462..',7,'2025-06-22','10:00:00','SAN MARCOS II',302.00,3,'Capturada'),(41,'IMDM27122462..',7,'2025-06-22','09:01:00','SAYULA',132.00,3,'Capturada'),(42,'IMDM27122462..',7,'2025-06-22','09:00:00','ACATLAN II',171.00,3,'Capturada'),(43,'IMDM27122462..',7,'2025-06-21','14:01:00','TEPATITLAN',425.00,3,'Capturada'),(44,'IMDM27122462..',7,'2025-06-21','14:00:00','TEPATITLAN',82.00,3,'Capturada'),(45,'IMDM27122462..',7,'2025-06-21','13:02:00','JALOSTOTITLAN',502.00,3,'Capturada'),(46,'IMDM27122462..',7,'2025-06-21','12:01:00','LAGOS DE MORENO',403.00,3,'Capturada'),(47,'IMDM27122462..',7,'2025-06-21','09:01:00','LIB. PTE. S.L.P.',226.00,3,'Capturada'),(48,'IMDM27122462..',7,'2025-06-21','05:01:00','LIB. PTE. S.L.P.',227.00,3,'Capturada'),(49,'IMDM27122462..',7,'2025-06-20','14:02:00','LAGOS DE MORENO',403.00,3,'Capturada'),(50,'IMDM27122462..',7,'2025-06-20','13:00:00','JALOSTOTITLAN',502.00,3,'Capturada'),(51,'IMDM27122462..',7,'2025-06-20','12:02:00','TEPATITLAN',638.00,3,'Capturada'),(52,'IMDM27122462..',7,'2025-06-20','12:00:00','LIB. SUR DE GUAD.',175.00,3,'Capturada'),(53,'IMDM27122462..',7,'2025-06-20','11:01:00','CHAPALA',217.00,3,'Capturada'),(54,'IMDM27122462..',7,'2025-06-20','10:02:00','ACATLAN II',285.00,3,'Capturada'),(55,'IMDM27122462..',7,'2025-06-20','09:02:00','SAYULA',213.00,3,'Capturada'),(56,'IMDM27122462..',7,'2025-06-20','08:02:00','SAN MARCOS II',499.00,3,'Capturada'),(57,'IMDM27122462..',7,'2025-06-20','04:02:00','ARMERIA VIAPASS',662.00,3,'Capturada');
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `casetas_electronicas_after_insert` AFTER INSERT ON `remisiones_casetas_electronicas`
 FOR EACH ROW BEGIN
DECLARE vtotalcasetas decimal(11,2) ;

SELECT sum(remisiones_casetas_electronicas.importe) INTO vtotalcasetas from remisiones_casetas_electronicas where remisiones_casetas_electronicas.remisiones_id=NEW.remisiones_id;

update remisiones set remisiones.total_iave=vtotalcasetas where remisiones.id=NEW.remisiones_id;

END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_combustibles_detalle`
--

CREATE TABLE `remisiones_combustibles_detalle` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) DEFAULT NULL,
  `combustible` varchar(20) DEFAULT NULL,
  `fecha_hora` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `tipo_vale` varchar(20) DEFAULT NULL,
  `compras_administrativos_id` int(11) DEFAULT NULL,
  `estatus` varchar(20) NOT NULL,
  `km_hrs_previo` int(11) DEFAULT NULL,
  `km_hrs` int(11) DEFAULT NULL,
  `rendimiento_vale` decimal(11,2) DEFAULT NULL,
  `conceptos_cobro_egresos_id` int(11) DEFAULT NULL,
  `lleva_urea` varchar(3) DEFAULT NULL COMMENT '¿Lleva Urea?',
  `proveedores_id` int(11) NOT NULL,
  `gasolinera_folio` varchar(20) DEFAULT NULL,
  `litros` decimal(11,2) NOT NULL,
  `precio_litro` decimal(11,2) NOT NULL,
  `importe_combustible` decimal(11,2) NOT NULL,
  `litros_urea` decimal(11,2) DEFAULT NULL,
  `precio_litro_urea` decimal(11,2) DEFAULT NULL,
  `importe_urea` decimal(11,2) DEFAULT NULL,
  `importe` decimal(11,2) NOT NULL,
  `fecha_cancelacion` date DEFAULT NULL,
  `causas_cancelacion_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `remisiones_id` (`remisiones_id`),
  KEY `causas_cancelacion_id` (`causas_cancelacion_id`),
  KEY `combustible` (`combustible`),
  KEY `fecha_hora` (`fecha_hora`),
  KEY `tipo_vale` (`tipo_vale`),
  KEY `estatus` (`estatus`),
  KEY `proveedores_id` (`proveedores_id`) USING BTREE,
  KEY `compras_administrativos_id` (`compras_administrativos_id`) USING BTREE,
  KEY `conceptos_cobro_egresos_id` (`conceptos_cobro_egresos_id`),
  CONSTRAINT `remisiones_combustibles_detalle_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`),
  CONSTRAINT `remisiones_combustibles_detalle_ibfk_2` FOREIGN KEY (`compras_administrativos_id`) REFERENCES `compras_administrativos` (`id`),
  CONSTRAINT `remisiones_combustibles_detalle_ibfk_3` FOREIGN KEY (`conceptos_cobro_egresos_id`) REFERENCES `conceptos_cobro_egresos` (`id`),
  CONSTRAINT `remisiones_combustibles_detalle_ibfk_4` FOREIGN KEY (`proveedores_id`) REFERENCES `proveedores` (`id`),
  CONSTRAINT `remisiones_combustibles_detalle_ibfk_5` FOREIGN KEY (`causas_cancelacion_id`) REFERENCES `causas_cancelacion` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_combustibles_detalle`
--

INSERT INTO `remisiones_combustibles_detalle` VALUES (1,1,'CMB1','2025-10-30 00:26:43','Credito',NULL,'Autorizado',1,1000,14.27,5,'Si',2,'JR32654',40.00,24.00,960.00,30.00,24.00,720.00,1680.00,NULL,NULL),(2,2,'CMB2','2025-11-04 20:27:10','Credito',NULL,'Autorizado',1,280,2.79,5,'Si',2,'FJ1879',75.00,26.14,1960.50,25.00,25.00,625.00,2585.50,NULL,NULL),(3,3,'SCB1','2025-11-04 23:34:36','Credito',NULL,'Capturado',1,100,0.83,5,'Si',2,'',100.00,20.00,2000.00,20.00,25.00,500.00,2500.00,NULL,NULL),(4,7,'SCB2','2026-02-20 18:49:59','Credito',NULL,'Autorizado',100,1000,7.50,5,'Si',2,'',80.00,24.00,1920.00,40.00,24.00,960.00,2880.00,NULL,NULL);
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_combustibles_detalle_before_insert` BEFORE INSERT ON `remisiones_combustibles_detalle`
 FOR EACH ROW BEGIN

   DECLARE vFolio INT(11);
   DECLARE vSerie VARCHAR(3);
   DECLARE idsucursal INT(11);
   
      SELECT remisiones.sucursales_id INTO idsucursal FROM remisiones WHERE remisiones.id=NEW.remisiones_id;

      SELECT gf_combustibles(idsucursal) INTO vFolio;

      SELECT gs_combustibles(idsucursal) INTO vSerie;

	  SET NEW.combustible = CONCAT(vSerie, vFolio);
      SET NEW.fecha_hora = SYSDATE();

	IF (NEW.estatus = 'Autorizado') THEN
    	SET NEW.estatus='Capturado';
    END IF;
    
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_combustibles_kms_unidad_insert` AFTER INSERT ON `remisiones_combustibles_detalle`
 FOR EACH ROW UPDATE unidades LEFT JOIN remisiones r ON r.id = NEW.remisiones_id SET unidades.kilometros = (SELECT max(a.km_hrs) FROM remisiones_combustibles_detalle as a LEFT JOIN remisiones as b ON b.id=a.remisiones_id WHERE a.estatus='Autorizado' AND b.unidades_id=unidades.id) WHERE unidades.id = r.unidades_id AND r.id=NEW.remisiones_id */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_combustibles_detalle_after_insert` AFTER INSERT ON `remisiones_combustibles_detalle` FOR EACH ROW BEGIN
	UPDATE remisiones SET estatus='Transito' WHERE remisiones.id=NEW.id AND remisiones.estatus NOT IN ('Terminado', 'Cancelado');
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_combustibles_detalle_after_update` AFTER UPDATE ON `remisiones_combustibles_detalle`
 FOR EACH ROW BEGIN
    DECLARE id_gasolinera INT(11);
    DECLARE id_producto INT(11);
    DECLARE id_producto_urea INT(11);
    DECLARE existencia_actual DECIMAL(11,2);
    DECLARE costo_actual DECIMAL(11,2);
    DECLARE folio_remision VARCHAR(20);
    DECLARE unidad VARCHAR(100);
    
    UPDATE unidades LEFT JOIN remisiones r ON r.id = NEW.remisiones_id SET unidades.kilometros = (SELECT max(a.km_hrs) FROM remisiones_combustibles_detalle as a LEFT JOIN remisiones as b ON b.id=a.remisiones_id WHERE a.estatus='Autorizado' AND b.unidades_id=unidades.id) WHERE unidades.id = r.unidades_id AND r.id=NEW.remisiones_id;
    
    IF(NEW.estatus LIKE 'Autorizado' AND OLD.estatus LIKE 'Capturado') THEN
        SELECT COALESCE(p.valor,1) FROM parametros p WHERE p.parametro='id_gasolinera_autoconsumo' INTO id_gasolinera;

        SELECT COALESCE(p.valor,1) FROM parametros p WHERE p.parametro='id_producto_autoconsumo' INTO id_producto;
        
        SELECT COALESCE(p.valor,1) FROM parametros p WHERE p.parametro='id_producto_autoconsumo_urea' INTO id_producto_urea;
    
        SELECT COALESCE(p.existencia_producto,0), COALESCE(p.costo,0) FROM conceptos_cobro_egresos p WHERE p.id=id_producto INTO existencia_actual, costo_actual;
        
        SELECT r.remision, u.unidad FROM remisiones r LEFT JOIN unidades u ON u.id=r.unidades_id WHERE r.id=NEW.remisiones_id INTO folio_remision, unidad;
        
        IF(NEW.proveedores_id = id_gasolinera) THEN
        	IF (NEW.conceptos_cobro_egresos_id=id_producto) THEN
            	UPDATE conceptos_cobro_egresos p SET p.existencia_producto = (COALESCE(p.existencia_producto,0) - NEW.litros) WHERE p.id = id_producto;
            ELSEIF (NEW.conceptos_cobro_egresos_id=id_producto_urea) THEN
            	UPDATE conceptos_cobro_egresos p SET p.existencia_producto = (COALESCE(p.existencia_producto,0) - NEW.litros) WHERE p.id = id_producto_urea;
        	END IF;
        
            INSERT INTO autoconsumo_saldos (movimiento, razon_social, folio, remision, existencia_anterior, costo_producto, existencia_deposito, existencia_retiro, existencia_final, tipo_operacion, proveedores_id) VALUES ('Vale de Combustible', unidad, NEW.combustible, folio_remision, existencia_actual, costo_actual, 0.00, NEW.litros, (existencia_actual - NEW.litros), 'Autoconsumo', NEW.proveedores_id );
        
        END IF;
    END IF;   
    
    IF(NEW.estatus LIKE 'Cancelado' AND OLD.estatus LIKE 'Autorizado') THEN
        SELECT COALESCE(p.valor,1) FROM parametros p WHERE p.parametro='id_gasolinera_autoconsumo' INTO id_gasolinera;

        SELECT COALESCE(p.valor,1) FROM parametros p WHERE p.parametro='id_producto_autoconsumo' INTO id_producto;
    
        SELECT COALESCE(p.existencia_producto,0), COALESCE(p.costo,0) FROM conceptos_cobro_egresos p WHERE p.id=id_producto INTO existencia_actual, costo_actual;
        
        SELECT r.remision, u.unidad FROM remisiones r LEFT JOIN unidades u ON u.id=r.unidades_id WHERE r.id=NEW.remisiones_id INTO folio_remision, unidad;
        
        IF(NEW.proveedores_id = id_gasolinera) THEN
        	IF (NEW.conceptos_cobro_egresos_id=id_producto) THEN
            	UPDATE conceptos_cobro_egresos p SET p.existencia_producto = (COALESCE(p.existencia_producto,0) + NEW.litros) WHERE p.id = id_producto;
            ELSEIF (NEW.conceptos_cobro_egresos_id=id_producto_urea) THEN
            	UPDATE conceptos_cobro_egresos p SET p.existencia_producto = (COALESCE(p.existencia_producto,0) + NEW.litros) WHERE p.id = id_producto_urea;
            END IF;
        
            INSERT INTO autoconsumo_saldos (movimiento, razon_social, folio, remision, existencia_anterior, costo_producto, existencia_deposito, existencia_retiro, existencia_final, tipo_operacion, proveedores_id) VALUES ('Cancelacion Vale de Combustible', unidad, NEW.combustible, folio_remision, existencia_actual, costo_actual, NEW.litros, 0.00, (existencia_actual + NEW.litros), 'Autoconsumo', NEW.proveedores_id );
        
        END IF;
    END IF; 
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_combustibles_detalle_after_delete` AFTER DELETE ON `remisiones_combustibles_detalle`
 FOR EACH ROW BEGIN

	UPDATE unidades LEFT JOIN remisiones r ON r.id = OLD.remisiones_id SET unidades.kilometros = (SELECT max(a.km_hrs) FROM remisiones_combustibles_detalle as a LEFT JOIN remisiones as b ON b.id=a.remisiones_id WHERE a.estatus='Autorizado' AND b.unidades_id=unidades.id) WHERE unidades.id = r.unidades_id AND r.id=OLD.remisiones_id;

END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_comprobaciones`
--

CREATE TABLE `remisiones_comprobaciones` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fecha_hora` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `remisiones_id` int(11) NOT NULL,
  `conceptos_cobro_liquidaciones_id` int(11) NOT NULL,
  `comentarios` varchar(200) DEFAULT NULL,
  `litros` decimal(11,2) DEFAULT NULL,
  `importe` decimal(11,2) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `remisiones_id` (`remisiones_id`),
  KEY `conceptos_cobro_liquidaciones_id` (`conceptos_cobro_liquidaciones_id`) USING BTREE,
  CONSTRAINT `remisiones_comprobaciones_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`),
  CONSTRAINT `remisiones_comprobaciones_ibfk_2` FOREIGN KEY (`conceptos_cobro_liquidaciones_id`) REFERENCES `conceptos_cobro_liquidaciones` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_comprobaciones`
--

INSERT INTO `remisiones_comprobaciones` VALUES (1,'2025-10-30 00:42:10',1,9,'',0.00,500.00),(2,'2025-10-30 00:42:41',1,6,'',0.00,250.00),(4,'2025-11-04 23:20:48',2,6,'',0.00,252.00),(5,'2025-11-04 23:54:14',3,9,'',0.00,800.00),(6,'2025-11-04 23:54:37',3,12,'',0.00,220.00),(7,'2025-11-04 23:56:33',3,36,'',0.00,350.00),(8,'2026-01-19 17:39:06',5,9,'',0.00,500.00),(9,'2026-01-19 17:39:23',5,12,'COMIDA',0.00,150.00),(10,'2026-02-04 21:17:18',6,9,'',0.00,500.00),(11,'2026-02-04 21:17:38',6,12,'COMIDA',0.00,150.00),(12,'2026-02-20 18:51:18',7,12,'',0.00,250.00),(13,'2026-02-20 18:51:31',7,1,'',0.00,1250.00),(14,'2026-02-20 18:51:40',7,9,'',0.00,500.00),(15,'2026-03-03 18:04:59',7,6,'',0.00,250.00);

--
-- Table structure for table `remisiones_conceptos_cobro`
--

CREATE TABLE `remisiones_conceptos_cobro` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) NOT NULL,
  `cantidad_concepto` decimal(11,2) NOT NULL,
  `conceptos_cobro_id` int(11) NOT NULL,
  `descripcion` varchar(200) DEFAULT NULL,
  `valor_unitario` decimal(11,2) NOT NULL,
  `porc_iva` int(11) DEFAULT NULL,
  `porc_retencion` decimal(11,2) DEFAULT NULL,
  `importe` decimal(11,2) DEFAULT NULL,
  `subtotal` decimal(11,2) DEFAULT NULL,
  `iva` decimal(11,2) DEFAULT NULL,
  `retencion` decimal(11,2) DEFAULT NULL,
  `total` decimal(11,2) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `remisiones_id` (`remisiones_id`),
  KEY `conceptos_cobro_id` (`conceptos_cobro_id`) USING BTREE,
  CONSTRAINT `remisiones_conceptos_cobro_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`),
  CONSTRAINT `remisiones_conceptos_cobro_ibfk_2` FOREIGN KEY (`conceptos_cobro_id`) REFERENCES `conceptos_cobro` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_conceptos_cobro`
--

INSERT INTO `remisiones_conceptos_cobro` VALUES (1,1,1.00,9,'',15000.00,16,4.00,15000.00,15000.00,2400.00,600.00,16800.00),(3,2,1.00,21,'',10000.00,0,0.00,10000.00,10000.00,0.00,0.00,10000.00),(4,3,1.00,21,'FLETE',10000.00,0,0.00,10000.00,10000.00,0.00,0.00,10000.00),(5,4,1.00,9,'',15.00,16,4.00,15.00,15.00,2.40,0.00,17.40),(6,4,1.00,10,'ESTADIA',1000.00,16,0.00,1000.00,1000.00,160.00,0.00,1160.00),(7,3,1.00,22,'FLETE',15000.00,16,0.00,15000.00,15000.00,2400.00,0.00,17400.00),(8,5,1.00,21,'FLETE',15000.00,0,0.00,15000.00,15000.00,0.00,0.00,15000.00),(9,6,1.00,9,'',1.00,16,4.00,1.00,1.00,0.16,0.00,1.16),(10,7,1.00,21,'FLETE',24000.00,0,0.00,24000.00,24000.00,0.00,0.00,24000.00),(11,2,1.00,21,'',1000.00,0,0.00,1000.00,1000.00,0.00,0.00,1000.00),(13,8,1.00,9,'',12586.00,16,4.00,12586.00,12586.00,2013.76,0.00,14599.76),(14,9,1.00,9,NULL,15800.00,16,4.00,15800.00,15800.00,2528.00,632.00,17696.00),(15,10,1.00,9,'',15800.00,16,4.00,15800.00,15800.00,2528.00,0.00,18328.00);

--
-- Table structure for table `remisiones_conceptos_cobro_gastos`
--

CREATE TABLE `remisiones_conceptos_cobro_gastos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) NOT NULL,
  `remision_gasto` varchar(20) DEFAULT NULL COMMENT 'Gasto',
  `proveedores_id` int(11) NOT NULL,
  `fecha_hora` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `compras_administrativos_id` int(11) DEFAULT NULL,
  `moneda` varchar(20) DEFAULT NULL,
  `tipo_cambio` decimal(11,2) DEFAULT NULL,
  `estatus` varchar(20) NOT NULL,
  `cantidad_concepto` decimal(11,2) NOT NULL COMMENT 'Cantidad',
  `conceptos_cobro_egresos_id` int(11) NOT NULL,
  `valor_unitario` decimal(11,2) NOT NULL,
  `porc_iva` int(11) DEFAULT NULL,
  `porc_retencion` int(11) DEFAULT NULL,
  `importe` decimal(11,2) DEFAULT NULL,
  `subtotal` decimal(11,2) DEFAULT NULL,
  `iva` decimal(11,2) DEFAULT NULL,
  `retencion` decimal(11,2) DEFAULT NULL,
  `total` decimal(11,2) DEFAULT NULL,
  `comentarios` varchar(200) DEFAULT NULL,
  `total_en_pesos` decimal(11,2) DEFAULT NULL,
  `fecha_cancelacion` date DEFAULT NULL,
  `causas_cancelacion_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `remisiones_id` (`remisiones_id`),
  KEY `conceptos_cobro_egresos_id` (`conceptos_cobro_egresos_id`) USING BTREE,
  KEY `proveedores_id` (`proveedores_id`) USING BTREE,
  KEY `compras_administrativos_id` (`compras_administrativos_id`) USING BTREE,
  KEY `causas_cancelacion_id` (`causas_cancelacion_id`),
  CONSTRAINT `remisiones_conceptos_cobro_gastos_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`),
  CONSTRAINT `remisiones_conceptos_cobro_gastos_ibfk_2` FOREIGN KEY (`proveedores_id`) REFERENCES `proveedores` (`id`),
  CONSTRAINT `remisiones_conceptos_cobro_gastos_ibfk_3` FOREIGN KEY (`compras_administrativos_id`) REFERENCES `compras_administrativos` (`id`),
  CONSTRAINT `remisiones_conceptos_cobro_gastos_ibfk_4` FOREIGN KEY (`conceptos_cobro_egresos_id`) REFERENCES `conceptos_cobro_egresos` (`id`),
  CONSTRAINT `remisiones_conceptos_cobro_gastos_ibfk_5` FOREIGN KEY (`causas_cancelacion_id`) REFERENCES `causas_cancelacion` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_conceptos_cobro_gastos`
--

INSERT INTO `remisiones_conceptos_cobro_gastos` VALUES (1,1,'GAS1',3,'2025-10-30 00:36:31',NULL,'Pesos',1.00,'Capturado',1.00,198,1200.00,0,0,1200.00,1200.00,0.00,0.00,1200.00,'',1200.00,NULL,NULL),(2,1,'GAS2',4,'2025-10-30 23:44:05',NULL,'Pesos',1.00,'Capturado',1.00,10,6654.00,16,0,6654.00,6654.00,1064.64,0.00,7718.64,'',6654.00,NULL,NULL),(3,2,'GAS3',3,'2025-11-04 20:21:13',NULL,'Pesos',1.00,'Capturado',1.00,198,1100.00,0,0,1100.00,1100.00,0.00,0.00,1100.00,'Maniobra',1100.00,NULL,NULL),(4,3,'SG1',4,'2025-11-04 23:36:00',NULL,'Pesos',1.00,'Capturado',1.00,7,850.00,16,0,850.00,850.00,136.00,0.00,986.00,'',850.00,NULL,NULL),(5,2,'GAS4',4,'2025-11-04 23:42:32',NULL,'Pesos',1.00,'Capturado',1.00,10,6654.00,16,0,6654.00,6654.00,1064.64,0.00,7718.64,'',6654.00,NULL,NULL),(6,3,'SG2',4,'2025-11-05 01:06:36',NULL,'Pesos',1.00,'Capturado',1.00,10,6654.00,16,0,6654.00,6654.00,1064.64,0.00,7718.64,'',6654.00,NULL,NULL),(7,3,'SG3',3,'2025-12-22 16:19:04',NULL,'Pesos',1.00,'Capturado',1.00,7,1250.00,16,0,1250.00,1250.00,200.00,0.00,1450.00,'',1250.00,NULL,NULL),(8,5,'SG4',3,'2026-01-19 17:35:46',NULL,'Pesos',1.00,'Capturado',1.00,9,500.00,16,0,500.00,500.00,80.00,0.00,580.00,'',500.00,NULL,NULL),(9,6,'SG5',3,'2026-02-07 18:46:14',NULL,'Pesos',1.00,'Capturado',1.00,198,2000.00,0,0,2000.00,2000.00,0.00,0.00,2000.00,'',2000.00,NULL,NULL),(10,7,'SG6',3,'2026-02-20 18:50:52',NULL,'Pesos',1.00,'Autorizado',1.00,198,2500.00,0,0,2500.00,2500.00,0.00,0.00,2500.00,'',2500.00,NULL,NULL);
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_conceptos_cobro_gastos_before_insert` BEFORE INSERT ON `remisiones_conceptos_cobro_gastos`
 FOR EACH ROW BEGIN

   DECLARE vFolio INT(11);
   DECLARE vSerie VARCHAR(3);
   DECLARE idsucursal INT(11);
   
      SELECT remisiones.sucursales_id INTO idsucursal FROM remisiones WHERE remisiones.id=NEW.remisiones_id;
      
      SELECT gf_gastos(idsucursal) INTO vFolio;

      SELECT gs_gastos(idsucursal) INTO vSerie;

      SET NEW.remision_gasto = CONCAT(vSerie, vFolio);

      SET NEW.fecha_hora = SYSDATE();

	  SET NEW.total_en_pesos = COALESCE(NEW.subtotal * NEW.tipo_cambio, 0);
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_conceptos_cobro_gastos_after_insert` AFTER INSERT ON `remisiones_conceptos_cobro_gastos`
 FOR EACH ROW BEGIN

	IF NEW.conceptos_cobro_egresos_id = 10 THEN
    	UPDATE remisiones SET existen_autopistas=1 WHERE remisiones.id=NEW.remisiones_id;
    END IF;
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_conceptos_cobro_gastos_before_update` BEFORE UPDATE ON `remisiones_conceptos_cobro_gastos`
 FOR EACH ROW BEGIN
	SET NEW.total_en_pesos = COALESCE(NEW.subtotal * NEW.tipo_cambio, 0);
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_conceptos_cobro_gastos_after_update` AFTER UPDATE ON `remisiones_conceptos_cobro_gastos`
 FOR EACH ROW BEGIN
	IF NEW.estatus="Cancelado" THEN
		IF NEW.conceptos_cobro_egresos_id = 10 THEN
    		UPDATE remisiones SET existen_autopistas=0 WHERE remisiones.id=NEW.remisiones_id;
    	END IF;
    END IF;
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_conceptos_cobro_gastos_after_delete` AFTER DELETE ON `remisiones_conceptos_cobro_gastos`
 FOR EACH ROW BEGIN
	IF OLD.conceptos_cobro_egresos_id = 10 THEN
    	UPDATE remisiones SET existen_autopistas=0 WHERE remisiones.id=OLD.remisiones_id;
    END IF;
END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_cotizacion`
--

CREATE TABLE `remisiones_cotizacion` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) NOT NULL,
  `cotizaciones_rem_id` int(11) NOT NULL,
  `subtotal` decimal(11,2) DEFAULT NULL,
  `iva` decimal(11,2) DEFAULT NULL,
  `retencion` decimal(11,2) DEFAULT NULL,
  `total` decimal(11,2) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `remisiones_id` (`remisiones_id`) USING BTREE,
  KEY `cotizaciones_rem_id` (`cotizaciones_rem_id`) USING BTREE,
  CONSTRAINT `remisiones_cotizacion_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`),
  CONSTRAINT `remisiones_cotizacion_ibfk_2` FOREIGN KEY (`cotizaciones_rem_id`) REFERENCES `cotizaciones_rem` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `remisiones_cotizacion`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_cotizacion_after_insert` AFTER INSERT ON `remisiones_cotizacion`
 FOR EACH ROW BEGIN

	DECLARE vremitente_id INT(11);
    DECLARE vremitente_razon_social VARCHAR(200);
    DECLARE vremitente_rfc VARCHAR(20);
    DECLARE vremitente_domicilio VARCHAR(200);
    DECLARE vremitente_municipios_id INT(11);
    DECLARE vremitente_estados_id INT(11);
    DECLARE vremitente_telefono VARCHAR(20);
    DECLARE vremitente_recogera VARCHAR(100);
    DECLARE vdestinatario_id INT(11);
    DECLARE vdestinatario_razon_social VARCHAR(200);
    DECLARE vdestinatario_rfc VARCHAR(20);
    DECLARE vdestinatario_domicilio VARCHAR(200);
    DECLARE vdestinatario_municipios_id INT(11);
    DECLARE vdestinatario_estados_id INT(11);
    DECLARE vdestinatario_telefono VARCHAR(20);
    DECLARE vdestinatario_recogera VARCHAR(100);

INSERT INTO remisiones_conceptos_cobro(remisiones_id,cantidad_concepto,conceptos_cobro_id,descripcion,valor_unitario,porc_iva,porc_retencion,importe,subtotal,iva,retencion,total) select NEW.remisiones_id,a.cantidad_concepto,a.conceptos_cobro_id,b.concepto_cobro,a.valor_unitario,a.porc_iva,a.porc_retencion,a.importe,a.subtotal,a.iva,a.retencion,a.total FROM cotizaciones_conceptos_cobro as a LEFT JOIN conceptos_cobro as b ON b.id=a.conceptos_cobro_id WHERE a.cotizaciones_rem_id=NEW.cotizaciones_rem_id;

INSERT INTO remisiones_conceptos_cobro_gastos(
remisiones_id,proveedores_id,fecha_hora,moneda,tipo_cambio,estatus,cantidad_concepto,conceptos_cobro_egresos_id,valor_unitario
,porc_iva,porc_retencion,importe,subtotal,iva,retencion,total)
 select NEW.remisiones_id,a.proveedores_id,NOW(),a.moneda,a.tipo_cambio
,'Capturado',a.cantidad_concepto,a.conceptos_cobro_egresos_id
,a.valor_unitario,a.porc_iva,a.porc_retencion,a.importe,a.subtotal,a.iva,a.retencion,a.total
 FROM cotizaciones_rem_detalle as a WHERE a.cotizaciones_rem_id=NEW.cotizaciones_rem_id;
 
INSERT INTO remisiones_detalle_carga(remisiones_id,cantidad,embalajes_id,clave_prodservcp_detalle_id,clave_unidad_detalle_id,materiales_peligrosos,clave_materialespeligrosos_id,	clave_fraccionarancelaria_id,uuid_comercio_exterior,dimensiones,peso_kg,valor_mercancia,comentarios) select NEW.remisiones_id,a.cantidad,a.embalajes_id,a.clave_prodservcp_detalle_id,a.clave_unidad_detalle_id,a.materiales_peligrosos,a.clave_materialespeligrosos_id,a.	clave_fraccionarancelaria_id,a.uuid_comercio_exterior,a.dimensiones,a.peso_kg,a.valor_mercancia,a.comentarios FROM cotizaciones_rem_detalle_carga as a WHERE a.cotizaciones_rem_id=NEW.cotizaciones_rem_id;

update cotizaciones_rem set cotizaciones_rem.remisiones_id=NEW.remisiones_id where cotizaciones_rem.id=NEW.cotizaciones_rem_id;

select remitente_id,remitente_razon_social,remitente_rfc,remitente_domicilio,remitente_municipios_id,remitente_estados_id,remitente_telefono,remitente_recogera,
destinatario_id,destinatario_razon_social,destinatario_rfc,destinatario_domicilio,destinatario_municipios_id,destinatario_estados_id,destinatario_telefono,destinatario_recogera
INTO
vremitente_id,vremitente_razon_social,vremitente_rfc,vremitente_domicilio,vremitente_municipios_id,vremitente_estados_id,vremitente_telefono,vremitente_recogera,
vdestinatario_id,vdestinatario_razon_social,vdestinatario_rfc,vdestinatario_domicilio,vdestinatario_municipios_id,vdestinatario_estados_id,vdestinatario_telefono,vdestinatario_recogera
from cotizaciones_rem where id=NEW.cotizaciones_rem_id;

update remisiones set remitente_id=vremitente_id,
remitente_razon_social=vremitente_razon_social,
remitente_rfc=vremitente_rfc,
remitente_domicilio=vremitente_domicilio,
remitente_municipios_id=vremitente_municipios_id,
remitente_estados_id=vremitente_estados_id,
remitente_telefono=vremitente_telefono,
remitente_recogera=vremitente_recogera,
destinatario_id=vdestinatario_id,
destinatario_razon_social=vdestinatario_razon_social,
destinatario_rfc=vdestinatario_rfc,
destinatario_domicilio=vdestinatario_domicilio,
destinatario_municipios_id=vdestinatario_municipios_id,
destinatario_estados_id=vdestinatario_estados_id,
destinatario_telefono=vdestinatario_telefono,
destinatario_recogera=vdestinatario_recogera where id=NEW.remisiones_id;

END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_cotizacion_after_delete` AFTER DELETE ON `remisiones_cotizacion`
 FOR EACH ROW update cotizaciones_rem set cotizaciones_rem.remisiones_id=null where cotizaciones_rem.id=OLD.cotizaciones_rem_id */;;
DELIMITER ;

--
-- Table structure for table `remisiones_detalle`
--

CREATE TABLE `remisiones_detalle` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) NOT NULL,
  `cantidad` decimal(11,2) DEFAULT NULL,
  `embalaje` varchar(50) DEFAULT NULL,
  `descripcion` varchar(100) DEFAULT NULL,
  `pedimento` varchar(100) DEFAULT NULL,
  `sello` varchar(50) DEFAULT NULL,
  `referencia` varchar(100) DEFAULT NULL,
  `peso` decimal(11,2) DEFAULT NULL COMMENT 'Peso Ton',
  `cuota_tonelada` decimal(11,2) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `remisiones_id` (`remisiones_id`),
  CONSTRAINT `remisiones_detalle_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_detalle`
--


--
-- Table structure for table `remisiones_detalle_carga`
--

CREATE TABLE `remisiones_detalle_carga` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) NOT NULL,
  `cantidad` decimal(11,2) DEFAULT NULL,
  `embalajes_id` int(11) DEFAULT NULL,
  `clave_prodservcp_detalle_id` int(11) DEFAULT NULL,
  `clave_unidad_detalle_id` int(11) DEFAULT NULL,
  `materiales_peligrosos` varchar(4) DEFAULT NULL,
  `clave_materialespeligrosos_id` int(11) DEFAULT NULL,
  `clave_fraccionarancelaria_id` int(11) DEFAULT NULL,
  `uuid_comercio_exterior` varchar(100) DEFAULT NULL,
  `dimensiones` varchar(100) DEFAULT NULL,
  `peso_kg` decimal(11,2) DEFAULT NULL,
  `valor_mercancia` decimal(11,2) DEFAULT '0.00',
  `comentarios` varchar(100) DEFAULT NULL COMMENT 'Comentarios',
  `tipo_materia` varchar(4) DEFAULT NULL,
  `tipo_documento` varchar(4) DEFAULT NULL,
  `numero_pedimento` varchar(30) DEFAULT NULL,
  `ident_docaduanero` varchar(150) DEFAULT NULL,
  `rfc_impo` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `remisiones_id` (`remisiones_id`),
  KEY `embalajes_id` (`embalajes_id`),
  KEY `clave_materialespeligrosos_id` (`clave_materialespeligrosos_id`),
  KEY `clave_fraccionarancelaria_id` (`clave_fraccionarancelaria_id`),
  KEY `clave_unidad_detalle_id` (`clave_unidad_detalle_id`) USING BTREE,
  KEY `clave_prodservcp_detalle_id` (`clave_prodservcp_detalle_id`) USING BTREE,
  CONSTRAINT `remisiones_detalle_carga_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`),
  CONSTRAINT `remisiones_detalle_carga_ibfk_2` FOREIGN KEY (`embalajes_id`) REFERENCES `embalajes` (`id`),
  CONSTRAINT `remisiones_detalle_carga_ibfk_3` FOREIGN KEY (`clave_prodservcp_detalle_id`) REFERENCES `clave_prodservcp` (`id`),
  CONSTRAINT `remisiones_detalle_carga_ibfk_4` FOREIGN KEY (`clave_unidad_detalle_id`) REFERENCES `clave_unidad` (`id`),
  CONSTRAINT `remisiones_detalle_carga_ibfk_5` FOREIGN KEY (`clave_materialespeligrosos_id`) REFERENCES `clave_materialespeligrosos` (`id`),
  CONSTRAINT `remisiones_detalle_carga_ibfk_6` FOREIGN KEY (`clave_fraccionarancelaria_id`) REFERENCES `clave_fraccionarancelaria` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_detalle_carga`
--

INSERT INTO `remisiones_detalle_carga` VALUES (1,1,1.00,69,46895,5,'No',NULL,NULL,'','',56.24,1.00,'Azucar','01',NULL,NULL,NULL,NULL),(2,2,1.00,70,48684,12,'No',NULL,NULL,'','',8000.00,1.00,'Libros de recurso','03',NULL,NULL,NULL,NULL),(3,3,50000.00,72,48712,11,'No',NULL,NULL,'','',1000.00,0.00,'NA','03',NULL,NULL,NULL,NULL),(4,4,1.00,69,48752,11,'No',NULL,NULL,'','',17.80,0.00,'Accesorios, materias primas y piezas de componentes electrónicos','01',NULL,NULL,NULL,NULL),(5,4,1.00,72,48757,7,'No',NULL,NULL,'','',200.00,0.00,'NA','03',NULL,NULL,NULL,NULL),(6,5,1.00,NULL,48756,12,'No',NULL,NULL,'','',200.00,0.00,'NA','03',NULL,NULL,NULL,NULL),(7,6,1.00,NULL,48756,1,'No',NULL,NULL,'','',17.80,0.00,'Accesorios, materias primas y piezas de componentes electrónicos','03','01','prueba','prueba','prueba'),(8,6,2.00,7,28402,9,'No',NULL,NULL,'8FD08731-C825-4154-B29D-64C673249564','12/13/14',35000.00,70000.00,'Traslado de mercacia pesada',NULL,NULL,NULL,NULL,NULL),(9,6,15.00,7,19,4,'No',NULL,NULL,NULL,'44/91',5000.00,90000.00,'herrajes y materiales',NULL,NULL,NULL,NULL,NULL),(10,6,2.00,65,28402,9,'No',NULL,NULL,'8FD08731-C825-4154-B29D-64C673249564','12/13/14',35000.00,70000.00,'Traslado de mercacia pesada',NULL,NULL,NULL,NULL,NULL),(11,6,15.00,65,19,4,'No',NULL,NULL,NULL,'42/33',5000.00,90000.00,'herrajes y materiales',NULL,NULL,NULL,NULL,NULL),(12,6,90.00,NULL,2161,11,'No',NULL,NULL,NULL,NULL,99.00,0.00,'LAVATRASTES SAVIA GEL LIMON REAL 1.1 L ',NULL,NULL,NULL,NULL,NULL),(13,6,45.00,NULL,2161,11,'No',NULL,NULL,NULL,NULL,51.40,0.00,'DET. P/ROPA MANCHS DIFICLES 6.4L',NULL,NULL,NULL,NULL,NULL),(14,6,45.00,NULL,2161,11,'No',NULL,NULL,NULL,NULL,51.40,0.00,'DET. P/ROPA CUIDADO Y COLOR 6.4L',NULL,NULL,NULL,NULL,NULL),(15,6,60.00,NULL,11809,11,'No',NULL,NULL,NULL,NULL,168.00,0.00,'SUAVISATE SAVIA SUSPIRO DE VERANO 2.8 L ',NULL,NULL,NULL,NULL,NULL),(16,6,90.00,NULL,2161,11,'No',NULL,NULL,NULL,NULL,99.00,0.00,'LAVATRASTES SAVIA LIMON 1.1 L ',NULL,NULL,NULL,NULL,NULL),(17,6,60.00,NULL,17451,11,'No',NULL,NULL,NULL,NULL,21.24,0.00,'DESINFECTANTE AE EROCLEAN 354 GR',NULL,NULL,NULL,NULL,NULL),(18,7,1.00,NULL,48757,7,'No',NULL,NULL,'','',200.00,0.00,'NA','03',NULL,NULL,NULL,NULL),(19,8,1.00,72,48757,5,'No',NULL,NULL,'','',50.00,0.00,'Corrugado','03','01','','',''),(20,9,1.00,72,48757,7,'No',NULL,NULL,'','',200.00,1.00,'na','03','01','','',''),(21,10,1.00,72,48757,1,'No',NULL,10024,'','',54.00,0.00,'na','03','01','25  07  3429  5050774','','XEXX010101000');

--
-- Table structure for table `remisiones_documento_aduanero`
--

CREATE TABLE `remisiones_documento_aduanero` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) NOT NULL,
  `remisiones_detalle_carga_id` int(11) NOT NULL,
  `tipo_documento` varchar(4) NOT NULL,
  `numero_pedimento` varchar(30) DEFAULT NULL,
  `ident_docaduanero` varchar(150) DEFAULT NULL,
  `rfc_impo` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `remisiones_documento_aduanero`
--


--
-- Table structure for table `remisiones_egresos_detalle`
--

CREATE TABLE `remisiones_egresos_detalle` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) DEFAULT NULL,
  `egreso` varchar(20) DEFAULT NULL COMMENT 'Viatico',
  `fecha_hora` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `fecha_aplicacion` datetime NOT NULL,
  `tipo_egreso` varchar(20) DEFAULT NULL COMMENT 'Tipo Viatico',
  `estatus` varchar(20) NOT NULL,
  `conceptos_cobro_egresos_id` int(11) NOT NULL,
  `importe` decimal(11,2) DEFAULT NULL COMMENT 'Total',
  `descripcion` varchar(200) DEFAULT NULL COMMENT 'Comentarios',
  `bancos_id` int(11) NOT NULL,
  `bancos_cuenta` varchar(50) DEFAULT NULL,
  `numero_autorizacion` varchar(20) DEFAULT NULL COMMENT 'Autorizacion / Referencia',
  `fecha_cancelacion` date DEFAULT NULL,
  `causas_cancelacion_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `bancos_id` (`bancos_id`),
  KEY `remisiones_id` (`remisiones_id`),
  KEY `causas_cancelacion_id` (`causas_cancelacion_id`),
  KEY `egreso` (`egreso`),
  KEY `fecha_hora` (`fecha_hora`),
  KEY `tipo_egreso` (`tipo_egreso`),
  KEY `estatus` (`estatus`),
  KEY `conceptos_cobro_egresos_id` (`id`),
  KEY `conceptos_cobro_egresos_id_2` (`conceptos_cobro_egresos_id`),
  CONSTRAINT `remisiones_egresos_detalle_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`),
  CONSTRAINT `remisiones_egresos_detalle_ibfk_2` FOREIGN KEY (`conceptos_cobro_egresos_id`) REFERENCES `conceptos_cobro_egresos` (`id`),
  CONSTRAINT `remisiones_egresos_detalle_ibfk_3` FOREIGN KEY (`causas_cancelacion_id`) REFERENCES `causas_cancelacion` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_egresos_detalle`
--

INSERT INTO `remisiones_egresos_detalle` VALUES (1,1,'EGR1','2025-10-30 00:14:06','2025-10-29 18:10:27','Deposito','Capturado',197,1000.00,'',1,'1071124813','',NULL,NULL),(2,1,'EGR2','2025-10-31 00:08:16','2025-10-30 18:00:32','Nota de Cargo','Capturado',200,100.00,'',1,'1071124813','',NULL,NULL),(3,2,'EGR3','2025-11-04 20:17:11','2025-11-04 14:15:27','Deposito','Capturado',197,250.00,'',1,'1071124813','',NULL,NULL),(4,2,'EGR4','2025-11-04 23:29:56','2025-11-04 17:25:24','Nota de Cargo','Capturado',201,250.00,'',1,'1071124813','',NULL,NULL),(5,3,'SE1','2025-11-04 23:32:34','2025-11-04 17:00:06','Deposito','Capturado',196,2000.00,'',1,'1071124813','',NULL,NULL),(6,5,'SE2','2026-01-19 17:32:34','2026-01-19 10:00:27','Deposito','Capturado',196,1500.00,'VIATICO OPERADOR',1,'1071124813','',NULL,NULL),(7,7,'SE3','2026-02-20 18:49:11','2026-02-20 12:45:48','Deposito','Autorizado',196,1750.00,'',1,'1071124813','',NULL,NULL),(8,7,'SE4','2026-03-03 18:00:00','2026-03-03 11:55:23','Deposito','Autorizado',196,1500.00,'',1,'1071124813','',NULL,NULL);
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_egresos_detalle_before_insert` BEFORE INSERT ON `remisiones_egresos_detalle`
 FOR EACH ROW BEGIN

   DECLARE vFolio INT(11);
   DECLARE vSerie VARCHAR(3);
   DECLARE idsucursal INT(11);
   
      SELECT remisiones.sucursales_id INTO idsucursal FROM remisiones WHERE remisiones.id=NEW.remisiones_id;

      SELECT gf_egresos(idsucursal) INTO vFolio;

      SELECT gs_egresos(idsucursal) INTO vSerie;

	  SET NEW.egreso = CONCAT(vSerie, vFolio);
      SET NEW.fecha_hora = SYSDATE();

	IF (NEW.estatus = 'Autorizado') THEN
    	SET NEW.estatus='Capturado';
    END IF;
    
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_egresos_detalle_after_insert` AFTER INSERT ON `remisiones_egresos_detalle` FOR EACH ROW BEGIN
	UPDATE remisiones SET estatus='Transito' WHERE remisiones.id=NEW.id AND remisiones.estatus NOT IN ('Terminado', 'Cancelado');
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_egresos_detalle_after_update` AFTER UPDATE ON `remisiones_egresos_detalle`
 FOR EACH ROW BEGIN

 DECLARE operador_deposito VARCHAR(100);

  IF (NEW.estatus = 'Autorizado' AND OLD.estatus = 'Capturado') THEN
   IF (NEW.tipo_egreso IN ('Deposito', 'Cheque', 'Caja Chica')) THEN
    SELECT empleado INTO operador_deposito 
    FROM empleados
    LEFT JOIN remisiones ON remisiones.id=NEW.remisiones_id
    WHERE empleados.id = remisiones.empleados_id;
    
    IF (NEW.bancos_id IS NOT NULL) THEN

  		INSERT INTO bancos_saldos (fecha_hora, bancos_id, tipo_operacion, razon_social, folio, numero_autorizacion, movimiento, monto_deposito, monto_retiro)
  		VALUES (NEW.fecha_aplicacion, NEW.bancos_id, 'Deposito a Operador', operador_deposito, NEW.egreso, NEW.numero_autorizacion, 'Retiro', NULL, NEW.importe);
    END IF;
    END IF;
  END IF;
  
  IF (NEW.estatus = 'Cancelado' AND OLD.estatus = 'Autorizado') THEN
   IF (NEW.tipo_egreso IN ('Deposito', 'Cheque', 'Caja Chica')) THEN 
    SELECT empleado INTO operador_deposito 
    FROM empleados
    LEFT JOIN remisiones ON remisiones.id=NEW.remisiones_id
    WHERE empleados.id = remisiones.empleados_id;
    
    IF (NEW.bancos_id IS NOT NULL) THEN

  		INSERT INTO bancos_saldos (fecha_hora, bancos_id, tipo_operacion, razon_social, folio, numero_autorizacion, movimiento, monto_deposito, monto_retiro)
  		VALUES (NEW.fecha_aplicacion, NEW.bancos_id, 'Cancelacion Deposito a Operador', operador_deposito, NEW.egreso, NEW.numero_autorizacion, 'Deposito', NEW.importe, NULL);
    END IF;
    END IF;
    
  END IF;
END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_evidencias`
--

CREATE TABLE `remisiones_evidencias` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nombre_documento` varchar(100) NOT NULL,
  `descripcion_documento` varchar(255) NOT NULL,
  `remisiones_id` int(11) NOT NULL,
  `documento` longblob NOT NULL,
  `extension` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `operadores_id` (`remisiones_id`),
  KEY `unidades_id` (`remisiones_id`),
  KEY `operadores_id_2` (`remisiones_id`),
  KEY `remisiones_id` (`remisiones_id`),
  CONSTRAINT `remisiones_evidencias_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_evidencias`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_evidencias_before_update` BEFORE UPDATE ON `remisiones_evidencias`
 FOR EACH ROW BEGIN

	IF NEW.documento = '' AND OLD.documento <> '' THEN
 		SET NEW.documento = OLD.documento;
 	END IF;

END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_evidencias_historial`
--

CREATE TABLE `remisiones_evidencias_historial` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_evidencias_id` int(11) NOT NULL,
  `estatus` varchar(20) DEFAULT NULL,
  `operacion` varchar(50) NOT NULL,
  `user_id` int(11) NOT NULL,
  `descripcion` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `solicitudes_servicio_id` (`remisiones_evidencias_id`),
  KEY `user_id` (`user_id`),
  KEY `remisiones_evidencias_id` (`remisiones_evidencias_id`),
  KEY `user_id_2` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_evidencias_historial`
--


--
-- Table structure for table `remisiones_facturasextras`
--

CREATE TABLE `remisiones_facturasextras` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) DEFAULT NULL,
  `facturas_id` int(11) NOT NULL,
  `importe` decimal(11,2) NOT NULL DEFAULT '0.00',
  PRIMARY KEY (`id`),
  KEY `remisiones_id` (`remisiones_id`),
  KEY `facturas_id` (`facturas_id`),
  CONSTRAINT `remisiones_facturasextras_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`),
  CONSTRAINT `remisiones_facturasextras_ibfk_2` FOREIGN KEY (`facturas_id`) REFERENCES `facturas` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_facturasextras`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_facturasextras_after_insert` AFTER INSERT ON `remisiones_facturasextras`
 FOR EACH ROW BEGIN
	UPDATE facturas SET facturas.remisionesextras_id=NEW.remisiones_id WHERE facturas.id=NEW.facturas_id;
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_facturasextras_after_delete` AFTER DELETE ON `remisiones_facturasextras`
 FOR EACH ROW BEGIN
	UPDATE facturas SET facturas.remisionesextras_id=null WHERE facturas.id=OLD.facturas_id;
END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_historial`
--

CREATE TABLE `remisiones_historial` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) NOT NULL,
  `estatus` varchar(20) DEFAULT NULL,
  `operacion` varchar(50) NOT NULL,
  `user_id` int(11) NOT NULL,
  `descripcion` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `solicitudes_servicio_id` (`remisiones_id`),
  KEY `user_id` (`user_id`),
  KEY `remisiones_id` (`remisiones_id`),
  KEY `user_id_2` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_historial`
--


--
-- Table structure for table `remisiones_maniobras_extras_detalle`
--

CREATE TABLE `remisiones_maniobras_extras_detalle` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_id` int(11) DEFAULT NULL,
  `maniobra_extra` varchar(20) DEFAULT NULL COMMENT 'Folio ME',
  `fecha_hora` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `tipo_egreso` varchar(20) DEFAULT NULL COMMENT 'Tipo Maniobra',
  `permisionarios_maniobras_id` int(11) NOT NULL,
  `estatus` varchar(20) NOT NULL,
  `provision_pagos_maniobras_extras_permisionarios_id` int(11) DEFAULT NULL,
  `descripcion` varchar(200) DEFAULT NULL,
  `importe` decimal(11,2) DEFAULT NULL,
  `total` decimal(11,2) DEFAULT NULL,
  `fecha_cancelacion` date DEFAULT NULL,
  `causas_cancelacion_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `permisionarios_maniobras_id` (`permisionarios_maniobras_id`),
  KEY `causas_cancelacion_id` (`causas_cancelacion_id`),
  KEY `remisiones_id` (`remisiones_id`) USING BTREE,
  KEY `provision_pagos_maniobras_extras_permisionarios_id` (`provision_pagos_maniobras_extras_permisionarios_id`) USING BTREE,
  CONSTRAINT `remisiones_maniobras_extras_detalle_ibfk_1` FOREIGN KEY (`remisiones_id`) REFERENCES `remisiones` (`id`),
  CONSTRAINT `remisiones_maniobras_extras_detalle_ibfk_2` FOREIGN KEY (`permisionarios_maniobras_id`) REFERENCES `permisionarios` (`id`),
  CONSTRAINT `remisiones_maniobras_extras_detalle_ibfk_3` FOREIGN KEY (`provision_pagos_maniobras_extras_permisionarios_id`) REFERENCES `provision_pagos_maniobras_extras_permisionarios` (`id`),
  CONSTRAINT `remisiones_maniobras_extras_detalle_ibfk_4` FOREIGN KEY (`causas_cancelacion_id`) REFERENCES `causas_cancelacion` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_maniobras_extras_detalle`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_maniobras_extras_detalle_before_insert` BEFORE INSERT ON `remisiones_maniobras_extras_detalle`
 FOR EACH ROW BEGIN

   DECLARE vFolio INT(11);
   DECLARE vSerie VARCHAR(3);

      SELECT nextval('maniobras_extras') INTO vFolio;

      SELECT getserie('maniobras_extras') INTO vSerie;

      SET NEW.maniobra_extra = CONCAT(vSerie, vFolio);

      SET NEW.fecha_hora = SYSDATE();

END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_permisionarios`
--

CREATE TABLE `remisiones_permisionarios` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remision_permisionario` varchar(20) DEFAULT NULL,
  `fecha_hora` timestamp NULL DEFAULT NULL,
  `facturas_id` int(11) DEFAULT NULL,
  `moneda` varchar(20) CHARACTER SET utf8 NOT NULL,
  `tipo_cambio` decimal(11,2) NOT NULL,
  `solicitudes_servicio_id` int(11) DEFAULT NULL,
  `fecha_viaje` date DEFAULT NULL,
  `orden_servicio` varchar(20) DEFAULT NULL,
  `tipo_documento` varchar(20) DEFAULT NULL,
  `sucursales_id` int(11) NOT NULL,
  `razones_sociales_id` int(11) NOT NULL COMMENT 'Razon Social Emisor',
  `clase_unidades` varchar(30) NOT NULL,
  `viaje` varchar(20) DEFAULT NULL,
  `estatus` varchar(20) NOT NULL,
  `fecha_cancelacion` date DEFAULT NULL,
  `causas_cancelacion_id` int(11) DEFAULT NULL,
  `clientes_id` int(11) NOT NULL,
  `rutas_id` int(11) NOT NULL,
  `remitente_id` int(11) DEFAULT NULL,
  `destinatario_id` int(11) DEFAULT NULL,
  `clientes_ejecutivos_id` int(11) DEFAULT NULL,
  `comentarios` varchar(250) DEFAULT NULL,
  `poliza_seguro` varchar(30) DEFAULT NULL,
  `subtotal` decimal(11,2) DEFAULT NULL,
  `valor_declarado` decimal(11,2) DEFAULT NULL,
  `iva` decimal(11,2) DEFAULT NULL,
  `retencion` decimal(11,2) DEFAULT NULL,
  `remisiones_borrado_campos` varchar(30) DEFAULT NULL COMMENT 'Borra Campos',
  `total` decimal(11,2) DEFAULT NULL,
  `lq_fecha_hora` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Fecha Hora Liquidacion',
  `lq_estatus` varchar(50) DEFAULT 'Capturada' COMMENT 'Estatus Liquidacion',
  `ingresos` decimal(11,2) DEFAULT NULL,
  `total_gastos` decimal(11,2) DEFAULT NULL,
  `egresos` decimal(11,2) DEFAULT NULL,
  `total_combustibles` decimal(11,2) DEFAULT NULL,
  `profit` decimal(11,2) DEFAULT NULL,
  `total_anticipos` decimal(11,2) DEFAULT NULL,
  `fecha_timbrado` datetime DEFAULT NULL,
  `uuid` varchar(50) DEFAULT NULL,
  `cfdi_mensajes` varchar(255) DEFAULT NULL,
  `monitoreo` varchar(50) DEFAULT NULL,
  `estatus_monitoreo_id` int(11) DEFAULT NULL COMMENT 'Estatus Monitoreo',
  `monitoreo_contenedores` varchar(20) DEFAULT NULL,
  `remision_xml` mediumblob,
  `serie_certificado_csd` varchar(255) DEFAULT NULL,
  `serie_certificado_sat` varchar(255) DEFAULT NULL,
  `sello_sat` varchar(1000) DEFAULT NULL,
  `sello_cfd` varchar(1000) DEFAULT NULL,
  `cadena_original` varchar(500) DEFAULT NULL,
  `unidad_medida` varchar(100) DEFAULT NULL,
  `remision_pdf` longblob,
  `codigo_qr_txt` varchar(500) DEFAULT NULL,
  `serie` varchar(5) DEFAULT NULL,
  `folio` int(11) DEFAULT NULL,
  `empresas_custodia_id` int(11) DEFAULT NULL,
  `custodios_id` int(11) DEFAULT NULL,
  `custodios2_id` int(11) DEFAULT NULL,
  `inicio_monitoreo` datetime DEFAULT NULL,
  `idccp` varchar(37) DEFAULT NULL,
  `registro_istmo` varchar(4) DEFAULT NULL,
  `clave_regimenaduanero_id` int(11) DEFAULT NULL,
  `ubicacion_polo_destino` varchar(4) DEFAULT NULL,
  `ubicacion_polo_origen` varchar(4) DEFAULT NULL,
  `logistica_inversa_recoleccion_devolucion` varchar(4) DEFAULT NULL,
  `transporte_internacional` varchar(3) DEFAULT NULL,
  `entrada_salida_mercancia` varchar(20) DEFAULT NULL,
  `clave_viaentradasalida_id` int(11) DEFAULT NULL,
  `tipo_estacion_id` int(11) DEFAULT NULL,
  `propietarios_id` int(11) DEFAULT NULL,
  `propietarios_arrendatario_id` int(11) DEFAULT NULL,
  `propietarios_notificar_id` int(11) DEFAULT NULL,
  `fecha_salida_remitente` datetime DEFAULT NULL,
  `fecha_llegada` datetime DEFAULT NULL,
  `asegmedamb` varchar(100) DEFAULT NULL,
  `asegmedamb_poliza` varchar(30) DEFAULT NULL,
  `clave_configautotransporte_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `facturas_id` (`facturas_id`),
  KEY `clientes_id` (`clientes_id`),
  KEY `rutas_id` (`rutas_id`),
  KEY `remitente_id` (`remitente_id`),
  KEY `destinatario_id` (`destinatario_id`),
  KEY `solicitudes_servicio_id` (`solicitudes_servicio_id`),
  KEY `causas_cancelacion_id` (`causas_cancelacion_id`),
  KEY `estatus_monitoreo_id` (`estatus_monitoreo_id`),
  KEY `empresas_custodia_id` (`empresas_custodia_id`),
  KEY `custodios_id` (`custodios_id`),
  KEY `custodios2_id` (`custodios2_id`),
  KEY `remision_permisionario` (`remision_permisionario`),
  KEY `fecha_hora` (`fecha_hora`),
  KEY `orden_servicio` (`orden_servicio`),
  KEY `estatus` (`estatus`),
  KEY `moneda` (`moneda`),
  KEY `clientes_ejecutivos_id` (`clientes_ejecutivos_id`),
  KEY `sucursales_id` (`sucursales_id`),
  KEY `razones_sociales_id` (`razones_sociales_id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_1` FOREIGN KEY (`facturas_id`) REFERENCES `facturas` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_10` FOREIGN KEY (`clientes_ejecutivos_id`) REFERENCES `clientes_ejecutivos` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_11` FOREIGN KEY (`empresas_custodia_id`) REFERENCES `empresas_custodia` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_12` FOREIGN KEY (`custodios_id`) REFERENCES `custodios` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_13` FOREIGN KEY (`custodios2_id`) REFERENCES `custodios` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_14` FOREIGN KEY (`razones_sociales_id`) REFERENCES `razones_sociales` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_2` FOREIGN KEY (`solicitudes_servicio_id`) REFERENCES `solicitudes_servicio` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_3` FOREIGN KEY (`sucursales_id`) REFERENCES `sucursales` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_4` FOREIGN KEY (`estatus_monitoreo_id`) REFERENCES `estatus_monitoreo` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_5` FOREIGN KEY (`causas_cancelacion_id`) REFERENCES `causas_cancelacion` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_6` FOREIGN KEY (`clientes_id`) REFERENCES `clientes` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_7` FOREIGN KEY (`rutas_id`) REFERENCES `rutas` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_8` FOREIGN KEY (`remitente_id`) REFERENCES `direcciones` (`id`),
  CONSTRAINT `remisiones_permisionarios_ibfk_9` FOREIGN KEY (`destinatario_id`) REFERENCES `direcciones` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_permisionarios`
--

INSERT INTO `remisiones_permisionarios` VALUES (1,'SRP1','2025-12-16 18:29:27',NULL,'Pesos',1.00,NULL,'2025-12-16','872318','Normal',9,1,'Tractocamion','Sencillo','Inicio',NULL,NULL,4,5,2,1,NULL,'NA','',0.00,NULL,0.00,0.00,'Elegir',0.00,'2025-12-16 18:29:27','Capturada',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SRP',1,NULL,NULL,NULL,NULL,'','No',NULL,'01','01','No','No','Entrada',NULL,NULL,NULL,NULL,NULL,'2025-12-16 12:00:16','2025-12-17 12:00:16',NULL,NULL,NULL),(2,'SRP2','2026-01-08 19:48:04',7,'Pesos',1.00,NULL,'2026-01-08','872318','Normal',9,1,'Tractocamion','Sencillo','Inicio',NULL,NULL,5,5,2,2,5,'NA','1231561565',15000.00,NULL,0.00,0.00,'Elegir',15000.00,'2026-01-08 19:48:04','Capturada',15000.00,15000.00,15000.00,0.00,0.00,0.00,NULL,'','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SRP',2,NULL,NULL,NULL,NULL,'CCC6de9d-eae6-4929-bd67-12cd5b142665','No',NULL,'01','01','No','No','Entrada',NULL,NULL,NULL,NULL,NULL,'2026-01-08 13:00:42','2026-01-09 13:00:42',NULL,NULL,14),(3,'SRP3','2026-01-10 17:30:26',8,'Pesos',1.00,NULL,'2026-01-10','456789','Normal',9,1,'Tractocamion','Sencillo','Inicio',NULL,NULL,5,5,2,1,5,'','159123148',20000.00,NULL,0.00,0.00,'Elegir',20000.00,'2026-01-10 17:30:26','Capturada',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SRP',3,NULL,NULL,NULL,NULL,'CCC1a488-c9e3-4a45-8e99-7d0286a9cc75','No',NULL,'01','01','No','No','Entrada',NULL,NULL,NULL,NULL,NULL,'2026-01-10 12:00:32','2026-01-12 17:00:32',NULL,NULL,14),(4,'SRP4','2026-03-11 21:59:14',21,'Pesos',1.00,NULL,'2026-03-11','','Traslado',8,1,'Tractocamion','Sencillo','Inicio',NULL,NULL,5,5,2,5,NULL,'','1231561565',1250.00,NULL,200.00,0.00,'Elegir',1450.00,'2026-03-11 21:59:14','Capturada',1250.00,1000.00,1000.00,0.00,250.00,0.00,NULL,'','-1comprobante con folio: SRP4 ya se encuentra registrado',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SRP',4,NULL,NULL,NULL,NULL,'','No',NULL,'01','01','No','No','Entrada',1,NULL,NULL,NULL,NULL,'2026-03-11 15:00:43','2026-03-11 23:55:43',NULL,NULL,4),(5,'SRP5','2026-04-16 02:30:39',19,'Pesos',1.00,NULL,'2026-04-15','2854','Traslado',9,2,'Tractocamion','Sencillo','Transito',NULL,NULL,5,3,1,2,NULL,'','1231561565',20000.00,NULL,3200.00,800.00,'Elegir',22400.00,'2026-04-16 02:30:39','Capturada',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','10La cuenta especificada(administrador) no existe.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SRP',5,NULL,NULL,NULL,NULL,'','No',NULL,'01','01','No','No','Entrada',NULL,NULL,NULL,NULL,NULL,'2026-04-15 18:25:47','2026-04-17 11:55:47',NULL,NULL,NULL),(6,'REP1','2026-04-22 00:14:59',NULL,'Pesos',1.00,NULL,'2026-04-21','','Traslado',8,1,'Tractocamion','Sencillo','Inicio',NULL,NULL,5,5,2,5,NULL,'','',23655.00,NULL,3784.80,632.00,'Elegir',26807.80,'2026-04-22 00:14:59','Capturada',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','-1comprobante con folio: REP1 ya se encuentra registrado',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'REP',1,NULL,NULL,NULL,NULL,'','No',NULL,'01','01','No','No','Entrada',1,NULL,NULL,NULL,NULL,'2026-04-21 18:10:19','2026-04-22 18:10:19',NULL,NULL,4),(7,'REP2','2026-04-22 00:30:50',NULL,'Pesos',1.00,NULL,'2026-04-21','','Traslado',8,1,'Tractocamion','Sencillo','Inicio',NULL,NULL,5,6,5,2,NULL,'','',25987.00,NULL,4157.92,0.00,'Elegir',30144.92,'2026-04-22 00:30:50','Capturada',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'','-1comprobante con folio: REP2 ya se encuentra registrado',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'REP',2,NULL,NULL,NULL,NULL,'','No',NULL,'01','01','No','No','Entrada',1,NULL,NULL,NULL,NULL,'2026-04-21 18:25:48','2026-04-22 00:05:48',NULL,NULL,4);
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_before_insert` BEFORE INSERT ON `remisiones_permisionarios`
 FOR EACH ROW BEGIN

   DECLARE vFolio INT(11);
   DECLARE vSerie VARCHAR(3);

      SELECT gf_remisiones_permisionarios(NEW.sucursales_id) INTO vFolio;

      SELECT gs_remisiones_permisionarios(NEW.sucursales_id) INTO vSerie;

      SET NEW.remision_permisionario = CONCAT(vSerie, vFolio);

      SET NEW.fecha_hora = NOW();

	  SET NEW.serie = vSerie;
      SET NEW.folio = vFolio;
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_after_insert` AFTER INSERT ON `remisiones_permisionarios`
 FOR EACH ROW BEGIN 
  DECLARE lidremision_return INT(11);
  
  SELECT conceptos_cobro_from_remision_permisionario(NEW.id) INTO lidremision_return ;
  
	IF (NEW.solicitudes_servicio_id IS NOT NULL) THEN 
    	UPDATE solicitudes_servicio SET solicitudes_servicio.remisiones_permisionarios_id = NEW.id, solicitudes_servicio.estatus='En Remision' 
        WHERE solicitudes_servicio.id = NEW.solicitudes_servicio_id; 
    END IF; 

END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_before_update` BEFORE UPDATE ON `remisiones_permisionarios`
 FOR EACH ROW BEGIN
	IF (NEW.lq_estatus='Autorizada' AND OLD.lq_estatus <> 'Autorizada') THEN
    	SET NEW.estatus='Terminado';
        IF(NEW.monitoreo='Con Monitoreo') THEN
        	INSERT INTO eventos_monitoreo_permisionarios (remisiones_permisionarios_id, estatus_monitoreo_id) VALUES (NEW.id, 23);
        END IF;
        
    END IF;
    IF (NEW.facturas_id IS NULL AND OLD.facturas_id IS NOT NULL) THEN
    	IF EXISTS (SELECT * FROM facturas_remisiones_permisionarios WHERE facturas_remisiones_permisionarios.remisiones_permisionarios_id=NEW.id) THEN
        	SET NEW.facturas_id=OLD.facturas_id;
        END IF;
    END IF;
    IF (NEW.facturas_id IS NOT NULL AND OLD.facturas_id IS NULL) THEN
    	IF NOT EXISTS (SELECT * FROM facturas_remisiones_permisionarios WHERE facturas_remisiones_permisionarios.remisiones_permisionarios_id=NEW.id) THEN
        	SET NEW.facturas_id=OLD.facturas_id;
        END IF;
    END IF;
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_after_update` AFTER UPDATE ON `remisiones_permisionarios`
 FOR EACH ROW BEGIN 
       
	IF (NEW.solicitudes_servicio_id IS NOT NULL) THEN 
    	UPDATE solicitudes_servicio SET solicitudes_servicio.remisiones_permisionarios_id = NEW.id, solicitudes_servicio.estatus='En Remision' 
        WHERE solicitudes_servicio.id = NEW.solicitudes_servicio_id; 
    END IF; 
        
    IF (NEW.lq_estatus = 'Autorizada') THEN
    	UPDATE remisiones_permisionarios_combustibles_detalle SET remisiones_permisionarios_combustibles_detalle.estatus='Autorizado' WHERE remisiones_permisionarios_combustibles_detalle.remisiones_permisionarios_id = NEW.id AND remisiones_permisionarios_combustibles_detalle.estatus NOT IN ('Cancelado', 'Cancelada', 'Autorizado');
        UPDATE remisiones_permisionarios_anticipos_detalle SET remisiones_permisionarios_anticipos_detalle.estatus='Autorizado' WHERE remisiones_permisionarios_anticipos_detalle.remisiones_permisionarios_id = NEW.id AND remisiones_permisionarios_anticipos_detalle.estatus NOT IN ('Cancelado', 'Cancelada', 'Autorizado');
        UPDATE remisiones_permisionarios_conceptos_cobro_gastos SET remisiones_permisionarios_conceptos_cobro_gastos.estatus='Autorizado' WHERE remisiones_permisionarios_conceptos_cobro_gastos.remisiones_permisionarios_id = NEW.id AND remisiones_permisionarios_conceptos_cobro_gastos.estatus NOT IN ('Cancelado', 'Cancelada', 'Autorizado');
    END IF;
    
    IF (NEW.estatus_monitoreo_id
        <> OLD.estatus_monitoreo_id) THEN
    	INSERT INTO eventos_monitoreo_permisionarios (remisiones_permisionarios_id, estatus_monitoreo_id, estatus_monitoreo_anterior_id) VALUES (NEW.id, NEW.estatus_monitoreo_id, OLD.estatus_monitoreo_id);
    END IF;
    
    IF (NEW.estatus="Cancelado") THEN
    	UPDATE solicitudes_servicio SET solicitudes_servicio.remisiones_permisionarios_id = NULL, solicitudes_servicio.estatus='Capturada' 
        WHERE solicitudes_servicio.id = NEW.solicitudes_servicio_id;
    END IF;

END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_permisionarios_anticipos_detalle`
--

CREATE TABLE `remisiones_permisionarios_anticipos_detalle` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_permisionarios_id` int(11) DEFAULT NULL,
  `anticipo_permisionario` varchar(20) DEFAULT NULL COMMENT 'Anticipo',
  `proveedores_id` int(11) NOT NULL,
  `fecha_hora` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `fecha_aplicacion` datetime NOT NULL,
  `tipo_egreso` varchar(20) DEFAULT NULL,
  `compras_administrativos_cobrado_id` int(11) DEFAULT NULL,
  `estatus` varchar(20) NOT NULL,
  `conceptos_cobro_egresos_id` int(11) NOT NULL,
  `importe` decimal(11,2) DEFAULT NULL COMMENT 'Total',
  `descripcion` varchar(200) DEFAULT NULL COMMENT 'Comentarios',
  `bancos_id` int(11) NOT NULL,
  `bancos_cuenta` varchar(50) DEFAULT NULL,
  `numero_autorizacion` varchar(20) DEFAULT NULL COMMENT 'Autorizacion / Referencia',
  `fecha_cancelacion` date DEFAULT NULL,
  `causas_cancelacion_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `bancos_id` (`bancos_id`),
  KEY `remisiones_permisionarios_id` (`remisiones_permisionarios_id`),
  KEY `causas_cancelacion_id` (`causas_cancelacion_id`),
  KEY `anticipo` (`anticipo_permisionario`),
  KEY `fecha_hora` (`fecha_hora`),
  KEY `tipo_egreso` (`tipo_egreso`),
  KEY `estatus` (`estatus`),
  KEY `conceptos_cobro_egresos_id_2` (`conceptos_cobro_egresos_id`),
  KEY `proveedores_id` (`proveedores_id`),
  KEY `compras_administrativos_cobrado_id` (`compras_administrativos_cobrado_id`),
  CONSTRAINT `remisiones_permisionarios_anticipos_detalle_ibfk_1` FOREIGN KEY (`remisiones_permisionarios_id`) REFERENCES `remisiones_permisionarios` (`id`),
  CONSTRAINT `remisiones_permisionarios_anticipos_detalle_ibfk_2` FOREIGN KEY (`proveedores_id`) REFERENCES `proveedores` (`id`),
  CONSTRAINT `remisiones_permisionarios_anticipos_detalle_ibfk_3` FOREIGN KEY (`compras_administrativos_cobrado_id`) REFERENCES `compras_administrativos` (`id`),
  CONSTRAINT `remisiones_permisionarios_anticipos_detalle_ibfk_4` FOREIGN KEY (`conceptos_cobro_egresos_id`) REFERENCES `conceptos_cobro_egresos` (`id`),
  CONSTRAINT `remisiones_permisionarios_anticipos_detalle_ibfk_5` FOREIGN KEY (`bancos_id`) REFERENCES `bancos` (`id`),
  CONSTRAINT `remisiones_permisionarios_anticipos_detalle_ibfk_6` FOREIGN KEY (`causas_cancelacion_id`) REFERENCES `causas_cancelacion` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_permisionarios_anticipos_detalle`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_anticipos_detalle_before_insert` BEFORE INSERT ON `remisiones_permisionarios_anticipos_detalle`
 FOR EACH ROW BEGIN

   DECLARE vFolio INT(11);
   DECLARE vSerie VARCHAR(3);
   DECLARE idsucursal INT(11);
   
      SELECT remisiones_permisionarios.sucursales_id INTO idsucursal FROM remisiones_permisionarios WHERE remisiones_permisionarios.id=NEW.remisiones_permisionarios_id;

      SELECT gf_anticipos_permisionarios(idsucursal) INTO vFolio;

      SELECT gs_anticipos_permisionarios(idsucursal) INTO vSerie;

	  SET NEW.anticipo_permisionario = CONCAT(vSerie, vFolio);
      SET NEW.fecha_hora = SYSDATE();

      SET NEW.estatus='Autorizado';

    
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_anticipos_detalle_after_insert` AFTER INSERT ON `remisiones_permisionarios_anticipos_detalle`
 FOR EACH ROW BEGIN

 DECLARE permisionario_deposito VARCHAR(100);
 
   IF (NEW.tipo_egreso IN ('Deposito', 'Cheque', 'Caja Chica')) THEN
    SELECT razon_social INTO permisionario_deposito 
    FROM proveedores
    WHERE proveedores.id = NEW.proveedores_id;
    
     IF (NEW.bancos_id IS NOT NULL) THEN

  		INSERT INTO bancos_saldos (fecha_hora, bancos_id, tipo_operacion, razon_social, folio, numero_autorizacion, movimiento, monto_deposito, monto_retiro)
  		VALUES (NEW.fecha_aplicacion, NEW.bancos_id, 'Anticipo a Proveedor', permisionario_deposito, NEW.anticipo_permisionario, NEW.numero_autorizacion, 'Retiro', NULL, NEW.importe);
     END IF;
    END IF;
    

END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_anticipo_detalle_after_update` AFTER UPDATE ON `remisiones_permisionarios_anticipos_detalle`
 FOR EACH ROW BEGIN

 DECLARE permisionario_deposito VARCHAR(100);
  
  IF (NEW.estatus = 'Cancelado' AND OLD.estatus = 'Autorizado') THEN
   IF (NEW.tipo_egreso IN ('Deposito', 'Cheque', 'Caja Chica')) THEN 
    SELECT razon_social INTO permisionario_deposito 
    FROM proveedores
    WHERE proveedores.id = NEW.proveedores_id;
    
    IF (NEW.bancos_id IS NOT NULL) THEN

  		INSERT INTO bancos_saldos (fecha_hora, bancos_id, tipo_operacion, razon_social, folio, numero_autorizacion, movimiento, monto_deposito, monto_retiro)
  		VALUES (NEW.fecha_aplicacion, NEW.bancos_id, 'Cancelacion Anticipo a Proveedor', permisionario_deposito, NEW.anticipo_permisionario, NEW.numero_autorizacion, 'Deposito', NEW.importe, NULL);
    END IF;
   END IF;
    
  END IF;
END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_permisionarios_combustibles_detalle`
--

CREATE TABLE `remisiones_permisionarios_combustibles_detalle` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_permisionarios_id` int(11) DEFAULT NULL,
  `combustible_permisionario` varchar(20) DEFAULT NULL COMMENT 'Folio',
  `fecha_hora` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `permisionarios_id` int(11) NOT NULL,
  `permisionarios_razon_social` varchar(50) NOT NULL COMMENT 'Permisionario',
  `tipo_vale` varchar(20) DEFAULT NULL,
  `compras_administrativos_id` int(11) DEFAULT NULL,
  `compras_administrativos_cobrado_id` int(11) DEFAULT NULL,
  `estatus` varchar(20) NOT NULL,
  `conceptos_cobro_egresos_id` int(11) DEFAULT NULL,
  `lleva_urea` varchar(3) DEFAULT NULL COMMENT '¿Lleva Urea?',
  `proveedores_id` int(11) NOT NULL,
  `gasolinera_folio` varchar(20) DEFAULT NULL,
  `litros` decimal(11,2) NOT NULL,
  `precio_litro` decimal(11,2) NOT NULL,
  `importe_combustible` decimal(11,2) NOT NULL,
  `litros_urea` decimal(11,2) DEFAULT NULL,
  `precio_litro_urea` decimal(11,2) DEFAULT NULL,
  `importe_urea` decimal(11,2) DEFAULT NULL,
  `importe` decimal(11,2) NOT NULL,
  `fecha_cancelacion` date DEFAULT NULL,
  `causas_cancelacion_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `remisiones_permisionarios_id` (`remisiones_permisionarios_id`),
  KEY `causas_cancelacion_id` (`causas_cancelacion_id`),
  KEY `combustible_permisionario` (`combustible_permisionario`),
  KEY `fecha_hora` (`fecha_hora`),
  KEY `tipo_vale` (`tipo_vale`),
  KEY `estatus` (`estatus`),
  KEY `proveedores_id` (`proveedores_id`) USING BTREE,
  KEY `permisionarios_id` (`permisionarios_id`),
  KEY `conceptos_cobro_egresos_id` (`conceptos_cobro_egresos_id`),
  KEY `compras_administrativos_id` (`compras_administrativos_id`),
  KEY `compras_administrativos_cobrado_id` (`compras_administrativos_cobrado_id`),
  CONSTRAINT `remisiones_permisionarios_combustibles_detalle_ibfk_1` FOREIGN KEY (`remisiones_permisionarios_id`) REFERENCES `remisiones_permisionarios` (`id`),
  CONSTRAINT `remisiones_permisionarios_combustibles_detalle_ibfk_2` FOREIGN KEY (`permisionarios_id`) REFERENCES `proveedores` (`id`),
  CONSTRAINT `remisiones_permisionarios_combustibles_detalle_ibfk_3` FOREIGN KEY (`compras_administrativos_id`) REFERENCES `compras_administrativos` (`id`),
  CONSTRAINT `remisiones_permisionarios_combustibles_detalle_ibfk_4` FOREIGN KEY (`compras_administrativos_cobrado_id`) REFERENCES `compras_administrativos` (`id`),
  CONSTRAINT `remisiones_permisionarios_combustibles_detalle_ibfk_5` FOREIGN KEY (`conceptos_cobro_egresos_id`) REFERENCES `conceptos_cobro_egresos` (`id`),
  CONSTRAINT `remisiones_permisionarios_combustibles_detalle_ibfk_6` FOREIGN KEY (`proveedores_id`) REFERENCES `proveedores` (`id`),
  CONSTRAINT `remisiones_permisionarios_combustibles_detalle_ibfk_7` FOREIGN KEY (`causas_cancelacion_id`) REFERENCES `causas_cancelacion` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `remisiones_permisionarios_combustibles_detalle`
--

DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_combustibles_detalle_before_insert` BEFORE INSERT ON `remisiones_permisionarios_combustibles_detalle`
 FOR EACH ROW BEGIN

   DECLARE vFolio INT(11);
   DECLARE vSerie VARCHAR(3);
   DECLARE idsucursal INT(11);
   
      SELECT remisiones_permisionarios.sucursales_id INTO idsucursal FROM remisiones_permisionarios WHERE remisiones_permisionarios.id=NEW.remisiones_permisionarios_id;

      SELECT gf_combustibles_permisionarios(idsucursal) INTO vFolio;

      SELECT gs_combustibles_permisionarios(idsucursal) INTO vSerie;

	  SET NEW.combustible_permisionario = CONCAT(vSerie, vFolio);
      SET NEW.fecha_hora = SYSDATE();


      SET NEW.estatus='Autorizado';

    
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_combustibles_detalle_after_insert` AFTER INSERT ON `remisiones_permisionarios_combustibles_detalle`
 FOR EACH ROW BEGIN

    DECLARE id_gasolinera INT(11);
    DECLARE id_producto INT(11);
    DECLARE existencia_actual DECIMAL(11,2);
    DECLARE costo_actual DECIMAL(11,2);
    DECLARE folio_remision VARCHAR(20);
    DECLARE unidad VARCHAR(100);
        
        SELECT COALESCE(p.valor,1) FROM parametros p WHERE p.parametro='id_gasolinera_autoconsumo' INTO id_gasolinera;

        SELECT COALESCE(p.valor,1) FROM parametros p WHERE p.parametro='id_producto_autoconsumo' INTO id_producto;
    
        SELECT COALESCE(p.existencia_producto,0), COALESCE(p.costo,0) FROM conceptos_cobro_egresos p WHERE p.id=id_producto INTO existencia_actual, costo_actual;
        
        SELECT r.remision_permisionario FROM remisiones_permisionarios r WHERE r.id=NEW.remisiones_permisionarios_id INTO folio_remision;
        
        IF(NEW.proveedores_id = id_gasolinera) THEN
            UPDATE conceptos_cobro_egresos p SET p.existencia_producto = (COALESCE(p.existencia_producto,0) - NEW.litros) WHERE p.id = id_producto;
        
            INSERT INTO autoconsumo_saldos (movimiento, razon_social, folio, remision, existencia_anterior, costo_producto, existencia_deposito, existencia_retiro, existencia_final, tipo_operacion, proveedores_id) VALUES ('Vale de Combustible', '', NEW.combustible_permisionario, folio_remision, existencia_actual, costo_actual, 0.00, NEW.litros, (existencia_actual - NEW.litros), 'Autoconsumo', NEW.proveedores_id );
        
        END IF;
   
END */;;
DELIMITER ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `remisiones_permisionarios_combustibles_detalle_after_update` AFTER UPDATE ON `remisiones_permisionarios_combustibles_detalle`
 FOR EACH ROW BEGIN
    DECLARE id_gasolinera INT(11);
    DECLARE id_producto INT(11);
    DECLARE existencia_actual DECIMAL(11,2);
    DECLARE costo_actual DECIMAL(11,2);
    DECLARE folio_remision VARCHAR(20);
    DECLARE unidad VARCHAR(100); 
    
    IF(NEW.estatus LIKE 'Cancelado' AND OLD.estatus LIKE 'Autorizado') THEN
        SELECT COALESCE(p.valor,1) FROM parametros p WHERE p.parametro='id_gasolinera_autoconsumo' INTO id_gasolinera;

        SELECT COALESCE(p.valor,1) FROM parametros p WHERE p.parametro='id_producto_autoconsumo' INTO id_producto;
    
        SELECT COALESCE(p.existencia_producto,0), COALESCE(p.costo,0) FROM conceptos_cobro_egresos p WHERE p.id=id_producto INTO existencia_actual, costo_actual;
        
        SELECT r.remision_permisionario FROM remisiones_permisionarios r WHERE r.id=NEW.remisiones_permisionarios_id INTO folio_remision;
        
        IF(NEW.proveedores_id = id_gasolinera) THEN
            UPDATE conceptos_cobro_egresos p SET p.existencia_producto = (COALESCE(p.existencia_producto,0) + NEW.litros) WHERE p.id = id_producto;
        
            INSERT INTO autoconsumo_saldos (movimiento, razon_social, folio, remision, existencia_anterior, costo_producto, existencia_deposito, existencia_retiro, existencia_final, tipo_operacion, proveedores_id) VALUES ('Cancelacion Vale de Combustible', '', NEW.combustible_permisionario, folio_remision, existencia_actual, costo_actual, NEW.litros, 0.00, (existencia_actual + NEW.litros), 'Autoconsumo', NEW.proveedores_id );
        
        END IF;
    END IF; 
END */;;
DELIMITER ;

--
-- Table structure for table `remisiones_permisionarios_conceptos_cobro`
--

CREATE TABLE `remisiones_permisionarios_conceptos_cobro` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `remisiones_permisionarios_id` int(11) NOT NULL,
  `cantidad_concepto` decimal(11,2) NOT NULL,
  `conceptos_cobro_id` int(11) NOT NULL,
  `descripcion` varchar(200) DEFAULT NULL,
  `valor_unitario` decimal(11,2) NOT NULL,
  `porc_iva` int(11) DEFAULT NULL,
  `porc_retencion` decimal(11,2) DEFAULT NULL,
  `importe` decimal(11,2) DEFAULT NULL,
  `subtotal` decimal(11,2) DEFAULT NULL,
  `iva` decimal(11,2) DEFAULT NULL,
  `retencion` decimal(11,2) DEFAULT NULL,
  `total` decimal(11,2) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `remisiones_permisionarios_id` (`remisiones_permisionarios_id`),
  KEY `conceptos_cobro_id` (`conceptos_cobro_id`) USING BTREE,
  CONSTRAINT `remisiones_permisionarios_conceptos_cobro_ibfk_1` FOREIGN KEY (`remisiones_permisionarios_id`) REFERENCES `remisiones_permisionarios` (`id`),
  CONSTRAINT `remisiones_permisionarios_conceptos_cobro_ibfk_2` FOREIGN KEY (`conceptos_cobro_id`) REFERENCES `conceptos_cobro` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;

--
