	
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 cliente_ids text;
	DECLARE nombres text;
    SELECT 
		GROUP_CONCAT(jt.cliente_id SEPARATOR ','),
		GROUP_CONCAT(jt.nombre SEPARATOR ', ')
        INTO
        cliente_ids, nombres
	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';
            
    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 cliente_ids text;
	DECLARE nombres text;
    SELECT 
		GROUP_CONCAT(jt.cliente_id SEPARATOR ','),
		GROUP_CONCAT(jt.nombre SEPARATOR ', ')
        INTO
        cliente_ids, nombres
	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';
            
    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;


