USP_DATAFORMTEMPLATE_EDIT_PROSPECTRESEARCHREQUESTCONSTITUENTCANCEL

The save procedure used by the edit dataform template "Prospect Research Request Constituent Cancel Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@PROSPECTRESEARCHREQUESTSTATUSCHANGECODEID uniqueidentifier IN Reason
@STATUSCHANGENOTES nvarchar(max) IN Comments
@STATUSCODE tinyint IN Status
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PROSPECTRESEARCHREQUESTCONSTITUENTCANCEL (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @PROSPECTRESEARCHREQUESTSTATUSCHANGECODEID uniqueidentifier,
    @STATUSCHANGENOTES nvarchar(max),
    @STATUSCODE tinyint,
    @CURRENTAPPUSERID uniqueidentifier
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try

        if @STATUSCODE = 4 begin
            raiserror('BBERR_PROSPECTRESEARCHREQUEST_CANCELCOMPLETEDREQUEST', 13, 1);
            return 1;
        end
        else if @STATUSCODE = 6 begin
            raiserror('BBERR_PROSPECTRESEARCHREQUEST_CANCELCANCELEDREQUEST', 13, 1);
            return 1;
        end

        update dbo.PROSPECTRESEARCHREQUESTCONSTITUENT set
            STATUSCODE = 6,
            PROSPECTRESEARCHREQUESTSTATUSCHANGECODEID = @PROSPECTRESEARCHREQUESTSTATUSCHANGECODEID,
            STATUSCHANGENOTES = @STATUSCHANGENOTES,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
        where ID = @ID

        declare @PROSPECTRESEARCHREQUESTID uniqueidentifier
        select @PROSPECTRESEARCHREQUESTID = PROSPECTRESEARCHREQUESTID from dbo.PROSPECTRESEARCHREQUESTCONSTITUENT where ID = @ID

        if not exists(select 1 from dbo.PROSPECTRESEARCHREQUESTCONSTITUENT where PROSPECTRESEARCHREQUESTID = @PROSPECTRESEARCHREQUESTID and STATUSCODE in (0, 1, 2, 3, 5)) begin
            update dbo.PROSPECTRESEARCHREQUEST
            set
                STATUSCODE = 
                    case 
                        when exists(select 1 from dbo.PROSPECTRESEARCHREQUESTCONSTITUENT where PROSPECTRESEARCHREQUESTID = @PROSPECTRESEARCHREQUESTID and STATUSCODE = 4) then 4 
                        else 6 
                    end,
                PROSPECTRESEARCHREQUESTSTATUSCHANGECODEID = 
                    case
                        when exists(select 1 from dbo.PROSPECTRESEARCHREQUESTSTATUSCHANGECODE where ID = '60BC2B67-4680-4afb-81B7-2EC9ADA4FCFE') then '60BC2B67-4680-4afb-81B7-2EC9ADA4FCFE'
                        else null
                    end,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
            where
                ID = @PROSPECTRESEARCHREQUESTID
        end

        exec dbo.USP_PROSPECTRESEARCHREQUESTCONSTITUENT_CANCELEDREJECTEDALERT_SEND @CURRENTAPPUSERID, @ID;

    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;