UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE
Returns the journal reference for a revenue record.
Return
Return Type |
---|
nvarchar(255) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUESPLITID | uniqueidentifier | IN | |
@PAYMENTMETHOD | nvarchar(50) | IN | |
@APPLICATION | nvarchar(50) | IN |
Definition
Copy
CREATE function dbo.UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE
(
@REVENUESPLITID uniqueidentifier,
@PAYMENTMETHOD nvarchar(50),
@APPLICATION nvarchar(50)
)
returns nvarchar(255)
as
begin
declare @REFERENCE nvarchar(255);
-- Adding "-DEL" for Reversals created by Deletions will make it 90
-- First check if the revenue record has a reference and use it. If it does not then use the default string
select
@REFERENCE = isnull(REVENUEREFERENCE.REFERENCE, '')
from
dbo.FINANCIALTRANSACTIONLINEITEM
inner join
dbo.REVENUEREFERENCE on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = REVENUEREFERENCE.ID
where
FINANCIALTRANSACTIONLINEITEM.ID = @REVENUESPLITID;
if (len(@REFERENCE) = 0) or (@REFERENCE is null)
begin
declare @REVENUEID uniqueidentifier;
declare @TRANSACTIONTYPECODE tinyint;
declare @TRANSACTIONTYPE nvarchar(255);
declare @APPLICATIONCODE tinyint;
declare @APPLICATION2 nvarchar(255);
declare @CONSTITUENTKEYNAME nvarchar(255);
declare @SPLITTYPECODE tinyint;
select
@TRANSACTIONTYPECODE = FINANCIALTRANSACTION.TYPECODE,
@TRANSACTIONTYPE = FINANCIALTRANSACTION.TYPE,
@REVENUEID = FINANCIALTRANSACTION.ID,
@CONSTITUENTKEYNAME = CONSTITUENT.KEYNAME,
@APPLICATIONCODE = REVENUESPLIT_EXT.APPLICATIONCODE,
@APPLICATION2 = REVENUESPLIT_EXT.APPLICATION,
@SPLITTYPECODE = REVENUESPLIT_EXT.TYPECODE
from
dbo.FINANCIALTRANSACTION
inner join
dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
inner join
dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = FINANCIALTRANSACTIONLINEITEM.ID
left join
dbo.CONSTITUENT on CONSTITUENT.ID = FINANCIALTRANSACTION.CONSTITUENTID
where
FINANCIALTRANSACTIONLINEITEM.ID = @REVENUESPLITID;
if @TRANSACTIONTYPECODE = 0 and @APPLICATIONCODE = 3 and @SPLITTYPECODE = 2
set @APPLICATION = 'Recurring membership';
if @TRANSACTIONTYPECODE = 4 and @APPLICATION <> 'All'
begin
set @REFERENCE = left(@CONSTITUENTKEYNAME, 26) + '-' + ' Planned Gift';
return @REFERENCE;
end
if @TRANSACTIONTYPECODE = 5
begin
set @REFERENCE = @TRANSACTIONTYPE + '-' + convert(nvarchar(50),(select SALESORDER.SEQUENCEID from dbo.SALESORDER with (nolock) where REVENUEID = @REVENUEID)) + '-' + left(@APPLICATION,40);
return @REFERENCE;
end
if @PAYMENTMETHOD = 'None'
begin
set @REFERENCE = left(@CONSTITUENTKEYNAME, 46) + '-' + left(@APPLICATION, 40);
return @REFERENCE;
end
if @APPLICATION = 'All'
begin
set @REFERENCE = left(@CONSTITUENTKEYNAME, 66) + '-' + left(@PAYMENTMETHOD, 22);
return @REFERENCE;
end
if @APPLICATION = 'Gift aid'
begin
set @REFERENCE = left(@CONSTITUENTKEYNAME, 66) + '-' + left(@APPLICATION, 20);
return @REFERENCE;
end
if @APPLICATION = 'Gift fee'
begin
if @APPLICATIONCODE not in(0, 2, 4, 12)
begin
set @REFERENCE = left(@CONSTITUENTKEYNAME, 26) + '-' + left(@APPLICATION2, 35) + ' Payment-' + left(@PAYMENTMETHOD, 15) + '-Gift fee';
return @REFERENCE;
end
if @APPLICATIONCODE = 2
begin
set @REFERENCE = left(@CONSTITUENTKEYNAME, 26) + '-' + left(coalesce((
select top 1 DETAIL.[TYPE]
from dbo.INSTALLMENTPAYMENT
inner join dbo.FINANCIALTRANSACTION as PLEDGE on INSTALLMENTPAYMENT.PLEDGEID = PLEDGE.ID
left join dbo.REVENUEPOSTED as PLEDGEPOSTED on PLEDGE.ID = PLEDGEPOSTED.ID
cross apply dbo.UFN_POSTTOGLPROCESS_MAPPLEDGEPAYMENTS(PLEDGE.ID, case when PLEDGE.POSTSTATUSCODE = 3 then 2 when PLEDGEPOSTED.ID is not null then 0 else 1 end) as DETAIL
where INSTALLMENTPAYMENT.PAYMENTID = @REVENUESPLITID),
@APPLICATION2 + ' Payment'), 35) + '-' + left(@PAYMENTMETHOD, 15) + '-Gift fee';
return @REFERENCE;
end
set @REFERENCE = left(coalesce(@CONSTITUENTKEYNAME, ''), 26) + '-' + left(@APPLICATION2, 35) + '-' + left(@PAYMENTMETHOD, 15) + '-Gift fee'
return @REFERENCE;
end
if @TRANSACTIONTYPECODE = 0
begin
if @APPLICATIONCODE = 10
begin
set @REFERENCE = @TRANSACTIONTYPE + '-' + left(@APPLICATION,40) + '-' + coalesce(CONVERT(NVARCHAR(50),(select SALESORDER.SEQUENCEID from dbo.SALESORDER with (nolock) where ID = (select SALESORDERID from dbo.SALESORDERPAYMENT where PAYMENTID = @REVENUEID))), '');
return @REFERENCE;
end
if @APPLICATIONCODE = 4
begin
set @REFERENCE = left(@CONSTITUENTKEYNAME, 66) + '-' + left(@APPLICATION, 40) + ' Revenue' + '-' + left(@PAYMENTMETHOD, 20);
return @REFERENCE;
end
if @APPLICATIONCODE = 11
begin
set @REFERENCE = @TRANSACTIONTYPE + '-' + left(@APPLICATION,40) + '-' + left(@PAYMENTMETHOD, 20);
return @REFERENCE;
end
if @APPLICATIONCODE in (5, 19) --if a membership or membership installment plan payment
begin
set @REFERENCE = left(@CONSTITUENTKEYNAME, 26) + '-' + left(@APPLICATION2, 40) + ' Payment' + '-' + left(@PAYMENTMETHOD, 20);
return @REFERENCE;
end
if @APPLICATIONCODE not in (0, 2, 4, 12)
begin
set @REFERENCE = left(@CONSTITUENTKEYNAME, 26) + '-' + left(@APPLICATION, 40) + ' Payment' + '-' + left(@PAYMENTMETHOD, 20);
return @REFERENCE;
end
if @APPLICATIONCODE = 12
begin
if @APPLICATION = 'Auction purchase loss' or @APPLICATION = 'Auction purchase gain'
begin
set @REFERENCE = left(coalesce(@CONSTITUENTKEYNAME, ''), 26) + '-' + left(@APPLICATION,40);
return @REFERENCE;
end
set @REFERENCE = left(coalesce(@CONSTITUENTKEYNAME, ''), 26) + '-' + left(@APPLICATION,40) + ' Payment' + '-' + left(@PAYMENTMETHOD, 20);
return @REFERENCE;
end
end
set @REFERENCE = left(coalesce(@CONSTITUENTKEYNAME, ''), 26) + '-' + left(@APPLICATION, 40) + '-' + left(@PAYMENTMETHOD, 20);
return @REFERENCE;
end
return @REFERENCE;
end