DELIMITER $$ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`buy_checkItem`() BEGIN /** * Checks if the item has weightByPiece or size null on any buy. * * @param tmp.buysToCheck(id as INT). */ DECLARE vHasVolumetricAgency INT; DECLARE vItemFk INT; SELECT a.hasWeightVolumetric, i.id INTO vHasVolumetricAgency, vItemFk FROM entry e JOIN travel t ON t.id = e.travelFk JOIN agencyMode a ON a.id = t.agencyModeFk JOIN buy b ON b.entryFk = e.id JOIN item i ON i.id = b.itemFk JOIN tmp.buysToCheck bt ON bt.id = b.id WHERE (i.weightByPiece IS NULL OR i.`size` IS NULL) AND a.hasWeightVolumetric LIMIT 1; DROP TEMPORARY TABLE tmp.buysToCheck; IF vHasVolumetricAgency THEN CALL util.throw(CONCAT('Missing size/weight in buy line at agency, item: ', vItemFk)); END IF; END$$ DELIMITER ;