USP_DATAFORMTEMPLATE_PROSPECTMANAGER2_EDITLOAD

The load procedure used by the edit dataform template "Prospect Manager Edit Form 2"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@PROSPECTMANAGERFUNDRAISERID uniqueidentifier INOUT Prospect manager
@PROSPECTMANAGERSTARTDATE date INOUT Start date
@PROSPECTMANAGERENDDATE date INOUT End date
@PROSPECTMANAGERSTARTDATEREQUIRED bit INOUT

Definition

Copy

          CREATE procedure dbo.USP_DATAFORMTEMPLATE_PROSPECTMANAGER2_EDITLOAD (
            @ID uniqueidentifier,
            @DATALOADED bit = 0 output,
            @TSLONG bigint = 0 output,
            @PROSPECTMANAGERFUNDRAISERID uniqueidentifier = null output,
            @PROSPECTMANAGERSTARTDATE date = null output,
            @PROSPECTMANAGERENDDATE date = null output,
            @PROSPECTMANAGERSTARTDATEREQUIRED bit = null output
          ) as
            set nocount on;

            set @DATALOADED = 0;
            set @TSLONG = 0;

            declare @CURRENTDATEEARLIESTTIME datetime;
            set @CURRENTDATEEARLIESTTIME = dbo.UFN_DATE_GETEARLIESTTIME(getdate());

            -- Select blank managers details if it is with an expired end date
            select
              @DATALOADED = 1,
              @TSLONG = P.TSLONG,
              @PROSPECTMANAGERFUNDRAISERID = case when P.PROSPECTMANAGERENDDATE < @CURRENTDATEEARLIESTTIME then null else P.PROSPECTMANAGERFUNDRAISERID end,
              @PROSPECTMANAGERSTARTDATE = case when P.PROSPECTMANAGERENDDATE < @CURRENTDATEEARLIESTTIME then null else P.PROSPECTMANAGERSTARTDATE end,
              @PROSPECTMANAGERENDDATE = case when P.PROSPECTMANAGERENDDATE < @CURRENTDATEEARLIESTTIME then null else P.PROSPECTMANAGERENDDATE end
            from
              dbo.CONSTITUENT C
              left outer join dbo.PROSPECT P on P.ID = C.ID
            where
              C.ID = @ID;

            if exists (select ID from dbo.PROSPECTMANAGERHISTORY where PROSPECTID = @ID)
              set @PROSPECTMANAGERSTARTDATEREQUIRED = 1
            else
              set @PROSPECTMANAGERSTARTDATEREQUIRED = 0

            declare @STEPTSLONG bigint;
            select 
              @STEPTSLONG = max(INTERACTION.TSLONG) 
            from 
              dbo.INTERACTION
              inner join dbo.PROSPECTPLAN on PROSPECTPLAN.ID = INTERACTION.PROSPECTPLANID
            where 
              PROSPECTPLAN.PROSPECTID = @ID;

            if @STEPTSLONG > @TSLONG 
              set @TSLONG = @STEPTSLONG;

            return 0;