All pastes #27777 Raw Edit

Q

public text v1 · immutable
#27777 ·published 2005-11-06 15:07 UTC
rendered paste body
CREATE OR REPLACE FUNCTION accounts_search(v_user_id int4, v_criteria varchar)
  RETURNS SETOF view_account_list AS
$BODY$
DECLARE
	r view_account_list%rowtype;
	v_global bool := users_global(v_user_id);
	v_operator int4 := users_operator(v_user_id);
BEGIN
	if v_global = TRUE then
		for r in select * from view_account_list
			WHERE ((m2id like '%' || v_criteria || '%') OR
			(sys_accountno like '%' || v_criteria || '%') OR
			(first_name like '%' || v_criteria || '%') OR
			(last_name like '%' || v_criteria || '%') OR
			(company like '%' || v_criteria || '%') OR
			(svc_addr like '%' || v_criteria || '%') OR
			(phone like '%' || v_criteria || '%') OR
			(phone2 like '%' || v_criteria || '%') OR
			(cast(device_mac as varchar) like '%' || v_criteria || '%')) loop
				return next r;
		end loop;
	else
		for r in select * from view_account_list
			WHERE (((m2id like '%' || v_criteria || '%') OR
			(sys_accountno like '%' || v_criteria || '%') OR
			(first_name like '%' || v_criteria || '%') OR
			(last_name like '%' || v_criteria || '%') OR
			(company like '%' || v_criteria || '%') OR
			(svc_addr like '%' || v_criteria || '%') OR
			(phone like '%' || v_criteria || '%') OR
			(phone2 like '%' || v_criteria || '%') OR
			(cast(device_mac as varchar) like '%' || v_criteria || '%')) AND (operatorid = v_operator)) loop
				return next r;
		end loop;
	end if;
return;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;