UFN_DISBURSEMENTPROCESS_RANGESGRID_DONOTALLOWOUTSIDERANGE
Checks for outside ranges for a check run
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DISBURSEMENTPROCESSID | uniqueidentifier | IN | |
@RANGESGRID | xml | IN |
Definition
Copy
CREATE function dbo.UFN_DISBURSEMENTPROCESS_RANGESGRID_DONOTALLOWOUTSIDERANGE(@DISBURSEMENTPROCESSID uniqueidentifier, @RANGESGRID xml)
returns bit
with execute as caller
as begin
declare @ReturnValue bit;
set @ReturnValue=0;
declare @TOTALDISBURSEMENTS int
declare @TempTable table
(
[START] int
,[END] int
,[COUNT] int
);
select
@TOTALDISBURSEMENTS=COUNT(*)
from
dbo.DISBURSEMENTPROCESSDISBURSEMENT as DPD
inner join dbo.FINANCIALTRANSACTION as FTD on DPD.ID = FTD.ID
where
DPD.DISBURSEMENTPROCESSID = @DISBURSEMENTPROCESSID
group by
DPD.DISBURSEMENTPROCESSID;
insert into @TempTable
select
[RANGESTART]
,[RANGEEND]
,case when [RANGEEND]<>0
then
[RANGEEND]-[RANGESTART]+1
else
0
end
from dbo.UFN_DISBURSEMENTPROCESSFORMNUMBERRANGE_FROMITEMLISTXML(@RANGESGRID);
update @TempTable
set [COUNT] = @TOTALDISBURSEMENTS - (select SUM([COUNT]) from @TempTable)
where [COUNT] = 0;
if not exists
(
select * from dbo.UFN_DISBURSEMENTPROCESS_GETCONSOLIDATED_RANGES(@DISBURSEMENTPROCESSID) as T1
inner join @TempTable as T2 on ((T2.[START] >= T1.RANGESTART) and (T2.[END] <= T1.RANGEEND))
)
set @ReturnValue = 1;
return @ReturnValue;
end