USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEWRITEOFFBATCHROWCOMMIT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@TSLONG | bigint | INOUT | |
@BATCHROWID | uniqueidentifier | INOUT | |
@CONSTITUENTNAME | nvarchar(700) | INOUT | |
@PLEDGEDATE | datetime | INOUT | |
@PLEDGEBALANCE | money | INOUT | |
@POSTSTATUSCODE | tinyint | INOUT | |
@INSTALLMENTS | xml | INOUT | |
@TRANSACTIONTYPECODE | tinyint | INOUT | |
@RECOGNITIONCREDITS | xml | INOUT | |
@REVENUESPLITS | xml | INOUT | |
@ORIGINALPLEDGEAMOUNT | money | INOUT | |
@PLEDGEAMOUNTMINUSWRITEOFFS | money | INOUT | |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | |
@BASECURRENCYID | uniqueidentifier | INOUT | |
@EXCHANGERATE | decimal(20, 8) | INOUT | |
@ALLOWGLDISTRIBUTIONS | bit | INOUT | |
@WRITEOFFTOTALAMOUNT | money | INOUT | |
@DATE | datetime | INOUT | |
@POSTDATE | datetime | INOUT | |
@REASONCODEID | uniqueidentifier | INOUT | |
@REASON | nvarchar(300) | INOUT | |
@RECOGNITIONCREDITADJUSTMENTCODE | tinyint | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEWRITEOFFBATCHROWCOMMIT (
@ID uniqueidentifier
,@DATALOADED bit = 0 output
,@TSLONG bigint = 0 output
,@BATCHROWID uniqueidentifier = null output
,@CONSTITUENTNAME nvarchar(700) = null output
,@PLEDGEDATE datetime = null output
,@PLEDGEBALANCE money = null output
,@POSTSTATUSCODE tinyint = null output
,@INSTALLMENTS xml = null output
,@TRANSACTIONTYPECODE tinyint = null output
,@RECOGNITIONCREDITS xml = null output
,@REVENUESPLITS xml = null output
,@ORIGINALPLEDGEAMOUNT money = null output
,@PLEDGEAMOUNTMINUSWRITEOFFS money = null output
,@TRANSACTIONCURRENCYID uniqueidentifier = null output
,@BASECURRENCYID uniqueidentifier = null output
,@EXCHANGERATE decimal(20, 8) = null output
,@ALLOWGLDISTRIBUTIONS bit = null output
,@WRITEOFFTOTALAMOUNT money = null output
,@DATE datetime = null output
,@POSTDATE datetime = null output
,@REASONCODEID uniqueidentifier = null output
,@REASON nvarchar(300) = null output
,@RECOGNITIONCREDITADJUSTMENTCODE tinyint = null output
)
as
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
select @TSLONG = FINANCIALTRANSACTION.TSLONG
,@DATALOADED = 1
,@CONSTITUENTNAME = NF.name
,@PLEDGEDATE = FINANCIALTRANSACTION.date
,@PLEDGEBALANCE = dbo.UFN_PLEDGE_GETBALANCE(FINANCIALTRANSACTION.ID)
,@TRANSACTIONTYPECODE = FINANCIALTRANSACTION.TYPECODE
,@TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
,@BASECURRENCYID = FINANCIALTRANSACTION.BASEEXCHANGERATEID
,@EXCHANGERATE = case
when FINANCIALTRANSACTION.TRANSACTIONCURRENCYID = CURRENCYSET.BASECURRENCYID
then 1
else coalesce(CURRENCYEXCHANGERATE.RATE, 0)
end
,@POSTSTATUSCODE = case
when (
case FINANCIALTRANSACTION.POSTSTATUSCODE
when 3
then 1
else 0
end
) = 1
then 2
else 1
end
,@PLEDGEAMOUNTMINUSWRITEOFFS = (
FINANCIALTRANSACTION.TRANSACTIONAMOUNT - coalesce((
select sum(INSTALLMENTSPLITWRITEOFF.TRANSACTIONAMOUNT)
from dbo.INSTALLMENTSPLITWRITEOFF
inner join dbo.INSTALLMENTSPLIT on INSTALLMENTSPLITWRITEOFF.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
where INSTALLMENTSPLIT.PLEDGEID = @ID
), 0)
)
,@ORIGINALPLEDGEAMOUNT = FINANCIALTRANSACTION.TRANSACTIONAMOUNT
from dbo.FINANCIALTRANSACTION
inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
inner join dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(FINANCIALTRANSACTION.CONSTITUENTID) NF
left join dbo.CURRENCYEXCHANGERATE on FINANCIALTRANSACTION.BASEEXCHANGERATEID = CURRENCYEXCHANGERATE.ID
where FINANCIALTRANSACTION.ID = @ID
and FINANCIALTRANSACTION.DELETEDON is null;
if @DATALOADED = 1
begin
set @INSTALLMENTS = (
select ID
,INSTALLMENTID
,date
,TRANSACTIONAMOUNT as AMOUNT
,BALANCE
,WRITEOFFAMOUNT
,SEQUENCE
,TRANSACTIONCURRENCYID
from dbo.UFN_PLEDGEWRITEOFFBATCH_GETINSTALLMENTS(@BATCHROWID, @ID) WRITEOFFINSTALLMENT
order by SEQUENCE
for xml raw('ITEM')
,type
,elements
,root('INSTALLMENTS')
,binary BASE64
);
set @RECOGNITIONCREDITS = (
select ID
,REVENUESPLITID
,DESIGNATIONNAME
,CONSTITUENTNAME
,RECOGNITIONCREDITTYPE
,EFFECTIVEDATE
,ORIGINALAMOUNT
,ADJUSTEDAMOUNT
,BASECURRENCYID
from dbo.UFN_PLEDGEWRITEOFFBATCH_GETRECOGNITIONCREDITS(NULL, @ID) RECOGNITIONCREDITS
order by DESIGNATIONNAME, REVENUESPLITID, CONSTITUENTNAME
for xml raw('ITEM')
,type
,elements
,root('RECOGNITIONCREDITS')
,binary BASE64
);
set @REVENUESPLITS = (
select FINANCIALTRANSACTIONLINEITEM.ID
,FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT [AMOUNT]
,FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
from dbo.FINANCIALTRANSACTIONLINEITEM
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @ID
and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1
for xml raw('ITEM')
,type
,elements
,root('REVENUESPLITS')
,binary BASE64
)
end
-- Check GL business rule for this account system and set to 'Do not post' if needed.
-- ****
declare @PDACCOUNTSYSTEMID uniqueidentifier;
select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID
from dbo.PDACCOUNTSYSTEMFORREVENUE
where ID = @ID;
set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
-- ****
return 0;