USP_DATAFORMTEMPLATE_ADD_REGISTRANTTRAVEL

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@REGISTRANTID uniqueidentifier IN
@ARRIVALTRAVELTYPEID uniqueidentifier IN
@ARRIVALTRAVELNAMEID uniqueidentifier IN
@ARRIVALNUMBER nvarchar(25) IN
@ARRIVALDATE datetime IN
@ARRIVALTIME UDT_HOURMINUTE IN
@DEPARTURETRAVELTYPEID uniqueidentifier IN
@DEPARTURETRAVELNAMEID uniqueidentifier IN
@DEPARTURENUMBER nvarchar(25) IN
@DEPARTUREDATE datetime IN
@DEPARTURETIME UDT_HOURMINUTE IN

Definition

Copy

create procedure dbo.USP_DATAFORMTEMPLATE_ADD_REGISTRANTTRAVEL
(
    @ID uniqueidentifier output,
    @CHANGEAGENTID uniqueidentifier = null,
    @REGISTRANTID uniqueidentifier,
    @ARRIVALTRAVELTYPEID uniqueidentifier = null,
    @ARRIVALTRAVELNAMEID uniqueidentifier = null,
    @ARRIVALNUMBER nvarchar(25) = null,
    @ARRIVALDATE datetime = null,
    @ARRIVALTIME dbo.UDT_HOURMINUTE = null,
    @DEPARTURETRAVELTYPEID uniqueidentifier = null,
    @DEPARTURETRAVELNAMEID uniqueidentifier = null,
    @DEPARTURENUMBER nvarchar(25) = null,
    @DEPARTUREDATE datetime = null,
    @DEPARTURETIME dbo.UDT_HOURMINUTE = null
)
as

set nocount on;

if @ID is null
    set @ID = newid();

if @CHANGEAGENTID is null  
    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

declare @CURRENTDATE datetime = getdate();

declare @REGISTRANTCANTRAVEL bit = 0;
declare @REGISTRANTCONSTITUENTID uniqueidentifier;
declare @MAINEVENTID uniqueidentifier;

-- Travel information is unique to a constituent and a main event coupling, 
-- not to a registrant record.
select
    @REGISTRANTCANTRAVEL = 1,
    @REGISTRANTCONSTITUENTID = REGISTRANT.CONSTITUENTID,
    @MAINEVENTID = coalesce(EVENT.MAINEVENTID, EVENT.ID)
from
    dbo.REGISTRANT
    inner join dbo.EVENT on EVENT.ID = REGISTRANT.EVENTID
where
    REGISTRANT.ID = @REGISTRANTID;

if @REGISTRANTCANTRAVEL = 1
begin
    exec dbo.[USP_REGISTRANTTRAVEL_ADD]
        @ID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @REGISTRANTCONSTITUENTID,
        @MAINEVENTID,
        @DEPARTURETIME,
        @DEPARTUREDATE,
        @DEPARTURETRAVELTYPEID,
        @DEPARTURETRAVELNAMEID,
        @DEPARTURENUMBER,
        @ARRIVALTIME,
        @ARRIVALDATE,
        @ARRIVALTRAVELTYPEID,
        @ARRIVALTRAVELNAMEID,
        @ARRIVALNUMBER;
end

return 0;