19 lines
1.4 KiB
Transact-SQL
19 lines
1.4 KiB
Transact-SQL
-- Onaya gönderilmiş talebin başlığı değiştirilemez (Taleplerim ve talebi gösteren diğer ekranlar): değişiklik için talep Taslak adımına alınır,
|
||
-- düzenlenir ve yeniden onaya gönderilir. Kural ekranın UpdateBeforeCommand'ında değil burada, çünkü onay akışı da başlığı aynı güncelleme
|
||
-- yolundan yazar; yalnız iş alanları karşılaştırılır, onay alanları (durum, onaycı, tarih, açıklama, onaycı listeleri) ve silme serbesttir.
|
||
-- Satırların kuralı Prc.MaterialRequestLine'ın Insert/Update/DeleteBeforeCommand'ındadır.
|
||
CREATE OR ALTER TRIGGER [dbo].[Prc_TR_MaterialRequestLock] ON [dbo].[Prc_T_MaterialRequest]
|
||
AFTER UPDATE
|
||
AS
|
||
BEGIN
|
||
SET NOCOUNT ON;
|
||
IF EXISTS (SELECT 1
|
||
FROM inserted i
|
||
INNER JOIN deleted d ON d.Id = i.Id
|
||
WHERE ISNULL(d.ApprovalStatus, N'') <> N'' AND i.IsDeleted = 0
|
||
AND (i.Priority <> d.Priority OR i.RequesterUserId <> d.RequesterUserId OR i.BranchId <> d.BranchId
|
||
OR i.DepartmentId <> d.DepartmentId OR i.WarehouseId <> d.WarehouseId OR i.LocationId <> d.LocationId
|
||
OR i.RequestDate <> d.RequestDate OR ISNULL(i.Description, N'') <> ISNULL(d.Description, N'')))
|
||
THROW 50004, N'Onaya gönderilmiş talep değiştirilemez: önce talebi Taslak adımına alın, düzenleyip yeniden onaya gönderin.', 1;
|
||
END
|
||
GO
|