USP_EVENT_ADD

Shared stored procedure for use by Event Add and Event Batch Commit.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(100) IN
@DESCRIPTION nvarchar(255) IN
@STARTDATE date IN
@STARTTIME UDT_HOURMINUTE IN
@ENDDATE date IN
@ENDTIME UDT_HOURMINUTE IN
@CAPACITY int IN
@EVENTLOCATIONID uniqueidentifier IN
@EVENTLOCATIONCONTACTID uniqueidentifier IN
@MAINEVENTID uniqueidentifier IN
@COPYFROMEVENTID uniqueidentifier IN
@COPYTASKS bit IN
@COPYEXPENSES bit IN
@COPYPRICES bit IN
@COPYINVITATIONS bit IN
@COPYINVITEES bit IN
@COPYATTRIBUTES bit IN
@ATTRIBUTEDEFINED bit IN
@SITES xml IN
@COPYPREFERENCES bit IN
@EVENTCATEGORYCODEID uniqueidentifier IN
@COPYTEAMSTRUCTURE bit IN
@COPYTEAMFUNDRAISERS bit IN
@APPEALID uniqueidentifier IN
@ADDQUICKCOMPARE bit IN
@COPYLODGINGOPTIONS bit IN
@EVENTLOCATIONROOMID uniqueidentifier IN
@COPYJOBOCCURRENCES bit IN
@ISAUCTION bit IN
@HIDEFROMCALENDAR bit IN
@BASECURRENCYID uniqueidentifier IN
@DESIGNATIONSONFEES bit IN
@COPYDESIGNATIONS bit IN
@COPYPUBLICDESCRIPTION bit IN

Definition

