36 lines
815 B
PL/PgSQL
36 lines
815 B
PL/PgSQL
CREATE OR REPLACE FUNCTION public.search_inventory (search text)
|
|
RETURNS SETOF inventory
|
|
LANGUAGE plpgsql
|
|
STABLE
|
|
AS $function$
|
|
BEGIN
|
|
IF search = '' THEN
|
|
RETURN query
|
|
SELECT
|
|
*
|
|
FROM
|
|
inventory;
|
|
ELSE
|
|
RETURN query
|
|
SELECT
|
|
inventory.*
|
|
FROM
|
|
inventory inner JOIN billlines ON inventory.billlineid = billlines.id
|
|
inner JOIN bills ON billlines.billid = bills.id
|
|
inner JOIN vendors ON bills.vendorid = vendors.id
|
|
|
|
WHERE
|
|
inventory.line_desc ILIKE '%' || search || '%'
|
|
OR bills.invoice_number ILIKE '%' || search || '%'
|
|
OR vendors.name ILIKE '%' || search || '%'
|
|
ORDER BY
|
|
inventory.line_desc ILIKE '%' || search || '%'
|
|
OR NULL,
|
|
bills.invoice_number ILIKE '%' || search || '%'
|
|
OR NULL,
|
|
vendors.name ILIKE '%' || search || '%'
|
|
OR NULL;
|
|
END IF;
|
|
END
|
|
$function$;
|