USP_CONSTITUENTGETEXPRESSIONDATA

Returns data used by various constituent page expression view forms.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier INOUT
@DATALOADED bit INOUT
@NAME nvarchar(400) INOUT
@ISINACTIVE bit INOUT
@DECEASED bit INOUT
@ISSELF bit INOUT
@ISORG bit INOUT
@ISPROSPECT bit INOUT
@ISFORMERPROSPECT bit INOUT
@ISFUNDRAISER bit INOUT
@ISFORMERFUNDRAISER bit INOUT
@ISVOLUNTEER bit INOUT
@ISFORMERVOLUNTEER bit INOUT
@ISCOMMUNITYMEMBER bit INOUT
@ISREGISTRANT bit INOUT
@ISVENDOR bit INOUT
@APPUSERID uniqueidentifier INOUT
@ATTRIBUTEDEFINED bit INOUT
@SMARTFIELDDEFINED bit INOUT
@UPDATEPENDING bit INOUT
@CONSTITUENTID uniqueidentifier INOUT
@HASSPOUSE bit INOUT
@AGE int INOUT
@ISALUMNUS bit INOUT
@ISSTUDENT bit INOUT
@ISFORMERSTUDENT bit INOUT
@VALIDSEARCHCRITERIASTRICT bit INOUT
@VALIDSEARCHCRITERIARELAXED bit INOUT
@EDUCATIONATTRIBUTEDEFINED bit INOUT
@HASCOMMUNITYDATA bit INOUT
@ISGROUPMEMBER bit INOUT
@ISGROUP bit INOUT
@GROUPCANBEDONOR bit INOUT
@CURRENTMEMBERCOUNT int INOUT
@PREVIOUSMEMBERCOUNT int INOUT
@ISHOUSEHOLD bit INOUT
@HOUSEHOLDID uniqueidentifier INOUT
@MAPPINGCREDENTIALSEXIST bit INOUT
@HASSTEWARDSHIPPLAN bit INOUT
@DECEASINGOPTIONSSET bit INOUT
@ISDISSOLVED bit INOUT
@SPOUSERELATIONSHIPID uniqueidentifier INOUT
@ISPLANNEDGIVER bit INOUT
@ISPATRON bit INOUT
@ISBANK bit INOUT
@ISPAYABLESVENDOR bit INOUT
@HASIND2ORGRELATIONS bit INOUT
@ISCOMMITTEE bit INOUT
@ISGRANTOR bit INOUT
@ISSPONSOR bit INOUT
@SPONSORTYPECODE tinyint INOUT
@ISCOMMITTEEMEMBER bit INOUT
@HASMULTIPLEMGCONDITIONS bit INOUT
@ISFACULTY bit INOUT
@ISCONSTITUENT bit INOUT
@CANBEDONOR bit INOUT
@ISFORMERSPONSOR bit INOUT
@HASRECEIVEDFUNDS bit INOUT
@ADDRESSATTRIBUTEDEFINED bit INOUT
@USER_GRANTED_CONSTITPERSONALINFO_EDIT bit INOUT
@MEMBERSHIPID uniqueidentifier INOUT

Definition

