USP_FAFNFGCAMPAIGNLEVEL_COPY

Parameters

Parameter Parameter Type Mode Description
@SOURCENFGID uniqueidentifier IN
@TARGETNFGID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_FAFNFGCAMPAIGNLEVEL_COPY
(
  @SOURCENFGID uniqueidentifier,
  @TARGETNFGID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null
)
as
begin
  SET NOCOUNT ON;
    begin try
     declare @CURRENTDATE datetime
   set @CURRENTDATE = getdate()

  if @CHANGEAGENTID is null  
    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
  CREATE TABLE #TEMPLEVEL
  (
    ID int identity(1,1),
    CURRENTLEVELID uniqueidentifier,
    NFGCAMPAIGNID uniqueidentifier,
    Name nvarchar(100),
    CONTACTID uniqueidentifier,
    TOTALREVENUEGOAL money,
    DONORSGOAL int,
    PARTICIPANTSGOAL int,
    GROUPSGOAL int,
    COMMUNICATIONSGOAL int,
    PREVIOUSLEVELID uniqueidentifier,
    PARENTID uniqueidentifier
  )

    insert into #TEMPLEVEL
        (CURRENTLEVELID, NFGCAMPAIGNID, NAME, CONTACTID,TOTALREVENUEGOAL,DONORSGOAL,PARTICIPANTSGOAL,GROUPSGOAL,COMMUNICATIONSGOAL,PREVIOUSLEVELID,PARENTID)
   select newid(), @TARGETNFGID, NAME, CONTACTID, TOTALREVENUEGOAL, DONORSGOAL, PARTICIPANTSGOAL, GROUPSGOAL,COMMUNICATIONSGOAL,ID,(select PARENT.ID from dbo.FAFNFGCAMPAIGNLEVEL as PARENT where PARENT.HIERARCHYPATH = FNCL.HIERARCHYPATH.GetAncestor(1)) 
   from dbo.FAFNFGCAMPAIGNLEVEL FNCL where FNCL.NFGCAMPAIGNID = @SOURCENFGID
   Order by FNCL.HIERARCHYPATH.GetLevel()

  declare @COUNT int, @INDEX int
  declare @PARENTID uniqueidentifier, @CURRENTPARENTID uniqueidentifier
     select @COUNT = COUNT(*),@Index = 1  from #TEMPLEVEL
  while @Index< = @Count
  begin
    select @PARENTID = PARENTID from #TEMPLEVEL where ID = @INDEX
    select @CURRENTPARENTID = CURRENTLEVELID from #TEMPLEVEL where PREVIOUSLEVELID = @PARENTID
    insert into dbo.FAFNFGCAMPAIGNLEVEL 
    (ID, NFGCAMPAIGNID, NAME, HIERARCHYPATH,CONTACTID,TOTALREVENUEGOAL,DONORSGOAL,PARTICIPANTSGOAL,GROUPSGOAL,COMMUNICATIONSGOAL, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
   select CURRENTLEVELID, NFGCAMPAIGNID, NAME, dbo.UFN_LEVELHIERARCHY_GETNEWDESCENDANTVALUE(NFGCAMPAIGNID, @CURRENTPARENTID), CONTACTID, TOTALREVENUEGOAL, DONORSGOAL, PARTICIPANTSGOAL, GROUPSGOAL,
    COMMUNICATIONSGOAL, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE from #TEMPLEVEL where ID = @INDEX    
    set @Index = @Index + 1
  end

  insert into dbo.FAFNFGCAMPAIGNLEVELDISPLAYSITE (ID, NFGCAMPAIGNLEVELID, SITEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)  
  select newid(), t.CURRENTLEVELID, SITEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE 
  from dbo.FAFNFGCAMPAIGNLEVELDISPLAYSITE s join #TEMPLEVEL t on s.NFGCAMPAIGNLEVELID = t.PREVIOUSLEVELID

end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

end