feat(available): refs #8408 available refreshing now includes time #3395
|
@ -3,7 +3,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_refres
|
|||
OUT `vCalc` INT,
|
||||
`vRefresh` INT,
|
||||
`vWarehouse` INT,
|
||||
`vDated` DATE
|
||||
`vAvailabled` DATETIME
|
||||
)
|
||||
proc: BEGIN
|
||||
DECLARE vStartDate DATE;
|
||||
|
@ -12,6 +12,7 @@ proc: BEGIN
|
|||
DECLARE vInventoryDate DATE;
|
||||
DECLARE vLifeScope DATE;
|
||||
DECLARE vWarehouseFkInventory INT;
|
||||
DECLARE vDated DATE;
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
|
@ -19,13 +20,17 @@ proc: BEGIN
|
|||
RESIGNAL;
|
||||
END;
|
||||
|
||||
IF vDated < util.VN_CURDATE() THEN
|
||||
IF vAvailabled < util.VN_CURDATE() THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
SET vDated = DATE(vAvailabled);
|
||||
|
||||
SET vAvailabled = vDated + INTERVAL HOUR(vAvailabled) HOUR;
|
||||
|
||||
CALL vn.item_getStock(vWarehouse, vDated, NULL);
|
||||
|
||||
SET vParams = CONCAT_WS('/', vWarehouse, vDated);
|
||||
SET vParams = CONCAT_WS('/', vWarehouse, vAvailabled);
|
||||
CALL cache_calc_start (vCalc, vRefresh, 'available', vParams);
|
||||
|
||||
IF !vRefresh THEN
|
||||
|
@ -87,11 +92,10 @@ proc: BEGIN
|
|||
SELECT i.itemFk, i.landed, i.quantity
|
||||
FROM vn.itemEntryIn i
|
||||
JOIN itemRange ir ON ir.itemFk = i.itemFk
|
||||
LEFT JOIN edi.warehouseFloramondo wf ON wf.entryFk = i.entryFk
|
||||
WHERE i.landed >= vStartDate
|
||||
AND IFNULL(i.availabled, i.landed) <= vAvailabled
|
||||
AND (ir.ended IS NULL OR i.landed <= ir.ended)
|
||||
AND i.warehouseInFk = vWarehouse
|
||||
AND ISNULL(wf.entryFk)
|
||||
UNION ALL
|
||||
SELECT i.itemFk, i.shipped, i.quantity
|
||||
FROM vn.itemEntryOut i
|
||||
|
|
|
@ -15,8 +15,6 @@ BEGIN
|
|||
*
|
||||
* @return tmp.itemList(itemFk, stock, visible, available)
|
||||
*/
|
||||
DECLARE vIsLogifloraDay BOOL DEFAULT vn.isLogifloraDay(vDated, vWarehouseFk);
|
||||
|
||||
SET vDated = TIMESTAMP(vDated, '00:00:00');
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.itemList
|
||||
|
@ -36,14 +34,11 @@ BEGIN
|
|||
UNION ALL
|
||||
SELECT iei.itemFk, iei.quantity
|
||||
FROM itemEntryIn iei
|
||||
LEFT JOIN edi.warehouseFloramondo wf ON wf.entryFk = iei.entryFk
|
||||
JOIN item i ON i.id = iei.itemFk
|
||||
WHERE iei.landed >= util.VN_CURDATE()
|
||||
AND iei.landed < vDated
|
||||
AND iei.warehouseInFk = vWarehouseFk
|
||||
AND (vItemFk IS NULL OR iei.itemFk = vItemFk)
|
||||
AND (wf.entryFk IS NULL OR vIsLogifloraDay)
|
||||
AND NOT (iei.landed > util.VN_CURDATE() AND i.isFloramondo)
|
||||
UNION ALL
|
||||
SELECT ieo.itemFk, ieo.quantity
|
||||
FROM itemEntryOut ieo
|
||||
|
@ -52,7 +47,6 @@ BEGIN
|
|||
AND ieo.shipped < vDated
|
||||
AND ieo.warehouseOutFk = vWarehouseFk
|
||||
AND (vItemFk IS NULL OR ieo.itemFk = vItemFk)
|
||||
AND NOT (ieo.shipped > util.VN_CURDATE() AND i.isFloramondo)
|
||||
) sub
|
||||
GROUP BY itemFk
|
||||
HAVING stock;
|
||||
|
|
|
@ -16,5 +16,9 @@ BEGIN
|
|||
IF NEW.awbFk IS NOT NULL THEN
|
||||
CALL travel_throwAwb(NEW.id);
|
||||
END IF;
|
||||
|
||||
IF NEW.availabled < NEW.landed THEN
|
||||
CALL util.throw('The travel availabled cannot be earlier than landed');
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -40,5 +40,9 @@ BEGIN
|
|||
IF (NOT(NEW.awbFk <=> OLD.awbFk)) AND NEW.awbFk IS NOT NULL THEN
|
||||
CALL travel_throwAwb(NEW.id);
|
||||
END IF;
|
||||
|
||||
IF NEW.availabled < NEW.landed THEN
|
||||
CALL util.throw('The travel availabled cannot be earlier than landed');
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -7,7 +7,8 @@ AS SELECT `t`.`warehouseInFk` AS `warehouseInFk`,
|
|||
`b`.`quantity` AS `quantity`,
|
||||
`t`.`isReceived` AS `isReceived`,
|
||||
`t`.`isRaid` AS `isVirtualStock`,
|
||||
`e`.`id` AS `entryFk`
|
||||
`e`.`id` AS `entryFk`,
|
||||
`t`.`availabled`
|
||||
FROM (
|
||||
(
|
||||
`vn`.`buy` `b`
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
-- Place your SQL code here
|
||||
ALTER TABLE vn.travel ADD IF NOT EXISTS availabled DATETIME NULL
|
||||
pako marked this conversation as resolved
|
||||
COMMENT 'Indicates the moment in time when the goods become available for picking';
|
Loading…
Reference in New Issue
es molt especific availabled, perque tambe se podria dir visibled, perque a la vegada també estará visible.
Proposta: La taula travel te el camp landingHour, que jo gastaria ixe perque esta en desus per açò, canviant el tipo a datetime.
jo deixaria el landingHour per si es volguera fer servir per a organitzar les arrivades reals. El nou camp no pot ser visibled perque no fa referència al moment en el que arriven les coses, sino al moment en el que volem que apareguen a la venta. Per eixample, arriven coses que es tarda varios dies en etiquetar, i en eixe cas el availabled té tot el sentit. El nom del camp es auto-definidor, com sempre anem intentant....