USP_EDIT_SPONSORSHIPPROGRAM

Update a sponsorship program.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(100) IN
@SPONSORSHIPOPPORTUNITYGROUPID uniqueidentifier IN
@SPONSORSHIPGREATESTNEEDRULESETID uniqueidentifier IN
@AMOUNT money IN
@FILTERLOCATIONCODE tinyint IN
@FILTERLOCATIONS xml IN
@ISAFFILIATEPROGRAM bit IN
@AFFILIATEID uniqueidentifier IN
@CONSTITUENCYCODEID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_EDIT_SPONSORSHIPPROGRAM (
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier,
  @NAME nvarchar(100),
  @SPONSORSHIPOPPORTUNITYGROUPID uniqueidentifier,
  @SPONSORSHIPGREATESTNEEDRULESETID uniqueidentifier,
  @AMOUNT money,
  @FILTERLOCATIONCODE tinyint = 0,
  @FILTERLOCATIONS xml = null,
  @ISAFFILIATEPROGRAM bit = 0,
  @AFFILIATEID uniqueidentifier = null,
  @CONSTITUENCYCODEID uniqueidentifier = null
)
as

  set nocount on;

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

  declare @CURRENTDATE datetime
  set @CURRENTDATE = getdate()

  begin try

    --Bug 88854 TonyKn - Check if locations still exist in DB before inserting the XML. 

    declare @TempTbl table (
    [SPONSORSHIPLOCATIONID] uniqueidentifier
    )

    insert into @TempTbl select 
    [SPONSORSHIPLOCATIONID] uniqueidentifier
    from dbo.UFN_SPONSORSHIPLOCATIONS_FROMITEMLISTXML(@FILTERLOCATIONS)

    declare @LOCATIONCOUNT integer = (select count(SPONSORSHIPLOCATIONID) from @TempTbl);
    if @LOCATIONCOUNT <> (select count(SPONSORSHIPLOCATIONID) from @TempTbl inner join dbo.SPONSORSHIPLOCATION on ID=SPONSORSHIPLOCATIONID)
      raiserror('BBERR_LOCATIONDELETED',13,1);

    if exists(select 'x' from @TempTbl group by SPONSORSHIPLOCATIONID having count(SPONSORSHIPLOCATIONID) > 1)
      raiserror('BBERR_DUPLICATELOCATION',13,1)

    update dbo.SPONSORSHIPPROGRAM set
      NAME = @NAME,
      SPONSORSHIPOPPORTUNITYGROUPID = @SPONSORSHIPOPPORTUNITYGROUPID,
      SPONSORSHIPGREATESTNEEDRULESETID = @SPONSORSHIPGREATESTNEEDRULESETID,
      AMOUNT = @AMOUNT,
      FILTERLOCATIONCODE = @FILTERLOCATIONCODE,
      FILTERLOCATIONS = @FILTERLOCATIONS,
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = @CURRENTDATE
    where ID = @ID;

    if @ISAFFILIATEPROGRAM = 1
    begin
        if exists(select 'x' from dbo.SPONSORSHIPAFFILIATEPROGRAM where ID = @ID)
            update dbo.SPONSORSHIPAFFILIATEPROGRAM
            set AFFILIATEID = @AFFILIATEID,
                CONSTITUENCYCODEID = @CONSTITUENCYCODEID,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
            where ID = @ID;
        else
            insert into dbo.SPONSORSHIPAFFILIATEPROGRAM
              (ID,
               AFFILIATEID,
               CONSTITUENCYCODEID,
               ADDEDBYID,
               CHANGEDBYID,
               DATEADDED,
               DATECHANGED)
            values
              (@ID,
               @AFFILIATEID,
               @CONSTITUENCYCODEID,
               @CHANGEAGENTID,
               @CHANGEAGENTID,
               @CURRENTDATE,
               @CURRENTDATE)
    end
    else
        exec USP_SPONSORSHIPAFFILIATEPROGRAM_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
  end catch

return 0;