USP_KPI_DESIGNATION_GOALREVENUETOTAL

Parameters

Parameter Parameter Type Mode Description
@VALUE money INOUT
@DESIGNATIONID uniqueidentifier IN
@DESIGNATIONGOALID uniqueidentifier IN
@ASOFDATE datetime IN
@ORGPOSITIONSSELECTIONID uniqueidentifier IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


                CREATE procedure dbo.USP_KPI_DESIGNATION_GOALREVENUETOTAL

                @VALUE money output,
                @DESIGNATIONID uniqueidentifier,
                @DESIGNATIONGOALID uniqueidentifier,
                @ASOFDATE datetime,
                @ORGPOSITIONSSELECTIONID uniqueidentifier = null,
                @CURRENCYID uniqueidentifier = null

                as

                set nocount on;

                declare @STARTDATE datetime;
                declare @ENDDATE datetime;
                declare @NEWCOMMITMENTTOTAL money;
                declare @RECEIVEDTOTAL money;

                select 
                    @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(DESIGNATIONLEVELGOAL.STARTDATE),
                    @ENDDATE = dbo.UFN_DATE_GETEARLIESTTIME(DESIGNATIONLEVELGOAL.ENDDATE)
                from dbo.DESIGNATIONLEVELGOAL
                inner join dbo.DESIGNATIONGOAL on DESIGNATIONLEVELGOAL.ID = DESIGNATIONGOAL.DESIGNATIONLEVELGOALID
                where DESIGNATIONGOAL.ID = @DESIGNATIONGOALID;

                --Ensure no values are included that come after the end date of the goal

                select @ASOFDATE = case
                    when @ASOFDATE > @ENDDATE then @ENDDATE
                    else @ASOFDATE
                end

                if @ORGPOSITIONSSELECTIONID is null
                begin
                    select
                        @NEWCOMMITMENTTOTAL = dbo.UFN_DESIGNATION_NEWCOMMITMENTTOTALINCURRENCY(@STARTDATE, @ASOFDATE, @CURRENCYID, @DESIGNATIONID),
                        @RECEIVEDTOTAL = dbo.UFN_DESIGNATION_REVENUERECEIVEDTOTALINCURRENCY(@STARTDATE, @ASOFDATE, @CURRENCYID, @DESIGNATIONID)
                end
                else
                begin
                    exec dbo.USP_DESIGNATION_NEWCOMMITMENTTOTALINCURRENCY_BYPOSITION @NEWCOMMITMENTTOTAL output, @STARTDATE, @ASOFDATE, @CURRENCYID, @DESIGNATIONID, @ORGPOSITIONSSELECTIONID
                    exec dbo.USP_DESIGNATION_REVENUERECEIVEDTOTALINCURRENCY_BYPOSITION @RECEIVEDTOTAL output, @STARTDATE, @ASOFDATE, @CURRENCYID, @DESIGNATIONID, @ORGPOSITIONSSELECTIONID
                end

                set @VALUE = coalesce(@NEWCOMMITMENTTOTAL, 0) + coalesce(@RECEIVEDTOTAL, 0);