USP_INVITATIONHISTORY_UPDATEORCREATE_2

Updates the invitation history record with the specified business process status identifier or creates one if no such record exists.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@BUSINESSPROCESSSTATUSID uniqueidentifier IN
@PARAMETERSETID nvarchar(36) IN

Definition

Copy


            CREATE procedure dbo.USP_INVITATIONHISTORY_UPDATEORCREATE_2
            (
                @ID uniqueidentifier = null output,
                @CHANGEAGENTID uniqueidentifier = null,
                @BUSINESSPROCESSSTATUSID uniqueidentifier = null,
                @PARAMETERSETID nvarchar(36) = null
            )
            as                    
                set nocount on;

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

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

                begin try
                    update dbo.INVITATIONHISTORY set
                        BUSINESSPROCESSSTATUSID = @BUSINESSPROCESSSTATUSID,
                        PARAMETERSETID = @PARAMETERSETID,                                          
                        NAME = INVITATION.NAME,
                        EVENTID = INVITATION.EVENTID,
                        BUSINESSPROCESSVIEWID = INVITATION.BUSINESSPROCESSVIEWID,
                        CHANNELCODE = INVITATION.CHANNELCODE,
                        CHANNELPREFERENCECODE = INVITATION.CHANNELPREFERENCECODE,
                        MAILPACKAGEID = INVITATION.MAILPACKAGEID,
                        EMAILPACKAGEID = INVITATION.EMAILPACKAGEID,
                        ADDRESSPROCESSINGOPTIONID = MKTSEGMENTATION.ADDRESSPROCESSINGOPTIONID,
                        NAMEFORMATPARAMETERID = MKTSEGMENTATION.NAMEFORMATPARAMETERID,
                        HOUSEHOLDINGTYPECODE = MKTSEGMENTATION.HOUSEHOLDINGTYPECODE,
                        HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD = MKTSEGMENTATION.HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD,
                        HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS = MKTSEGMENTATION.HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
                        HOUSEHOLDINGONERECORDPERHOUSEHOLD = MKTSEGMENTATION.HOUSEHOLDINGONERECORDPERHOUSEHOLD,
                        CHANGEDBYID = @CHANGEAGENTID,
                        DATECHANGED = @CURRENTDATE,
            MAILDATE = INVITATION.MAILDATE
                    from
                        dbo.INVITATIONHISTORY
                    inner join dbo.INVITATION
                        on INVITATIONHISTORY.PARAMETERSETID = INVITATION.ID
                    inner join dbo.MKTSEGMENTATION
                        on INVITATIONHISTORY.PARAMETERSETID = MKTSEGMENTATION.ID
                    where
                        BUSINESSPROCESSSTATUSGUID = @BUSINESSPROCESSSTATUSID;

                    if @@ROWCOUNT > 0
                        select
                            @ID = ID
                        from
                            dbo.INVITATIONHISTORY
                        where
                            BUSINESSPROCESSSTATUSGUID = @BUSINESSPROCESSSTATUSID;

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

                        insert into dbo.INVITATIONHISTORY
                            (ID, BUSINESSPROCESSSTATUSGUID, BUSINESSPROCESSSTATUSID, PARAMETERSETID, NAME, EVENTID, BUSINESSPROCESSVIEWID, CHANNELCODE, CHANNELPREFERENCECODE, MAILPACKAGEID, EMAILPACKAGEID, ADDRESSPROCESSINGOPTIONID, NAMEFORMATPARAMETERID, HOUSEHOLDINGTYPECODE, HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD, HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS, HOUSEHOLDINGONERECORDPERHOUSEHOLD, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, MAILDATE)
                        select
                            @ID
                            @BUSINESSPROCESSSTATUSID
                            @BUSINESSPROCESSSTATUSID
                            @PARAMETERSETID
                            INVITATION.NAME, 
                            INVITATION.EVENTID, 
                            INVITATION.BUSINESSPROCESSVIEWID, 
                            INVITATION.CHANNELCODE, 
                            INVITATION.CHANNELPREFERENCECODE, 
                            INVITATION.MAILPACKAGEID, 
                            INVITATION.EMAILPACKAGEID, 
                            INVITATION.ADDRESSPROCESSINGOPTIONID, 
                            INVITATION.NAMEFORMATPARAMETERID, 
                            INVITATION.HOUSEHOLDINGTYPECODE, 
                            INVITATION.HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD, 
                            INVITATION.HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS, 
                            INVITATION.HOUSEHOLDINGONERECORDPERHOUSEHOLD, 
                            @CHANGEAGENTID
                            @CHANGEAGENTID
                            @CURRENTDATE
                            @CURRENTDATE,
              INVITATION.MAILDATE
                        from dbo.INVITATION
                        where INVITATION.ID = @PARAMETERSETID;

                    end
                end try

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

                return 0;