USP_INVITATION_COPY
Copies invitations from one event to another event.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCEEVENTID | uniqueidentifier | IN | |
@DESTINATIONEVENTID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@COPYINVITEES | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_INVITATION_COPY
(
@SOURCEEVENTID uniqueidentifier,
@DESTINATIONEVENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@COPYINVITEES bit = 0
)
with execute as caller
as
set nocount on;
-- Cannot copy if the source invitation does not exist
if not exists (select ID from dbo.EVENT where ID = @SOURCEEVENTID)
raiserror('The source event specified does not exist.',13,1);
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
--cache out invitations with new IDs
declare @INVITATIONSTEMPTABLE as Table(
ID uniqueidentifier,
NAME nvarchar(100),
EVENTID uniqueidentifier,
BUSINESSPROCESSVIEWID uniqueidentifier,
DESCRIPTION nvarchar(255),
MAILDATE datetime,
NEWINVITATIONID uniqueidentifier,
CHANNELCODE tinyint,
CHANNELPREFERENCECODE tinyint,
MAILPACKAGEID uniqueidentifier,
EMAILPACKAGEID uniqueidentifier,
ADDRESSPROCESSINGOPTIONID uniqueidentifier,
NAMEFORMATPARAMETERID uniqueidentifier,
HOUSEHOLDINGTYPECODE tinyint,
HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit,
HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit,
HOUSEHOLDINGONERECORDPERHOUSEHOLD bit
);
insert into @INVITATIONSTEMPTABLE
select
ID,
NAME,
EVENTID,
BUSINESSPROCESSVIEWID,
DESCRIPTION,
MAILDATE,
newID(),
CHANNELCODE,
CHANNELPREFERENCECODE,
MAILPACKAGEID,
EMAILPACKAGEID,
ADDRESSPROCESSINGOPTIONID,
NAMEFORMATPARAMETERID,
HOUSEHOLDINGTYPECODE,
HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD,
HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
HOUSEHOLDINGONERECORDPERHOUSEHOLD
from dbo.INVITATION
where INVITATION.EVENTID = @SOURCEEVENTID;
if @COPYINVITEES = 1
begin
--cache out invitees for this event
declare @INVITEESTEMPTABLE as Table(ID uniqueidentifier, CONSTITUENTID uniqueidentifier, EVENTID uniqueidentifier, INVITATIONSENTON datetime, DECLINED bit, INVITATIONID uniqueidentifier);
insert into @INVITEESTEMPTABLE
select ID, CONSTITUENTID, EVENTID, INVITATIONSENTON, DECLINED, INVITATIONID
from dbo.INVITEE
where INVITEE.EVENTID = @SOURCEEVENTID;
end
insert into dbo.INVITATION
(
ID,
NAME,
EVENTID,
BUSINESSPROCESSVIEWID,
DESCRIPTION,
MAILDATE,
CHANNELCODE,
CHANNELPREFERENCECODE,
MAILPACKAGEID,
EMAILPACKAGEID,
ADDRESSPROCESSINGOPTIONID,
NAMEFORMATPARAMETERID,
HOUSEHOLDINGTYPECODE,
HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD,
HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
HOUSEHOLDINGONERECORDPERHOUSEHOLD,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
NEWINVITATIONID,
NAME,
@DESTINATIONEVENTID,
BUSINESSPROCESSVIEWID,
DESCRIPTION,
MAILDATE,
CHANNELCODE,
CHANNELPREFERENCECODE,
MAILPACKAGEID,
EMAILPACKAGEID,
ADDRESSPROCESSINGOPTIONID,
NAMEFORMATPARAMETERID,
HOUSEHOLDINGTYPECODE,
HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD,
HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
HOUSEHOLDINGONERECORDPERHOUSEHOLD,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from @INVITATIONSTEMPTABLE
if @COPYINVITEES = 1
begin
insert into dbo.INVITEE
(
ID,
CONSTITUENTID,
EVENTID,
INVITATIONID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
newID(),
invitees.CONSTITUENTID,
@DESTINATIONEVENTID,
invitations.NEWINVITATIONID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
@INVITEESTEMPTABLE invitees
inner join @INVITATIONSTEMPTABLE invitations
on invitees.INVITATIONID = invitations.ID
where invitees.EVENTID = @SOURCEEVENTID;
end
return 0;