|
|
|
@@ -1790,7 +1790,7 @@ open class ProductionScheduleService( |
|
|
|
itm.id AS materialId, |
|
|
|
itm.code AS matCode, |
|
|
|
itm.name AS matName, |
|
|
|
bm.uomName AS uom, |
|
|
|
uomP.udfudesc AS uom, |
|
|
|
ceil((iv.onHandQty * (itsm.ratioN / itsm.ratioD)) * (itum.ratioD / itum.ratioN)) as onHandQty, |
|
|
|
ceil((iv.unavailableQty * (itsm.ratioN / itsm.ratioD)) * (itum.ratioD / itum.ratioN)) as unavailableQty, |
|
|
|
COALESCE(( |
|
|
|
@@ -1798,7 +1798,7 @@ open class ProductionScheduleService( |
|
|
|
FROM purchase_order_line pol |
|
|
|
JOIN purchase_order po ON pol.purchaseOrderId = po.id |
|
|
|
WHERE pol.itemId = itm.id |
|
|
|
AND DATE(po.estimatedArrivalDate) >= CURDATE() |
|
|
|
AND DATE(po.estimatedArrivalDate) >= :fromDate |
|
|
|
AND po.completeDate IS NULL |
|
|
|
), 0) AS purchasedQty, |
|
|
|
DATE(ps.produceAt) AS produceDate, |
|
|
|
@@ -1810,10 +1810,11 @@ open class ProductionScheduleService( |
|
|
|
JOIN bom_material bm ON bom.id = bm.bomId |
|
|
|
JOIN items itm ON bm.itemId = itm.id |
|
|
|
JOIN item_uom itum ON itm.id = itum.itemId and itum.purchaseUnit = 1 |
|
|
|
join uom_conversion uomP on item.uomId = uomP.id |
|
|
|
JOIN item_uom itsm ON itm.id = itsm.itemId and itsm.stockUnit = 1 |
|
|
|
LEFT JOIN inventory iv ON itm.id = iv.itemId |
|
|
|
WHERE DATE(ps.produceAt) >= DATE_ADD(CURDATE(), INTERVAL 1 DAY) |
|
|
|
AND DATE(ps.produceAt) < DATE_ADD(CURDATE(), INTERVAL 8 DAY) |
|
|
|
WHERE DATE(ps.produceAt) >= DATE_ADD(:fromDate, INTERVAL 1 DAY) |
|
|
|
AND DATE(ps.produceAt) < DATE_ADD(:fromDate, INTERVAL 8 DAY) |
|
|
|
AND ps.id = ( |
|
|
|
SELECT ps2.id |
|
|
|
FROM production_schedule ps2 |
|
|
|
@@ -1837,13 +1838,13 @@ open class ProductionScheduleService( |
|
|
|
(onHandQty + purchasedQty) AS grossAvailable, |
|
|
|
|
|
|
|
-- Dynamic columns for next 7 days |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(CURDATE(), INTERVAL 1 DAY) THEN qtyNeeded END), 0) AS day1, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(CURDATE(), INTERVAL 2 DAY) THEN qtyNeeded END), 0) AS day2, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(CURDATE(), INTERVAL 3 DAY) THEN qtyNeeded END), 0) AS day3, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(CURDATE(), INTERVAL 4 DAY) THEN qtyNeeded END), 0) AS day4, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(CURDATE(), INTERVAL 5 DAY) THEN qtyNeeded END), 0) AS day5, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(CURDATE(), INTERVAL 6 DAY) THEN qtyNeeded END), 0) AS day6, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(CURDATE(), INTERVAL 7 DAY) THEN qtyNeeded END), 0) AS day7, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(:fromDate, INTERVAL 1 DAY) THEN qtyNeeded END), 0) AS day1, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(:fromDate, INTERVAL 2 DAY) THEN qtyNeeded END), 0) AS day2, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(:fromDate, INTERVAL 3 DAY) THEN qtyNeeded END), 0) AS day3, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(:fromDate, INTERVAL 4 DAY) THEN qtyNeeded END), 0) AS day4, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(:fromDate, INTERVAL 5 DAY) THEN qtyNeeded END), 0) AS day5, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(:fromDate, INTERVAL 6 DAY) THEN qtyNeeded END), 0) AS day6, |
|
|
|
COALESCE(MAX(CASE WHEN produceDate = DATE_ADD(:fromDate, INTERVAL 7 DAY) THEN qtyNeeded END), 0) AS day7, |
|
|
|
|
|
|
|
-- Total and net |
|
|
|
COALESCE(SUM(qtyNeeded), 0) AS totalNeed7Days, |
|
|
|
|