USP_RECOGNITIONPROGRAM_DELETE

Executes the "Recognition Program: 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_RECOGNITIONPROGRAM_DELETE
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier
                    )
                    as begin


                        if exists
                        (
                            select 
                                1
                            from
                                dbo.CONSTITUENTRECOGNITION
                            where
                                RECOGNITIONPROGRAMID = @ID
                        )
                        begin
                            raiserror('ERR_RECOGNITIONPROGRAM_HASCONSTITUENTRECOGNITION.', 13, 1);
                            return 1;
                        end

                        declare @QUERYNAME nvarchar(255);
                        select @QUERYNAME = 'V_QUERY_RECOGNITION_' + upper(REPLACE(CONVERT(nvarchar(36), @ID), '-', ''))

                        declare @ADHOCNAME nvarchar(255);
                        select @ADHOCNAME = dbo.[UFN_ADHOCQUERY_FIELDISINUSEBY](@QUERYNAME, '')
                        if len(@ADHOCNAME) > 0
                            begin
                                raiserror('ERR_RECOGNITIONPROGRAM_HASQUERY.', 13, 1);
                                return 1;
                            end

                        declare @QUERYID uniqueidentifier;
                        select @QUERYID = ID from dbo.QUERYVIEWCATALOG where OBJECTNAME = @QUERYNAME;

                        delete from dbo.QUERYVIEWRELATIONSHIP where RELATEDQUERYVIEWID = @QUERYID;
                        delete from dbo.QUERYVIEWRELATIONSHIP where ROOTQUERYVIEWID = @QUERYID;
                        delete from dbo.QUERYVIEWCATALOG where ID = @QUERYID;


                        -- TY, bug 127195 - clean up constituentrecognitionrevenue records

                        delete 
                            from dbo.CONSTITUENTRECOGNITIONREVENUE
                        where 
                            RECOGNITIONPROGRAMID = @ID
                            and not exists
                            (
                                select 
                                    'x'
                                from 
                                    dbo.CONSTITUENTRECOGNITION
                                    inner join dbo.REVENUERECOGNITION on REVENUERECOGNITION.ID = CONSTITUENTRECOGNITIONREVENUE.REVENUERECOGNITIONID
                                    where CONSTITUENTRECOGNITION.RECOGNITIONPROGRAMID = @ID
                                    and CONSTITUENTRECOGNITION.CONSTITUENTID = REVENUERECOGNITION.CONSTITUENTID
                            );

                        exec USP_RECOGNITIONPROGRAM_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
                        return 0;

                    end