USP_RESERVATION_COMPLETEORDER_IMPLEMENTATION
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_RESERVATION_COMPLETEORDER_IMPLEMENTATION (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
if @CHANGEAGENTID is null begin
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
end
declare @CURRENTDATE datetime = getdate();
begin try
declare @ORDERSTATUS tinyint;
declare @CONSTITUENTID uniqueidentifier;
declare @ARRIVALDATE date;
declare @ARRIVALTIME dbo.UDT_HOURMINUTE;
declare @PRICINGCODE tinyint;
select
@ORDERSTATUS = SALESORDER.STATUSCODE,
@CONSTITUENTID = SALESORDER.CONSTITUENTID,
@ARRIVALDATE = RESERVATION.ARRIVALDATE,
@ARRIVALTIME = RESERVATION.ARRIVALTIME,
@PRICINGCODE = RESERVATION.PRICINGCODE
from
dbo.SALESORDER
inner join
dbo.RESERVATION on RESERVATION.ID = SALESORDER.ID
where
SALESORDER.ID = @ID;
if @ORDERSTATUS in (1, 5) begin
raiserror('BBERR_INVALIDSTATUS', 13, 1);
end
if @PRICINGCODE = 1 /* Flat rate */ and dbo.UFN_RESERVATIONRATESCALE_ISAPPLIED(@ID) = 0 begin
raiserror('BBERR_RESERVATIONNOTAPPLIED', 13, 1);
end
declare @TRANSACTIONDATE datetime = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEFROMUTC(getutcdate());
if cast(@TRANSACTIONDATE as date) <> @ARRIVALDATE begin
if len(@ARRIVALTIME) > 0 begin
set @TRANSACTIONDATE = dbo.UFN_DATE_ADDHOURMINUTE(@ARRIVALDATE, @ARRIVALTIME);
end
else begin
declare @RESERVATIONSTARTDATETIME datetime = dbo.UFN_RESERVATION_STARTDATETIME(@ID);
if cast(@RESERVATIONSTARTDATETIME as date) = @ARRIVALDATE begin
set @TRANSACTIONDATE = @RESERVATIONSTARTDATETIME;
end
else begin
set @TRANSACTIONDATE = @ARRIVALDATE;
end
end
end
update dbo.SALESORDER set
TRANSACTIONDATE = @TRANSACTIONDATE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
--mark the order as complete
exec dbo.USP_SALESORDER_COMPLETEORDER @ID, @TRANSACTIONDATE, @CONSTITUENTID, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_RESERVATIONSTATUSHISTORY_ADD @ID, @CHANGEAGENTID, 1;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;