31 lines
2.6 KiB
SQL
31 lines
2.6 KiB
SQL
-- Talep kaleminin planlanmış payları ve planlanacak kalanı (Planlama, Plan Takibi, kalem durumu). Miktarlar kalemin birimine çevrilir.
|
||
-- Satınalma payı: teklif aşamasındaki teklif talebinde ya da iptal olmayan siparişe geçmiş teklif kaleminde duran miktar; ihale aynı kalemi
|
||
-- bütün tedarikçilere kopyaladığı için ihale × ihale kalemi başına bir kez (en büyüğü) sayılır.
|
||
-- Transfer payı: iptal olmayan iç transfer satırı — tamamlanmış belgede yapılan, açık belgede istenen miktar (eksik tamamlanan belgenin kalanı
|
||
-- backorder belgesinde istenir); iade belgesi sayılmaz.
|
||
-- Stok payı: stok talebin teslim konumundayken onaylanan, belgesiz karşılanan miktar (FromStockQuantity).
|
||
CREATE OR REPLACE VIEW public."Prc_V_MaterialRequestItemPlan" AS
|
||
SELECT i."Id", i."TenantId", COALESCE(pq."Quantity", 0) AS "PurchaseQuantity", COALESCE(tq."Quantity", 0) AS "TransferQuantity",
|
||
i."Quantity" - COALESCE(pq."Quantity", 0) - COALESCE(tq."Quantity", 0) - i."FromStockQuantity" AS "RemainingQuantity",
|
||
i."FromStockQuantity"
|
||
FROM "Prc_T_MaterialRequestItem" i
|
||
LEFT JOIN LATERAL (
|
||
SELECT SUM(g."Quantity") AS "Quantity"
|
||
FROM (SELECT MAX(public."Inv_F_UomConvert"(rl."Quantity", rl."UomId", i."UomId")) AS "Quantity"
|
||
FROM "Prc_T_PurchaseRfqLine" rl
|
||
INNER JOIN "Prc_T_PurchaseRfq" q ON q."Id" = rl."PurchaseRfqId"
|
||
WHERE rl."MaterialRequestItemId" = i."Id" AND rl."IsDeleted" = false AND q."IsDeleted" = false
|
||
AND (q."Status" IN ('Draft', 'Sent')
|
||
OR (q."Status" = 'Purchase'
|
||
AND EXISTS (SELECT 1 FROM "Prc_T_PurchaseOrderLine" ol
|
||
INNER JOIN "Prc_T_PurchaseOrder" o ON o."Id" = ol."PurchaseOrderId"
|
||
WHERE ol."PurchaseRfqLineId" = rl."Id" AND ol."IsDeleted" = false
|
||
AND o."IsDeleted" = false AND o."Status" <> 'Cancelled')))
|
||
GROUP BY COALESCE(q."TenderGroupId", q."Id"), COALESCE(rl."TenderLineId", rl."Id")) g) pq ON true
|
||
LEFT JOIN LATERAL (
|
||
SELECT SUM(public."Inv_F_UomConvert"(CASE WHEN t."Status" = 'Done' THEN tl."Quantity" ELSE tl."DemandQuantity" END, tl."UomId", i."UomId")) AS "Quantity"
|
||
FROM "Inv_T_TransferLine" tl
|
||
INNER JOIN "Inv_T_Transfer" t ON t."Id" = tl."TransferId"
|
||
WHERE tl."MaterialRequestItemId" = i."Id" AND tl."IsDeleted" = false AND t."IsDeleted" = false
|
||
AND t."OperationKind" = 'InternalTransfer' AND t."Status" <> 'Cancelled' AND t."ReturnOfId" IS NULL) tq ON true
|
||
WHERE i."IsDeleted" = false;
|