UFN_DESIGNATIONLEVEL_REVENUERECEIVED_BYAPPEAL

This function returns revenue received by appeal for fundraising purposes.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@STARTDATE datetime IN
@ENDDATE datetime IN
@APPEALOPTION tinyint IN
@CAMPAIGNHIERARCHYPATH hierarchyid IN

Definition

Copy


            create function dbo.UFN_DESIGNATIONLEVEL_REVENUERECEIVED_BYAPPEAL
                (    
                    @STARTDATE datetime
                    @ENDDATE datetime
                    @APPEALOPTION tinyint,
                    @CAMPAIGNHIERARCHYPATH hierarchyid = null
                )
                returns table
                as
                return(
                    select DL.ID DESIGNATIONLEVELID,
                        case @APPEALOPTION
                            when 0 then APPEAL.ID
                            when 1 then ABU.BUSINESSUNITCODEID
                            when 2 then APPEAL.APPEALREPORT1CODEID
                            end as APPEALID,
                        sum(RS.AMOUNT) TOTALRECEIVED
                    from dbo.DESIGNATIONLEVEL DL
                        inner join dbo.DESIGNATION D 
                            on (D.DESIGNATIONLEVEL1ID = DL.ID or
                                D.DESIGNATIONLEVEL2ID = DL.ID or
                                D.DESIGNATIONLEVEL3ID = DL.ID or             
                                D.DESIGNATIONLEVEL4ID = DL.ID or
                                D.DESIGNATIONLEVEL5ID = DL.ID)
                        inner join dbo.REVENUESPLIT RS on D.ID = RS.DESIGNATIONID
                        inner join dbo.REVENUE R on RS.REVENUEID = R.ID
                        inner join dbo.APPEAL on R.APPEALID = APPEAL.ID
                        left join dbo.APPEALBUSINESSUNIT ABU on ABU.APPEALID= APPEAL.ID
                    where (R.TRANSACTIONTYPECODE = 0) AND 
                        (R.DATE >= dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE) and R.DATE <= dbo.UFN_DATE_GETLATESTTIME(@ENDDATE)) and
                        ((@APPEALOPTION = 1 and ABU.BUSINESSUNITCODEID is not null) or @APPEALOPTION <> 1) and
                        ((@APPEALOPTION = 2 and APPEAL.APPEALREPORT1CODEID is not null) or @APPEALOPTION <> 2) and
                        (
                            @CAMPAIGNHIERARCHYPATH is null or
                            exists (
                                select 
                                    REVENUESPLITCAMPAIGN.REVENUESPLITID
                                from 
                                    dbo.REVENUESPLITCAMPAIGN
                                    inner join dbo.CAMPAIGN on CAMPAIGN.ID = REVENUESPLITCAMPAIGN.CAMPAIGNID
                                where 
                                    REVENUESPLITCAMPAIGN.REVENUESPLITID = RS.ID and
                                    CAMPAIGN.HIERARCHYPATH.IsDescendantOf(@CAMPAIGNHIERARCHYPATH)=1
                            )
                        )
                    group by DL.ID, APPEAL.ID, ABU.BUSINESSUNITCODEID, APPEAL.APPEALREPORT1CODEID

                )