DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`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 hasVolumetricAgency INT; SELECT a.hasWeightVolumetric INTO hasVolumetricAgency 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 hasVolumetricAgency THEN CALL util.throw('Item lacks size/weight in purchase line at agency'); END IF; END$$ DELIMITER ;