USP_DATAFORMTEMPLATE_EDIT_RESERVATIONARRIVALINFO
The save procedure used by the edit dataform template "Reservation Arrival Info Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@ARRIVALTIME | UDT_HOURMINUTE | IN | Arrival time |
@NUMBEROFBUSES | smallint | IN | Number of buses |
@ARRIVALAREACODEID | uniqueidentifier | IN | Arrival area |
@ARRIVALNOTES | nvarchar(255) | IN | Notes |
@DRIVERNAME | nvarchar(100) | IN | Name |
@DRIVERPHONENUMBER | nvarchar(100) | IN | Phone |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RESERVATIONARRIVALINFO
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@ARRIVALTIME dbo.UDT_HOURMINUTE,
@NUMBEROFBUSES smallint,
@ARRIVALAREACODEID uniqueidentifier,
@ARRIVALNOTES nvarchar(255),
@DRIVERNAME nvarchar(100),
@DRIVERPHONENUMBER nvarchar(100)
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
begin try
declare @STATUSCODE tinyint;
select @STATUSCODE = SALESORDER.STATUSCODE
from dbo.SALESORDER
where SALESORDER.ID = @ID
if @STATUSCODE in (1, 5)
raiserror('BBERR_INVALIDSTATUS', 13, 1);
if @NUMBEROFBUSES is null
set @NUMBEROFBUSES = 0;
declare @FIRSTITEMDATETIME datetime;
declare @ARRIVALDATETIME datetime;
select top 1 @FIRSTITEMDATETIME = ITINERARYITEM.STARTDATETIME,
@ARRIVALDATETIME = dbo.UFN_DATE_ADDHOURMINUTE(RESERVATION.ARRIVALDATE, @ARRIVALTIME)
from dbo.ITINERARYITEM
inner join dbo.ITINERARY on ITINERARYITEM.ITINERARYID = ITINERARY.ID
inner join dbo.RESERVATION on ITINERARY.RESERVATIONID = RESERVATION.ID
where ITINERARY.RESERVATIONID = @ID and
ITINERARYITEM.STARTDATE = RESERVATION.ARRIVALDATE
order by ITINERARYITEM.STARTTIME asc
if @ARRIVALDATETIME > @FIRSTITEMDATETIME
raiserror('BBERR_INVALIDTIME', 13, 1);
update
dbo.RESERVATION
set
ARRIVALTIME = @ARRIVALTIME,
NUMBEROFBUSES = @NUMBEROFBUSES,
ARRIVALAREACODEID = @ARRIVALAREACODEID,
ARRIVALNOTES = @ARRIVALNOTES,
DRIVERNAME = @DRIVERNAME,
DRIVERPHONENUMBER = @DRIVERPHONENUMBER,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where
ID = @ID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;