sozsoft-platform/configs/seeds/postgres/object/Prc_P_MaterialRequestItemSync.sql
2026-10-19 17:35:08 +03:00

19 lines
1.3 KiB
PL/PgSQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- Transfer belgesinin talep kalemlerinin satır durumunu planla eşler (yeniden hesap ve iptal sonrası): kalanın tamamı iç transferle
-- planlanmış, satınalma payı olmayan bekleyen kalem kapanır (Tamamlandı); transfer iptal edilir, satırı silinir ya da eksik tamamlanıp kalanı
-- yeniden açılırsa kapalı kalem Bekliyor'a döner ve Planlama'da görünür. Silinmiş satırların kalemleri de kapsamdadır. Ardından
-- kalemlerin taleplerinin durumu yenilenir (teslim tamamlandıysa Tamamlandı; alım belgesi de buradan geçer).
CREATE OR REPLACE PROCEDURE public."Prc_P_MaterialRequestItemSync"(p_transfer_id uuid)
LANGUAGE plpgsql AS $$
BEGIN
UPDATE "Prc_T_MaterialRequestItem" i
SET "LineStatus" = CASE WHEN i."LineStatus" = 'Waiting' THEN 'Done' ELSE 'Waiting' END
FROM public."Prc_V_MaterialRequestItemPlan" p
WHERE p."Id" = i."Id"
AND i."Id" IN (SELECT "MaterialRequestItemId" FROM "Stk_T_TransferLine" WHERE "TransferId" = p_transfer_id AND "MaterialRequestItemId" IS NOT NULL)
AND p."PurchaseQuantity" = 0
AND ((i."LineStatus" = 'Waiting' AND p."RemainingQuantity" <= 0)
OR (i."LineStatus" = 'Done' AND p."RemainingQuantity" > 0 AND i."DeliveredQuantity" < i."Quantity"));
CALL public."Prc_P_MaterialRequestSyncStatus"(p_transfer_id);
END;
$$;