CREATE OR REPLACE FUNCTION public.fn_get_available_enterprise(
"shortname" varchar,
"filter" varchar,
"recordpage" int4,
"pageindex" int4,
refcursor,
refcursor
) returns setof refcursor
as
$$
declare avail_entp alias for $5;
avail_entp_count alias for $6;
begin
open avail_entp for
WITH available_enterprise AS (
SELECT distinct entinfo,ent.entname,ent.entabbr FROM get_agent_nocontian_entpaymenttype(shortname,filter,recordpage,pageindex)
JOIN wxbsenterprise ent on ent.entname = output_entname
where (("filter"!='' and (ent.entname like "filter" or entinfo like "filter" or entabbr like "filter"))
or ("filter"='' and 1=1))
limit recordpage offset (pageindex-1)*recordpage
),
enterpriserate_link_agent as(
select * from agententerprises
where entname=@entname and level=1
and (validate = true or (validate = false and enddate is not null and enddate >= current_date))
)
select * from available_enterprise;
return next avail_entp;
open avail_entp_count for
WITH available_enterprise_count as (
SELECT distinct entinfo,ent.entname,entabbr FROM get_agent_nocontian_entpaymenttype(shortname,filter,recordpage,pageindex) as epna
JOIN wxbsenterprise ent on ent.entname = output_entname
)
select count(*) from available_enterprise_count;
return next avail_entp_count;
end;
$$ language plpgsql;