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