DELIMITER $$ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`entry_isEditable`( vSelf INT ) BEGIN /** * Comprueba si una entrada se puede actualizar * si no se puede retorna un throw. * * @param vSelf Id de entrada */ DECLARE vIsNotEditable BOOL; SELECT (e.typeFk IS NULL OR NOT et.isInformal) INTO vIsNotEditable FROM `entry` e LEFT JOIN entryType et ON et.code = e.typeFk WHERE e.id = vSelf AND e.isBooked; IF vIsNotEditable AND NOT IFNULL(@isModeInventory, FALSE) THEN CALL util.throw(CONCAT('Entry ', vSelf, ' is not editable')); END IF; END$$ DELIMITER ;