UFN_DATALIST_CONSTITUENT_RECOGNITIONHISTORY_GROUP

Returns data for the ConstituentGroupRecognitionHistory datalist for a group or household constituent.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@NUMBERTOSHOWCODE smallint IN
@CURRENTAPPUSERID uniqueidentifier IN
@SITEFILTERMODE tinyint IN
@SITESSELECTED xml IN
@SECURITYFEATUREID uniqueidentifier IN
@SECURITYFEATURETYPE tinyint IN

Definition

Copy


            CREATE function dbo.UFN_DATALIST_CONSTITUENT_RECOGNITIONHISTORY_GROUP
            (
                @CONSTITUENTID uniqueidentifier,
                @NUMBERTOSHOWCODE smallint = 2,
                @CURRENTAPPUSERID uniqueidentifier,
                @SITEFILTERMODE tinyint = 0,
                @SITESSELECTED xml = null,
                @SECURITYFEATUREID uniqueidentifier = null,
                @SECURITYFEATURETYPE tinyint = null
            )
            returns @R table
            (
                RECOGNITIONID uniqueidentifier,
                EFFECTIVEDATE datetime,
                TYPE nvarchar(100),
                AMOUNT money,
                GROSSAMOUNT money,
                GIFTAMOUNT money,
                DONOR nvarchar(200),
                REVENUETYPE nvarchar(100),
                RECORDID uniqueidentifier,
                DATEADDED datetime,
                CAMPAIGNS nvarchar(max),
                SITES nvarchar(max),
                REVENUESPLITID uniqueidentifier
            )
            as
            begin
                declare @CURRENTDATE datetime;
                set @CURRENTDATE = getdate();

                if @NUMBERTOSHOWCODE in (0,3,4,5) begin
                    declare @STARTDATE datetime;
                    if @NUMBERTOSHOWCODE = 3 --Last 30 Days

                        set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-29,@CURRENTDATE));
                    else if @NUMBERTOSHOWCODE = 4 --Last 90 Days

                        set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,-89,@CURRENTDATE));
                    else if @NUMBERTOSHOWCODE = 5 --Last Year

                        set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(dateadd(day,1,dateadd(year,-1,@CURRENTDATE)))
                    else
                        set @STARTDATE = @CURRENTDATE;

                    declare @ENDDATE datetime;
                    set @ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@CURRENTDATE);

                    insert into @R
                        select 
                            [RECOGNITIONS].RECOGNITIONID,
                            [RECOGNITIONS].RECOGNITIONDATE as [EFFECTIVEDATE],
                            REVENUERECOGNITIONTYPECODE.DESCRIPTION as [TYPE],
                            [RECOGNITIONS].RECOGNITIONAMOUNT as [AMOUNT],
                            ROUND    (
                                        (
                                            case
                                            when REVENUESPLIT.AMOUNT > 0 then
                                                case REVENUE.TRANSACTIONTYPECODE 
                                                    when 0 
                                                        then case 
                                                            when [RECOGNITIONS].RECOGNITIONAMOUNT > REVENUESPLIT.AMOUNT 
                                                                then dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT(REVENUESPLIT.ID, 1) + [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                            else 
                                                                [RECOGNITIONS].RECOGNITIONAMOUNT/REVENUESPLIT.AMOUNT * dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT(REVENUESPLIT.ID, 1) + [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                            end
                                                    when 1 
                                                        then case 
                                                            when [RECOGNITIONS].RECOGNITIONAMOUNT > REVENUESPLIT.AMOUNT 
                                                                then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT(REVENUESPLIT.ID) - REVENUESPLIT.AMOUNT + [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                            else 
                                                                [RECOGNITIONS].RECOGNITIONAMOUNT/REVENUESPLIT.AMOUNT * (dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT(REVENUESPLIT.ID) - REVENUESPLIT.AMOUNT) + [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                            end
                                                    else 
                                                        [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                    end
                                            else REVENUESPLIT.AMOUNT end
                                        ), 2
                                    ) as GROSSAMOUNT,
                            REVENUESPLIT.AMOUNT as [GIFTAMOUNT],
                            (select CONSTITUENT.NAME from dbo.CONSTITUENT where CONSTITUENT.ID = [RECOGNITIONS].REVENUECONSTITUENTID) as [DONOR],
                            REVENUE.TRANSACTIONTYPE as REVENUETYPE,
                            REVENUE.ID as [RECORDID],
                            [RECOGNITIONS].RECOGNITIONDATEADDED as [DATEADDED],
                            (
                                select 
                                    dbo.UDA_BUILDLIST(distinct CAMPAIGN.NAME) 
                                from 
                                    dbo.CAMPAIGN 
                                inner join 
                                    dbo.REVENUESPLITCAMPAIGN on CAMPAIGN.ID = REVENUESPLITCAMPAIGN.CAMPAIGNID
                                where
                                    REVENUESPLITCAMPAIGN.REVENUESPLITID = REVENUESPLIT.ID
                            ) as CAMPAIGNS,
                            dbo.UFN_REVENUESPLIT_BUILDSITELIST(REVENUESPLIT.ID) SITES,
                            REVENUESPLIT.ID as [REVENUESPLITID]
                        from dbo.UFN_GROUP_RECOGNITIONCREDITS(@CONSTITUENTID,null,null,null,null,1,null,0,null, null, null) as [RECOGNITIONS]
                        inner join dbo.REVENUE on REVENUE.ID = RECOGNITIONS.REVENUEID
                        inner join dbo.REVENUESPLIT on REVENUESPLIT.ID = RECOGNITIONS.REVENUESPLITID
                        left join dbo.REVENUERECOGNITIONTYPECODE on REVENUERECOGNITIONTYPECODE.ID = [RECOGNITIONS].REVENUERECOGNITIONTYPECODEID
                        left join dbo.PLANNEDGIFTREVENUE on PLANNEDGIFTREVENUE.ID = REVENUE.ID
                        left join dbo.PLANNEDGIFT on PLANNEDGIFT.ID = PLANNEDGIFTREVENUE.ID

                        where
                            (
                                REVENUE.TRANSACTIONTYPECODE = 1 --Pledge

                                or REVENUE.TRANSACTIONTYPECODE = 7 --Auction donation

                                or (REVENUE.TRANSACTIONTYPECODE = 4 and PLANNEDGIFT.VEHICLECODE in (0,1,2,5,6,7,8,9)) --Planned Gift

                                or (REVENUE.TRANSACTIONTYPECODE = 0 and (REVENUESPLIT.APPLICATIONCODE in (0,3) or (REVENUESPLIT.APPLICATIONCODE = 1 and REVENUESPLIT.TYPECODE = 0))) --Payment (Gift and Recurring Gift Payment)

                            )
                            and (@NUMBERTOSHOWCODE = 0 or ([RECOGNITIONS].RECOGNITIONDATE >= @STARTDATE and [RECOGNITIONS].RECOGNITIONDATE <= @ENDDATE))

                            order by [RECOGNITIONS].RECOGNITIONDATE desc, [RECOGNITIONS].RECOGNITIONDATEADDED desc, [RECOGNITIONS].RECOGNITIONAMOUNT desc        
                end
                else
                begin
                    declare @NUMBERTOSHOW int;
                    if @NUMBERTOSHOWCODE = 1
                        set @NUMBERTOSHOW = 5;
                    else if @NUMBERTOSHOWCODE = 2
                        set @NUMBERTOSHOW = 10;
                    else
                        set @NUMBERTOSHOW = 0;

                    insert into @R
                        select top(@NUMBERTOSHOW)
                            [RECOGNITIONS].RECOGNITIONID,
                            [RECOGNITIONS].RECOGNITIONDATE as [EFFECTIVEDATE],
                            REVENUERECOGNITIONTYPECODE.DESCRIPTION as [TYPE],
                            [RECOGNITIONS].RECOGNITIONAMOUNT as [AMOUNT],
                            ROUND    (
                                        (
                                            case
                                            when REVENUESPLIT.AMOUNT > 0 then
                                                case REVENUE.TRANSACTIONTYPECODE 
                                                    when 0 
                                                        then case 
                                                            when [RECOGNITIONS].RECOGNITIONAMOUNT > REVENUESPLIT.AMOUNT 
                                                                then dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT(REVENUESPLIT.ID, 1) + [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                            else 
                                                                [RECOGNITIONS].RECOGNITIONAMOUNT/REVENUESPLIT.AMOUNT * dbo.UFN_GIFTAIDREVENUESPLIT_GETSPLITTAXCLAIMAMOUNT(REVENUESPLIT.ID, 1) + [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                            end
                                                    when 1 
                                                        then case 
                                                            when [RECOGNITIONS].RECOGNITIONAMOUNT > REVENUESPLIT.AMOUNT 
                                                                then dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT(REVENUESPLIT.ID) - REVENUESPLIT.AMOUNT + [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                            else 
                                                                [RECOGNITIONS].RECOGNITIONAMOUNT/REVENUESPLIT.AMOUNT * (dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGESPLITGROSSAMOUNT(REVENUESPLIT.ID) - REVENUESPLIT.AMOUNT) + [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                            end
                                                    else 
                                                        [RECOGNITIONS].RECOGNITIONAMOUNT 
                                                    end
                                            else REVENUESPLIT.AMOUNT end
                                        ), 2
                                    ) as GROSSAMOUNT,
                            REVENUESPLIT.AMOUNT as [GIFTAMOUNT],
                            (select CONSTITUENT.NAME from dbo.CONSTITUENT where CONSTITUENT.ID = [RECOGNITIONS].REVENUECONSTITUENTID) as [DONOR],
                            REVENUE.TRANSACTIONTYPE as REVENUETYPE,
                            REVENUE.ID as [RECORDID],
                            [RECOGNITIONS].RECOGNITIONDATEADDED as [DATEADDED],
                            (
                                select 
                                    dbo.UDA_BUILDLIST(distinct CAMPAIGN.NAME) 
                                from 
                                    dbo.CAMPAIGN 
                                inner join 
                                    dbo.REVENUESPLITCAMPAIGN on CAMPAIGN.ID = REVENUESPLITCAMPAIGN.CAMPAIGNID
                                where
                                    REVENUESPLITCAMPAIGN.REVENUESPLITID = REVENUESPLIT.ID
                            ) as CAMPAIGNS,
                            dbo.UFN_REVENUESPLIT_BUILDSITELIST(REVENUESPLIT.ID) SITES,
                            REVENUESPLIT.ID as [REVENUESPLITID]
                        from dbo.UFN_GROUP_RECOGNITIONCREDITS(@CONSTITUENTID,null,null,null,null,1,null,0,null,null,null) as [RECOGNITIONS]
                        inner join dbo.REVENUE on REVENUE.ID = RECOGNITIONS.REVENUEID
                        inner join dbo.REVENUESPLIT on REVENUESPLIT.ID = RECOGNITIONS.REVENUESPLITID
                        left join dbo.REVENUERECOGNITIONTYPECODE on REVENUERECOGNITIONTYPECODE.ID = [RECOGNITIONS].REVENUERECOGNITIONTYPECODEID
                        left join dbo.PLANNEDGIFTREVENUE on PLANNEDGIFTREVENUE.ID = REVENUE.ID
                        left join dbo.PLANNEDGIFT on PLANNEDGIFT.ID = PLANNEDGIFTREVENUE.ID

                        where
                            (
                                REVENUE.TRANSACTIONTYPECODE = 1 --Pledge

                                or REVENUE.TRANSACTIONTYPECODE = 7 --Auction donation

                                or (REVENUE.TRANSACTIONTYPECODE = 4 and PLANNEDGIFT.VEHICLECODE in (0,1,2,5,6,7,8,9)) --Planned Gift

                                or (REVENUE.TRANSACTIONTYPECODE = 0 and (REVENUESPLIT.APPLICATIONCODE in (0,3) or (REVENUESPLIT.APPLICATIONCODE = 1 and REVENUESPLIT.TYPECODE = 0))) --Payment (Gift and Recurring Gift Payment)

                            )

                            order by [RECOGNITIONS].RECOGNITIONDATE desc, [RECOGNITIONS].RECOGNITIONDATEADDED desc, [RECOGNITIONS].RECOGNITIONAMOUNT desc
                end

                return;
            end