USP_REVENUE_DISQUALIFIED_GIFT_AID_ATTRIBUTE

Sets the revenue ID to not qualified for Gift Aid if due to an attribute.

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN

Definition

Copy


            CREATE procedure USP_REVENUE_DISQUALIFIED_GIFT_AID_ATTRIBUTE
      (
      @REVENUEID as uniqueidentifier
      )

      as
      begin
        --We first generate a list or revenue IDs disqualified for Gift Aid and see if this revenue ID is in the list

        declare @revenueIDs xml;
        declare @sql nvarchar(max);
        declare @parameters nvarchar(500);
            declare @tempTable table([ID] uniqueidentifier);

        if exists (select id from GIFTAIDDISQUALIFIEDBYATTRIBUTE)
          begin
            set @parameters = N'@revenueIDs_out xml OUTPUT';

            exec USP_REVENUE_IDS_DISQUALIFIED_FOR_GIFTAID_BY_ATTRIBUTE @sql output;

            set @sql = 'set @revenueIDs_out = (select revenueid as ID from (' + @sql + ') as temptable for XML raw (' 
              + '''' + 'ITEM' + '''' + '), type, elements, root(' + '''' + 'REVENUEID' + '''' 
              + '), binary base64);'

            exec sp_executesql @sql, @parameters, @revenueIDs_out = @revenueIDs output;
            insert into @tempTable select T.c.value('(ID)[1]', 'uniqueidentifier') as [ID] from @revenueIDs.nodes('/REVENUEID/ITEM') T(c);

            if exists (select ID from @tempTable where ID = @REVENUEID)
              begin
                update REVENUESPLITGIFTAID set ATTRIBUTES_STATUS = 0 --disqualified

                  where ID in
                    (select id from REVENUESPLIT where REVENUEID = @REVENUEID)
             end
            else
              begin
                update REVENUESPLITGIFTAID set ATTRIBUTES_STATUS = 1 --qualified

                  where ID in
                    (select id from REVENUESPLIT where REVENUEID = @REVENUEID)
              end
          end
        else
          begin
            update REVENUESPLITGIFTAID set ATTRIBUTES_STATUS = 1 --qualified

                where ID in
                (select id from REVENUESPLIT where REVENUEID = @REVENUEID)
          end
      end