USP_DATAFORMTEMPLATE_EDIT_FAFPROGRAM_2

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@NAME nvarchar(100) IN
@DESCRIPTION nvarchar(255) IN
@SITES xml IN
@PREVIOUSCAMPAIGNID uniqueidentifier IN
@SELECTEDEVENTS xml IN

Definition

Copy

create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_FAFPROGRAM_2 (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENTAPPUSERID uniqueidentifier,
    @NAME nvarchar(100),  
    @DESCRIPTION nvarchar(255),
    @SITES xml,
    @PREVIOUSCAMPAIGNID uniqueidentifier,
    @SELECTEDEVENTS xml
)
as

    set nocount on;

    declare @CURRENTDATE datetime
    declare @defaultSiteId uniqueidentifier
    declare @dSite nvarchar(200)
    declare @REMOVEDEVENTLIST table(EVENTID uniqueidentifier)
    declare @ADDEDEVENTLIST table(EVENTID uniqueidentifier)

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

    set @CURRENTDATE = getdate()

    insert into @REMOVEDEVENTLIST(EVENTID)
    select EVENTID 
    from dbo.EVENTEXTENSION 
    where FAFPROGRAMID  = @ID
    and EVENTID not in (select EVENTID from dbo.UFN_GLOBALCHANGE_GETEVENTLIST_FROMITEMLISTXML(@SELECTEDEVENTS))

    insert into @ADDEDEVENTLIST(EVENTID)
    select EVENTID 
    from dbo.UFN_GLOBALCHANGE_GETEVENTLIST_FROMITEMLISTXML(@SELECTEDEVENTS)
    where EVENTID not in (select EVENTID from dbo.EVENTEXTENSION where FAFPROGRAMID = @ID)

    begin try
    -- handle updating the data
    if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1 
        begin 
             if @SITES is null
                raiserror('Site is required.',13,1
             else
                 begin        
                        select @defaultSiteId = SITEID from dbo.UFN_SITE_MYSITE_GET(@CURRENTAPPUSERID
                        set @dSite = '<SITEID>'+ cast(@defaultSiteId as nvarchar(40)) +'</SITEID>';
                        if CAST(@SITES AS NVARCHAR(MAX)) NOT LIKE '%'+@dSite+'%'
                          raiserror('You did not assign your default site to the event campaign. To continue, edit sites and add your default site.', 13,1)
                 end
         end  

    exec dbo.USP_FAFPROGRAM_GETSITES_UPDATEFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE
    set @SITES = dbo.UFN_FAFPROGRAM_GETSITES_TOITEMLISTXML(@ID)

    update dbo.FAFPROGRAM set
            NAME = @NAME,
            DESCRIPTION = @DESCRIPTION,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE,
            PREVIOUSCAMPAIGNID = @PREVIOUSCAMPAIGNID
    where ID = @ID

    update dbo.EVENTEXTENSION 
    set FAFPROGRAMID = NULL, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
        where EVENTID in (select EVENTID from @REMOVEDEVENTLIST)

    update dbo.EVENTEXTENSION 
    set FAFPROGRAMID = @ID, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
        where EVENTID in (select EVENTID from @ADDEDEVENTLIST)

    --remove local group from this campaign
    update dbo.TEAMEXTENSION 
    set NFGCAMPAIGNLEVELID = null,CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
    where EVENTID in (select EVENTID from @REMOVEDEVENTLIST)

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

return 0;