DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`XDiario_beforeUpdate`
	BEFORE UPDATE ON `XDiario`
	FOR EACH ROW
BEGIN
    IF NOT NEW.SUBCTA <=> OLD.SUBCTA THEN
        IF NEW.SUBCTA <=> '' THEN
            SET NEW.SUBCTA = NULL;
        END IF;
        IF NEW.SUBCTA IS NOT NULL AND NOT LENGTH(NEW.SUBCTA) <=> 10 THEN
            CALL util.throw('INVALID_STRING_LENGTH');
        END IF;
    END IF;
    IF NOT NEW.CONTRA <=> OLD.CONTRA THEN
        IF NEW.CONTRA <=> '' THEN
            SET NEW.CONTRA = NULL;
        END IF;
        IF NEW.CONTRA IS NOT NULL AND NOT LENGTH(NEW.CONTRA) <=> 10 THEN
            CALL util.throw('INVALID_STRING_LENGTH');
        END IF;
    END IF;
    IF NOT NEW.FECHA <=> OLD.FECHA THEN
        CALL XDiario_checkDate(NEW.FECHA);
    END IF;
    IF NOT NEW.FECHA_EX <=> OLD.FECHA_EX THEN
        CALL XDiario_checkDate(NEW.FECHA_EX);
    END IF;
    IF NOT NEW.FECHA_OP <=> OLD.FECHA_OP THEN
        CALL XDiario_checkDate(NEW.FECHA_OP);
    END IF;
    IF NOT NEW.FECHA_RT <=> OLD.FECHA_RT THEN
        CALL XDiario_checkDate(NEW.FECHA_RT);
    END IF;
    IF NOT NEW.FECREGCON <=> OLD.FECREGCON THEN
        CALL XDiario_checkDate(NEW.FECREGCON);
    END IF;
END$$
DELIMITER ;