sozsoft-platform/configs/seeds/sql/object/Prc_V_MaterialRequestItemPlan.sql

32 lines
3 KiB
MySQL
Raw Normal View History

2026-10-14 09:07:11 +00:00
-- Talep kaleminin planlanmış payları ve planlanacak kalanı (Planlama, Plan Takibi, kalem durumu). Miktarlar kalemin birimine çevrilir.
-- Satınalma payı: teklif aşamasındaki teklif talebinde ya da iptal olmayan siparişe geçmiş teklif kaleminde duran miktar; ihale aynı kalemi
-- bütün tedarikçilere kopyaladığı için ihale × ihale kalemi başına bir kez (en büyüğü) sayılır.
-- Transfer payı (Stoktan kararı dahil — kaynak ve hedefi teslim konumu olan transfer): iptal olmayan iç transfer satırı — tamamlanmış belgede yapılan, açık belgede istenen miktar (eksik tamamlanan belgenin kalanı
-- backorder belgesinde istenir); tamamlanmış iade belgesinin yapılan miktarı paydan düşer (iade edilen kalem yeniden planlanır).
2026-10-14 09:07:11 +00:00
CREATE OR ALTER VIEW [dbo].[Prc_V_MaterialRequestItemPlan] AS
SELECT i.Id, i.TenantId, ISNULL(pq.Quantity, 0) AS PurchaseQuantity, ISNULL(tq.Quantity, 0) AS TransferQuantity,
i.Quantity - ISNULL(pq.Quantity, 0) - ISNULL(tq.Quantity, 0) AS RemainingQuantity
2026-10-14 09:07:11 +00:00
FROM Prc_T_MaterialRequestItem i
OUTER APPLY (SELECT SUM(g.Quantity) AS Quantity
FROM (SELECT MAX(c.Quantity) AS Quantity
FROM (SELECT ISNULL(q.TenderGroupId, q.Id) AS TenderGroupId, ISNULL(rl.TenderLineId, rl.Id) AS TenderLineId,
2026-10-19 14:35:08 +00:00
dbo.Stk_F_UomConvert(rl.Quantity, rl.UomId, i.UomId) AS Quantity
2026-10-14 09:07:11 +00:00
FROM Prc_T_PurchaseRfqLine rl
INNER JOIN Prc_T_PurchaseRfq q ON q.Id = rl.PurchaseRfqId
WHERE rl.MaterialRequestItemId = i.Id AND rl.IsDeleted = 0 AND q.IsDeleted = 0
AND (q.Status IN ('Draft', 'Sent')
OR (q.Status = 'Purchase'
AND EXISTS (SELECT 1 FROM Prc_T_PurchaseOrderLine ol
INNER JOIN Prc_T_PurchaseOrder o ON o.Id = ol.PurchaseOrderId
WHERE ol.PurchaseRfqLineId = rl.Id AND ol.IsDeleted = 0
AND o.IsDeleted = 0 AND o.Status <> 'Cancelled')))) c
GROUP BY c.TenderGroupId, c.TenderLineId) g) pq
OUTER APPLY (SELECT SUM(c.Quantity) AS Quantity
2026-10-19 14:35:08 +00:00
FROM (SELECT dbo.Stk_F_UomConvert(CASE WHEN t.ReturnOfId IS NOT NULL THEN CASE WHEN t.Status = 'Done' THEN -tl.Quantity ELSE 0 END
WHEN t.Status = 'Done' THEN tl.Quantity ELSE tl.DemandQuantity END, tl.UomId, i.UomId) AS Quantity
2026-10-19 14:35:08 +00:00
FROM Stk_T_TransferLine tl
INNER JOIN Stk_T_Transfer t ON t.Id = tl.TransferId
2026-10-14 09:07:11 +00:00
WHERE tl.MaterialRequestItemId = i.Id AND tl.IsDeleted = 0 AND t.IsDeleted = 0
AND t.OperationKind = 'InternalTransfer' AND t.Status <> 'Cancelled') c) tq
2026-10-14 09:07:11 +00:00
WHERE i.IsDeleted = 0