Copy


            CREATE procedure dbo.USP_EVENT_ADD
            (
                @ID uniqueidentifier = null output,
                @CURRENTAPPUSERID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null,    
                @NAME nvarchar(100) = '',
                @DESCRIPTION nvarchar(255) = '',    
                @STARTDATE date,
                @STARTTIME dbo.UDT_HOURMINUTE = null,
                @ENDDATE date = null,
                @ENDTIME dbo.UDT_HOURMINUTE = null,                        
                @CAPACITY int = 0,
                @EVENTLOCATIONID uniqueidentifier = null,
                @EVENTLOCATIONCONTACTID uniqueidentifier = null,
                @MAINEVENTID uniqueidentifier = null,
                @COPYFROMEVENTID uniqueidentifier = null,
                @COPYTASKS bit = 0,
                @COPYEXPENSES bit = 0,
                @COPYPRICES bit = 0,
                @COPYINVITATIONS bit = 0,                                          
                @COPYINVITEES bit = 0,
                @COPYATTRIBUTES bit = 0,
                @ATTRIBUTEDEFINED bit = 0,
                @SITES xml = null,
                @COPYPREFERENCES bit = 0,
                @EVENTCATEGORYCODEID uniqueidentifier = null,
                @COPYTEAMSTRUCTURE bit = 0,
                @COPYTEAMFUNDRAISERS bit = 0,
                @APPEALID uniqueidentifier = null,
                @ADDQUICKCOMPARE bit = 1,
                @COPYLODGINGOPTIONS bit = 0,
                @EVENTLOCATIONROOMID uniqueidentifier = null,
                @COPYJOBOCCURRENCES bit = 0,
                @ISAUCTION bit = 0,
                @HIDEFROMCALENDAR bit = 0,
                @BASECURRENCYID uniqueidentifier = null,
                @DESIGNATIONSONFEES bit = 0,
                @COPYDESIGNATIONS bit = 1,
                @COPYPUBLICDESCRIPTION bit = 1

                -- pdg 8.27.2009 removing EVENTTYPEID while FAF is under construction ,@EVENTTYPEID tinyint = 0


            )
            as                    
                set nocount on;

                declare @CURRENTDATE datetime;

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

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

                set @CURRENTDATE = getdate();

                if @SITES is null
                begin 
                    if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1 
                    begin
                        raiserror('ERR_EVENTSITE_SITEID',13,1);
                        return 1;
                    end
                end

                if @ISAUCTION = 1 and @APPEALID is not null and @APPEALID <> '00000000-0000-0000-0000-000000000000'
                    begin
                        raiserror('ERR_EVENTAUCTION_TEAMFUNDRAISINGAPPEAL', 13, 1);
                        return 1;
                    end

                if @ENDDATE is null
                    set @ENDDATE = @STARTDATE;

                if @STARTTIME = @ENDTIME and @STARTTIME = '0000'
                    begin
                        set @STARTTIME = ''
                        set @ENDTIME = ''
                    end

                -- TMV 02/28/2007 CR268233-022607

                if @CAPACITY is null
                    set @CAPACITY = 0;

                begin try
                    --CR297394-040708 TMV 04/08/2008 This may change to be a database constraint in a future release

                    if dbo.UFN_EVENT_CANSUPPORTEVENTS_NULLAPPEAL(@MAINEVENTID) <> 1
                        raiserror('ERR_EVENT_CANSUPPORTEVENTS_NULLAPPEAL', 16, 1);

                    exec dbo.USP_EVENTSITE_VALIDATESITES @SITES

                    /* pdg 8.27.2009 commenting out for now
                    -- FAF considers appeal same as event, so we create appeal behind scene to conform with current event model (team fundraising)
                    if @EVENTTYPEID > 0 
                    begin
                        declare @APPEALDESCRIPTION nvarchar(255)

                        if @DESCRIPTION = '' 
                            set @APPEALDESCRIPTION = @NAME
                        else
                            set @APPEALDESCRIPTION = @DESCRIPTION

                        exec dbo.USP_DATAFORMTEMPLATE_ADD_APPEAL @APPEALID output, @CHANGEAGENTID, @NAME, @APPEALDESCRIPTION, null, null, @STARTDATE, @ENDDATE, 0, null, null, null, @CURRENTAPPUSERID;
                    end 
                    */

                    if @BASECURRENCYID is null
                        set @BASECURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);

                    declare @APPEALCURRENCYID uniqueidentifier;
                    if @APPEALID is not null
                    begin
                        select @APPEALCURRENCYID = APPEAL.BASECURRENCYID from dbo.APPEAL where APPEAL.ID = @APPEALID;

                        if @APPEALCURRENCYID <> @BASECURRENCYID
                            raiserror('ERR_EVENT_APPEAL_BASECURRENCYMUSTMATCH', 13, 1);
                    end

                    --Copy public description (currently only used for web forms)

                    if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('e5e0494b-ba0f-4e23-b8fb-a59112dbf3c8') = 0 --BasicCMS

                        set @COPYPUBLICDESCRIPTION = 0

                    declare @PUBLICDESCRIPTIONHTML nvarchar(max) = ''
                    declare @PUBLICDESCRIPTIONTEXT nvarchar(max) = ''
                    if @COPYFROMEVENTID is not null and @COPYPUBLICDESCRIPTION = 1
                        select
                            @PUBLICDESCRIPTIONHTML = [EVENT].[PUBLICDESCRIPTIONHTML],
                            @PUBLICDESCRIPTIONTEXT = [EVENT].[PUBLICDESCRIPTIONTEXT]
                        from dbo.[EVENT]
                        where [ID] = @COPYFROMEVENTID

                    insert into dbo.EVENT
                        (ID, NAME, DESCRIPTION, STARTDATE, STARTTIME, ENDDATE, ENDTIME, CAPACITY, EVENTLOCATIONID, EVENTLOCATIONROOMID, EVENTLOCATIONCONTACTID, MAINEVENTID, EVENTCATEGORYCODEID, APPEALID, BASECURRENCYID, PUBLICDESCRIPTIONHTML, PUBLICDESCRIPTIONTEXT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, HIDEFROMCALENDAR, DESIGNATIONSONFEES)
                    values
                        (@ID, @NAME, @DESCRIPTION, @STARTDATE, @STARTTIME, @ENDDATE, @ENDTIME, @CAPACITY, @EVENTLOCATIONID, @EVENTLOCATIONROOMID, @EVENTLOCATIONCONTACTID, @MAINEVENTID, @EVENTCATEGORYCODEID, @APPEALID, @BASECURRENCYID, @PUBLICDESCRIPTIONHTML, @PUBLICDESCRIPTIONTEXT, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @HIDEFROMCALENDAR, @DESIGNATIONSONFEES);

                    exec dbo.USP_EVENT_GETSITES_ADDFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE 

                    if @ISAUCTION = 1
                        insert into dbo.EVENTAUCTION(ID, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID) values(@ID, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)

                    /*
                    if @EVENTTYPEID > 0 
                    begin
                        exec dbo.USP_DATAFORMTEMPLATE_ADD_EVENT_EXTENSION @CHANGEAGENTID = @CHANGEAGENTID,@EVENTID =  @ID,  @EVENTTYPEID = @EVENTTYPEID;
                        exec dbo.USP_DATAFORMTEMPLATE_ADD_EVENTGOAL @EVENTID = @ID;                
                    end                               
                    */

                    if @COPYFROMEVENTID is not null 
                    begin
                        if @COPYTASKS = 1
                            exec dbo.USP_EVENTTASK_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;

                        if @COPYEXPENSES = 1
                            exec dbo.USP_EVENTEXPENSE_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID, @CURRENTAPPUSERID;

                        if @COPYPRICES = 1
                            exec dbo.USP_EVENTPRICE_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;

                        if @COPYTEAMSTRUCTURE = 1
                            --bug 127803 - Add security for add event form.

                            exec dbo.USP_EVENT_TEAMFUNDRAISINGCOPY @COPYFROMEVENTID, null, @ID, @CHANGEAGENTID, @COPYTEAMFUNDRAISERS, @CURRENTAPPUSERID, '3e2e444e-dd3d-48dd-a0ec-d50627aa9e0b';

                        if @COPYINVITATIONS = 1
                            exec dbo.USP_INVITATION_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID, @COPYINVITEES;

                        if @COPYATTRIBUTES = 1
                            exec dbo.USP_EVENTATTRIBUTE_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;

                        if @COPYPREFERENCES = 1
                            exec dbo.USP_EVENTPREFERENCE_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;            

                        if @COPYLODGINGOPTIONS = 1
                            exec dbo.USP_EVENTLODGINGOPTIONS_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;

                        if @COPYJOBOCCURRENCES = 1
                            exec dbo.USP_EVENTJOBOCCURRENCES_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;

                        if @COPYDESIGNATIONS = 1
                            exec dbo.USP_EVENTDESIGNATIONS_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
                    end               

                end try

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

                return 0;