|
|
|
|
@ -33,56 +33,44 @@ async def get_all(db_session: DbSession):
|
|
|
|
|
h.num as pr_number,
|
|
|
|
|
h.issue_date as pr_issue_date,
|
|
|
|
|
h.status as pr_status,
|
|
|
|
|
pl.qty_ordered as pr_qty_ordered
|
|
|
|
|
pl.qty_ordered as pr_qty_ordered,
|
|
|
|
|
pl.description
|
|
|
|
|
FROM public.maximo_sparepart_pr_po h
|
|
|
|
|
JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num
|
|
|
|
|
WHERE h.type = 'PR'
|
|
|
|
|
AND h.issue_date IS NOT NULL
|
|
|
|
|
AND h.num LIKE 'K%'
|
|
|
|
|
ORDER BY pl.item_num, TO_DATE(h.issue_date, 'YYYY-MM-DD') DESC
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
SELECT DISTINCT ON (pr.item_num)
|
|
|
|
|
pr.item_num,
|
|
|
|
|
(SELECT description FROM public.maximo_sparepart_pr_po_line WHERE item_num = pr.item_num LIMIT 1) as description,
|
|
|
|
|
COALESCE((SELECT curbaltotal FROM public.maximo_inventory WHERE itemnum = pr.item_num), 0) as current_balance_total,
|
|
|
|
|
pr.description,
|
|
|
|
|
COALESCE(i.curbaltotal, 0) as current_balance_total,
|
|
|
|
|
pr.pr_number,
|
|
|
|
|
pr.pr_issue_date,
|
|
|
|
|
pr.pr_qty_ordered,
|
|
|
|
|
CASE
|
|
|
|
|
WHEN EXISTS (
|
|
|
|
|
SELECT 1 FROM public.maximo_sparepart_pr_po
|
|
|
|
|
WHERE type = 'PO' AND num = pr.pr_number
|
|
|
|
|
) THEN 'YES'
|
|
|
|
|
WHEN po.po_number IS NOT NULL THEN 'YES'
|
|
|
|
|
ELSE 'NO'
|
|
|
|
|
END as po_exists,
|
|
|
|
|
COALESCE((
|
|
|
|
|
SELECT pl.qty_received
|
|
|
|
|
FROM public.maximo_sparepart_pr_po h
|
|
|
|
|
JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num
|
|
|
|
|
WHERE h.type = 'PO'
|
|
|
|
|
AND h.num = pr.pr_number
|
|
|
|
|
AND pl.item_num = pr.item_num
|
|
|
|
|
LIMIT 1
|
|
|
|
|
), 0) as po_qty_received,
|
|
|
|
|
COALESCE((
|
|
|
|
|
SELECT pl.qty_ordered
|
|
|
|
|
FROM public.maximo_sparepart_pr_po h
|
|
|
|
|
JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num
|
|
|
|
|
WHERE h.type = 'PO'
|
|
|
|
|
AND h.num = pr.pr_number
|
|
|
|
|
AND pl.item_num = pr.item_num
|
|
|
|
|
LIMIT 1
|
|
|
|
|
), 0) as po_qty_ordered,
|
|
|
|
|
COALESCE((
|
|
|
|
|
SELECT h.estimated_arrival_date
|
|
|
|
|
FROM public.maximo_sparepart_pr_po h
|
|
|
|
|
JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num
|
|
|
|
|
WHERE h.type = 'PO'
|
|
|
|
|
AND h.num = pr.pr_number
|
|
|
|
|
AND pl.item_num = pr.item_num
|
|
|
|
|
LIMIT 1
|
|
|
|
|
), '') as po_estimated_arrival_date
|
|
|
|
|
COALESCE(po.qty_received, 0) as po_qty_received,
|
|
|
|
|
COALESCE(po.qty_ordered, 0) as po_qty_ordered,
|
|
|
|
|
COALESCE(po.estimated_arrival_date, '') as po_estimated_arrival_date
|
|
|
|
|
FROM latest_prs pr
|
|
|
|
|
LEFT JOIN public.maximo_inventory i ON pr.item_num = i.itemnum
|
|
|
|
|
LEFT JOIN LATERAL (
|
|
|
|
|
SELECT
|
|
|
|
|
h.num as po_number,
|
|
|
|
|
pl.qty_received,
|
|
|
|
|
pl.qty_ordered,
|
|
|
|
|
h.estimated_arrival_date
|
|
|
|
|
FROM public.maximo_sparepart_pr_po h
|
|
|
|
|
JOIN public.maximo_sparepart_pr_po_line pl ON h.num = pl.num
|
|
|
|
|
WHERE h.type = 'PO'
|
|
|
|
|
AND h.num = pr.pr_number
|
|
|
|
|
AND pl.item_num = pr.item_num
|
|
|
|
|
LIMIT 1
|
|
|
|
|
) po ON true
|
|
|
|
|
ORDER BY pr.item_num;
|
|
|
|
|
""")
|
|
|
|
|
|
|
|
|
|
|