Copy


            CREATE procedure dbo.USP_CONSTITUENTGETEXPRESSIONDATA
                (
                    @ID uniqueidentifier,
                    @CURRENTAPPUSERID uniqueidentifier output,
                    @DATALOADED bit = 0 output,
                    @NAME nvarchar(400) = null output,
                    @ISINACTIVE bit = null output,
                    @DECEASED bit = null output,
                    @ISSELF bit = null output,
                    @ISORG bit = null output,
                    @ISPROSPECT bit = null output,
                    @ISFORMERPROSPECT bit = null output,
                    @ISFUNDRAISER bit = null output,
                    @ISFORMERFUNDRAISER bit = null output,
                    @ISVOLUNTEER bit = null output,
                    @ISFORMERVOLUNTEER bit = null output,
                    @ISCOMMUNITYMEMBER bit = null output,
                    @ISREGISTRANT bit = null output,
                    @ISVENDOR bit = null output,
                    @APPUSERID uniqueidentifier = null output,
                    @ATTRIBUTEDEFINED bit = null output,
                    @SMARTFIELDDEFINED bit = null output,
                    @UPDATEPENDING bit = null output,
                    @CONSTITUENTID uniqueidentifier = null output,
                    @HASSPOUSE bit = null output,
                    @AGE int = null output,
                    @ISALUMNUS bit = null output,
                    @ISSTUDENT bit = null output,
                    @ISFORMERSTUDENT bit = null output,
                    @VALIDSEARCHCRITERIASTRICT bit = null output,
                    @VALIDSEARCHCRITERIARELAXED bit = null output,
                    @EDUCATIONATTRIBUTEDEFINED bit = null output,
                    @HASCOMMUNITYDATA bit = null output,
                    @ISGROUPMEMBER bit = null output,
                    @ISGROUP bit = null output,
                    @GROUPCANBEDONOR bit = null output,
                    @CURRENTMEMBERCOUNT integer = null output,
                    @PREVIOUSMEMBERCOUNT integer = null output,
                    @ISHOUSEHOLD bit = null output,
                    @HOUSEHOLDID uniqueidentifier = null output,
                    @MAPPINGCREDENTIALSEXIST bit = null output,
                    @HASSTEWARDSHIPPLAN bit = null output,
                    @DECEASINGOPTIONSSET bit = null output,
                    @ISDISSOLVED bit = null output,
                    @SPOUSERELATIONSHIPID uniqueidentifier = null output,
                    @ISPLANNEDGIVER bit = null output,
                    @ISPATRON bit = null output,
                    @ISBANK bit = null output,
                      @ISPAYABLESVENDOR bit = null output,          
                    @HASIND2ORGRELATIONS bit = null output,
                    @ISCOMMITTEE bit = null output,
                    @ISGRANTOR bit = 0 output,
                    @ISSPONSOR bit = null output,
                    @SPONSORTYPECODE tinyint = null output,
                    @ISCOMMITTEEMEMBER bit = null output,
                    @HASMULTIPLEMGCONDITIONS bit = null output,
                    @ISFACULTY bit = null output,
                    @ISCONSTITUENT bit = null output,
                    @CANBEDONOR bit = null output,
                    @ISFORMERSPONSOR bit = null output,
                    @HASRECEIVEDFUNDS bit = null output,
          @ADDRESSATTRIBUTEDEFINED bit = null output,
          @USER_GRANTED_CONSTITPERSONALINFO_EDIT bit = null output,
          @MEMBERSHIPID uniqueidentifier =  null output
                )
                as
                    set nocount on;

                    set @DATALOADED = 0;

                    select @APPUSERID = ID from dbo.APPUSER where CONSTITUENTID = @ID;

                    set @CONSTITUENTID = @ID;

                    select
                        @DATALOADED = 1,
                        @ISINACTIVE = C.ISINACTIVE,
                        @DECEASED = case when DECEASEDCONSTITUENT.ID is null then 0 else 1 end,
                        @NAME = NF.NAME,
                        @ISSELF = case when @APPUSERID = @CURRENTAPPUSERID then 1 else 0 end,
                        @ISORG=C.ISORGANIZATION,
                        @ISPROSPECT = dbo.UFN_CONSTITUENT_ISPROSPECT(@ID),
                        @ISFORMERPROSPECT = dbo.UFN_CONSTITUENT_ISFORMERPROSPECT(@ID),
                        @ISFUNDRAISER = dbo.UFN_CONSTITUENT_ISFUNDRAISER(@ID),
                        @ISFORMERFUNDRAISER = dbo.UFN_CONSTITUENT_ISFORMERFUNDRAISER(@ID),
                        @ISVOLUNTEER = dbo.UFN_CONSTITUENT_ISVOLUNTEER(@ID),
                        @ISFORMERVOLUNTEER = dbo.UFN_CONSTITUENT_ISFORMERVOLUNTEER(@ID),
                        @ISCOMMUNITYMEMBER = C.NETCOMMUNITYMEMBER,
                        @ISREGISTRANT = dbo.UFN_CONSTITUENT_ISREGISTRANT(@ID),
                        @ISVENDOR = dbo.UFN_CONSTITUENT_ISVENDOR(@ID),
                        @ATTRIBUTEDEFINED = dbo.UFN_ATTRIBUTECATEGORY_DEFINEDFORRECORDTYPE_FORAPPUSER('CONSTITUENT',@CURRENTAPPUSERID),
                        @ADDRESSATTRIBUTEDEFINED = dbo.UFN_ATTRIBUTECATEGORY_DEFINEDFORRECORDTYPE_FORAPPUSER('ADDRESS',@CURRENTAPPUSERID),
                        @SMARTFIELDDEFINED = dbo.UFN_SMARTFIELD_DEFINEDFORRECORDTYPE('CONSTITUENT'),
                        @HASSPOUSE = case when exists (select ID from dbo.RELATIONSHIP where RELATIONSHIPCONSTITUENTID = @ID and ISSPOUSE = 1) then 1 else 0 end,
                        @AGE = AGE,
                        @ISALUMNUS = dbo.UFN_CONSTITUENT_ISALUMNUS(@ID),
                        @ISSTUDENT = dbo.UFN_CONSTITUENT_ISSTUDENT(@ID),
                        @ISFORMERSTUDENT = dbo.UFN_CONSTITUENT_ISFORMERSTUDENT(@ID),
                        @EDUCATIONATTRIBUTEDEFINED = dbo.UFN_ATTRIBUTECATEGORY_DEFINEDFORRECORDTYPE_FORAPPUSER('EDUCATIONAL HISTORY',@CURRENTAPPUSERID),
                        @ISGROUPMEMBER = dbo.UFN_CONSTITUENT_HASGROUPMEMBERRECORD(@ID),
                        @ISGROUP = C.ISGROUP,
                        @HASCOMMUNITYDATA = dbo.UFN_CONSTITUENT_HASCOMMUNITYDATA(@ID),
                        @HASSTEWARDSHIPPLAN = dbo.UFN_CONSTITUENT_HASSTEWARDSHIPPLAN(@ID),
                        @ISDISSOLVED = case when DISSOLVEDGROUP.ID is null then 0 else 1 end,
                        @SPOUSERELATIONSHIPID = (select ID from dbo.RELATIONSHIP where RELATIONSHIPCONSTITUENTID = @ID and ISSPOUSE = 1),
                        @ISPLANNEDGIVER = dbo.UFN_CONSTITUENT_ISPLANNEDGIVER(@ID),
                        @ISPATRON = dbo.UFN_CONSTITUENT_ISPATRON(@ID),
                        @ISBANK = dbo.UFN_CONSTITUENT_ISBANK(@ID),
                        @ISPAYABLESVENDOR = dbo.UFN_CONSTITUENT_ISPAYABLESVENDOR(@ID),
                        @ISCOMMITTEE = dbo.UFN_CONSTITUENT_ISCOMMITTEE(@ID),
                        @HASIND2ORGRELATIONS = 0,
                        @ISGRANTOR = dbo.UFN_CONSTITUENT_ISGRANTOR(@ID),
                        @ISCOMMITTEEMEMBER = dbo.UFN_CONSTITUENT_ISCOMMITTEEMEMBER(@ID),
                        @ISFACULTY = dbo.UFN_CONSTITUENT_ISFACULTY(@ID),
                        @ISCONSTITUENT = C.ISCONSTITUENT
                    from
                        dbo.CONSTITUENT AS C
                        left join dbo.DECEASEDCONSTITUENT on DECEASEDCONSTITUENT.ID = C.ID
                        left join dbo.DISSOLVEDGROUP on DISSOLVEDGROUP.ID = C.ID
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(C.ID) NF
                    where
                        C.ID = @ID

          exec dbo.USP_SPONSOR_GETINFORMATION
          @CONSTITUENTID,
          @ISSPONSOR output,
          @ISFORMERSPONSOR output,
          @SPONSORTYPECODE output

                    if exists(select 1 from dbo.WEALTH where ID=@ID and PENDINGSEARCH=1) begin
                        set @UPDATEPENDING = 1;
                    end else begin
                        set @UPDATEPENDING = 0;
                        exec dbo.USP_CONSTITUENT_VALIDWEALTHPOINTSEARCHCRITERIA @CONSTITUENTID=@ID, @STRICT=@VALIDSEARCHCRITERIASTRICT output, @RELAXED=@VALIDSEARCHCRITERIARELAXED output;
                    end

                    select
                        @GROUPCANBEDONOR = ISNULL(GT.CANBEDONOR,1),
                        @ISHOUSEHOLD = case when GD.GROUPTYPECODE = 0 then 1 else 0 end
                    from 
                        dbo.GROUPDATA as GD
                    left outer join dbo.GROUPTYPE as GT on GD.GROUPTYPECODE = 1 and GD.GROUPTYPEID = GT.ID
                    where GD.ID = @ID;

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

                    select @CURRENTMEMBERCOUNT = count(GM.ID) 
                                from dbo.GROUPMEMBER as GM
                                left join dbo.GROUPMEMBERDATERANGE as GMDR on GM.ID = GMDR.GROUPMEMBERID
                                where ((GMDR.DATEFROM is null and (GMDR.DATETO is null or GMDR.DATETO > @CURRENTDATE))
                                    or (GMDR.DATETO is null and (GMDR.DATEFROM is null or GMDR.DATEFROM <= @CURRENTDATE)) 
                                    or (GMDR.DATEFROM <= @CURRENTDATE and GMDR.DATETO > @CURRENTDATE))
                                and GM.GROUPID = @ID;

                    select @PREVIOUSMEMBERCOUNT = count(GM.ID) 
                                from dbo.GROUPMEMBER as GM
                                left join dbo.GROUPMEMBERDATERANGE as GMDR on GM.ID = GMDR.GROUPMEMBERID
                                where (GMDR.DATETO is not null and GMDR.DATETO <= @CURRENTDATE)
                                and GM.ID not in (select GROUPMEMBERID from dbo.GROUPMEMBERDATERANGE where DATETO is null)
                                and GM.GROUPID = @ID;

                    -- Determine constituent's household. Constituents are only allowed to be part of one household and 

                    -- only individuals can be in households

                    if @ISORG = 0 and @ISGROUP = 0
                        select top(1)
                            @HOUSEHOLDID = GM.GROUPID
                        from dbo.GROUPMEMBER as GM
                        inner join dbo.GROUPDATA as GD on GD.ID = GM.GROUPID
                        where 
                            GM.MEMBERID = @ID and 
                            dbo.UFN_GROUPMEMBER_ISCURRENTMEMBER(GM.ID) = 1 and 
                            GD.GROUPTYPECODE = 0;

                    declare @MAPPINGCREDENTIALSID uniqueidentifier;
                    select top 1
                        @MAPPINGCREDENTIALSID = ID
                    from
                        dbo.MAPPINGCREDENTIALS
                    where
                        len([KEY]) > 0;

                    if @MAPPINGCREDENTIALSID is not null
                        set @MAPPINGCREDENTIALSEXIST = 1;
                    else
                        set @MAPPINGCREDENTIALSEXIST = 0;


                    select 
                        @DECEASINGOPTIONSSET = RULESSET
                    from      
                        dbo.UFN_DECEASINGOPTION_GETRULES()


                    if @ISORG = 1
                    begin
                        if exists(select top 1 RELATIONSHIP.ID 
                                    from dbo.RELATIONSHIP
                                    inner join dbo.CONSTITUENT
                                        on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONSTITUENT.ID
                                    where RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ID
                                    and CONSTITUENT.ISORGANIZATION = 0 and CONSTITUENT.ISGROUP = 0)
                            set @HASIND2ORGRELATIONS = 1;

                        select 
                            @HASMULTIPLEMGCONDITIONS = case when count(ID) > 1 then 1 else 0 end
                        from
                            dbo.MATCHINGGIFTCONDITION
                        where
                            ORGANIZATIONID = @ID
                    end

                    if @ISORG = 0 and @ISGROUP = 0
                        if exists(select top 1 RELATIONSHIP.ID 
                                    from dbo.RELATIONSHIP
                                    inner join dbo.CONSTITUENT
                                        on RELATIONSHIP.RECIPROCALCONSTITUENTID = CONSTITUENT.ID
                                    where RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ID
                                    and CONSTITUENT.ISORGANIZATION = 1)
                            set @HASIND2ORGRELATIONS = 1;

                    declare @HOUSEHOLDSCANBEDONORS bit = dbo.UFN_INSTALLATIONINFO_GETHOUSEHOLDSCANBEDONORS();

                    select @CANBEDONOR = dbo.UFN_CONSTITUENT_CANBEDONOR(@ID);

                    set @HASRECEIVEDFUNDS = dbo.UFN_CONSTITUENT_HASRECEIVEDFUNDS(@ID)

            if dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 
          begin
            set @USER_GRANTED_CONSTITPERSONALINFO_EDIT = 1;
            end
            else 
          begin
            set @USER_GRANTED_CONSTITPERSONALINFO_EDIT = 
                case 
                  when @ISORG = 1 then dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_IN_SYSTEMROLE(@CURRENTAPPUSERID,'a9954902-ea62-48ae-8e6f-4e2ed3c3f4f9')
                  else dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_IN_SYSTEMROLE(@CURRENTAPPUSERID,'788AB947-26ED-40C4-865E-8FE29577E593')
                end;
            end

           declare @MEMBERSHIPCOUNT int = (select count(MEMBERSHIP.ID) from dbo.MEMBERSHIP 
                                         inner join dbo.MEMBER on MEMBER.MEMBERSHIPID = MEMBERSHIP.ID
                                                 inner join dbo.MEMBER PRIMARYMEMBER on PRIMARYMEMBER.MEMBERSHIPID = MEMBERSHIP.ID and PRIMARYMEMBER.ISPRIMARY = 1
                                                 where MEMBER.CONSTITUENTID = @ID)
          if @MEMBERSHIPCOUNT = 1
          set @MEMBERSHIPID = (select MEMBERSHIP.ID from dbo.MEMBERSHIP 
                                         inner join dbo.MEMBER on MEMBER.MEMBERSHIPID = MEMBERSHIP.ID
                                                 inner join dbo.MEMBER PRIMARYMEMBER on PRIMARYMEMBER.MEMBERSHIPID = MEMBERSHIP.ID and PRIMARYMEMBER.ISPRIMARY = 1
                                                 where MEMBER.CONSTITUENTID = @ID)


                    return 0;