USP_DATAFORMTEMPLATE_PROSPECT_EDITSAVE

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

Definition

Copy


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

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

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

                        begin try

                            declare @PREVIOUSMANAGERFUNDRAISERID uniqueidentifier;

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

                            exec dbo.USP_PROSPECTASSIGNEDALERT_SEND @PREVIOUSMANAGERFUNDRAISERID, @ID;

                            update dbo.INTERACTION set
                                FUNDRAISERID = @PROSPECTMANAGERFUNDRAISERID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @TODAY
                            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
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;