#5858 - zoneCollisions #1853

Merged
jsegarra merged 78 commits from 5858-zone_Collisions into dev 2024-03-15 12:36:38 +00:00
1 changed files with 39 additions and 58 deletions
Showing only changes of commit f18e90d6f3 - Show all commits

View File

@ -19,19 +19,12 @@ BEGIN
DECLARE vTypeFk INT; DECLARE vTypeFk INT;
DECLARE vPriority INT DEFAULT 1; DECLARE vPriority INT DEFAULT 1;
DECLARE vTag1 VARCHAR(20) COLLATE 'utf8_unicode_ci'; CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vDated);
DECLARE vTag5 VARCHAR(20) COLLATE 'utf8_unicode_ci';
DECLARE vTag6 VARCHAR(20) COLLATE 'utf8_unicode_ci';
DECLARE vTag7 VARCHAR(20) COLLATE 'utf8_unicode_ci';
DECLARE vTag8 VARCHAR(20) COLLATE 'utf8_unicode_ci';
DECLARE vValue1 VARCHAR(50) COLLATE 'utf8_unicode_ci';
DECLARE vValue5 VARCHAR(50) COLLATE 'utf8_unicode_ci';
DECLARE vValue6 VARCHAR(50) COLLATE 'utf8_unicode_ci';
DECLARE vValue7 VARCHAR(50) COLLATE 'utf8_unicode_ci';
DECLARE vValue8 VARCHAR(50) COLLATE 'utf8_unicode_ci';
SELECT typeFk, WITH itemTags AS (
SELECT i.id,
typeFk,
tag5, tag5,
value5, value5,
tag6, tag6,
@ -42,70 +35,58 @@ BEGIN
value8, value8,
t.name, t.name,
it.value it.value
INTO vTypeFk, FROM vn.item i
vTag5, LEFT JOIN vn.itemTag it ON it.itemFk = i.id
vValue5,
vTag6,
vValue6,
vTag7,
vValue7,
vTag8,
vValue8,
vTag1,
vValue1
FROM item i
LEFT JOIN itemTag it ON it.itemFk = i.id
AND it.priority = vPriority AND it.priority = vPriority
LEFT JOIN tag t ON t.id = it.tagFk LEFT JOIN vn.tag t ON t.id = it.tagFk
WHERE i.id = vSelf; WHERE i.id = vSelf
)
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, vDated);
SELECT i.id itemFk, SELECT i.id itemFk,
i.longName, i.longName,
i.subName, i.subName,
i.tag5, i.tag5,
i.value5, i.value5,
(i.value5 <=> vValue5) match5, (i.value5 <=> its.value5) match5,
i.tag6, i.tag6,
i.value6, i.value6,
(i.value6 <=> vValue6) match6, (i.value6 <=> its.value6) match6,
i.tag7, i.tag7,
i.value7, i.value7,
(i.value7 <=> vValue7) match7, (i.value7 <=> its.value7) match7,
i.tag8, i.tag8,
i.value8, i.value8,
(i.value8 <=> vValue8) match8, (i.value8 <=> its.value8) match8,
a.available, a.available,
IFNULL(ip.counter, 0) `counter`, IFNULL(ip.counter, 0) `counter`,
IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity, IF(b.groupingMode = 1, b.grouping, b.packing) minQuantity,
iss.visible located iss.visible located
FROM item i FROM vn.item i
STRAIGHT_JOIN cache.available a ON a.item_id = i.id JOIN cache.available a ON a.item_id = i.id
AND a.calc_id = vCalcFk AND a.calc_id = vCalcFk
LEFT JOIN itemProposal ip ON ip.mateFk = i.id LEFT JOIN vn.itemProposal ip ON ip.mateFk = i.id
AND ip.itemFk = vSelf AND ip.itemFk = vSelf
LEFT JOIN itemTag it ON it.itemFk = i.id LEFT JOIN vn.itemTag it ON it.itemFk = i.id
AND it.priority = vPriority AND it.priority = vPriority
LEFT JOIN tag t ON t.id = it.tagFk LEFT JOIN vn.tag t ON t.id = it.tagFk
LEFT JOIN cache.last_buy lb ON lb.item_id = i.id LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
AND lb.warehouse_id = vWarehouseFk AND lb.warehouse_id = vWarehouseFk
LEFT JOIN buy b ON b.id = lb.buy_id LEFT JOIN vn.buy b ON b.id = lb.buy_id
LEFT JOIN itemShelvingStock iss ON iss.itemFk = i.id LEFT JOIN vn.itemShelvingStock iss ON iss.itemFk = i.id
AND iss.warehouseFk = vWarehouseFk AND iss.warehouseFk = vWarehouseFk
JOIN itemTags its
WHERE a.available > 0 WHERE a.available > 0
AND IF(vShowType, i.typeFk = vTypeFk, TRUE) AND IF(vShowType, i.typeFk = its.typeFk, TRUE)
AND i.id <> vSelf AND i.id <> vSelf
ORDER BY `counter` DESC, ORDER BY `counter` DESC,
(t.name = vTag1) DESC, (t.name = its.name) DESC,
(it.value = vValue1) DESC, (it.value = its.value) DESC,
(i.tag5 = vTag5) DESC, (i.tag5 = its.tag5) DESC,
match5 DESC, match5 DESC,
(i.tag6 = vTag6) DESC, (i.tag6 = its.tag6) DESC,
match6 DESC, match6 DESC,
(i.tag7 = vTag7) DESC, (i.tag7 = its.tag7) DESC,
match7 DESC, match7 DESC,
(i.tag8 = vTag8) DESC, (i.tag8 = its.tag8) DESC,
match8 DESC; match8 DESC;
END$$ END$$
DELIMITER ; DELIMITER ;