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 DEFAULT FALSE; SELECT TRUE INTO vIsNotEditable FROM `entry` e LEFT JOIN entryType et ON et.code = e.typeFk WHERE e.id = vSelf AND e.isBooked AND (e.typeFk IS NULL OR NOT et.isInformal); IF vIsNotEditable AND NOT IFNULL(@isModeInventory, FALSE) THEN CALL util.throw(CONCAT('Entry ', vSelf, ' is not editable')); END IF; END$$ DELIMITER ;