UFN_ADJUSTMENTHISTORY_GETWRITEOFFDISTRIBUTION_FORADJUSTMENTHISTORYWRITEOFFID
Returns the GL distribution for a write-off adjustment history item.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ADJUSTMENTHISTORYWRITEOFFID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_ADJUSTMENTHISTORY_GETWRITEOFFDISTRIBUTION_FORADJUSTMENTHISTORYWRITEOFFID
(
@ADJUSTMENTHISTORYWRITEOFFID uniqueidentifier
)
returns @RESULT table
(
ID nvarchar(36),
ADJUSTMENTHISTORYWRITEOFFID uniqueidentifier,
TYPECODE tinyint,
TYPE nvarchar(20),
TRANSACTIONTYPE nvarchar(50),
ACCOUNT nvarchar(100),
PROJECT nvarchar(100),
REFERENCE nvarchar(255),
AMOUNT money,
TRANSACTIONAMOUNT money,
ORGANIZATIONAMOUNT money,
BASECURRENCYID uniqueidentifier,
TRANSACTIONCURRENCYID uniqueidentifier
)
as
begin
declare @WRITEOFFID uniqueidentifier;
insert into @RESULT(ID, ADJUSTMENTHISTORYWRITEOFFID, TYPECODE, TYPE, TRANSACTIONTYPE, ACCOUNT, PROJECT, REFERENCE, AMOUNT, TRANSACTIONAMOUNT, ORGANIZATIONAMOUNT, BASECURRENCYID, TRANSACTIONCURRENCYID)
select
cast(ID as nvarchar(36)),
ADJUSTMENTHISTORYWRITEOFFID,
TYPECODE,
TYPE,
TRANSACTIONTYPE,
ACCOUNT,
PROJECT,
REFERENCE,
AMOUNT,
TRANSACTIONAMOUNT,
ORGANIZATIONAMOUNT,
BASECURRENCYID,
TRANSACTIONCURRENCYID
from dbo.ADJUSTMENTHISTORYWRITEOFFDISTRIBUTION
where ADJUSTMENTHISTORYWRITEOFFID = @ADJUSTMENTHISTORYWRITEOFFID;
--If there's only a reversal here, and not an adjustment as well, then we need to include the current GL for this item.
declare @NEEDSGL bit;
set @NEEDSGL = 1;
select
@NEEDSGL = case when TYPECODE = 1 then 0 else @NEEDSGL end
from @RESULT;
if @NEEDSGL = 1
begin
/*this should be the case for undeleted write-off so find that write-off*/
select
@WRITEOFFID = WRITEOFFADJUSTMENT.WRITEOFFID
from dbo.WRITEOFFADJUSTMENT
inner join dbo.ADJUSTMENTHISTORYWRITEOFF on ADJUSTMENTHISTORYWRITEOFF.WRITEOFFADJUSTMENTID = WRITEOFFADJUSTMENT.ID
where ADJUSTMENTHISTORYWRITEOFF.ID = @ADJUSTMENTHISTORYWRITEOFFID
if not @WRITEOFFID is null /*if we couldn't find the write-off, there's no sense in finding its GL info*/
insert into @RESULT(ID, ADJUSTMENTHISTORYWRITEOFFID, TYPECODE, TYPE, TRANSACTIONTYPE, ACCOUNT, PROJECT, REFERENCE, AMOUNT, TRANSACTIONAMOUNT, ORGANIZATIONAMOUNT, BASECURRENCYID, TRANSACTIONCURRENCYID)
select
cast(row_number() over (order by AMOUNT) as nvarchar(36)),
@ADJUSTMENTHISTORYWRITEOFFID,
1,
'Adjustment',
DEBITCREDIT,
ACCOUNT,
PROJECT,
REFERENCE,
AMOUNT,
TRANSACTIONAMOUNT,
ORGANIZATIONAMOUNT,
BASECURRENCYID,
TRANSACTIONCURRENCYID
from dbo.UFN_REVENUE_GETWRITEOFFGLDISTRIBUTION(@WRITEOFFID);
end
return;
end