USP_FAFEVENTGOAL_COPY

Perform copy event goal from one event to another

Parameters

Parameter Parameter Type Mode Description
@SOURCEID uniqueidentifier IN
@TARGETEVENTID uniqueidentifier IN
@SOURCEXML xml IN
@CHANGEAGENTID uniqueidentifier IN
@COPYBATCHGUID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_FAFEVENTGOAL_COPY
(
  @SOURCEID uniqueidentifier,
  @TARGETEVENTID uniqueidentifier,
  @SOURCEXML xml = null,  
  @CHANGEAGENTID uniqueidentifier = null,
  @COPYBATCHGUID uniqueidentifier
)
as
  declare @CURRENTDATE datetime
  set @CURRENTDATE = getdate()

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

begin try

  declare @PREVIOUSEVENTID uniqueidentifier,
          @IsCopyEvent bit
  set @PREVIOUSEVENTID = null

  select @IsCopyEvent = case when @SOURCEXML is null and @SOURCEID is not null then 1 else 0 end

  if @SOURCEXML is null
    set @SOURCEXML = dbo.UFN_FAFEVENT_GETEVENTGOAL_TOITEMLISTXML(@SOURCEID)

  if @IsCopyEvent = 1
    set @SOURCEXML = CAST(REPLACE(CAST(@SOURCEXML AS NVARCHAR(MAX)), '<COPYBATCHGUID>'+CAST(@SOURCEID as nvarchar(40))+'</COPYBATCHGUID>', '<COPYBATCHGUID>'+CAST(@COPYBATCHGUID as nvarchar(40))+'</COPYBATCHGUID>') AS XML)

  exec dbo.USP_FAFEVENT_GETEVENTGOAL_ADDFROMXML @EVENTID=@TARGETEVENTID, @XML=@SOURCEXML,@CHANGEAGENTID=@CHANGEAGENTID,@CHANGEDATE=@CURRENTDATE

  select @PREVIOUSEVENTID=PRIORYEAREVENTID from dbo.EVENTEXTENSION where EVENTID = @TARGETEVENTID

  if @PREVIOUSEVENTID is null
    update dbo.EVENTGOAL
    set       
      REVENUERETENTION = 0,     
      REVENUESPONSORRETENTION = 0,     
      REVENUECOMPANYRETENTION = 0,     
      REVENUETEAMRETENTION = 0,     
      REVENUEINDIVIDUALRETENTION = 0,     
      RECRUITMENTFUNDRAISINGCOACHRETENTION = 0,     
      RECRUITMENTFITNESSCOACHRETENTION = 0,     
      RECRUITMENTSPONSORRETENTION = 0,     
      RECRUITMENTCOMPANYRETENTION = 0,     
      RECRUITMENTDONORRETENTION = 0,     
      RECRUITMENTTEAMRETENTION = 0,     
      RECRUITMENTINDIVIDUALRETENTION = 0
      REVENUEHOUSEHOLDRETENTION = 0,     
      RECRUITMENTHOUSEHOLDRETENTION = 0,     
      REVENUEREGISTRATIONRETENTION = 0
     where EVENTID = @TARGETEVENTID
  else
    if @PREVIOUSEVENTID <> @SOURCEID
      begin
        update dbo.EVENTGOAL
          set 
            REVENUERETENTION = isnull(previous.REVENUERETENTION,0),     
            REVENUESPONSORRETENTION = isnull(previous.REVENUESPONSORRETENTION,0),     
            REVENUECOMPANYRETENTION = isnull(previous.REVENUECOMPANYRETENTION,0),     
            REVENUETEAMRETENTION = isnull(previous.REVENUETEAMRETENTION,0),     
            REVENUEINDIVIDUALRETENTION = isnull(previous.REVENUEINDIVIDUALRETENTION,0),     
            RECRUITMENTFUNDRAISINGCOACHRETENTION = isnull(previous.RECRUITMENTFUNDRAISINGCOACHRETENTION,0),     
            RECRUITMENTFITNESSCOACHRETENTION = isnull(previous.RECRUITMENTFITNESSCOACHRETENTION,0),     
            RECRUITMENTSPONSORRETENTION = isnull(previous.RECRUITMENTSPONSORRETENTION,0),     
            RECRUITMENTCOMPANYRETENTION = isnull(previous.RECRUITMENTCOMPANYRETENTION,0),     
            RECRUITMENTDONORRETENTION = isnull(previous.RECRUITMENTDONORRETENTION,0),     
            RECRUITMENTTEAMRETENTION = isnull(previous.RECRUITMENTTEAMRETENTION,0),     
            RECRUITMENTINDIVIDUALRETENTION = isnull(previous.RECRUITMENTINDIVIDUALRETENTION,0),  
            REVENUEHOUSEHOLDRETENTION = isnull(previous.REVENUEHOUSEHOLDRETENTION,0),     
            RECRUITMENTHOUSEHOLDRETENTION = isnull(previous.RECRUITMENTHOUSEHOLDRETENTION,0),     
            REVENUEREGISTRATIONRETENTION = isnull(previous.REVENUEREGISTRATIONRETENTION,0)
          from (
            select 
              REVENUERETENTION,
              REVENUESPONSORRETENTION,
              REVENUECOMPANYRETENTION,
              REVENUETEAMRETENTION,
              REVENUEINDIVIDUALRETENTION,
              RECRUITMENTFUNDRAISINGCOACHRETENTION,
              RECRUITMENTFITNESSCOACHRETENTION,
              RECRUITMENTSPONSORRETENTION,
              RECRUITMENTCOMPANYRETENTION,
              RECRUITMENTDONORRETENTION,
 RECRUITMENTTEAMRETENTION,
              RECRUITMENTINDIVIDUALRETENTION,
              REVENUEHOUSEHOLDRETENTION,
              RECRUITMENTHOUSEHOLDRETENTION,
              REVENUEREGISTRATIONRETENTION
            from dbo.EVENTGOAL 
            where EVENTID = @PREVIOUSEVENTID
          ) previous
          where EVENTID = @TARGETEVENTID
      end
end try
begin catch
  exec dbo.USP_RAISE_ERROR;
  return 1;
end catch

return 0;