DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemShelvingSale_reserveBySectorCollection`(vSectorCollectionFk INT(11)) BEGIN /** * Reserva cantidades con ubicaciones para el contenido de una preparaciĆ³n previa * de la cual ya tiene generada la asociaciĆ³n del saleGroup con sectorCollection * * @param vSectorCollectionFk Identificador de sectorCollection */ DECLARE vHasSales BOOL; CREATE OR REPLACE TEMPORARY TABLE tmp.sale (INDEX(saleFk)) ENGINE = MEMORY SELECT s.id saleFk, str.workerFk userFK FROM sectorCollectionSaleGroup sc JOIN saleGroupDetail sg ON sg.saleGroupFk = sc.saleGroupFk JOIN sale s ON sg.saleFk = s.id JOIN saleTracking str ON str.saleFk = s.id JOIN `state` st ON st.id = str.stateFk AND st.code = 'PREVIOUS_PREPARATION' LEFT JOIN itemShelvingSale iss ON iss.saleFk = s.id WHERE sc.sectorCollectionFk = vSectorCollectionFk AND str.workerFk = account.myUser_getId() AND iss.id IS NULL; SELECT COUNT(*)INTO vHasSales FROM tmp.sale; IF vHasSales THEN CALL itemShelvingSale_reserve(); ELSE CALL util.throw ('There are not sales to reserve'); END IF; END$$ DELIMITER ;