USP_REPORT_DESIGNATIONPROGRESSBYQUARTER

Returns the data necessary for the Campaign Progress By Quarter report.

Parameters

Parameter Parameter Type Mode Description
@DESIGNATIONLEVELID uniqueidentifier IN
@GOALID uniqueidentifier IN
@CURRENCYCODE tinyint IN

Definition

Copy


            CREATE procedure dbo.USP_REPORT_DESIGNATIONPROGRESSBYQUARTER
                (
                    @DESIGNATIONLEVELID uniqueidentifier = null,
                    @GOALID uniqueidentifier = null,
                    @CURRENCYCODE tinyint = 0
                )
            as begin
                -- If the user has selected "Base" then use the existing logic to return the values

                declare @OVERALLTOTALRECEIVED money = 0,
                        @OVERALLTOTALEXPECTED money = 0,
                        @OVERALLTOTALPLANNEDGIFT money = 0;

                if @CURRENCYCODE = 0
                begin
                    with CTE_OVERALLTOTALS as
                    (
                        select
                            DESIGNATION.ID, 
                            DESIGNATION.DESIGNATIONLEVEL1ID,
                            DESIGNATION.DESIGNATIONLEVEL2ID,
                            DESIGNATION.DESIGNATIONLEVEL3ID,
                            DESIGNATIONLEVELGOAL.ID as DESIGNATIONLEVELGOALID,
                            DESIGNATIONLEVELTYPE.DESCRIPTION LEVEL1TYPE,
                            TOTALRECEIVEDREVENUE.TOTALRECEIVED OVERALLTOTALRECEIVED,
                            (NEWCOMMITMENTREVENUE.TOTALNEWCOMMITMENT - NEWCOMMITMENTREVENUE.TOTALWRITEOFFS) OVERALLTOTALEXPECTED,
                            PLANNEDGIFTREVENUE.TOTALPLANNEDGIFT OVERALLTOTALPLANNEDGIFT,
                            dbo.UFN_DESIGNATIONLEVEL_GETNAME(DESIGNATION.DESIGNATIONLEVEL1ID) LEVEL1NAME,
                            dbo.UFN_DESIGNATIONLEVEL_GETNAME(DESIGNATION.DESIGNATIONLEVEL2ID) LEVEL2NAME,
                            DESIGNATIONLEVELGOAL.GOAL as DESIGNATIONLEVELGOALGOAL,
                            DESIGNATIONLEVELGOAL.STARTDATE,
                            DESIGNATIONLEVELGOAL.ENDDATE,
                            CURRENCYPROPERTIES.ID as CURRENCYID,
                            CURRENCYPROPERTIES.ISO4217 as CURRENCYISO,
                            CURRENCYPROPERTIES.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
                            CURRENCYPROPERTIES.CURRENCYSYMBOL as CURRENCYSYMBOL,
                            CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
                        from 
                            dbo.DESIGNATION 
                            inner join dbo.DESIGNATIONLEVEL on DESIGNATION.DESIGNATIONLEVEL1ID = DESIGNATIONLEVEL.ID
                            inner join dbo.DESIGNATIONLEVELTYPE on DESIGNATIONLEVEL.DESIGNATIONLEVELTYPEID = DESIGNATIONLEVELTYPE.ID
                            inner join dbo.DESIGNATIONLEVELGOAL on DESIGNATIONLEVEL.ID = DESIGNATIONLEVELGOAL.DESIGNATIONLEVELID
                            outer apply dbo.UFN_DESIGNATION_TOTALRECEIVED_INCURRENCY(DESIGNATIONLEVELGOAL.STARTDATE, DESIGNATIONLEVELGOAL.ENDDATE, DESIGNATION.BASECURRENCYID, DESIGNATION.ID) TOTALRECEIVEDREVENUE
                            outer apply dbo.UFN_DESIGNATION_NEWCOMMITMENTREVENUEINCURRENCY(DESIGNATIONLEVELGOAL.STARTDATE, DESIGNATIONLEVELGOAL.ENDDATE, DESIGNATION.BASECURRENCYID, DESIGNATION.ID) NEWCOMMITMENTREVENUE
                            outer apply dbo.UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY(DESIGNATIONLEVELGOAL.STARTDATE, DESIGNATIONLEVELGOAL.ENDDATE, DESIGNATION.BASECURRENCYID, DESIGNATION.ID) PLANNEDGIFTREVENUE
                            outer apply dbo.UFN_CURRENCY_GETPROPERTIES(DESIGNATION.BASECURRENCYID) CURRENCYPROPERTIES
                        where DESIGNATIONLEVELGOAL.ID = @GOALID
                            and DESIGNATION.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID
                            and DESIGNATION.DESIGNATIONLEVEL3ID is null
                    )
                    select
                        CTE_OVERALLTOTALS.LEVEL1NAME,
                        CTE_OVERALLTOTALS.LEVEL2NAME,
                        CTE_OVERALLTOTALS.LEVEL1TYPE,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL2ID,
                        DESIGNATIONGOAL.GOAL DESIGNATIONGOAL,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALGOAL OVERALLGOAL,
                        DESIGNATIONLEVELQUARTERLYGOAL.YEARNAME as DATEYEAR,
                        DESIGNATIONLEVELQUARTERLYGOAL.QUARTER as DATEQUARTER,
                        case TOTALQUARTERS when 1 then CTE_OVERALLTOTALS.OVERALLTOTALRECEIVED
                            else TOTALRECEIVEDREVENUE.TOTALRECEIVED end TOTALRECEIVED,
                        case TOTALQUARTERS when 1 then CTE_OVERALLTOTALS.OVERALLTOTALEXPECTED
                            else (NEWCOMMITMENTREVENUE.TOTALNEWCOMMITMENT - NEWCOMMITMENTREVENUE.TOTALWRITEOFFS) end TOTALEXPECTED,
                        case TOTALQUARTERS when 1 then CTE_OVERALLTOTALS.OVERALLTOTALPLANNEDGIFT
                            else PLANNEDGIFTREVENUE.TOTALPLANNEDGIFT end TOTALPLANNEDGIFT,
                        CTE_OVERALLTOTALS.OVERALLTOTALRECEIVED,
                        CTE_OVERALLTOTALS.OVERALLTOTALEXPECTED,
                        CTE_OVERALLTOTALS.OVERALLTOTALPLANNEDGIFT,
                        CTE_OVERALLTOTALS.CURRENCYID,
                        CTE_OVERALLTOTALS.CURRENCYISO,
                        CTE_OVERALLTOTALS.CURRENCYDECIMALDIGITS,
                        CTE_OVERALLTOTALS.CURRENCYSYMBOL,
                        CTE_OVERALLTOTALS.CURRENCYSYMBOLDISPLAYSETTINGCODE,
                        CTE_OVERALLTOTALS.ID
                    from 
                        CTE_OVERALLTOTALS
                        inner join dbo.UFN_DESIGNATIONLEVELGOAL_GETQUARTERLYGOALS(@GOALID) as DESIGNATIONLEVELQUARTERLYGOAL on CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = DESIGNATIONLEVELQUARTERLYGOAL.DESIGNATIONLEVELID
                        left join dbo.DESIGNATIONGOAL on CTE_OVERALLTOTALS.ID = DESIGNATIONGOAL.DESIGNATIONID and CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = DESIGNATIONGOAL.DESIGNATIONLEVELGOALID
                        outer apply dbo.UFN_DESIGNATION_TOTALRECEIVED_INCURRENCY(CTE_OVERALLTOTALS.STARTDATE,(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), CTE_OVERALLTOTALS.CURRENCYID, CTE_OVERALLTOTALS.ID) TOTALRECEIVEDREVENUE
                        outer apply dbo.UFN_DESIGNATION_NEWCOMMITMENTREVENUEINCURRENCY(CTE_OVERALLTOTALS.STARTDATE,(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), CTE_OVERALLTOTALS.CURRENCYID, CTE_OVERALLTOTALS.ID) NEWCOMMITMENTREVENUE
                        outer apply dbo.UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY(CTE_OVERALLTOTALS.STARTDATE,(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), CTE_OVERALLTOTALS.CURRENCYID, CTE_OVERALLTOTALS.ID) PLANNEDGIFTREVENUE
                    where CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = @GOALID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL3ID is null
                        and DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE = 1

                    union all

                    select
                        CTE_OVERALLTOTALS.LEVEL1NAME,
                        CTE_OVERALLTOTALS.LEVEL2NAME,
                        CTE_OVERALLTOTALS.LEVEL1TYPE,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL2ID,
                        DESIGNATIONGOAL.GOAL DESIGNATIONGOAL,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALGOAL OVERALLGOAL,
                        DESIGNATIONLEVELQUARTERLYGOAL.YEARNAME as DATEYEAR,
                        DESIGNATIONLEVELQUARTERLYGOAL.QUARTER as DATEQUARTER,
                        TOTALRECEIVEDREVENUE.TOTALRECEIVED TOTALRECEIVED,
                        (NEWCOMMITMENTREVENUE.TOTALNEWCOMMITMENT - NEWCOMMITMENTREVENUE.TOTALWRITEOFFS) TOTALEXPECTED,
                        PLANNEDGIFTREVENUE.TOTALPLANNEDGIFT TOTALPLANNEDGIFT,
                        CTE_OVERALLTOTALS.OVERALLTOTALRECEIVED,
                        CTE_OVERALLTOTALS.OVERALLTOTALEXPECTED,
                        CTE_OVERALLTOTALS.OVERALLTOTALPLANNEDGIFT,
                        CTE_OVERALLTOTALS.CURRENCYID,
                        CTE_OVERALLTOTALS.CURRENCYISO,
                        CTE_OVERALLTOTALS.CURRENCYDECIMALDIGITS,
                        CTE_OVERALLTOTALS.CURRENCYSYMBOL,
                        CTE_OVERALLTOTALS.CURRENCYSYMBOLDISPLAYSETTINGCODE,
                        CTE_OVERALLTOTALS.ID
                    from 
                        CTE_OVERALLTOTALS
                        inner join dbo.UFN_DESIGNATIONLEVELGOAL_GETQUARTERLYGOALS(@GOALID) as DESIGNATIONLEVELQUARTERLYGOAL on CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = DESIGNATIONLEVELQUARTERLYGOAL.DESIGNATIONLEVELID
                        left join dbo.DESIGNATIONGOAL on CTE_OVERALLTOTALS.ID = DESIGNATIONGOAL.DESIGNATIONID and CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = DESIGNATIONGOAL.DESIGNATIONLEVELGOALID
                        outer apply dbo.UFN_DESIGNATION_TOTALRECEIVED_INCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),CTE_OVERALLTOTALS.ENDDATE, CTE_OVERALLTOTALS.CURRENCYID, CTE_OVERALLTOTALS.ID) TOTALRECEIVEDREVENUE
                        outer apply dbo.UFN_DESIGNATION_NEWCOMMITMENTREVENUEINCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),CTE_OVERALLTOTALS.ENDDATE, CTE_OVERALLTOTALS.CURRENCYID, CTE_OVERALLTOTALS.ID) NEWCOMMITMENTREVENUE
                        outer apply dbo.UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),CTE_OVERALLTOTALS.ENDDATE, CTE_OVERALLTOTALS.CURRENCYID, CTE_OVERALLTOTALS.ID) PLANNEDGIFTREVENUE
                    where CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = @GOALID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL3ID is null    
                        and (DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE = DESIGNATIONLEVELQUARTERLYGOAL.TOTALQUARTERS
                                and DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE <> 1)

                    union all

                    select
                        CTE_OVERALLTOTALS.LEVEL1NAME,
                        CTE_OVERALLTOTALS.LEVEL2NAME,
                        CTE_OVERALLTOTALS.LEVEL1TYPE,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL2ID,
                        DESIGNATIONGOAL.GOAL DESIGNATIONGOAL,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALGOAL OVERALLGOAL,
                        DESIGNATIONLEVELQUARTERLYGOAL.YEARNAME as DATEYEAR,
                        DESIGNATIONLEVELQUARTERLYGOAL.QUARTER as DATEQUARTER,
                        TOTALRECEIVEDREVENUE.TOTALRECEIVED TOTALRECEIVED,
                        (NEWCOMMITMENTREVENUE.TOTALNEWCOMMITMENT - NEWCOMMITMENTREVENUE.TOTALWRITEOFFS) TOTALEXPECTED,
                        PLANNEDGIFTREVENUE.TOTALPLANNEDGIFT TOTALPLANNEDGIFT,
                        CTE_OVERALLTOTALS.OVERALLTOTALRECEIVED,
                        CTE_OVERALLTOTALS.OVERALLTOTALEXPECTED,
                        CTE_OVERALLTOTALS.OVERALLTOTALPLANNEDGIFT,
                        CTE_OVERALLTOTALS.CURRENCYID,
                        CTE_OVERALLTOTALS.CURRENCYISO,
                        CTE_OVERALLTOTALS.CURRENCYDECIMALDIGITS,
                        CTE_OVERALLTOTALS.CURRENCYSYMBOL,
                        CTE_OVERALLTOTALS.CURRENCYSYMBOLDISPLAYSETTINGCODE,
                        CTE_OVERALLTOTALS.ID
                    from 
                        CTE_OVERALLTOTALS
                        inner join dbo.UFN_DESIGNATIONLEVELGOAL_GETQUARTERLYGOALS(@GOALID) as DESIGNATIONLEVELQUARTERLYGOAL on CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = DESIGNATIONLEVELQUARTERLYGOAL.DESIGNATIONLEVELID
                        left join dbo.DESIGNATIONGOAL on CTE_OVERALLTOTALS.ID = DESIGNATIONGOAL.DESIGNATIONID and CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = DESIGNATIONGOAL.DESIGNATIONLEVELGOALID
                        outer apply dbo.UFN_DESIGNATION_TOTALRECEIVED_INCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), CTE_OVERALLTOTALS.CURRENCYID, CTE_OVERALLTOTALS.ID) TOTALRECEIVEDREVENUE
                        outer apply dbo.UFN_DESIGNATION_NEWCOMMITMENTREVENUEINCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), CTE_OVERALLTOTALS.CURRENCYID, CTE_OVERALLTOTALS.ID) NEWCOMMITMENTREVENUE
                        outer apply dbo.UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), CTE_OVERALLTOTALS.CURRENCYID, CTE_OVERALLTOTALS.ID) PLANNEDGIFTREVENUE
                    where CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = @GOALID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL3ID is null
                        and (DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE <> DESIGNATIONLEVELQUARTERLYGOAL.TOTALQUARTERS
                                and DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE <> 1)

                    order by CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID, CTE_OVERALLTOTALS.DESIGNATIONLEVEL2ID, DESIGNATIONLEVELQUARTERLYGOAL.YEARNAME, DESIGNATIONLEVELQUARTERLYGOAL.QUARTER 
                end
                else -- The user has selected "Organization".  Use the "INCURRENCY" function(s) to return the converted amounts

                begin
                    -- Return all data in Organization currency

                    declare @CURRENCYID uniqueidentifier;
                    declare @CURRENCYISO nvarchar(3);
                    declare @CURRENCYDECIMALDIGITS tinyint;
                    declare @CURRENCYSYMBOL nvarchar(5);
                    declare @CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint;

                    select
                        @CURRENCYID = ID,
                        @CURRENCYISO = ISO4217,
                        @CURRENCYDECIMALDIGITS = DECIMALDIGITS,
                        @CURRENCYSYMBOL = CURRENCYSYMBOL,
                        @CURRENCYSYMBOLDISPLAYSETTINGCODE = SYMBOLDISPLAYSETTINGCODE
                    from dbo.CURRENCY where ID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                    with CTE_OVERALLTOTALS as
                    (
                        select
                            DESIGNATION.ID, 
                            DESIGNATION.DESIGNATIONLEVEL1ID,
                            DESIGNATION.DESIGNATIONLEVEL2ID,
                            DESIGNATION.DESIGNATIONLEVEL3ID,
                            DESIGNATIONLEVELGOAL.ID as DESIGNATIONLEVELGOALID,
                            DESIGNATIONLEVELTYPE.DESCRIPTION LEVEL1TYPE,
                            TOTALRECEIVEDREVENUE.TOTALRECEIVED OVERALLTOTALRECEIVED,
                            (NEWCOMMITMENTREVENUE.TOTALNEWCOMMITMENT - NEWCOMMITMENTREVENUE.TOTALWRITEOFFS) OVERALLTOTALEXPECTED,
                            PLANNEDGIFTREVENUE.TOTALPLANNEDGIFT OVERALLTOTALPLANNEDGIFT,
                            dbo.UFN_DESIGNATIONLEVEL_GETNAME(DESIGNATION.DESIGNATIONLEVEL1ID) LEVEL1NAME,
                            dbo.UFN_DESIGNATIONLEVEL_GETNAME(DESIGNATION.DESIGNATIONLEVEL2ID) LEVEL2NAME,
                            DESIGNATIONLEVELGOAL.ORGANIZATIONGOAL as DESIGNATIONLEVELGOALGOAL,
                            DESIGNATIONLEVELGOAL.STARTDATE,
                            DESIGNATIONLEVELGOAL.ENDDATE
                        from 
                            dbo.DESIGNATION 
                            inner join dbo.DESIGNATIONLEVEL on DESIGNATION.DESIGNATIONLEVEL1ID = DESIGNATIONLEVEL.ID
                            inner join dbo.DESIGNATIONLEVELTYPE on DESIGNATIONLEVEL.DESIGNATIONLEVELTYPEID = DESIGNATIONLEVELTYPE.ID
                            inner join dbo.DESIGNATIONLEVELGOAL on DESIGNATIONLEVEL.ID = DESIGNATIONLEVELGOAL.DESIGNATIONLEVELID
                            outer apply dbo.UFN_DESIGNATION_TOTALRECEIVED_INCURRENCY(DESIGNATIONLEVELGOAL.STARTDATE,DESIGNATIONLEVELGOAL.ENDDATE, @CURRENCYID, DESIGNATION.ID) TOTALRECEIVEDREVENUE
                            outer apply dbo.UFN_DESIGNATION_NEWCOMMITMENTREVENUEINCURRENCY(DESIGNATIONLEVELGOAL.STARTDATE, DESIGNATIONLEVELGOAL.ENDDATE, @CURRENCYID, DESIGNATION.ID) NEWCOMMITMENTREVENUE
                            outer apply dbo.UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY(DESIGNATIONLEVELGOAL.STARTDATE, DESIGNATIONLEVELGOAL.ENDDATE, @CURRENCYID, DESIGNATION.ID) PLANNEDGIFTREVENUE
                        where DESIGNATIONLEVELGOAL.ID = @GOALID
                            and DESIGNATION.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID
                            and DESIGNATION.DESIGNATIONLEVEL3ID is null
                    )
                    select
                        CTE_OVERALLTOTALS.LEVEL1NAME,
                        CTE_OVERALLTOTALS.LEVEL2NAME,
                        CTE_OVERALLTOTALS.LEVEL1TYPE,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL2ID,
                        DESIGNATIONGOAL.GOAL DESIGNATIONGOAL,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALGOAL OVERALLGOAL,
                        DESIGNATIONLEVELQUARTERLYGOAL.YEARNAME as DATEYEAR,
                        DESIGNATIONLEVELQUARTERLYGOAL.QUARTER as DATEQUARTER,
                        case TOTALQUARTERS when 1 then CTE_OVERALLTOTALS.OVERALLTOTALRECEIVED
                            else TOTALRECEIVEDREVENUE.TOTALRECEIVED end TOTALRECEIVED,
                        case TOTALQUARTERS when 1 then CTE_OVERALLTOTALS.OVERALLTOTALEXPECTED
                            else (NEWCOMMITMENTREVENUE.TOTALNEWCOMMITMENT - NEWCOMMITMENTREVENUE.TOTALWRITEOFFS) end TOTALEXPECTED,
                        case TOTALQUARTERS when 1 then CTE_OVERALLTOTALS.OVERALLTOTALPLANNEDGIFT
                            else PLANNEDGIFTREVENUE.TOTALPLANNEDGIFT end TOTALPLANNEDGIFT,
                        CTE_OVERALLTOTALS.OVERALLTOTALRECEIVED,
                        CTE_OVERALLTOTALS.OVERALLTOTALEXPECTED,
                        CTE_OVERALLTOTALS.OVERALLTOTALPLANNEDGIFT,
                        @CURRENCYID  as CURRENCYID,
                        @CURRENCYISO  as CURRENCYISO,
                        @CURRENCYDECIMALDIGITS as CURRENCYDECIMALDIGITS,
                        @CURRENCYSYMBOL as CURRENCYSYMBOL,
                        @CURRENCYSYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
                        CTE_OVERALLTOTALS.ID
                    from 
                        CTE_OVERALLTOTALS
                        inner join dbo.UFN_DESIGNATIONLEVELGOAL_GETQUARTERLYGOALS(@GOALID) as DESIGNATIONLEVELQUARTERLYGOAL on CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = DESIGNATIONLEVELQUARTERLYGOAL.DESIGNATIONLEVELID
                        left join dbo.DESIGNATIONGOAL on CTE_OVERALLTOTALS.ID = DESIGNATIONGOAL.DESIGNATIONID and CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = DESIGNATIONGOAL.DESIGNATIONLEVELGOALID
                        outer apply dbo.UFN_DESIGNATION_TOTALRECEIVED_INCURRENCY(CTE_OVERALLTOTALS.STARTDATE,(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), @CURRENCYID, CTE_OVERALLTOTALS.ID) TOTALRECEIVEDREVENUE
                        outer apply dbo.UFN_DESIGNATION_NEWCOMMITMENTREVENUEINCURRENCY(CTE_OVERALLTOTALS.STARTDATE,(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), @CURRENCYID, CTE_OVERALLTOTALS.ID) NEWCOMMITMENTREVENUE
                        outer apply dbo.UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY(CTE_OVERALLTOTALS.STARTDATE,(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), @CURRENCYID, CTE_OVERALLTOTALS.ID) PLANNEDGIFTREVENUE
                    where CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = @GOALID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL3ID is null
                        and DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE = 1

                    union all

                    select
                        CTE_OVERALLTOTALS.LEVEL1NAME,
                        CTE_OVERALLTOTALS.LEVEL2NAME,
                        CTE_OVERALLTOTALS.LEVEL1TYPE,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL2ID,
                        DESIGNATIONGOAL.GOAL DESIGNATIONGOAL,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALGOAL OVERALLGOAL,
                        DESIGNATIONLEVELQUARTERLYGOAL.YEARNAME as DATEYEAR,
                        DESIGNATIONLEVELQUARTERLYGOAL.QUARTER as DATEQUARTER,
                        TOTALRECEIVEDREVENUE.TOTALRECEIVED TOTALRECEIVED,
                        (NEWCOMMITMENTREVENUE.TOTALNEWCOMMITMENT - NEWCOMMITMENTREVENUE.TOTALWRITEOFFS) TOTALEXPECTED,
                        PLANNEDGIFTREVENUE.TOTALPLANNEDGIFT TOTALPLANNEDGIFT,
                        CTE_OVERALLTOTALS.OVERALLTOTALRECEIVED,
                        CTE_OVERALLTOTALS.OVERALLTOTALEXPECTED,
                        CTE_OVERALLTOTALS.OVERALLTOTALPLANNEDGIFT,
                        @CURRENCYID  as CURRENCYID,
                        @CURRENCYISO  as CURRENCYISO,
                        @CURRENCYDECIMALDIGITS as CURRENCYDECIMALDIGITS,
                        @CURRENCYSYMBOL as CURRENCYSYMBOL,
                        @CURRENCYSYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
                        CTE_OVERALLTOTALS.ID
                    from 
                        CTE_OVERALLTOTALS
                        inner join dbo.UFN_DESIGNATIONLEVELGOAL_GETQUARTERLYGOALS(@GOALID) as DESIGNATIONLEVELQUARTERLYGOAL on CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = DESIGNATIONLEVELQUARTERLYGOAL.DESIGNATIONLEVELID
                        left join dbo.DESIGNATIONGOAL on CTE_OVERALLTOTALS.ID = DESIGNATIONGOAL.DESIGNATIONID and CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = DESIGNATIONGOAL.DESIGNATIONLEVELGOALID
                        outer apply dbo.UFN_DESIGNATION_TOTALRECEIVED_INCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),CTE_OVERALLTOTALS.ENDDATE, @CURRENCYID, CTE_OVERALLTOTALS.ID) TOTALRECEIVEDREVENUE
                        outer apply dbo.UFN_DESIGNATION_NEWCOMMITMENTREVENUEINCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),CTE_OVERALLTOTALS.ENDDATE, @CURRENCYID, CTE_OVERALLTOTALS.ID) NEWCOMMITMENTREVENUE
                        outer apply dbo.UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),CTE_OVERALLTOTALS.ENDDATE, @CURRENCYID, CTE_OVERALLTOTALS.ID) PLANNEDGIFTREVENUE
                    where CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = @GOALID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL3ID is null
                        and (DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE = DESIGNATIONLEVELQUARTERLYGOAL.TOTALQUARTERS
                                and DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE <> 1)

                    union all

                    select
                        CTE_OVERALLTOTALS.LEVEL1NAME,
                        CTE_OVERALLTOTALS.LEVEL2NAME,
                        CTE_OVERALLTOTALS.LEVEL1TYPE,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVEL2ID,
                        DESIGNATIONGOAL.GOAL DESIGNATIONGOAL,
                        CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALGOAL OVERALLGOAL,
                        DESIGNATIONLEVELQUARTERLYGOAL.YEARNAME as DATEYEAR,
                        DESIGNATIONLEVELQUARTERLYGOAL.QUARTER as DATEQUARTER,
                        TOTALRECEIVEDREVENUE.TOTALRECEIVED TOTALRECEIVED,
                        (NEWCOMMITMENTREVENUE.TOTALNEWCOMMITMENT - NEWCOMMITMENTREVENUE.TOTALWRITEOFFS) TOTALEXPECTED,
                        PLANNEDGIFTREVENUE.TOTALPLANNEDGIFT TOTALPLANNEDGIFT,
                        CTE_OVERALLTOTALS.OVERALLTOTALRECEIVED,
                        CTE_OVERALLTOTALS.OVERALLTOTALEXPECTED,
                        CTE_OVERALLTOTALS.OVERALLTOTALPLANNEDGIFT,
                        @CURRENCYID as CURRENCYID,
                        @CURRENCYISO  as CURRENCYISO,
                        @CURRENCYDECIMALDIGITS as CURRENCYDECIMALDIGITS,
                        @CURRENCYSYMBOL as CURRENCYSYMBOL,
                        @CURRENCYSYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE,
                        CTE_OVERALLTOTALS.ID
                    from 
                        CTE_OVERALLTOTALS
                        inner join dbo.UFN_DESIGNATIONLEVELGOAL_GETQUARTERLYGOALS(@GOALID) as DESIGNATIONLEVELQUARTERLYGOAL on CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = DESIGNATIONLEVELQUARTERLYGOAL.DESIGNATIONLEVELID
                        left join dbo.DESIGNATIONGOAL on CTE_OVERALLTOTALS.ID = DESIGNATIONGOAL.DESIGNATIONID and CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = DESIGNATIONGOAL.DESIGNATIONLEVELGOALID
                        outer apply dbo.UFN_DESIGNATION_TOTALRECEIVED_INCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), @CURRENCYID, CTE_OVERALLTOTALS.ID) TOTALRECEIVEDREVENUE
                        outer apply dbo.UFN_DESIGNATION_NEWCOMMITMENTREVENUEINCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), @CURRENCYID, CTE_OVERALLTOTALS.ID) NEWCOMMITMENTREVENUE
                        outer apply dbo.UFN_DESIGNATION_PLANNEDGIFTREVENUEINCURRENCY((DATEADD(qq, DATEDIFF(qq,0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE), 0)),(DATEADD(ms, -3, DATEADD(qq,DATEDIFF(qq, 0,DESIGNATIONLEVELQUARTERLYGOAL.STARTDATE)+ 1, 0))), @CURRENCYID, CTE_OVERALLTOTALS.ID) PLANNEDGIFTREVENUE
                    where CTE_OVERALLTOTALS.DESIGNATIONLEVELGOALID = @GOALID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID
                        and CTE_OVERALLTOTALS.DESIGNATIONLEVEL3ID is null
                        and (DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE <> DESIGNATIONLEVELQUARTERLYGOAL.TOTALQUARTERS
                                and DESIGNATIONLEVELQUARTERLYGOAL.SEQUENCE <> 1)

                    order by CTE_OVERALLTOTALS.DESIGNATIONLEVEL1ID, CTE_OVERALLTOTALS.DESIGNATIONLEVEL2ID, DESIGNATIONLEVELQUARTERLYGOAL.YEARNAME, DESIGNATIONLEVELQUARTERLYGOAL.QUARTER 
                end
            end