20 lines
1.4 KiB
MySQL
20 lines
1.4 KiB
MySQL
|
|
-- 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ı App.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
|