UFN_RECOGNITIONPROGRAM_VALIDCONSTITUENT

Validates a constituent for a recognition program.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@PROGRAMID uniqueidentifier IN
@CONSTITUENTID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_RECOGNITIONPROGRAM_VALIDCONSTITUENT
            (
                @PROGRAMID uniqueidentifier,
                @CONSTITUENTID uniqueidentifier
            )
            returns bit
            with execute as caller
            as begin

                declare @ISINDIVIDUAL bit = 0
                declare @ISHOUSEHOLD bit = 0
                declare @ISGROUP bit = 0
                declare @ISORGANIZATION bit = 0

                select 
                    @ISGROUP = ISGROUP,
                    @ISORGANIZATION = ISORGANIZATION
                from
                    dbo.CONSTITUENT
                where
                    ID = @CONSTITUENTID

                set    @ISHOUSEHOLD = dbo.UFN_CONSTITUENT_ISHOUSEHOLD(@CONSTITUENTID)
                if (@ISHOUSEHOLD = 0 and @ISGROUP = 0 and @ISORGANIZATION = 0)
                    set @ISINDIVIDUAL = 1

                if exists
                (
                    select 1 from dbo.RECOGNITIONPROGRAM where
                    ID = @PROGRAMID and
                    (
                        (RECOGNITIONPROGRAM.ALLOWINDIVIDUAL = 1 and @ISINDIVIDUAL = 1) or
                        (RECOGNITIONPROGRAM.ALLOWHOUSEHOLD = 1 and @ISHOUSEHOLD = 1) or
                        -- All households are groups, if we want to exclude households from groups

                        (RECOGNITIONPROGRAM.ALLOWGROUP = 1 and RECOGNITIONPROGRAM.ALLOWHOUSEHOLD = 0 and @ISGROUP = 1 and @ISHOUSEHOLD = 0) or
                        (RECOGNITIONPROGRAM.ALLOWGROUP = 1 and RECOGNITIONPROGRAM.ALLOWHOUSEHOLD = 1 and @ISGROUP = 1) or

                        (RECOGNITIONPROGRAM.ALLOWORGANIZATION = 1 and @ISORGANIZATION = 1)
                    )
                )
                    return 1

                return 0    
            end