2026-10-14 09:07:11 +00:00
|
|
|
|
-- 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.
|
2026-10-19 14:35:08 +00:00
|
|
|
|
-- Satırların kuralı Prc.MaterialRequestLine'ın Insert/Update/DeleteBeforeCommand'ındadır.
|
2026-10-14 09:07:11 +00:00
|
|
|
|
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"();
|