Actualizar db/routines/vn/procedures/item_getStock.sql
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
parent
8e82a6d0f1
commit
3b1e906a87
|
@ -1,21 +1,21 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`item_getStock`(
|
||||
vWarehouseFk SMALLINT,
|
||||
vDated DATE,
|
||||
vAvailabled DATETIME,
|
||||
vItemFk INT
|
||||
)
|
||||
BEGIN
|
||||
/**
|
||||
* Calcula el stock de un artículo de un vWarehouseFk,
|
||||
* desde la fecha del inventario hasta vDated
|
||||
* desde la fecha del inventario hasta el momento anterior a vAvailabled
|
||||
*
|
||||
* @param vWarehouse Warehouse id
|
||||
* @param vDated Max date to filter
|
||||
* @param vAvailabled Maximum time to filter
|
||||
* @param vItemFk Item id
|
||||
*
|
||||
* @return tmp.itemList(itemFk, stock, visible, available)
|
||||
*/
|
||||
SET vDated = TIMESTAMP(vDated, '00:00:00');
|
||||
CALL cache.stock_refresh(FALSE);
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.itemList
|
||||
(UNIQUE INDEX i USING HASH (itemFk))
|
||||
|
@ -28,15 +28,15 @@ BEGIN
|
|||
SELECT itemFk, quantity
|
||||
FROM itemTicketOut
|
||||
WHERE shipped >= util.VN_CURDATE()
|
||||
AND shipped < vDated
|
||||
AND shipped < vAvailabled
|
||||
AND warehouseFk = vWarehouseFk
|
||||
AND (vItemFk IS NULL OR itemFk = vItemFk)
|
||||
UNION ALL
|
||||
SELECT iei.itemFk, iei.quantity
|
||||
FROM itemEntryIn iei
|
||||
JOIN item i ON i.id = iei.itemFk
|
||||
WHERE IFNULL(iei.availabled, iei.landed) >= util.VN_CURDATE()
|
||||
AND IFNULL(iei.availabled, iei.landed) < vDated
|
||||
WHERE iei.availabled >= util.VN_CURDATE()
|
||||
AND iei.availabled < vAvailabled
|
||||
AND iei.warehouseInFk = vWarehouseFk
|
||||
AND (vItemFk IS NULL OR iei.itemFk = vItemFk)
|
||||
UNION ALL
|
||||
|
@ -44,23 +44,15 @@ BEGIN
|
|||
FROM itemEntryOut ieo
|
||||
JOIN item i ON i.id = ieo.itemFk
|
||||
WHERE ieo.shipped >= util.VN_CURDATE()
|
||||
AND ieo.shipped < vDated
|
||||
AND ieo.shipped < vAvailabled
|
||||
AND ieo.warehouseOutFk = vWarehouseFk
|
||||
AND (vItemFk IS NULL OR ieo.itemFk = vItemFk)
|
||||
UNION ALL
|
||||
SELECT item_id, amount
|
||||
FROM cache.stock
|
||||
WHERE warehouse_id = vWarehouseFk
|
||||
) sub
|
||||
GROUP BY itemFk
|
||||
HAVING stock;
|
||||
|
||||
CALL cache.stock_refresh(FALSE);
|
||||
|
||||
INSERT INTO tmp.itemList(itemFk, stock, visible, available)
|
||||
SELECT item_id, amount, amount, amount
|
||||
FROM cache.stock
|
||||
WHERE warehouse_id = vWarehouseFk
|
||||
AND (vItemFk IS NULL OR vItemFk = item_id)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
stock = stock + VALUES(stock),
|
||||
visible = visible + VALUES(visible),
|
||||
available = available + VALUES(available);
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
Loading…
Reference in New Issue