21 lines
1.5 KiB
PL/PgSQL
21 lines
1.5 KiB
PL/PgSQL
-- 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 REPLACE FUNCTION public."Prc_TR_MaterialRequestLock"() RETURNS trigger
|
||
LANGUAGE plpgsql AS $$
|
||
BEGIN
|
||
IF COALESCE(OLD."ApprovalStatus", '') <> '' AND NOT NEW."IsDeleted"
|
||
AND (NEW."Priority", NEW."RequesterUserId", NEW."BranchId", NEW."DepartmentId", NEW."WarehouseId", NEW."LocationId", NEW."RequestDate", NEW."Description")
|
||
IS DISTINCT FROM
|
||
(OLD."Priority", OLD."RequesterUserId", OLD."BranchId", OLD."DepartmentId", OLD."WarehouseId", OLD."LocationId", OLD."RequestDate", OLD."Description") THEN
|
||
RAISE EXCEPTION 'Onaya gönderilmiş talep değiştirilemez: önce talebi Taslak adımına alın, düzenleyip yeniden onaya gönderin.'
|
||
USING ERRCODE = 'P0001', DETAIL = '50004';
|
||
END IF;
|
||
RETURN NEW;
|
||
END;
|
||
$$;
|
||
|
||
DROP TRIGGER IF EXISTS "Prc_TR_MaterialRequestLock" ON public."Prc_T_MaterialRequest";
|
||
CREATE TRIGGER "Prc_TR_MaterialRequestLock" BEFORE UPDATE ON public."Prc_T_MaterialRequest"
|
||
FOR EACH ROW EXECUTE FUNCTION public."Prc_TR_MaterialRequestLock"();
|