2026-10-19 14:35:08 +00:00
|
|
|
|
-- Planla diyaloğunun Satınalma ızgarası (Prc.MaterialRequestPlanVendor): kiracının bütün aktif kontakları; ürünün fiyat listesindekiler
|
2026-10-14 09:07:11 +00:00
|
|
|
|
-- fiyatıyla, diğerleri fiyatsız gelir. SuggestRank ızgaranın sırası ve Öner'in seçtiği tedarikçidir: fiyatlılar ucuzdan pahalıya, sonra son alım
|
|
|
|
|
|
-- tarihi yeniden eskiye, sonra ad (para birimi farkı gözetilmez). Fiyat satırı teklif kalemine yazılanla aynıdır (en düşük minimum
|
|
|
|
|
|
-- miktarlı satır, Prc_P_MaterialRequestPlan); son alım tarihini siparişli alım yazar.
|
|
|
|
|
|
-- Plan Miktarı kalemin bu tedarikçi için taslak planıdır; Rfq* tedarikçinin talebin şubesi ve deposu için bu kalemi taşıyan taslak teklif
|
|
|
|
|
|
-- talebidir (satırdaki Teklifi Aç). BaseId diyaloğun süzdüğü kalem, Id kalem + ':' + tedarikçidir (Prc_P_MaterialRequestPlanLineSave ayırır).
|
|
|
|
|
|
-- MaxQuantity satıra yazılabilecek en fazla plan miktarıdır: planlanacak kalandan kalemin diğer taslak satırları düşülür.
|
|
|
|
|
|
CREATE OR REPLACE VIEW public."Prc_V_MaterialRequestPlanVendor" AS
|
|
|
|
|
|
SELECT CAST(i."Id" AS varchar(36)) || ':' || CAST(c."Id" AS varchar(36)) AS "Id", i."TenantId", i."Id" AS "BaseId", c."Id" AS "ContactId",
|
|
|
|
|
|
ps."MinQuantity", ps."UomId", ps."Price", ps."CurrencyId", ps."LeadTimeDays", ps."LastPurchaseDate", pl."Quantity" AS "PlanQuantity",
|
|
|
|
|
|
d."Id" AS "RfqId", d."RfqNo", d."Quantity" AS "RfqQuantity", i."IsDeleted",
|
|
|
|
|
|
ROW_NUMBER() OVER (PARTITION BY i."Id" ORDER BY ps."Price" ASC NULLS LAST, ps."LastPurchaseDate" DESC NULLS LAST, c."Name") AS "SuggestRank",
|
|
|
|
|
|
GREATEST(0, ip."RemainingQuantity" - COALESCE(od."Quantity", 0)) AS "MaxQuantity"
|
|
|
|
|
|
FROM "Prc_T_MaterialRequestItem" i
|
|
|
|
|
|
INNER JOIN "Prc_T_MaterialRequest" r ON r."Id" = i."MaterialRequestId"
|
|
|
|
|
|
INNER JOIN "Adm_T_Contact" c ON c."IsDeleted" = false AND c."IsActive" = true AND c."TenantId" IS NOT DISTINCT FROM i."TenantId"
|
|
|
|
|
|
LEFT JOIN LATERAL (SELECT x."MinQuantity", x."UomId", x."Price", x."CurrencyId", x."LeadTimeDays", x."LastPurchaseDate"
|
2026-10-19 14:35:08 +00:00
|
|
|
|
FROM "Stk_T_ProductSupplier" x
|
2026-10-14 09:07:11 +00:00
|
|
|
|
WHERE x."ProductId" = i."ProductId" AND x."ContactId" = c."Id" AND x."IsDeleted" = false
|
|
|
|
|
|
ORDER BY x."MinQuantity"
|
|
|
|
|
|
LIMIT 1) ps ON TRUE
|
|
|
|
|
|
LEFT JOIN "Prc_T_MaterialRequestPlanLine" pl
|
|
|
|
|
|
ON pl."MaterialRequestItemId" = i."Id" AND pl."PlanMethod" = 'Purchase' AND pl."SupplierId" = c."Id" AND pl."IsDeleted" = false
|
|
|
|
|
|
LEFT JOIN LATERAL (SELECT q."Id", q."RfqNo", ql."Quantity"
|
|
|
|
|
|
FROM "Prc_T_PurchaseRfq" q
|
|
|
|
|
|
INNER JOIN "Prc_T_PurchaseRfqLine" ql ON ql."PurchaseRfqId" = q."Id" AND ql."MaterialRequestItemId" = i."Id" AND ql."IsDeleted" = false
|
|
|
|
|
|
WHERE q."IsDeleted" = false AND q."Status" = 'Draft' AND q."SupplierId" = c."Id" AND q."BranchId" = r."BranchId"
|
|
|
|
|
|
AND q."WarehouseId" = r."WarehouseId"
|
|
|
|
|
|
ORDER BY q."CreationTime" DESC
|
|
|
|
|
|
LIMIT 1) d ON TRUE
|
|
|
|
|
|
INNER JOIN public."Prc_V_MaterialRequestItemPlan" ip ON ip."Id" = i."Id"
|
|
|
|
|
|
LEFT JOIN LATERAL (SELECT SUM(x."Quantity") AS "Quantity"
|
|
|
|
|
|
FROM "Prc_T_MaterialRequestPlanLine" x
|
|
|
|
|
|
WHERE x."MaterialRequestItemId" = i."Id" AND x."IsDeleted" = false
|
|
|
|
|
|
AND (x."SupplierId" IS NULL OR x."SupplierId" <> c."Id")) od ON TRUE
|
|
|
|
|
|
WHERE i."IsDeleted" = false;
|