--
-- acs_event__shift_all/3
--
create or replace function acs_event__shift_all(
  integer,
  integer,
  integer
) returns int4 as $$

declare
       shift_all__event_id        alias for $1; -- default null,
       shift_all__start_offset    alias for $2; -- default 0,
       shift_all__end_offset      alias for $3; -- default 0
begin
	
       return acs_event__shift_all (
	            shift_all__event_id,
	            to_interval(shift_all__start_offset,'days'),
	            to_interval(shift_all__end_offset,'days')
		    );
				    
end;$$ language plpgsql;


--
-- acs_event__shift_all/3
--
create or replace function acs_event__shift_all(
  integer,
  interval,
  interval
) returns int4 as $$

declare
        shift_all__event_id        alias for $1; -- default null,
        shift_all__start_offset    alias for $2; -- default 0,
        shift_all__end_offset      alias for $3; -- default 0
	rec_events		   record;
begin


--        update acs_events_dates
--        set    start_date    = start_date + shift_all__start_offset,
--              end_date      = end_date + shift_all__end_offset
--        where recurrence_id  = (select recurrence_id
--                                from   acs_events
--                                where  event_id = shift_all__event_id);

	-- Can not update views
	for rec_events in
	    select *
	    from acs_events_dates
	    where recurrence_id  = (select recurrence_id
				    from   acs_events
				    where  event_id = shift_all__event_id)
	loop
	
	    PERFORM acs_event__shift(
			rec_events.event_id,
			shift_all__start_offset,	       
			shift_all__end_offset
			);
	end loop;

	return 0;

end;$$ language plpgsql;