--
-- Upgrade script
--
-- Renamed workflow_case__delete to workflow_case_pkg__delete to prevent clash with old acs-workflow package
--
-- Lars Pind (lars@collaboraid.biz)
--
-- $Id: upgrade-1.0d3-1.0d4.sql,v 1.2 2017/12/29 11:40:42 gustafn Exp $
-- This needs to be recreated to use the renamed workflow_case_pkg__delete function
create or replace function workflow__delete (integer)
returns integer as '
declare
delete_workflow_id alias for $1;
rec record;
begin
-- Delete all cases first
for rec in select case_id
from workflow_cases
where workflow_id = delete_workflow_id loop
perform workflow_case_pkg__delete (rec.case_id);
end loop;
perform acs_object__delete(delete_workflow_id);
return 0;
end;' language 'plpgsql';
-- Renamed from workflow_case__delete, because 'acs-workflow' already defined workflow_case__delete.
-- LARS:
-- What do we do with the old acs-workflow one, which we may have overwritten?
-- I suppose that if people have tried installing workflow after acs-workflow, that installation
-- will have failed, and their systems will be somewhat screwed, anyway
create or replace function workflow_case_pkg__delete (integer)
returns integer as '
declare
delete_case_id alias for $1;
rec record;
begin
for rec in select cr.item_id
from cr_items cr, workflow_case_log wcl
where cr.item_id = wcl.entry_id
and wcl.case_id = delete_case_id loop
delete from workflow_case_log where entry_id = rec.item_id;
perform content_item__delete(rec.item_id);
end loop;
-- All workflow data cascades from the case id
delete from workflow_cases
where case_id = delete_case_id;
return 0;
end;' language 'plpgsql';
drop function workflow_case__delete (integer);
-- Renamed from workflow_case__get_pretty_state to maintain consistency with workflow_case__delete
-- Function for getting the pretty state of a case
create or replace function workflow_case_pkg__get_pretty_state (
varchar, -- workflow_short_name
integer -- object_id
)
returns varchar as '
declare
p_workflow_short_name alias for $1;
p_object_id alias for $2;
v_state_pretty varchar;
begin
select s.pretty_name
into v_state_pretty
from workflows w,
workflow_cases c,
workflow_case_fsm cfsm,
workflow_fsm_states s
where w.short_name = p_workflow_short_name
and c.object_id = p_object_id
and c.workflow_id = w.workflow_id
and cfsm.case_id = c.case_id
and s.state_id = cfsm.current_state;
return v_state_pretty;
end;
' language 'plpgsql';
drop function workflow_case__get_pretty_state (
varchar, -- workflow_short_name
integer -- object_id
);