UFN_ADJUSTMENTHISTORY_GETPREVIOUSSTREAMS_2
Returns the previous splits for an adjustment, for reporting purposes.
Return
Return Type |
---|
nvarchar(max) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ADJUSTMENTID | uniqueidentifier | IN | |
@CURRENCYCODE | tinyint | IN |
Definition
Copy
CREATE function dbo.UFN_ADJUSTMENTHISTORY_GETPREVIOUSSTREAMS_2
(
@ADJUSTMENTID uniqueidentifier,
@CURRENCYCODE tinyint
)
returns nvarchar(max)
as
begin
declare @ADJUSTMENTHISTORYID uniqueidentifier;
declare @DETAILTYPE nvarchar(25);
declare @DETAILTYPECODE tinyint;
declare @DETAILAPPLICATION nvarchar(30);
declare @DETAILAPPLICATIONCODE tinyint;
declare @AMOUNT money;
declare @REVENUECATEGORY nvarchar(100);
declare @RESULT nvarchar(max);
declare @APPLICATIONSTRING nvarchar(100);
set @RESULT = N'';
select @ADJUSTMENTHISTORYID = ID
from dbo.ADJUSTMENTHISTORY where ADJUSTMENTID = @ADJUSTMENTID;
if @ADJUSTMENTHISTORYID is null
return @RESULT;
declare DETAIL_CURSOR cursor local fast_forward for
select
TYPE, TYPECODE, APPLICATION, APPLICATIONCODE, case @CURRENCYCODE when 0 then AMOUNT when 2 then TRANSACTIONAMOUNT else ORGANIZATIONAMOUNT end, REVENUECATEGORYCODETRANSLATION
from dbo.ADJUSTMENTHISTORYREVENUE
where ADJUSTMENTHISTORYID = @ADJUSTMENTHISTORYID;
open DETAIL_CURSOR;
fetch next from DETAIL_CURSOR into @DETAILTYPE, @DETAILTYPECODE, @DETAILAPPLICATION, @DETAILAPPLICATIONCODE, @AMOUNT, @REVENUECATEGORY;
while @@FETCH_STATUS = 0
begin
select @APPLICATIONSTRING =
case
when @DETAILTYPECODE <> 0 then @DETAILTYPE
when @DETAILAPPLICATIONCODE = 0 then @DETAILAPPLICATION
else @DETAILAPPLICATION + ' Payment'
end
if len(@REVENUECATEGORY) = 0
set @RESULT = @RESULT + @APPLICATIONSTRING + ' (' + cast(@AMOUNT as nvarchar) + ')' + char(13) + char(10);
else
set @RESULT = @RESULT + @APPLICATIONSTRING + ' (' + cast(@AMOUNT as nvarchar) + ')' + ' [' + @REVENUECATEGORY + ']' + char(13) + char(10);
fetch next from DETAIL_CURSOR into @DETAILTYPE, @DETAILTYPECODE, @DETAILAPPLICATION, @DETAILAPPLICATIONCODE, @AMOUNT, @REVENUECATEGORY;
end
--When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long
close DETAIL_CURSOR;
deallocate DETAIL_CURSOR;
return @RESULT;
end