UFN_ADJUSTMENTHISTORY_GETGIFTINKINDDISTRIBUTION_FORADJUSTMENTHISTORYGIFTINKINDID
Returns the GL distribution for a sold gift-in-kind adjustment history item.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ADJUSTMENTHISTORYGIFTINKINDID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_ADJUSTMENTHISTORY_GETGIFTINKINDDISTRIBUTION_FORADJUSTMENTHISTORYGIFTINKINDID
(
@ADJUSTMENTHISTORYGIFTINKINDID uniqueidentifier
)
returns @RESULT table
(
ID nvarchar(36),
ADJUSTMENTHISTORYGIFTINKINDID 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 @GIFTINKINDSALEID uniqueidentifier;
insert into @RESULT(ID, ADJUSTMENTHISTORYGIFTINKINDID, TYPECODE, TYPE, TRANSACTIONTYPE, ACCOUNT, PROJECT, REFERENCE, AMOUNT, TRANSACTIONAMOUNT, ORGANIZATIONAMOUNT, BASECURRENCYID, TRANSACTIONCURRENCYID)
select
cast(ID as nvarchar(36)),
ADJUSTMENTHISTORYGIFTINKINDID,
TYPECODE,
TYPE,
TRANSACTIONTYPE,
ACCOUNT,
PROJECT,
REFERENCE,
AMOUNT,
TRANSACTIONAMOUNT,
ORGANIZATIONAMOUNT,
BASECURRENCYID,
TRANSACTIONCURRENCYID
from dbo.ADJUSTMENTHISTORYGIFTINKINDDISTRIBUTION
where ADJUSTMENTHISTORYGIFTINKINDID = @ADJUSTMENTHISTORYGIFTINKINDID;
--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
declare @GIFTINKINDPAYMENTMETHODDETAILID uniqueidentifier
/*this should be the case for undeleted sold-gift-in-kind so find that sold-gift-in-kind*/
select
@GIFTINKINDSALEID = GIFTINKINDSALEADJUSTMENT.GIFTINKINDSALEID,
@GIFTINKINDPAYMENTMETHODDETAILID = GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID
from dbo.GIFTINKINDSALEADJUSTMENT
inner join dbo.ADJUSTMENTHISTORYGIFTINKIND on ADJUSTMENTHISTORYGIFTINKIND.GIFTINKINDSALEADJUSTMENTID = GIFTINKINDSALEADJUSTMENT.ID
inner join dbo.GIFTINKINDSALE on GIFTINKINDSALEADJUSTMENT.GIFTINKINDSALEID = GIFTINKINDSALE.ID
where ADJUSTMENTHISTORYGIFTINKIND.ID = @ADJUSTMENTHISTORYGIFTINKINDID
if not @GIFTINKINDSALEID is null /*if we couldn't find the gift-in-kind detail, there's no sense in finding its GL info*/
insert into @RESULT(ID, ADJUSTMENTHISTORYGIFTINKINDID, TYPECODE, TYPE, TRANSACTIONTYPE, ACCOUNT, PROJECT, REFERENCE, AMOUNT, TRANSACTIONAMOUNT, ORGANIZATIONAMOUNT, BASECURRENCYID, TRANSACTIONCURRENCYID)
select
cast(row_number() over (order by AMOUNT) as nvarchar(36)),
@ADJUSTMENTHISTORYGIFTINKINDID,
1,
'Adjustment',
DEBITCREDIT,
ACCOUNT,
PROJECT,
REFERENCE,
AMOUNT,
TRANSACTIONAMOUNT,
ORGANIZATIONAMOUNT,
BASECURRENCYID,
TRANSACTIONCURRENCYID
from dbo.UFN_REVENUE_GETGIFTINKINDPAYMENTMETHODDETAILGLDISTRIBUTION(@GIFTINKINDPAYMENTMETHODDETAILID)
where GIFTINKINDSALEID = @GIFTINKINDSALEID;
end
return;
end