-- FUNCTION: trans.fn_get_po_item_details(uuid) -- DROP FUNCTION IF EXISTS trans.fn_get_po_item_details(uuid); CREATE OR REPLACE FUNCTION trans.fn_get_po_item_details( p_po_id uuid) RETURNS TABLE(po_id uuid, catalogue_code text, catalogue_name text, hsn_code text, gst_rate numeric, ord_qty numeric, dispatched_qty numeric, rcvd_qty numeric, rejected_qty numeric, returned_qty numeric, net_accepted_qty numeric, unit_price numeric, taxable_amount numeric, gst_amount numeric, final_amount numeric) LANGUAGE 'plpgsql' COST 100 VOLATILE PARALLEL UNSAFE ROWS 1000 AS $BODY$ BEGIN RETURN QUERY SELECT poi.po_id, cr.catalogue_code, cr.catalogue_name, cr.hsn_code, cr.gst_rate, poi.ord_qty, poi.dispatched_qty, poi.rcvd_qty, poi.rejected_qty, poi.returned_qty, (poi.rcvd_qty - poi.rejected_qty - poi.returned_qty) AS net_accepted_qty, poi.unit_price, poi.line_amt AS taxable_amount, poi.tax_amt AS gst_amount, (poi.line_amt + poi.tax_amt) AS final_amount FROM trans.scm_po_item poi JOIN trans.catalogue_ref cr ON cr.catalogue_id = poi.catalogue_id WHERE poi.po_id = p_po_id; END; $BODY$; ALTER FUNCTION trans.fn_get_po_item_details(uuid) OWNER TO trans_owner;