Recebe varchar,varchar,varchar,char
DECLARE
pnome ALIAS FOR $1;
putilidade ALIAS FOR $2;
pcidade ALIAS FOR $3;
pclifor_cfcorpore ALIAS FOR $4;
r RECORD;
r2 tagenda1%rowtype;
_sql TEXT;
_sqlclifor_cfcorpore TEXT;
_sqlagenda TEXT;
BEGIN
_sqlclifor_cfcorpore:='';
_sql:=' WHERE ag_nome IS NOT NULL ';
IF LTRIM(RTRIM(pnome))<>'' THEN
_sql:=_sql||' AND ag_nome like '||quote_literal('%'||pnome||'%');
END IF;
IF LTRIM(RTRIM(putilidade))<>'' THEN
_sql:= _sql||' AND ag_agenda.ag_agenda IN( select au_codagenda FROM ag_agendautilidade, ag_utilidade '||
' WHERE ag_Agenda = au_codagenda AND au_utilidade = ut_utilidade '||
' AND ut_descricao like '||quote_literal('%'||putilidade||'%')||')';
END IF;
IF LTRIM(RTRIM(pcidade))<>'' THEN
_sql:= _sql||' AND ag_agenda.ag_agenda IN( select ag_agenda FROM ag_endereco, ag_cidade '||
' WHERE ag_agenda.ag_agenda = en_agenda AND en_cidade = cd_cidade '||
' AND cd_nome like '||quote_literal('%'||pcidade||'%')||')';
END IF;
_sql:=_sql||'ORDER BY ag_nome';
IF pclifor_cfcorpore='S' THEN
_sqlclifor_cfcorpore:=_sqlclifor_cfcorpore||' WHERE ';
IF LTRIM(RTRIM(pnome))<>'' THEN
_sqlclifor_cfcorpore:=_sqlclifor_cfcorpore||' razaosocial like '||quote_literal('%'||pnome||'%');
END IF;
IF LTRIM(RTRIM(pcidade))<>'' THEN
_sqlclifor_cfcorpore:=_sqlclifor_cfcorpore||' cidade like '||quote_literal('%'||pcidade||'%');
END IF;
_sqlclifor_cfcorpore:=_sqlclifor_cfcorpore||' ORDER BY razaosocial ';
END IF;
-- raise warning '_sqlclifor_cfcorpore %',_sqlclifor_cfcorpore;
IF pclifor_cfcorpore='S' THEN
_sqlagenda:='SELECT * FROM f_consulta_agenda('||quote_literal(_sql)||',1,'||quote_literal(_sqlclifor_cfcorpore)||')';
ELSE
_sqlagenda:='SELECT * FROM f_consulta_agenda('||quote_literal(_sql)||',0,'||quote_literal(_sqlclifor_cfcorpore)||')';
END IF;
-- raise warning '_sqlagenda %',_sqlagenda;
FOR r IN EXECUTE _sqlagenda LOOP
r2.col1:=r.col1;
r2.col2:=r.col2;
r2.col3:=r.col3;
r2.col4:=r.col4;
r2.col5:=r.col5;
r2.col6:=r.col6;
r2.col7:=r.col7;
r2.col8:=r.col8;
r2.col9:=r.col9;
RETURN NEXT r2;
END LOOP ;
RETURN ;
END ;