23 lines
1.9 KiB
Transact-SQL
23 lines
1.9 KiB
Transact-SQL
-- Planlama (App.Prc.MaterialRequestPlan): onaylanmış (satınalmada ilerleyen dahil) talebin bekleyen ve planlanacak miktarı kalan kalemleri.
|
||
-- Stok bütün iç konumların toplamıdır (kalemin biriminde); DueState termin süzgecidir (Late / Week = 7 gün içinde / Later). Taslak Plan,
|
||
-- Planla diyaloğunda girilip henüz onaylanmamış dağıtımın toplamıdır (Prc_T_MaterialRequestPlanLine).
|
||
CREATE OR ALTER VIEW [dbo].[Prc_V_MaterialRequestPlan] AS
|
||
SELECT i.Id, i.TenantId, i.MaterialRequestId, r.RequestNo, r.Priority, r.RequesterUserId, r.BranchId, r.DepartmentId, r.WarehouseId, r.LocationId,
|
||
r.RequestDate, i.ProductId, p.CategoryId, i.Quantity, i.UomId, i.DueDate,
|
||
CASE WHEN i.DueDate < CAST(GETDATE() AS date) THEN 'Late'
|
||
WHEN i.DueDate <= DATEADD(day, 7, CAST(GETDATE() AS date)) THEN 'Week' ELSE 'Later' END AS DueState,
|
||
i.RequestReason,
|
||
pl.PurchaseQuantity, pl.TransferQuantity, pl.RemainingQuantity, ISNULL(st.Quantity, 0) AS StockQuantity,
|
||
(SELECT SUM(x.Quantity) FROM Prc_T_MaterialRequestPlanLine x WHERE x.MaterialRequestItemId = i.Id AND x.IsDeleted = 0) AS DraftQuantity,
|
||
i.IsDeleted
|
||
FROM Prc_T_MaterialRequestItem i
|
||
INNER JOIN Prc_T_MaterialRequest r ON r.Id = i.MaterialRequestId
|
||
INNER JOIN Prc_V_MaterialRequestItemPlan pl ON pl.Id = i.Id
|
||
LEFT JOIN Inv_T_Product p ON p.Id = i.ProductId
|
||
OUTER APPLY (SELECT SUM(c.Quantity) AS Quantity
|
||
FROM (SELECT dbo.Inv_F_UomConvert(s.Quantity, s.UomId, i.UomId) AS Quantity
|
||
FROM Inv_T_Stock s
|
||
INNER JOIN Inv_T_Location l ON l.Id = s.LocationId AND l.LocationType = 'Internal'
|
||
WHERE s.ProductId = i.ProductId AND s.IsDeleted = 0) c) st
|
||
WHERE i.IsDeleted = 0 AND r.IsDeleted = 0 AND i.LineStatus = 'Waiting' AND pl.RemainingQuantity > 0
|
||
AND r.ApprovalStatus IN (N'Onaylandı', N'Teklif Talebi', N'Teklif Talebi Gönderildi', N'Satınalma Siparişi')
|