sozsoft-platform/configs/seeds/postgres/object/Prc_P_PurchaseOrderAfterSave.sql
2026-10-11 22:57:23 +03:00

18 lines
1,010 B
PL/PgSQL

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;
$$;