--
-- procedure faq__clone/2
--
select define_function_args('faq__clone','new_package_id,old_package_id');
CREATE OR REPLACE FUNCTION faq__clone(
p_new_package_id integer, --default null,
p_old_package_id integer --default null
) RETURNS integer AS $$
DECLARE
v_faq_id faqs.faq_id%TYPE;
one_faq record;
entry record;
BEGIN
-- get all the faqs belonging to the old package,
-- and create new faqs for the new package
for one_faq in select *
from acs_objects o, faqs f
where o.object_id = f.faq_id
and o.context_id = p_old_package_id
loop
v_faq_id := faq__new_faq (
one_faq.faq_name,
one_faq.separate_p,
p_new_package_id
);
for entry in select * from faq_q_and_as
where faq_id = one_faq.faq_id
loop
perform faq__new_q_and_a (
entry.faq_id,
v_faq_id,
entry.question,
entry.answer,
entry.sort_key
);
end loop;
end loop;
return 0;
END;
$$ LANGUAGE plpgsql;
alter table faqs add column disabled_p char(1);
alter table faqs alter disabled_p set default 'f';
alter table faqs add constraint faqs_disabled_p_ck check (disabled_p in ('t','f'));