USP_RESERVATIONRATESCALE_UPDATEAUTOMATICRESOURCEAPPLICATIONS
Creates applications that don't exist for resources on reservations included in rate scale, deletes ones that no longer exist and were automatic.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN |
Definition
Copy
create procedure dbo.USP_RESERVATIONRATESCALE_UPDATEAUTOMATICRESOURCEAPPLICATIONS
(
@ID 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 @RESOURCES table
(
RESOURCEID uniqueidentifier,
INAPPLICATIONS bit
)
insert into @RESOURCES
select
ITINERARYRESOURCE.RESOURCEID,
0
from dbo.SALESORDERITEM SOI
inner join dbo.SALESORDERITEMITINERARYRESOURCE SOIIR on
SOI.ID = SOIIR.SALESORDERITEMID
inner join dbo.ITINERARYRESOURCE on
SOIIR.ITINERARYRESOURCEID = ITINERARYRESOURCE.ID
where
SOI.SALESORDERID = @ID and
SOI.PRICINGSTRUCTURECODE = 1
group by RESOURCEID
insert into @RESOURCES
select
ITINERARYITEMRESOURCE.RESOURCEID,
0
from dbo.SALESORDERITEM SOI
inner join dbo.SALESORDERITEMITINERARYITEMRESOURCE SOIIIR on
SOI.ID = SOIIIR.SALESORDERITEMID
inner join dbo.ITINERARYITEMRESOURCE on
SOIIIR.ITINERARYITEMRESOURCEID = ITINERARYITEMRESOURCE.ID
where
SOI.SALESORDERID = @ID and
SOI.PRICINGSTRUCTURECODE = 1 and
ITINERARYITEMRESOURCE.RESOURCEID not in
( select RESOURCEID from @RESOURCES )
group by RESOURCEID
update @RESOURCES set
INAPPLICATIONS = 1
where
exists
(
select 1 from dbo.RESERVATIONRATESCALEAPPLICATION RRSA
where
RRSA.RESERVATIONRATESCALEID = @ID and
RRSA.TYPECODE = 2 and
RRSA.RESOURCEID is not null and
RRSA.RESOURCEID = [@RESOURCES].RESOURCEID
)
insert into dbo.RESERVATIONRATESCALEAPPLICATION
(
ID,
RESERVATIONRATESCALEID,
TYPECODE,
RESOURCEID,
AMOUNT,
ISADDEDAUTOMATICALLY,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
newid(),
@ID,
2,
RESOURCEID,
0.0,
1,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from @RESOURCES
where INAPPLICATIONS = 0
declare @e int;
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID
delete from dbo.RESERVATIONRATESCALEAPPLICATION
where
RESERVATIONRATESCALEID = @ID and
AMOUNT = 0 and
ISADDEDAUTOMATICALLY = 1 and
TYPECODE = 2 and
not exists
(select RESOURCEID from @RESOURCES where RESERVATIONRATESCALEAPPLICATION.RESOURCEID = [@RESOURCES].RESOURCEID)
select @e=@@error;
if not @contextCache is null
set CONTEXT_INFO @contextCache;
if @e <> 0
return 2;
end