20 lines
1.3 KiB
Transact-SQL
20 lines
1.3 KiB
Transact-SQL
-- 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ı
|
||
-- 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).
|
||
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
|
||
WHERE i.Id IN (SELECT MaterialRequestItemId FROM Inv_T_TransferLine WHERE TransferId = @TransferId AND MaterialRequestItemId IS NOT NULL)
|
||
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));
|
||
|
||
EXEC Prc_P_MaterialRequestSyncStatus @TransferId;
|
||
END
|