USP_RESERVATION_UPDATERATESCALE
Inserts a reservation rate scale if it doesn't exist or is different.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@RATESCALEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_RESERVATION_UPDATERATESCALE
(
@ID uniqueidentifier,
@RATESCALEID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTDATE datetime = null
)
as
begin
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
if @CURRENTDATE is null
set @CURRENTDATE = getdate()
declare @INCLUDEALLPROGRAMS bit = 0
declare @INCLUDEALLFEES bit = 0
declare @INCLUDEALLRESOURCES bit = 0
declare @INCLUDEALLSTAFFRESOURCES bit = 0
declare @USEPERTICKETAFTERMAX bit = 0
select
@INCLUDEALLPROGRAMS = INCLUDEALLPROGRAMS,
@INCLUDEALLFEES = INCLUDEALLFEES,
@INCLUDEALLRESOURCES = INCLUDEALLRESOURCES,
@INCLUDEALLSTAFFRESOURCES = INCLUDEALLSTAFFRESOURCES,
@USEPERTICKETAFTERMAX = USEPERTICKETAFTERMAX
from dbo.RATESCALE
where ID = @RATESCALEID
if not exists(select 1 from dbo.RESERVATIONRATESCALE where ID = @ID)
begin
insert into dbo.RESERVATIONRATESCALE
(
ID,
RATESCALEID,
INCLUDEALLPROGRAMS,
INCLUDEALLFEES,
INCLUDEALLRESOURCES,
INCLUDEALLSTAFFRESOURCES,
USEPERTICKETAFTERMAX,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
values
(
@ID,
@RATESCALEID,
@INCLUDEALLPROGRAMS,
@INCLUDEALLFEES,
@INCLUDEALLRESOURCES,
@INCLUDEALLSTAFFRESOURCES,
@USEPERTICKETAFTERMAX,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
)
insert into dbo.RESERVATIONRATESCALEPRICE
(
ID,
RESERVATIONRATESCALEID,
AMOUNT,
GROUPMINIMUM,
GROUPMAXIMUM,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
AMOUNT,
GROUPMINIMUM,
GROUPMAXIMUM,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALEPRICE
where
RATESCALEID = @RATESCALEID
if @INCLUDEALLPROGRAMS = 0
begin
insert into dbo.RESERVATIONRATESCALEPROGRAM
(
ID,
RESERVATIONRATESCALEID,
PROGRAMID,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
PROGRAMID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALEPROGRAM
where
RATESCALEID = @RATESCALEID
end
if @INCLUDEALLFEES = 0
begin
insert into dbo.RESERVATIONRATESCALEFEE
(
ID,
RESERVATIONRATESCALEID,
FEEID,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
FEEID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALEFEE
where
RATESCALEID = @RATESCALEID
end
if @INCLUDEALLRESOURCES = 0
begin
insert into dbo.RESERVATIONRATESCALERESOURCE
(
ID,
RESERVATIONRATESCALEID,
RESOURCEID,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
RESOURCEID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALERESOURCE
where
RATESCALEID = @RATESCALEID
end
if @INCLUDEALLSTAFFRESOURCES = 0
begin
insert into dbo.RESERVATIONRATESCALESTAFFRESOURCE
(
ID,
RESERVATIONRATESCALEID,
VOLUNTEERTYPEID,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
VOLUNTEERTYPEID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALESTAFFRESOURCE
where
RATESCALEID = @RATESCALEID
end
end
else
begin
update dbo.RESERVATIONRATESCALE set
RATESCALEID = @RATESCALEID,
INCLUDEALLPROGRAMS = @INCLUDEALLPROGRAMS,
INCLUDEALLFEES = @INCLUDEALLFEES,
INCLUDEALLRESOURCES = @INCLUDEALLRESOURCES,
INCLUDEALLSTAFFRESOURCES = @INCLUDEALLSTAFFRESOURCES,
USEPERTICKETAFTERMAX = @USEPERTICKETAFTERMAX,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.RESERVATIONRATESCALEPRICE
where RESERVATIONRATESCALEID = @ID
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
insert into dbo.RESERVATIONRATESCALEPRICE
(
ID,
RESERVATIONRATESCALEID,
AMOUNT,
GROUPMINIMUM,
GROUPMAXIMUM,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
AMOUNT,
GROUPMINIMUM,
GROUPMAXIMUM,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALEPRICE
where
RATESCALEID = @RATESCALEID
if @INCLUDEALLPROGRAMS = 0
begin
insert into dbo.RESERVATIONRATESCALEPROGRAM
(
ID,
RESERVATIONRATESCALEID,
PROGRAMID,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
PROGRAMID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALEPROGRAM
where
RATESCALEID = @RATESCALEID and
PROGRAMID not in
(
select PROGRAMID from dbo.RESERVATIONRATESCALEPROGRAM
where RESERVATIONRATESCALEID = @ID
)
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.RESERVATIONRATESCALEPROGRAM
where
RESERVATIONRATESCALEID = @ID and
PROGRAMID not in
(
select PROGRAMID from dbo.RATESCALEPROGRAM
where RATESCALEID = @RATESCALEID
)
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
else
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.RESERVATIONRATESCALEPROGRAM
where RESERVATIONRATESCALEID = @ID
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
if @INCLUDEALLFEES = 0
begin
insert into dbo.RESERVATIONRATESCALEFEE
(
ID,
RESERVATIONRATESCALEID,
FEEID,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
FEEID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALEFEE
where
RATESCALEID = @RATESCALEID and
FEEID not in
(
select FEEID from dbo.RESERVATIONRATESCALEFEE
where RESERVATIONRATESCALEID = @ID
)
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.RESERVATIONRATESCALEFEE
where
RESERVATIONRATESCALEID = @ID and
FEEID not in
(
select FEEID from dbo.RATESCALEFEE
where RATESCALEID = @RATESCALEID
)
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
else
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.RESERVATIONRATESCALEFEE
where RESERVATIONRATESCALEID = @ID
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
if @INCLUDEALLRESOURCES = 0
begin
insert into dbo.RESERVATIONRATESCALERESOURCE
(
ID,
RESERVATIONRATESCALEID,
RESOURCEID,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
RESOURCEID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALERESOURCE
where
RATESCALEID = @RATESCALEID and
RESOURCEID not in
(
select RESOURCEID from dbo.RESERVATIONRATESCALERESOURCE
where RESERVATIONRATESCALEID = @ID
)
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.RESERVATIONRATESCALERESOURCE
where
RESERVATIONRATESCALEID = @ID and
RESOURCEID not in
(
select RESOURCEID from dbo.RATESCALERESOURCE
where RATESCALEID = @RATESCALEID
)
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
else
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.RESERVATIONRATESCALERESOURCE
where RESERVATIONRATESCALEID = @ID
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
if @INCLUDEALLSTAFFRESOURCES = 0
begin
insert into dbo.RESERVATIONRATESCALESTAFFRESOURCE
(
ID,
RESERVATIONRATESCALEID,
VOLUNTEERTYPEID,
ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED
)
select
newid(),
@ID,
VOLUNTEERTYPEID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.RATESCALESTAFFRESOURCE
where
RATESCALEID = @RATESCALEID and
VOLUNTEERTYPEID not in
(
select VOLUNTEERTYPEID from dbo.RESERVATIONRATESCALESTAFFRESOURCE
where RESERVATIONRATESCALEID = @ID
)
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.RESERVATIONRATESCALESTAFFRESOURCE
where
RESERVATIONRATESCALEID = @ID and
VOLUNTEERTYPEID not in
(
select VOLUNTEERTYPEID from dbo.RATESCALERESOURCE
where RATESCALEID = @RATESCALEID
)
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
else
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.RESERVATIONRATESCALESTAFFRESOURCE
where RESERVATIONRATESCALEID = @ID
-- reset CONTEXT_INFO to previous value
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
end
end