diff --git a/db/routines/vn/procedures/catalog_calculate.sql b/db/routines/vn/procedures/catalog_calculate.sql index 09f42f09aa..63d1d40eb4 100644 --- a/db/routines/vn/procedures/catalog_calculate.sql +++ b/db/routines/vn/procedures/catalog_calculate.sql @@ -104,6 +104,24 @@ BEGIN LEFT JOIN agencyModeItemType ait ON ait.agencyModeFk = vAgencyModeFk AND ait.itemTypeFk = itt.id + LEFT JOIN ( + SELECT i.id + FROM item i + JOIN priceDelta pd + ON pd.itemTypeFk = i.typeFk + AND (pd.minSize IS NULL OR pd.minSize <= i.`size`) + AND (pd.maxSize IS NULL OR pd.maxSize >= i.`size`) + AND (pd.inkFk IS NULL OR pd.inkFk = i.inkFk) + AND (pd.originFk IS NULL OR pd.originFk = i.originFk) + AND (pd.producerFk IS NULL OR pd.producerFk = i.producerFk) + AND (pd.warehouseFk IS NULL OR pd.warehouseFk = vWarehouseFk) + LEFT JOIN zoneGeo zg ON zg.id = pd.zoneGeoFk + LEFT JOIN zoneGeo zg2 ON zg2.id = address_getGeo(vAddressFk) + WHERE (pd.fromDated IS NULL OR pd.fromDated <= vShipped) + AND (pd.toDated IS NULL OR pd.toDated >= vShipped) + AND (pd.zoneGeoFk IS NULL OR zg2.lft BETWEEN zg.lft AND zg.rgt) + AND pd.isHidden + GROUP BY i.id) pd ON pd.id = i.itemFk WHERE a.calc_id = vAvailableCalc AND a.available > 0 AND (ag.isAnyVolumeAllowed OR NOT itt.isUnconventionalSize) @@ -113,7 +131,9 @@ BEGIN it.size <= z.itemMaxSize OR z.itemMaxSize IS NULL)) AND cit.id IS NULL AND zit.id IS NULL - AND ait.id IS NULL; + AND ait.id IS NULL + AND pd.id IS NULL + ; DROP TEMPORARY TABLE tmp.buyUltimate; diff --git a/db/versions/11456-goldenDracena/00-firstScript.sql b/db/versions/11456-goldenDracena/00-firstScript.sql new file mode 100644 index 0000000000..fba3ba8088 --- /dev/null +++ b/db/versions/11456-goldenDracena/00-firstScript.sql @@ -0,0 +1,3 @@ +ALTER TABLE vn.priceDelta ADD IF NOT EXISTS isHidden BOOL + DEFAULT FALSE NOT NULL + COMMENT 'Hides the itemType when building de catalog recordset';