2026-10-11 19:57:23 +00:00
|
|
|
|
CREATE OR REPLACE PROCEDURE public."Prc_P_PurchaseRfqRecalc"(p_id uuid)
|
|
|
|
|
|
LANGUAGE plpgsql AS $$
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
-- TenderLineId alternatiflere kopyalanır; ihaledeki aynı kalemi kıyasta birleştiren anahtardır.
|
2026-10-12 10:27:54 +00:00
|
|
|
|
UPDATE "Prc_T_PurchaseRfqLine" SET "Amount" = ROUND(ROUND("Quantity" * "UnitPrice", 2) * (1 + "TaxRate" / 100), 2), "TenderLineId" = COALESCE("TenderLineId", "Id")
|
2026-10-11 19:57:23 +00:00
|
|
|
|
WHERE "PurchaseRfqId" = p_id AND "IsDeleted" = false;
|
|
|
|
|
|
|
|
|
|
|
|
UPDATE "Prc_T_PurchaseRfq" r SET
|
2026-10-12 10:27:54 +00:00
|
|
|
|
"UntaxedAmount" = COALESCE((SELECT SUM(ROUND(l."Quantity" * l."UnitPrice", 2)) FROM "Prc_T_PurchaseRfqLine" l WHERE l."PurchaseRfqId" = p_id AND l."IsDeleted" = false), 0),
|
|
|
|
|
|
"TaxAmount" = COALESCE((SELECT SUM(l."Amount" - ROUND(l."Quantity" * l."UnitPrice", 2)) FROM "Prc_T_PurchaseRfqLine" l WHERE l."PurchaseRfqId" = p_id AND l."IsDeleted" = false), 0),
|
2026-10-11 19:57:23 +00:00
|
|
|
|
"SourceDocument" = (SELECT string_agg(DISTINCT m."RequestNo", ', ')
|
|
|
|
|
|
FROM "Prc_T_PurchaseRfqLine" l
|
|
|
|
|
|
INNER JOIN "Prc_T_MaterialRequestItem" i ON i."Id" = l."MaterialRequestItemId"
|
|
|
|
|
|
INNER JOIN "Prc_T_MaterialRequest" m ON m."Id" = i."MaterialRequestId"
|
|
|
|
|
|
WHERE l."PurchaseRfqId" = p_id AND l."IsDeleted" = false)
|
|
|
|
|
|
WHERE r."Id" = p_id;
|
|
|
|
|
|
|
|
|
|
|
|
UPDATE "Prc_T_PurchaseRfq" SET "TotalAmount" = "UntaxedAmount" + "TaxAmount" WHERE "Id" = p_id;
|
2026-10-12 10:27:54 +00:00
|
|
|
|
CALL public."Prc_P_MaterialRequestSyncStatus"(p_id);
|
2026-10-11 19:57:23 +00:00
|
|
|
|
END;
|
|
|
|
|
|
$$;
|