UFN_OPPORTUNITYAMOUNTRANGES_BYGROUPANDUSER_NOSECURITY
Returns opportunity amount brackets with a calculated upper limit for a given group, not restricting records by site if no appuser ID is supplied.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_OPPORTUNITYAMOUNTRANGES_BYGROUPANDUSER_NOSECURITY(@CURRENTAPPUSERID uniqueidentifier)
returns @amountBrackets table
(ID uniqueidentifier,
NAME nvarchar(100),
LOWERLIMIT money,
UPPERLIMIT money,
BASECURRENCYID uniqueidentifier)
as
begin
declare @USERSITEID uniqueidentifier;
select @USERSITEID = SITEID from dbo.APPUSER where ID = @CURRENTAPPUSERID;
insert into @amountBrackets
select
L.ID,
L.NAME,
L.LOWERLIMIT,
coalesce(min(U.LOWERLIMIT)- power(10.0000,-CURRENCY.DECIMALDIGITS),922337203685477.58) UPPERLIMIT,
G.BASECURRENCYID
from
dbo.OPPORTUNITYAMOUNTBRACKETGROUP G
inner join dbo.CURRENCY on CURRENCY.ID = G.BASECURRENCYID
inner join dbo.OPPORTUNITYAMOUNTBRACKET L on G.ID = L.OPPORTUNITYBRACKETGROUPID
left outer join dbo.OPPORTUNITYAMOUNTBRACKET U on U.LOWERLIMIT>L.LOWERLIMIT and G.ID = U.OPPORTUNITYBRACKETGROUPID
where @CURRENTAPPUSERID is null or G.ID = dbo.UFN_OPPORTUNITYAMOUNTBRACKETSGROUP_GETBYSITE(@USERSITEID)
group by
L.ID,
L.NAME,
L.LOWERLIMIT,
G.BASECURRENCYID,
CURRENCY.DECIMALDIGITS
if (select count(*) from @amountBrackets) = 0 and (select ISSYSADMIN from dbo.APPUSER where ID = @CURRENTAPPUSERID) = 1
begin
declare @FIRSTBRACKETGROUPID uniqueidentifier;
select top 1 @FIRSTBRACKETGROUPID = ID from dbo.OPPORTUNITYAMOUNTBRACKETGROUP order by DATEADDED;
insert into @amountBrackets
select
L.ID,
L.NAME,
L.LOWERLIMIT,
coalesce(min(U.LOWERLIMIT)-power(10.0000,-CURRENCY.DECIMALDIGITS),922337203685477.58) UPPERLIMIT,
G.BASECURRENCYID
from
dbo.OPPORTUNITYAMOUNTBRACKETGROUP G
inner join dbo.CURRENCY on CURRENCY.ID = G.BASECURRENCYID
inner join dbo.OPPORTUNITYAMOUNTBRACKET L on G.ID = L.OPPORTUNITYBRACKETGROUPID
left outer join dbo.OPPORTUNITYAMOUNTBRACKET U on U.LOWERLIMIT>L.LOWERLIMIT and G.ID = U.OPPORTUNITYBRACKETGROUPID
where G.ID = @FIRSTBRACKETGROUPID
group by
L.ID,
L.NAME,
L.LOWERLIMIT,
G.BASECURRENCYID,
CURRENCY.DECIMALDIGITS
end
return
end