--
-- workflow_case__end_task_action/3
--
create or replace function workflow_case__end_task_action(
  integer,
  character varying,
  integer
) returns int4 as $$

declare
  end_task_action__journal_id             alias for $1;  
  end_task_action__action                 alias for $2;  
  end_task_action__task_id                alias for $3;  
  v_user_id                               integer;
begin
        select creation_user into v_user_id
        from   acs_objects
        where  object_id = end_task_action__journal_id;

        /* Update the workflow state */

        if end_task_action__action = 'start' then
            PERFORM workflow_case__start_task(end_task_action__task_id, 
                                              v_user_id, 
                                              end_task_action__journal_id
                    );
        else if end_task_action__action = 'finish' then
            PERFORM workflow_case__finish_task(end_task_action__task_id, 
                                               end_task_action__journal_id
                    );
        else if end_task_action__action = 'cancel' then
            PERFORM workflow_case__cancel_task(end_task_action__task_id, 
                                               end_task_action__journal_id
                    );
        else if end_task_action__action != 'comment' then
            raise EXCEPTION '-20000: Unknown action "%"', end_task_action__action;
        end if; end if; end if; end if;

        return 0; 
end;$$ language plpgsql;