USP_DESIGNATIONLEVELGOAL_DELETE

Executes the "Fundraising Purpose Goal: Delete" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being deleted.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the delete.

Definition

Copy


          CREATE procedure dbo.USP_DESIGNATIONLEVELGOAL_DELETE(@ID uniqueidentifier, @CHANGEAGENTID uniqueidentifier)
          as begin
            --check for existing related KPIs

            declare @KPIS integer;

            WITH XMLNAMESPACES (
              'bb_appfx_dataforms' AS DFI)

            select @KPIS = count(*)
              from dbo.[KPIINSTANCE]
              inner join dbo.[DESIGNATIONLEVELGOAL] on 
                [KPIINSTANCE].[CONTEXTRECORDID] = cast([DESIGNATIONLEVELGOAL].[DESIGNATIONLEVELID] as nvarchar(36)) and 
                [KPIINSTANCE].[PARAMETERSXML].value('data(/DFI:DataFormItem/DFI:Values/DFI:fv[@ID="DESIGNATIONLEVELGOALID"]/DFI:Value)[1]','varchar(36)') = cast([DESIGNATIONLEVELGOAL].[ID] as varchar(36))
              where [DESIGNATIONLEVELGOAL].[ID] = @ID;

            if @KPIS = 0
            begin
              WITH XMLNAMESPACES (
                'bb_appfx_dataforms' AS DFI)

              select @KPIS = count(*)
              from dbo.[KPIINSTANCE]
              inner join dbo.[DESIGNATIONGOAL] on 
                [KPIINSTANCE].[CONTEXTRECORDID] = cast([DESIGNATIONGOAL].[DESIGNATIONID] as nvarchar(36)) and 
                [KPIINSTANCE].[PARAMETERSXML].value('data(/DFI:DataFormItem/DFI:Values/DFI:fv[@ID="DESIGNATIONGOALID"]/DFI:Value)[1]','varchar(36)') = cast([DESIGNATIONGOAL].[ID] as varchar(36))
              where [DESIGNATIONGOAL].[DESIGNATIONLEVELGOALID] = @ID;
            end

            if @KPIS > 0 
              begin
                raiserror('You cannot delete this goal. A goal in this designation''s hierarchy has an associated KPI.', 13, 1);
                return 0;
              end

            exec USP_DESIGNATIONLEVELGOAL_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
            return 0;
          end