USP_DATAFORMTEMPLATE_EDIT_CONSTITUENTRECOGNITIONDECLINEDLEVELSBYLEVEL

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@RECOGNITIONPROGRAMID uniqueidentifier IN
@DECLINEPROGRAM bit IN
@DECLINEDRECOGNITIONLEVELS xml IN
@REASONCODE uniqueidentifier IN

Definition

Copy

        CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_CONSTITUENTRECOGNITIONDECLINEDLEVELSBYLEVEL (
            @ID uniqueidentifier,
            @CHANGEAGENTID uniqueidentifier = null,
            @RECOGNITIONPROGRAMID uniqueidentifier,
            @DECLINEPROGRAM bit,
            @DECLINEDRECOGNITIONLEVELS xml,
          @REASONCODE uniqueidentifier
        )
        as

            set nocount on;

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

            declare @CURRENTDATE datetime
            set @CURRENTDATE = getdate()

          declare @CONSTITUENTID uniqueidentifier
          select @CONSTITUENTID = CONSTITUENTID
          from dbo.CONSTITUENTRECOGNITIONDECLINEDLEVEL 
          where ID = @ID 

         select @CONSTITUENTID = CONSTITUENTID,
                 @RECOGNITIONPROGRAMID = RECOGNITIONPROGRAMID
          from dbo.CONSTITUENTRECOGNITIONDECLINEDPROGRAM
          where ID = @ID 

          declare @ROWEXISTS bit = 0
          if exists(select ID from dbo.CONSTITUENTRECOGNITIONDECLINEDPROGRAM CRDP where CRDP.CONSTITUENTID = @CONSTITUENTID and CRDP.RECOGNITIONPROGRAMID = @RECOGNITIONPROGRAMID)
            set @ROWEXISTS = 1


          if @DECLINEPROGRAM = 1 and @ROWEXISTS = 0
          begin
            insert into dbo.CONSTITUENTRECOGNITIONDECLINEDPROGRAM (CONSTITUENTID,RECOGNITIONPROGRAMID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED) 
            values
            (@CONSTITUENTID,@RECOGNITIONPROGRAMID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE

             --Delete their entries in the CONSTITUENTRECOGNITION table since they are now declined
             declare @CRID uniqueidentifier
             declare DELETE_CURSOR cursor for
             select ID from dbo.CONSTITUENTRECOGNITION where CONSTITUENTID = @CONSTITUENTID AND RECOGNITIONPROGRAMID = @RECOGNITIONPROGRAMID
             open DELETE_CURSOR
             fetch next from DELETE_CURSOR into @CRID
                   while @@FETCH_STATUS = 0
                   begin
                    exec USP_CONSTITUENTRECOGNITION_DELETE @CRID, @CHANGEAGENTID
                    fetch next from DELETE_CURSOR into @CRID
                    end
             close DELETE_CURSOR
             deallocate DELETE_CURSOR

            delete from dbo.CONSTITUENTRECOGNITIONDECLINEDLEVEL where CONSTITUENTID = @CONSTITUENTID and RECOGNITIONPROGRAMID = @RECOGNITIONPROGRAMID
          end

          if @DECLINEPROGRAM = 0 and @ROWEXISTS = 1
          begin
            delete from dbo.CONSTITUENTRECOGNITIONDECLINEDPROGRAM where CONSTITUENTID = @CONSTITUENTID and RECOGNITIONPROGRAMID = @RECOGNITIONPROGRAMID 
          end

          update dbo.CONSTITUENTRECOGNITIONDECLINEDPROGRAM set REASONCODEID = @REASONCODE
          where CONSTITUENTID = @CONSTITUENTID and RECOGNITIONPROGRAMID = @RECOGNITIONPROGRAMID

          update dbo.CONSTITUENTRECOGNITIONDECLINEDLEVEL set REASONCODEID = @REASONCODE
          where CONSTITUENTID = @CONSTITUENTID and RECOGNITIONPROGRAMID = @RECOGNITIONPROGRAMID

            begin try
                exec USP_CONSTITUENTRECOGNITION_GETDECLINEDLEVELS_UPDATEFROMXML @CONSTITUENTID,@RECOGNITIONPROGRAMID,@DECLINEDRECOGNITIONLEVELS,@CHANGEAGENTID,@CURRENTDATE, @REASONCODE
            end try
            begin catch
                exec dbo.USP_RAISE_ERROR
                return 1
            end catch

        return 0;