46 lines
1.1 KiB
MySQL
46 lines
1.1 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemShelvingSale_addBySaleGroup`(
|
||
|
vSaleGroupFk INT(11)
|
||
|
)
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Reserva cantidades con ubicaciones para el contenido de una preparación previa
|
||
|
* a través del saleGroup
|
||
|
*
|
||
|
* @param vSaleGroupFk Identificador de saleGroup
|
||
|
*/
|
||
|
DECLARE vDone BOOL DEFAULT FALSE;
|
||
|
DECLARE vSaleFk INT;
|
||
|
DECLARE vSectorFk INT;
|
||
|
DECLARE vSales CURSOR FOR
|
||
|
SELECT s.id
|
||
|
FROM saleGroupDetail sgd
|
||
|
JOIN sale s ON sgd.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 sgd.saleGroupFk = vSaleGroupFk
|
||
|
AND str.workerFk = account.myUser_getId()
|
||
|
AND iss.id IS NULL;
|
||
|
|
||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||
|
|
||
|
SELECT sectorFk INTO vSectorFk
|
||
|
FROM operator
|
||
|
WHERE workerFk = account.myUser_getId();
|
||
|
|
||
|
OPEN vSales;
|
||
|
l: LOOP
|
||
|
SET vDone = FALSE;
|
||
|
FETCH vSales INTO vSaleFk;
|
||
|
|
||
|
IF vDone THEN
|
||
|
LEAVE l;
|
||
|
END IF;
|
||
|
|
||
|
CALL itemShelvingSale_addBySale(vSaleFk, vSectorFk);
|
||
|
END LOOP;
|
||
|
CLOSE vSales;
|
||
|
END$$
|
||
|
DELIMITER ;
|