feat: refs #7956 tabulaciones
gitea/salix/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Javi Gallego 2024-09-11 08:15:32 +02:00
parent 6ae15a8e64
commit ed8cf628a5
1 changed files with 70 additions and 71 deletions

View File

@ -35,83 +35,82 @@ BEGIN
value8, value8,
t.name, t.name,
it.value it.value
FROM vn.item i FROM vn.item i
LEFT JOIN vn.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 vn.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
), ),
stock AS ( stock AS (
SELECT itemFk, SUM(visible) stock SELECT itemFk, SUM(visible) stock
FROM vn.itemShelvingStock FROM vn.itemShelvingStock
WHERE warehouseFk = vWarehouseFk WHERE warehouseFk = vWarehouseFk
GROUP BY itemFk GROUP BY itemFk
), ),
sold AS ( sold AS (
SELECT SUM(s.quantity) AS quantity, SELECT SUM(s.quantity) AS quantity, s.itemFk
s.itemFk FROM vn.sale s
FROM vn.sale s JOIN vn.ticket t ON t.id = s.ticketFk
JOIN vn.ticket t ON t.id = s.ticketFk LEFT JOIN vn.itemShelvingSale iss ON iss.saleFk = s.id
LEFT JOIN vn.itemShelvingSale iss ON iss.saleFk = s.id WHERE t.shipped BETWEEN CURDATE() AND CURDATE() + INTERVAL vDaysInForward DAY
WHERE t.shipped BETWEEN CURDATE() AND CURDATE() + INTERVAL vDaysInForward DAY AND iss.saleFk IS NULL
AND iss.saleFk IS NULL AND t.warehouseFk = vWarehouseFk
AND t.warehouseFk = vWarehouseFk GROUP BY s.itemFk
GROUP BY s.itemFk
) )
SELECT i.id itemFk, SELECT i.id itemFk,
CAST(sd.quantity AS INT) advanceable, CAST(sd.quantity AS INT) advanceable,
i.longName, i.longName,
i.subName, i.subName,
i.tag5, i.tag5,
i.value5, i.value5,
(i.value5 <=> its.value5) match5, (i.value5 <=> its.value5) match5,
i.tag6, i.tag6,
i.value6, i.value6,
(i.value6 <=> its.value6) match6, (i.value6 <=> its.value6) match6,
i.tag7, i.tag7,
i.value7, i.value7,
(i.value7 <=> its.value7) match7, (i.value7 <=> its.value7) match7,
i.tag8, i.tag8,
i.value8, i.value8,
(i.value8 <=> its.value8) match8, (i.value8 <=> its.value8) match8,
a.available, a.available,
IFNULL(ip.counter, 0) `counter`, IFNULL(ip.counter, 0) `counter`,
CASE CASE
WHEN b.groupingMode = 'grouping' THEN b.grouping WHEN b.groupingMode = 'grouping' THEN b.grouping
WHEN b.groupingMode = 'packing' THEN b.packing WHEN b.groupingMode = 'packing' THEN b.packing
ELSE 1 ELSE 1
END minQuantity, END minQuantity,
sk.stock located, sk.stock located,
b.price2 b.price2
FROM vn.item i FROM vn.item i
LEFT JOIN sold sd ON sd.itemFk = i.id LEFT JOIN sold sd ON sd.itemFk = i.id
JOIN cache.available a ON a.item_id = i.id JOIN cache.available a ON a.item_id = i.id
AND a.calc_id = vAvailableCalcFk AND a.calc_id = vAvailableCalcFk
LEFT JOIN stock sk ON sk.itemFk = i.id LEFT JOIN stock sk ON sk.itemFk = i.id
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 vn.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 vn.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 vn.tag t ON t.id = it.tagFk LEFT JOIN vn.tag t ON t.id = it.tagFk
LEFT JOIN vn.buy b ON b.id = lb.buy_id LEFT JOIN vn.buy b ON b.id = lb.buy_id
JOIN itemTags its JOIN itemTags its
WHERE (a.available > 0 OR sd.quantity < sk.stock) WHERE (a.available > 0 OR sd.quantity < sk.stock)
AND (i.typeFk = its.typeFk OR NOT vShowType) AND (i.typeFk = its.typeFk OR NOT vShowType)
AND i.id <> vSelf AND i.id <> vSelf
ORDER BY (a.available > 0) DESC, ORDER BY (a.available > 0) DESC,
`counter` DESC, `counter` DESC,
(t.name = its.name) DESC, (t.name = its.name) DESC,
(it.value = its.value) DESC, (it.value = its.value) DESC,
(i.tag5 = its.tag5) DESC, (i.tag5 = its.tag5) DESC,
match5 DESC, match5 DESC,
(i.tag6 = its.tag6) DESC, (i.tag6 = its.tag6) DESC,
match6 DESC, match6 DESC,
(i.tag7 = its.tag7) DESC, (i.tag7 = its.tag7) DESC,
match7 DESC, match7 DESC,
(i.tag8 = its.tag8) DESC, (i.tag8 = its.tag8) DESC,
match8 DESC match8 DESC
LIMIT 100; LIMIT 100;
END$$ END$$
DELIMITER ; DELIMITER ;