ALTER TABLE `banco_cuenta_mov` ADD `referencia_monex` VARCHAR(50) NOT NULL;

ALTER TABLE `nota_bodega` 
	CHANGE `cliente_actual_id` `cliente_actual_id` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
	CHANGE `cliente_actual` `cliente_actual` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL;
	
	
	
DROP TRIGGER IF EXISTS before_nota_bodega_update;

DELIMITER $$

CREATE TRIGGER before_nota_bodega_update
BEFORE UPDATE ON nota_bodega
FOR EACH ROW
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE v_cliente_id VARCHAR(191);
    DECLARE v_nombre VARCHAR(191);
    DECLARE cur CURSOR FOR 
        SELECT 
            jt.cliente_id, 
            jt.nombre
        FROM 
            JSON_TABLE(NEW.cliente, '$[*]' COLUMNS (
                cliente_id VARCHAR(32) PATH '$.cliente_id',
                fue_error CHAR(2) PATH '$.fue_error',
                nombre VARCHAR(191) PATH '$.nombre'
            )) AS jt
        WHERE
            jt.fue_error = 'No';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    -- Reset the variables
    SET @cliente_ids = NULL;
    SET @nombres = NULL;

    -- Open the cursor
    OPEN cur;

    -- Loop through the cursor
    read_loop: LOOP
        FETCH cur INTO v_cliente_id, v_nombre;
        IF done THEN
            LEAVE read_loop;
        END IF;
        -- Concatenate the current row's values with the previous ones
        SET @cliente_ids = IFNULL(CONCAT(@cliente_ids, ',', v_cliente_id), v_cliente_id);
        SET @nombres = IFNULL(CONCAT(@nombres, ', ', v_nombre), v_nombre);
    END LOOP;

    CLOSE cur;

IF @nombres IS NOT NULL AND @cliente_ids IS NOT NULL THEN
        SET NEW.cliente_actual = @nombres;
SET NEW.cliente_actual_id = @cliente_ids;
    END IF;

END$$

DELIMITER ;


DROP TRIGGER IF EXISTS before_nota_bodega_insert;
DELIMITER $$

CREATE TRIGGER before_nota_bodega_insert
BEFORE INSERT ON nota_bodega
FOR EACH ROW
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE v_cliente_id VARCHAR(191);
    DECLARE v_nombre VARCHAR(191);
    DECLARE cur CURSOR FOR 
        SELECT 
            jt.cliente_id, 
            jt.nombre
        FROM 
            JSON_TABLE(NEW.cliente, '$[*]' COLUMNS (
                cliente_id VARCHAR(32) PATH '$.cliente_id',
                fue_error CHAR(2) PATH '$.fue_error',
                nombre VARCHAR(191) PATH '$.nombre'
            )) AS jt
        WHERE
            jt.fue_error = 'No';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    -- Reset the variables
    SET @cliente_ids = NULL;
    SET @nombres = NULL;

    -- Open the cursor
    OPEN cur;

    -- Loop through the cursor
    read_loop: LOOP
        FETCH cur INTO v_cliente_id, v_nombre;
        IF done THEN
            LEAVE read_loop;
        END IF;
        -- Concatenate the current row's values with the previous ones
        SET @cliente_ids = IFNULL(CONCAT(@cliente_ids, ',', v_cliente_id), v_cliente_id);
        SET @nombres = IFNULL(CONCAT(@nombres, ', ', v_nombre), v_nombre);
    END LOOP;

    CLOSE cur;

IF @nombres IS NOT NULL AND @cliente_ids IS NOT NULL THEN
        SET NEW.cliente_actual = @nombres;
SET NEW.cliente_actual_id = @cliente_ids;
    END IF;

END$$

DELIMITER ;

UPDATE nota_bodega SET nota_bodega_id = nota_bodega_id WHERE 1;

ALTER TABLE `vitex`.`cheque` ADD INDEX `origen_cuentat_` (`origen_cuentat_id`);

