USP_DATALIST_APPEALBENEFITS
This datalist returns all benefits for a given appeal
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_APPEALBENEFITS (@ID uniqueidentifier)
as begin
set nocount on;
--power() function returns the same number of decimal digits as the first parameter has, using a number with the maximum decimal digits a money type can have
declare @LEASTSIGNIFICANTAMOUNT money;
select @LEASTSIGNIFICANTAMOUNT = power(10.0000,-CURRENCY.DECIMALDIGITS)
from dbo.APPEAL
left join dbo.CURRENCY on CURRENCY.ID = APPEAL.BASECURRENCYID
where APPEAL.ID = @ID;
select
APPEALBENEFIT.ID,
ROW_NUMBER() OVER(Order by APPEALBENEFIT.AMOUNT) LEVEL,
APPEALBENEFIT.AMOUNT,
(select top (1) (NEXTAPPEALBENEFITLEVEL.AMOUNT - @LEASTSIGNIFICANTAMOUNT)
from dbo.APPEALBENEFIT NEXTAPPEALBENEFITLEVEL
where NEXTAPPEALBENEFITLEVEL.APPEALID = @ID
and NEXTAPPEALBENEFITLEVEL.AMOUNT > APPEALBENEFIT.AMOUNT
order by NEXTAPPEALBENEFITLEVEL.AMOUNT asc) MAXAMOUNT,
dbo.UDA_BUILDLIST(BENEFIT.NAME) BENEFITLIST,
APPEALBENEFIT.BASECURRENCYID
from
dbo.APPEALBENEFIT
left join dbo.APPEALBENEFITDETAIL on APPEALBENEFIT.ID = APPEALBENEFITDETAIL.APPEALBENEFITID
left join dbo.BENEFIT on APPEALBENEFITDETAIL.BENEFITID = BENEFIT.ID
where
APPEALID = @ID
group by APPEALBENEFIT.ID, APPEALBENEFIT.AMOUNT, APPEALBENEFIT.BASECURRENCYID
order by
AMOUNT;
end