USP_DATAFORMTEMPLATE_ADD_PREREGISTEREDPROGRAMEVENTTICKET_2

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@SALESORDERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@EVENTID uniqueidentifier IN
@CONSTITUENTID uniqueidentifier IN
@REGISTRANTS xml IN
@MARKREGISTRANTSATTENDED bit IN
@ALLOWPASTEVENTS bit IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PREREGISTEREDPROGRAMEVENTTICKET_2
(
@ID uniqueidentifier = null output,
@SALESORDERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier,
@EVENTID uniqueidentifier = null,
@CONSTITUENTID uniqueidentifier = null,
@REGISTRANTS xml = null,
@MARKREGISTRANTSATTENDED bit = 0,
@ALLOWPASTEVENTS bit = 0
)
as
    set nocount on;

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

    declare @SALESMETHODTYPECODE tinyint;
        select @SALESMETHODTYPECODE = SALESMETHODTYPECODE from dbo.SALESORDER where ID = @SALESORDERID;

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getdate();

    begin try
        exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @SALESORDERID, @EXCLUDEGROUPSALES = 1;

        if exists (
            select 1
            from dbo.[CONSTITUENT]
            where 
                [ISGROUP] = 1 and
                [ID] = @CONSTITUENTID
        )
        begin
            raiserror('BBERR_HOST_INVALIDGROUPCONSTITUENT', 13, 1);
        end

        exec dbo.USP_SALESORDER_PREREGISTEREDPROGRAMEVENTTICKET_ADD 
            @SALESORDERID,
            @CHANGEAGENTID,
            @CURRENTAPPUSERID,
            @EVENTID,
            @CONSTITUENTID,
            @REGISTRANTS,
            @CURRENTDATE,
            @MARKREGISTRANTSATTENDED,
            @ALLOWPASTEVENTS;

        --For daily sales, we want to return the ID of the top sales order item created for these tickets
        if @SALESMETHODTYPECODE = 0
        begin
            select top 1 @ID = SALESORDERITEM.ID
            from dbo.SALESORDERITEM
            inner join dbo.SALESORDERITEMTICKET
                on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
            where
                SALESORDERITEMTICKET.EVENTID = @EVENTID and
                SALESORDERITEM.SALESORDERID = @SALESORDERID
        end

    end try

    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

return 0;