37 lines
985 B
SQL
37 lines
985 B
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_multipleBuy`(
|
|
vDate DATETIME,
|
|
vWarehouseFk INT
|
|
)
|
|
BEGIN
|
|
/**
|
|
* Updates the tmp.itemInventory table, adding the buy id.
|
|
*
|
|
* @param tmp.itemInventory(buy_id)
|
|
* @param vDate -> Date of the purchase operation.
|
|
* @param vWarehouseFk -> Identifier of the warehouse (warehouseId).
|
|
*/
|
|
ALTER TABLE tmp.itemInventory ADD IF NOT EXISTS buy_id INT;
|
|
|
|
CALL buy_getUltimate (NULL, vWarehouseFk, vDate);
|
|
|
|
CREATE OR REPLACE TEMPORARY TABLE tmp
|
|
(KEY (itemFk))
|
|
ENGINE = MEMORY
|
|
SELECT *
|
|
FROM (
|
|
SELECT itemFk, buyFk
|
|
FROM tmp.buyUltimate
|
|
ORDER BY (vWarehouseFk = warehouseFk) DESC, landing DESC
|
|
LIMIT 10000000000000000000
|
|
) t
|
|
GROUP BY itemFk;
|
|
|
|
UPDATE tmp.itemInventory ai
|
|
JOIN tmp t ON ai.id = t.itemFk
|
|
SET ai.buy_id = t.buyFk;
|
|
|
|
DROP TEMPORARY TABLE tmp, tmp.buyUltimate;
|
|
END$$
|
|
DELIMITER ;
|