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);