sozsoft-platform/configs/seeds/sql/object/Prc_V_MaterialRequestItemPlan.sql
2026-10-14 12:07:11 +03:00

32 lines
2.8 KiB
Transact-SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 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ı: iptal olmayan iç transfer satırı — tamamlanmış belgede yapılan, açık belgede istenen miktar (eksik tamamlanan belgenin kalanı
-- backorder belgesinde istenir); iade belgesi sayılmaz.
-- Stok payı: stok talebin teslim konumundayken onaylanan, belgesiz karşılanan miktar (FromStockQuantity).
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) - i.FromStockQuantity AS RemainingQuantity,
i.FromStockQuantity
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,
dbo.Inv_F_UomConvert(rl.Quantity, rl.UomId, i.UomId) AS Quantity
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
FROM (SELECT dbo.Inv_F_UomConvert(CASE WHEN t.Status = 'Done' THEN tl.Quantity ELSE tl.DemandQuantity END, tl.UomId, i.UomId) AS Quantity
FROM Inv_T_TransferLine tl
INNER JOIN Inv_T_Transfer t ON t.Id = tl.TransferId
WHERE tl.MaterialRequestItemId = i.Id AND tl.IsDeleted = 0 AND t.IsDeleted = 0
AND t.OperationKind = 'InternalTransfer' AND t.Status <> 'Cancelled' AND t.ReturnOfId IS NULL) c) tq
WHERE i.IsDeleted = 0