39 lines
723 B
PL/PgSQL
39 lines
723 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
|
|
*
|
|
FROM
|
|
inventory i,
|
|
billlines bl,
|
|
bills b,
|
|
vendors v
|
|
WHERE
|
|
i.billlineid = bl.id
|
|
AND bl.billid = b.id
|
|
AND b.vendorid = v.id
|
|
AND i.line_desc ILIKE '%' || search || '%'
|
|
OR b.invoice_number ILIKE '%' || search || '%'
|
|
OR v.name ILIKE '%' || search || '%'
|
|
ORDER BY
|
|
i.line_desc ILIKE '%' || search || '%'
|
|
OR NULL,
|
|
b.invoice_number ILIKE '%' || search || '%'
|
|
OR NULL,
|
|
v.name ILIKE '%' || search || '%'
|
|
OR NULL;
|
|
END IF;
|
|
END
|
|
$function$;
|