Annotation: transactions.get_reorder_view_function
CREATE OR REPLACE FUNCTION transactions.get_reorder_view_function(office_id integer)
RETURNS TABLE(item_id integer, item_code character varying, item_name character varying, unit_id integer, unit text, quantity_on_hand numeric, reorder_level integer, reorder_quantity integer, preferred_supplier_id bigint, preferred_supplier text, price money_strict2, tax character varying)
Information: transactions.get_reorder_view_function
Schema | transactions |
Function Name | get_reorder_view_function |
Arguments | office_id integer |
Owner | postgres |
Result Type | TABLE(item_id integer, item_code character varying, item_name character varying, unit_id integer, unit text, quantity_on_hand numeric, reorder_level integer, reorder_quantity integer, preferred_supplier_id bigint, preferred_supplier text, price money_strict2, tax character varying) |
Description | |
Implementation: transactions.get_reorder_view_function
CREATE OR REPLACE FUNCTION transactions.get_reorder_view_function(office_id integer)
RETURNS TABLE(item_id integer, item_code character varying, item_name character varying, unit_id integer, unit text, quantity_on_hand numeric, reorder_level integer, reorder_quantity integer, preferred_supplier_id bigint, preferred_supplier text, price money_strict2, tax character varying)
LANGUAGE plpgsql
AS $function$
BEGIN
RETURN QUERY
SELECT
core.items.item_id,
core.items.item_code,
core.items.item_name,
core.items.reorder_unit_id,
core.units.unit_name::text AS unit,
floor(office.count_item_in_stock(core.items.item_id, core.items.reorder_unit_id, $1)) AS quantity_on_hand,
core.items.reorder_level,
core.items.reorder_quantity,
core.items.preferred_supplier_id,
core.parties.party_code || ' (' || core.parties.party_name || ')'::text AS party,
core.get_item_cost_price(core.items.item_id, core.items.reorder_unit_id, core.items.preferred_supplier_id),
core.get_sales_tax_code_by_sales_tax_id(core.items.sales_tax_id) as tax
FROM core.items
INNER JOIN core.parties
ON core.items.preferred_supplier_id = core.parties.party_id
INNER JOIN core.units
ON core.items.reorder_unit_id = core.units.unit_id
WHERE
floor
(
office.count_item_in_stock(core.items.item_id, core.items.reorder_unit_id, $1)
+
core.get_ordered_quantity(core.items.item_id, core.items.reorder_unit_id, $1)
)
< core.items.reorder_level
AND core.items.reorder_quantity > 0;
END
$function$