UFN_STEPSUMMARY_COMPLETED_2

Returns the number of completed steps for each fundraiser back to a given date.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@STARTDATE datetime IN
@INCLUDESTEWARDSHIP bit IN
@ONLYOWNEDINTERACTIONS bit IN

Definition

Copy


            CREATE function dbo.UFN_STEPSUMMARY_COMPLETED_2
            (
                @STARTDATE datetime
                @INCLUDESTEWARDSHIP bit,
                @ONLYOWNEDINTERACTIONS bit = 0
            )
            returns @data table(
                ID uniqueidentifier,
                COUNT integer    
            )
            as begin
                insert into @data
                    select
                        DATA.ID,
                        count(*)
                    from
                    (
                        select 
                            FUNDRAISERID as ID
                        from 
                            dbo.INTERACTION
                        where 
                            COMPLETED = 1
                            and DATE > @STARTDATE
                            and (PROSPECTPLANID is not null or (dbo.UFN_GETINCLUDEGRANTS() = 1 and FUNDINGREQUESTID is not null))

                        union all

                        select 
                            INTERACTIONADDITIONALFUNDRAISER.FUNDRAISERID as ID
                        from 
                            dbo.INTERACTION
                            left join dbo.INTERACTIONADDITIONALFUNDRAISER on INTERACTION.ID = INTERACTIONADDITIONALFUNDRAISER.INTERACTIONID
                        where 
                            @ONLYOWNEDINTERACTIONS = 0
                            and INTERACTION.COMPLETED = 1
                            and INTERACTION.DATE > @STARTDATE
                            and (INTERACTION.PROSPECTPLANID is not null or (dbo.UFN_GETINCLUDEGRANTS() = 1 and INTERACTION.FUNDINGREQUESTID is not null))
                    ) as DATA

                    group by
                        DATA.ID;

                if @INCLUDESTEWARDSHIP = 1
                    merge @data as data
                    using (
                        select
                            STEP.CONSTITUENTID ID,
                            count(*) COUNT
                        from
                            dbo.STEWARDSHIPPLANSTEP STEP                
                        where
                            not STEP.CONSTITUENTID is null
                            and STEP.COMPLETED = 1
                            and STEP.ACTUALDATE >= @STARTDATE
                        group by STEP.CONSTITUENTID
                    ) steps
                        on data.ID = steps.ID
                    when matched then update set data.COUNT = data.COUNT + steps.COUNT
                    when not matched by target then insert values(steps.ID, steps.COUNT);

                return;
            end