CREATE OR REPLACE PROCEDURE public."Prc_P_PurchaseOrderAfterSave"(p_id uuid, p_user_id uuid DEFAULT NULL) LANGUAGE plpgsql AS $$ DECLARE v_act varchar(16); BEGIN SELECT "PendingAction" INTO v_act FROM "Prc_T_PurchaseOrder" WHERE "Id" = p_id; UPDATE "Prc_T_PurchaseOrder" o SET "PaymentTermId" = COALESCE(o."PaymentTermId", c."PurchasePaymentTermId"), "IncotermId" = COALESCE(o."IncotermId", c."PurchaseIncotermId"), "IncotermLocation" = COALESCE(o."IncotermLocation", c."PurchaseIncotermLocation"), "BuyerUserId" = CASE WHEN o."LastModificationTime" IS NULL AND c."BuyerUserId" IS NOT NULL THEN c."BuyerUserId" ELSE o."BuyerUserId" END FROM "Adm_T_Contact" c WHERE o."Id" = p_id AND c."Id" = o."SupplierId"; CALL public."Prc_P_PurchaseOrderRecalc"(p_id); -- Durum butonlari islemi PendingAction alanina yazip ekranin guncelleme ucuyla kaydeder. IF v_act IS NOT NULL THEN CALL public."Prc_P_PurchaseOrderSetStatus"(p_id, v_act, p_user_id); END IF; END; $$;