USP_FAFEVENTINCENTIVEOPTION_COPY

Perform copy of FAF event incentive option.

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_FAFEVENTINCENTIVEOPTION_COPY
(
  @SOURCEID uniqueidentifier,
  @TARGETEVENTID uniqueidentifier, 
  @SOURCEXML xml = null
  @CHANGEAGENTID uniqueidentifier = null,
  @COPYBATCHGUID uniqueidentifier
)
as
    declare @CURRENTDATE datetime,
          @IsCopyEvent bit
  set @CURRENTDATE = getdate()

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

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

begin try

  if @SOURCEXML is null
    set @SOURCEXML = dbo.UFN_FAFEVENT_GETINCENTIVELEVEL_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_GETINCENTIVELEVEL_ADDFROMXML @EVENTID=@TARGETEVENTID, @XML=@SOURCEXML,@CHANGEAGENTID=@CHANGEAGENTID,@CHANGEDATE=@CURRENTDATE

  select COPYSOURCEID AS ID, ID as TargetID
    into #TargetIncentiveOption
    from dbo.FAFINCENTIVELEVEL
    where EVENTID = @TARGETEVENTID;

insert into [FAFINCENTIVELEVELBENEFIT] 
      ( [ID], [FAFINCENTIVELEVELID], [BENEFITID], [QUANTITY], ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
  select 
    newid(), tIL1.TargetID, [BENEFITID], [QUANTITY],@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE
  from #TargetIncentiveOption tIL1
  join dbo.FAFINCENTIVELEVELBENEFIT ILB1 on tIL1.ID = ILB1.FAFINCENTIVELEVELID

  drop table #TargetIncentiveOption

end try
begin catch
  exec dbo.USP_RAISE_ERROR;
  return 1;
end catch

return 0;