2026-10-14 09:07:11 +00:00
|
|
|
|
-- Transfer belgesinin talep kalemlerinin satır durumunu planla eşler (yeniden hesap ve iptal sonrası): kalanın tamamı iç transferle
|
|
|
|
|
|
-- planlanmış, satınalma payı olmayan bekleyen kalem kapanır (Tamamlandı); transfer iptal edilir, satırı silinir ya da eksik tamamlanıp kalanı
|
2026-10-14 19:26:03 +00:00
|
|
|
|
-- yeniden açılırsa kapalı kalem Bekliyor'a döner ve Planlama'da görünür. Silinmiş satırların kalemleri de kapsamdadır. Ardından
|
|
|
|
|
|
-- kalemlerin taleplerinin durumu yenilenir (teslim tamamlandıysa Tamamlandı; alım belgesi de buradan geçer).
|
2026-10-14 09:07:11 +00:00
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[Prc_P_MaterialRequestItemSync]
|
|
|
|
|
|
@TransferId uniqueidentifier
|
|
|
|
|
|
AS
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
|
|
|
|
|
|
|
|
UPDATE i SET LineStatus = CASE WHEN i.LineStatus = 'Waiting' THEN 'Done' ELSE 'Waiting' END
|
|
|
|
|
|
FROM Prc_T_MaterialRequestItem i
|
|
|
|
|
|
INNER JOIN Prc_V_MaterialRequestItemPlan p ON p.Id = i.Id
|
2026-10-19 14:35:08 +00:00
|
|
|
|
WHERE i.Id IN (SELECT MaterialRequestItemId FROM Stk_T_TransferLine WHERE TransferId = @TransferId AND MaterialRequestItemId IS NOT NULL)
|
2026-10-14 09:07:11 +00:00
|
|
|
|
AND p.PurchaseQuantity = 0
|
|
|
|
|
|
AND ((i.LineStatus = 'Waiting' AND p.RemainingQuantity <= 0)
|
|
|
|
|
|
OR (i.LineStatus = 'Done' AND p.RemainingQuantity > 0 AND i.DeliveredQuantity < i.Quantity));
|
2026-10-14 19:26:03 +00:00
|
|
|
|
|
|
|
|
|
|
EXEC Prc_P_MaterialRequestSyncStatus @TransferId;
|
2026-10-14 09:07:11 +00:00
|
|
|
|
END
|