USP_FAFNFGCAMPAIGN_COPY
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCEID | uniqueidentifier | IN | |
@TARGETEVENTCAMPAIGNID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_FAFNFGCAMPAIGN_COPY
(
@SOURCEID uniqueidentifier,
@TARGETEVENTCAMPAIGNID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
begin
SET NOCOUNT ON;
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
begin try
CREATE TABLE #TEMPNFG
(
ID int identity(1,1),
CURRENTNFGID uniqueidentifier,
GroupConstituentID uniqueidentifier,
OrganizationConstituentID uniqueidentifier,
NFGTypeCodeID uniqueidentifier,
Name nvarchar(100),
ContactID uniqueidentifier,
ALLOWOTHERSJOINFROMGROUPPAGE bit,
ALLOWCOMPANIESJOINFROMGROUPPAGE bit,
ALLOWGROUPSCHOOSEHIERARCHYLEVEL bit,
TOTALREVENUEGOAL money,
TOTALDONORSGOAL int,
PARTICIPANTSRECRECRUITMENTGOAL int,
PARTICIPANTSRETAINEDGOAL decimal,
FAFGROUPSRECRUITMENTGOAL int,
FAFGROUPSRETAINEDGOAL decimal,
COMMUNICATIONSTOSEND int,
PREVIOUSNFGID uniqueidentifier
)
insert into #TEMPNFG(CURRENTNFGID, GroupConstituentID, OrganizationConstituentID, NFGTypeCodeID, Name, ContactID,
ALLOWOTHERSJOINFROMGROUPPAGE, ALLOWCOMPANIESJOINFROMGROUPPAGE, ALLOWGROUPSCHOOSEHIERARCHYLEVEL,
TOTALREVENUEGOAL, TOTALDONORSGOAL,
PARTICIPANTSRECRECRUITMENTGOAL, PARTICIPANTSRETAINEDGOAL,
FAFGROUPSRECRUITMENTGOAL, FAFGROUPSRETAINEDGOAL, COMMUNICATIONSTOSEND, PREVIOUSNFGID)
select newid(), GroupConstituentID, OrganizationConstituentID, NFGTypeCodeID, Name, ContactID,
ALLOWOTHERSJOINFROMGROUPPAGE, ALLOWCOMPANIESJOINFROMGROUPPAGE, ALLOWGROUPSCHOOSEHIERARCHYLEVEL,
TOTALREVENUEGOAL, TOTALDONORSGOAL,
PARTICIPANTSRECRECRUITMENTGOAL, PARTICIPANTSRETAINEDGOAL,
FAFGROUPSRECRUITMENTGOAL, FAFGROUPSRETAINEDGOAL, COMMUNICATIONSTOSEND, ID
from dbo.FAFNFGCAMPAIGN where CAMPAIGNID=@SOURCEID
-- copy NFG
insert into dbo.FAFNFGCAMPAIGN
(ID, GroupConstituentID, CampaignID, OrganizationConstituentID, NFGTypeCodeID, Name, ContactID,
ALLOWOTHERSJOINFROMGROUPPAGE, ALLOWCOMPANIESJOINFROMGROUPPAGE, ALLOWGROUPSCHOOSEHIERARCHYLEVEL,
TOTALREVENUEGOAL, TOTALDONORSGOAL,
PARTICIPANTSRECRECRUITMENTGOAL, PARTICIPANTSRETAINEDGOAL,
FAFGROUPSRECRUITMENTGOAL, FAFGROUPSRETAINEDGOAL, COMMUNICATIONSTOSEND,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select CURRENTNFGID, GroupConstituentID, @TARGETEVENTCAMPAIGNID, ORGANIZATIONCONSTITUENTID, NFGTYPECODEID, Name, CONTACTID,
ALLOWOTHERSJOINFROMGROUPPAGE, ALLOWCOMPANIESJOINFROMGROUPPAGE, ALLOWGROUPSCHOOSEHIERARCHYLEVEL,
TOTALREVENUEGOAL, TOTALDONORSGOAL,
PARTICIPANTSRECRECRUITMENTGOAL, PARTICIPANTSRETAINEDGOAL,
FAFGROUPSRECRUITMENTGOAL, FAFGROUPSRETAINEDGOAL, COMMUNICATIONSTOSEND,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from #TEMPNFG
-- copy sites
insert into dbo.FAFNFGCampaignDisplaySite
(ID, NFGCAMPAIGNID, SITEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select newid(), t.CURRENTNFGID, s.SITEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.FAFNFGCampaignDisplaySite s inner join #TEMPNFG t on s.NFGCAMPAIGNID = t.PREVIOUSNFGID
declare @COUNT int, @INDEX int
select @COUNT = COUNT(*),@Index = 1 from #TEMPNFG
if @COUNT > 0
begin
declare @CURRENTNFGID uniqueidentifier, @PREVIOUSNFGID uniqueidentifier
while @Index< = @Count
begin
select @CURRENTNFGID = CURRENTNFGID, @PREVIOUSNFGID = PREVIOUSNFGID from #TEMPNFG where ID=@Index
-- copy levels
EXEC dbo.USP_FAFNFGCAMPAIGNLEVEL_COPY @SOURCENFGID = @PREVIOUSNFGID, @TARGETNFGID = @CURRENTNFGID, @CHANGEAGENTID=@CHANGEAGENTID
set @Index = @Index + 1
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
end