USP_DATAFORMTEMPLATE_PROSPECTMANAGER_EDITSAVE

The save procedure used by the edit dataform template "Prospect Manager 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.
@PROSPECTMANAGERFUNDRAISERID uniqueidentifier IN Prospect manager
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_PROSPECTMANAGER_EDITSAVE (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @PROSPECTMANAGERFUNDRAISERID uniqueidentifier,
                        @CURRENTAPPUSERID uniqueidentifier = null
                    ) as
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

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

                        begin try
                            declare @PREVIOUSMANAGERFUNDRAISERID uniqueidentifier;

                            if exists (select 1 from dbo.PROSPECT where ID = @ID) begin
                                select @PREVIOUSMANAGERFUNDRAISERID = PROSPECTMANAGERFUNDRAISERID from dbo.PROSPECT where ID = @ID;
                                update dbo.PROSPECT set
                                    PROSPECTMANAGERFUNDRAISERID = @PROSPECTMANAGERFUNDRAISERID,
                                    CHANGEDBYID = @CHANGEAGENTID,
                                    DATECHANGED = @CURRENTDATE
                                where
                                    ID = @ID;
                            end
                            else begin
                                select @PREVIOUSMANAGERFUNDRAISERID = CONSTITUENTID from dbo.APPUSER where APPUSER.ID = @CURRENTAPPUSERID;
                                insert into dbo.PROSPECT
                                (
                                    ID,
                                    PROSPECTMANAGERFUNDRAISERID,
                                    ADDEDBYID,
                                    CHANGEDBYID,
                                    DATEADDED,
                                    DATECHANGED
                                )
                                values
                                (
                                    @ID,
                                    @PROSPECTMANAGERFUNDRAISERID,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CURRENTDATE,
                                    @CURRENTDATE
                                );
                            end

                            exec dbo.USP_PROSPECTASSIGNEDALERT_SEND @PREVIOUSMANAGERFUNDRAISERID, @ID;

                            update dbo.INTERACTION set
                                FUNDRAISERID = @PROSPECTMANAGERFUNDRAISERID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            from 
                                dbo.INTERACTION I
                                inner join dbo.PROSPECTPLAN PP on PP.ID = I.PROSPECTPLANID
                                left outer join dbo.PLANOUTLINESTEP SI on SI.ID=I.PLANOUTLINESTEPID
                            where
                                I.FUNDRAISERID is null
                                and SI.FUNDRAISERROLECODE = 0
                                and PP.PROSPECTID = @ID
                                and I.COMPLETED = 0;

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

                        return 0;