30 lines
2.7 KiB
SQL
30 lines
2.7 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ı (Stoktan kararı dahil — kaynak ve hedefi teslim konumu olan transfer): iptal olmayan iç transfer satırı — tamamlanmış belgede yapılan, açık belgede istenen miktar (eksik tamamlanan belgenin kalanı
|
||
-- backorder belgesinde istenir); tamamlanmış iade belgesinin yapılan miktarı paydan düşer (iade edilen kalem yeniden planlanır).
|
||
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) AS "RemainingQuantity"
|
||
FROM "Prc_T_MaterialRequestItem" i
|
||
LEFT JOIN LATERAL (
|
||
SELECT SUM(g."Quantity") AS "Quantity"
|
||
FROM (SELECT MAX(public."Stk_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."Stk_F_UomConvert"(CASE WHEN t."ReturnOfId" IS NOT NULL THEN CASE WHEN t."Status" = 'Done' THEN -tl."Quantity" ELSE 0 END
|
||
WHEN t."Status" = 'Done' THEN tl."Quantity" ELSE tl."DemandQuantity" END, tl."UomId", i."UomId")) AS "Quantity"
|
||
FROM "Stk_T_TransferLine" tl
|
||
INNER JOIN "Stk_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') tq ON true
|
||
WHERE i."IsDeleted" = false;
|