diff --git a/db/routines/vn/procedures/catalog_calculate.sql b/db/routines/vn/procedures/catalog_calculate.sql index 39bf2b441b..09f42f09aa 100644 --- a/db/routines/vn/procedures/catalog_calculate.sql +++ b/db/routines/vn/procedures/catalog_calculate.sql @@ -19,13 +19,15 @@ BEGIN * @return tmp.ticketComponentPrice */ DECLARE vAvailableCalc INT; - DECLARE vAvailableNoRaidsCalc INT; + DECLARE vAvailabled DATETIME; + DECLARE vDone BOOL; + DECLARE vHour INT; DECLARE vShipped DATE; DECLARE vWarehouseFk SMALLINT; DECLARE vZoneFk INT; - DECLARE vDone BOOL; + DECLARE cTravelTree CURSOR FOR - SELECT zoneFk, warehouseFk, shipped FROM tmp.zoneGetShipped; + SELECT zoneFk, warehouseFk, shipped, `hour` FROM tmp.zoneGetShipped; DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; @@ -66,14 +68,15 @@ BEGIN OPEN cTravelTree; l: LOOP SET vDone = FALSE; - FETCH cTravelTree INTO vZoneFk, vWarehouseFk, vShipped; + FETCH cTravelTree INTO vZoneFk, vWarehouseFk, vShipped, vHour; + + SET vAvailabled = vShipped + INTERVAL HOUR(vHour) HOUR; IF vDone THEN LEAVE l; END IF; - - CALL `cache`.available_refresh(vAvailableCalc, FALSE, vWarehouseFk, vShipped); - CALL `cache`.availableNoRaids_refresh(vAvailableNoRaidsCalc, FALSE, vWarehouseFk, vShipped); + + CALL `cache`.available_refresh(vAvailableCalc, FALSE, vWarehouseFk, vAvailabled); CALL buy_getUltimate(NULL, vWarehouseFk, vShipped); INSERT INTO tmp.ticketLot (warehouseFk, itemFk, available, buyFk, zoneFk) @@ -83,31 +86,10 @@ BEGIN bu.buyFk, vZoneFk FROM `cache`.available a - LEFT JOIN cache.availableNoRaids anr ON anr.item_id = a.item_id - AND anr.calc_id = vAvailableNoRaidsCalc JOIN tmp.item i ON i.itemFk = a.item_id JOIN item it ON it.id = i.itemFk JOIN `zone` z ON z.id = vZoneFk LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = a.item_id - LEFT JOIN edi.supplyResponse sr ON sr.ID = it.supplyResponseFk - LEFT JOIN edi.VMPSettings v ON v.VMPID = sr.vmpID - LEFT JOIN edi.marketPlace mp ON mp.id = sr.MarketPlaceID - LEFT JOIN (SELECT isVNHSupplier, isEarlyBird, TRUE AS itemAllowed - FROM addressFilter af - JOIN (SELECT ad.provinceFk, p.countryFk, ad.isLogifloraAllowed - FROM address ad - JOIN province p ON p.id = ad.provinceFk - WHERE ad.id = vAddressFk - ) sub2 ON sub2.provinceFk <=> IFNULL(af.provinceFk, sub2.provinceFk) - AND sub2.countryFk <=> IFNULL(af.countryFk, sub2.countryFk) - AND sub2.isLogifloraAllowed <=> IFNULL(af.isLogifloraAllowed, sub2.isLogifloraAllowed) - WHERE vWarehouseFk = af.warehouseFk - AND (vShipped < af.beforeDated - OR ISNULL(af.beforeDated) - OR vShipped > af.afterDated - OR ISNULL(af.afterDated)) - ) sub ON sub.isVNHSupplier = v.isVNHSupplier - AND (sub.isEarlyBird = mp.isEarlyBird OR ISNULL(sub.isEarlyBird)) JOIN agencyMode am ON am.id = vAgencyModeFk JOIN agency ag ON ag.id = am.agencyFk JOIN itemType itt ON itt.id = it.typeFk @@ -124,7 +106,6 @@ BEGIN AND ait.itemTypeFk = itt.id WHERE a.calc_id = vAvailableCalc AND a.available > 0 - AND (sub.itemAllowed OR NOT it.isFloramondo OR anr.available > 0) AND (ag.isAnyVolumeAllowed OR NOT itt.isUnconventionalSize) AND (it.`size` IS NULL OR IF(itc.isReclining,