USP_DATAFORMTEMPLATE_VIEW_PROSPECTRESEARCHREQUESTPAGEEXPRESSION

The load procedure used by the view dataform template "Prospect Research Request Page Expression View"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@REQUESTNO int INOUT Request ID:
@STATUSCODE tinyint INOUT Status code:
@ENABLEADDITIONALPROSPECTADD bit INOUT Enable additional prospect add
@CURRENTUSERID uniqueidentifier INOUT Current user ID
@ISAPPUSER bit INOUT
@ISFUNDRAISER bit INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_PROSPECTRESEARCHREQUESTPAGEEXPRESSION
(
    @ID uniqueidentifier,
    @CURRENTAPPUSERID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @REQUESTNO integer = null output,
    @STATUSCODE tinyint = null output,
    @ENABLEADDITIONALPROSPECTADD bit = null output,
    @CURRENTUSERID uniqueidentifier = null output,
    @ISAPPUSER bit = null output,
    @ISFUNDRAISER bit = null output
)
as
    set nocount on;

    -- be sure to set this, in case the select returns no rows
    set @DATALOADED = 0;

    declare @RECORDTYPECODE tinyint
    declare @EVENTID uniqueidentifier
    declare @RESEARCHGROUPID uniqueidentifier
    declare @CONSTITUENTSINREQUEST int

    select @CURRENTUSERID = CONSTITUENTID from dbo.APPUSER where ID = @CURRENTAPPUSERID
  set @ISAPPUSER = case when @CURRENTUSERID is null then 0 else 1 end;
  set @ISFUNDRAISER = 0;

  if @ISAPPUSER = 1 
    if exists(select top 1 CONSTITUENTID from dbo.FUNDRAISERDATERANGE where CONSTITUENTID = @CURRENTUSERID)
      set @ISFUNDRAISER = 1;


    select 
        @DATALOADED = 1,
        @REQUESTNO = PRR.REQUESTNO,
        @STATUSCODE = PRR.STATUSCODE,
        @RECORDTYPECODE = PRR.RECORDTYPECODE,
        @EVENTID = PRR.EVENTID,
        @RESEARCHGROUPID = PRR.RESEARCHGROUPID
    from 
        dbo.PROSPECTRESEARCHREQUEST PRR
    where 
        PRR.ID = @ID

    set @ENABLEADDITIONALPROSPECTADD = 1
    select @CONSTITUENTSINREQUEST = count(PRRC.ID) from dbo.PROSPECTRESEARCHREQUESTCONSTITUENT PRRC where PRRC.PROSPECTRESEARCHREQUESTID = @ID

    if @CONSTITUENTSINREQUEST = 500 begin
        set @ENABLEADDITIONALPROSPECTADD = 0
    end
    else if @RECORDTYPECODE = 1 begin 
        if @CONSTITUENTSINREQUEST = (select count(R.ID) from dbo.REGISTRANT R join dbo.CONSTITUENT C on C.ID = R.CONSTITUENTID and C.ISORGANIZATION = 0 and C.ISGROUP = 0 where R.EVENTID = @EVENTID) or @EVENTID is null begin
            set @ENABLEADDITIONALPROSPECTADD = 0
        end
    end
    else if @RECORDTYPECODE = 2 begin
        if @CONSTITUENTSINREQUEST = (select count(RGM.ID) from dbo.RESEARCHGROUPMEMBER RGM join dbo.CONSTITUENT C on C.ID = RGM.CONSTITUENTID and C.ISORGANIZATION = 0 and C.ISGROUP = 0 where RGM.RESEARCHGROUPID = @RESEARCHGROUPID) or @RESEARCHGROUPID is null begin
            set @ENABLEADDITIONALPROSPECTADD = 0
        end
    end

    return 0;