USP_DESIGNATIONLEVEL_GETTOTALRECEIVEDBYPOSITIONINCURRENCY
Returns the total amount received for a given designation level in a given currency.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@VALUE | money | INOUT | |
@DESIGNATIONLEVELID | uniqueidentifier | IN | |
@ORGPOSITIONSSELECTIONID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@CURRENCYID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_DESIGNATIONLEVEL_GETTOTALRECEIVEDBYPOSITIONINCURRENCY
(
@VALUE money = null output,
@DESIGNATIONLEVELID uniqueidentifier,
@ORGPOSITIONSSELECTIONID uniqueidentifier,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@CURRENCYID uniqueidentifier = null
)
as begin
if @ORGPOSITIONSSELECTIONID is null
begin
set @VALUE = dbo.UFN_DESIGNATIONLEVEL_GETTOTALRECEIVEDINCURRENCY(@DESIGNATIONLEVELID,@STARTDATE,@ENDDATE,@CURRENCYID);
return;
end
declare @IDS as table(ID uniqueidentifier);
insert into @IDS exec USP_ORGANIZATIONHIERARCHY_IDSET_POSITIONHOLDERS @ORGPOSITIONSSELECTIONID, null;
select @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE),
@ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE);
with DESIGNATIONS_CTE as (
select ID
from dbo.DESIGNATION D
where D.DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID or
D.DESIGNATIONLEVEL2ID = @DESIGNATIONLEVELID or
D.DESIGNATIONLEVEL3ID = @DESIGNATIONLEVELID or
D.DESIGNATIONLEVEL4ID = @DESIGNATIONLEVELID or
D.DESIGNATIONLEVEL5ID = @DESIGNATIONLEVELID
)
select @VALUE =
coalesce(dbo.UFN_REVENUESOLICITOR_GETAMOUNTINCURRENCY(RSOL.ID,@CURRENCYID), 0)
from dbo.REVENUESPLIT RDS
inner join DESIGNATIONS_CTE D on RDS.DESIGNATIONID = D.ID
inner join dbo.REVENUE R on R.ID = RDS.REVENUEID
inner join dbo.REVENUESOLICITOR RSOL on RDS.ID = RSOL.REVENUESPLITID
inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH
on OPH.CONSTITUENTID = RSOL.CONSTITUENTID and R.DATE between OPH.DATEFROM and coalesce(OPH.DATETO, R.DATE)
inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
where
(R.DATE >= @STARTDATE or @STARTDATE is null) and
(R.DATE <= @ENDDATE or @ENDDATE is null) and
R.TRANSACTIONTYPECODE = 0;
end