USP_DATAFORMTEMPLATE_VIEW_DESIGNATIONGOAL

The load procedure used by the view dataform template "Designation Goal View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@NAME nvarchar(100) INOUT Name
@GOAL money INOUT Goal
@STARTDATE datetime INOUT Start date
@ENDDATE datetime INOUT End date
@DATERANGE nvarchar(100) INOUT Date Range
@TOTALREVENUE money INOUT Total revenue
@OVERUNDER money INOUT Over (under)
@AVERAGEGIFT money INOUT Average gift
@TOTALGIFTS int INOUT Total gifts

Definition

Copy


            CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_DESIGNATIONGOAL
                (
                @ID uniqueidentifier,
                @DATALOADED bit = 0 output,
                @NAME nvarchar(100) = null output,
                @GOAL money = null output,
                @STARTDATE datetime = null output,
                @ENDDATE datetime = null output,
                @DATERANGE nvarchar(100) = null output,
                @TOTALREVENUE money = null output,
                @OVERUNDER money = null output,
                @AVERAGEGIFT money = null output,
                @TOTALGIFTS int = null output
                )
            as
            begin
                set nocount on;

                set @DATALOADED = 0;

                with DESIGNATION_CTE as 
                    (select D.ID
                    from dbo.DESIGNATION D
                        inner join dbo.DESIGNATION D2
                        on ((D.DESIGNATIONLEVEL1ID = D2.DESIGNATIONLEVEL1ID) and
                            (D.DESIGNATIONLEVEL2ID = D2.DESIGNATIONLEVEL2ID or D2.DESIGNATIONLEVEL2ID is null) and
                            (D.DESIGNATIONLEVEL3ID = D2.DESIGNATIONLEVEL3ID or D2.DESIGNATIONLEVEL3ID is null) and
                            (D.DESIGNATIONLEVEL4ID = D2.DESIGNATIONLEVEL4ID or D2.DESIGNATIONLEVEL4ID is null) and
                            (D.DESIGNATIONLEVEL5ID = D2.DESIGNATIONLEVEL5ID or D2.DESIGNATIONLEVEL5ID is null))
                        where D2.ID = (select DESIGNATIONID from dbo.DESIGNATIONGOAL where ID = @ID)
                    )

                select
                    @DATALOADED = 1,
                    @NAME = DLG.NAME,
                    @GOAL = DG.GOAL,
                    @STARTDATE = DLG.STARTDATE,
                    @ENDDATE = DLG.ENDDATE,
                    @DATERANGE = ISNULL(CONVERT(nvarchar(10), DLG.STARTDATE, 101) + ' to ' + CONVERT(nvarchar(10), DLG.ENDDATE, 101), ''),                    
                    @TOTALREVENUE = (dbo.UFN_DESIGNATION_GETTOTALRECEIVED(DG.DESIGNATIONID,DLG.STARTDATE,DLG.ENDDATE,1) + 
                                    dbo.UFN_DESIGNATION_GETPLEDGEBALANCE(DG.DESIGNATIONID,DLG.STARTDATE,DLG.ENDDATE,1)),
                    @TOTALGIFTS = coalesce((select count(distinct RD.ID) 
                                                from dbo.REVENUESPLIT as SPLIT 
                                                inner join DESIGNATION_CTE as D on SPLIT.DESIGNATIONID = D.ID
                                                inner join dbo.REVENUE as RD on SPLIT.REVENUEID = RD.ID                                                
                                                where (RD.DATE between DLG.STARTDATE and DLG.ENDDATE) and
                                                        dbo.UFN_REVENUE_HASDESIGNATION(RD.TRANSACTIONTYPECODE, SPLIT.APPLICATIONCODE) = 1
                                            ), 0)
                from
                    dbo.DESIGNATIONGOAL DG
                    inner join dbo.DESIGNATIONLEVELGOAL DLG on DG.DESIGNATIONLEVELGOALID = DLG.ID
                where DG.ID = @ID;

                set @OVERUNDER = @TOTALREVENUE - @GOAL;

                if @TOTALGIFTS > 0
                    set @AVERAGEGIFT = @TOTALREVENUE / @TOTALGIFTS;
                else
                    set @AVERAGEGIFT = 0;

                return 0
            end