--
-- workflow__add_transition/6
--
create or replace function workflow__add_transition(
character varying,
character varying,
character varying,
character varying,
integer,
character varying
) returns int4 as $$
declare
add_transition__workflow_key alias for $1;
add_transition__transition_key alias for $2;
add_transition__transition_name alias for $3;
add_transition__role_key alias for $4;
add_transition__sort_order alias for $5;
add_transition__trigger_type alias for $6; -- default 'user'
v_sort_order integer;
begin
if add_transition__sort_order is null then
select coalesce(max(sort_order)+1, 1)
into v_sort_order
from wf_transitions
where workflow_key = add_transition__workflow_key;
else
v_sort_order := add_transition__sort_order;
end if;
insert into wf_transitions (
workflow_key,
transition_key,
transition_name,
role_key,
sort_order,
trigger_type
) values (
add_transition__workflow_key,
add_transition__transition_key,
add_transition__transition_name,
add_transition__role_key,
v_sort_order,
add_transition__trigger_type
);
return 0;
end;$$ language plpgsql;