UFN_ADJUSTMENTHISTORY_GETADJUSTEDSTREAMS_FOR_SPECIFIC_LINEITEMS
Return
Return Type |
---|
nvarchar(max) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ADJUSTMENTID | uniqueidentifier | IN | |
@LINEITEMS | UDT_GENERICID | IN | |
@CURRENCYCODE | tinyint | IN |
Definition
Copy
create function [dbo].[UFN_ADJUSTMENTHISTORY_GETADJUSTEDSTREAMS_FOR_SPECIFIC_LINEITEMS]
(
@ADJUSTMENTID uniqueidentifier
,@LINEITEMS UDT_GENERICID readonly
,@CURRENCYCODE tinyint
)
returns nvarchar(max)
as
begin
declare @RESULT nvarchar(max);
declare @REVENUEID uniqueidentifier;
declare @DETAILTYPE nvarchar(25);
declare @DETAILTYPECODE tinyint;
declare @DETAILSPLITTYPECODE tinyint;
declare @DETAILAPPLICATION nvarchar(30);
declare @DETAILAPPLICATIONCODE tinyint;
declare @AMOUNT money;
declare @REVENUECATEGORY nvarchar(100);
declare @APPLICATIONSTRING nvarchar(100);
set @RESULT = N'';
set @APPLICATIONSTRING = N'';
select
@REVENUEID = REVENUEID
from dbo.ADJUSTMENT
where ID = @ADJUSTMENTID;
if @REVENUEID is null
return @RESULT;
declare DETAIL_CURSOR cursor local fast_forward for
select
FINANCIALTRANSACTION.TYPE
,FINANCIALTRANSACTION.TYPECODE
,REVENUESPLIT_EXT.TYPECODE
,REVENUESPLIT_EXT.APPLICATION
,REVENUESPLIT_EXT.APPLICATIONCODE
,case @CURRENCYCODE when 0 then FINANCIALTRANSACTIONLINEITEM.BASEAMOUNT when 2 then FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT else FINANCIALTRANSACTIONLINEITEM.ORGAMOUNT end
,GLREVENUECATEGORYMAPPING.REVENUECATEGORYNAME
from @LINEITEMS LI
inner join dbo.FINANCIALTRANSACTIONLINEITEM on LI.ID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
left join dbo.REVENUECATEGORY on REVENUECATEGORY.ID = FINANCIALTRANSACTIONLINEITEM.ID
left join dbo.GLREVENUECATEGORYMAPPING on REVENUECATEGORY.GLREVENUECATEGORYMAPPINGID = GLREVENUECATEGORYMAPPING.ID
where FINANCIALTRANSACTION.ID = @REVENUEID
and FINANCIALTRANSACTION.DELETEDON is null
and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1;
open DETAIL_CURSOR;
fetch next from DETAIL_CURSOR into @DETAILTYPE, @DETAILTYPECODE, @DETAILSPLITTYPECODE, @DETAILAPPLICATION, @DETAILAPPLICATIONCODE, @AMOUNT, @REVENUECATEGORY;
while @@FETCH_STATUS = 0
begin
select @APPLICATIONSTRING =
case
when @DETAILTYPECODE <> 0 then @DETAILTYPE
when @DETAILAPPLICATIONCODE = 0 and @DETAILSPLITTYPECODE <> 2 then @DETAILAPPLICATION
when @DETAILAPPLICATIONCODE = 0 and @DETAILSPLITTYPECODE = 2 then ' Recurring membership'
else @DETAILAPPLICATION + ' Payment'
end
if len(@REVENUECATEGORY) = 0 or @REVENUECATEGORY is null
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, @DETAILSPLITTYPECODE, @DETAILAPPLICATION, @DETAILAPPLICATIONCODE, @AMOUNT, @REVENUECATEGORY;
end
deallocate DETAIL_CURSOR;
return @RESULT;
end