USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEWRITEOFFBATCHROW
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@TSLONG | bigint | INOUT | |
@SEQUENCE | int | INOUT | |
@REVENUEID | uniqueidentifier | INOUT | |
@CONSTITUENTNAME | nvarchar(700) | INOUT | |
@PLEDGEDATE | datetime | INOUT | |
@PLEDGEBALANCE | money | INOUT | |
@POSTDATE | datetime | INOUT | |
@POSTSTATUSCODE | tinyint | INOUT | |
@DATE | datetime | INOUT | |
@WRITEOFFTOTALAMOUNT | money | INOUT | |
@REASON | nvarchar(300) | INOUT | |
@INSTALLMENTS | xml | INOUT | |
@REASONCODEID | uniqueidentifier | INOUT | |
@TRANSACTIONTYPECODE | tinyint | INOUT | |
@PLEDGEAMOUNTMINUSWRITEOFFS | money | INOUT | |
@RECOGNITIONCREDITADJUSTMENTCODE | tinyint | INOUT | |
@RECOGNITIONCREDITS | xml | INOUT | |
@REVENUESPLITS | xml | INOUT | |
@ORIGINALPLEDGEAMOUNT | money | INOUT | |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | |
@BASECURRENCYID | uniqueidentifier | INOUT | |
@EXCHANGERATE | decimal(20, 8) | INOUT | |
@ALLOWGLDISTRIBUTIONS | bit | INOUT | |
@USERMANUALLYADJUSTEDRECOGNITIONCREDITS | bit | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEWRITEOFFBATCHROW (
@ID uniqueidentifier
,@DATALOADED bit = 0 output
,@TSLONG bigint = 0 output
,@SEQUENCE integer = null output
,@REVENUEID uniqueidentifier = null output
,@CONSTITUENTNAME nvarchar(700) = null output
,@PLEDGEDATE datetime = null output
,@PLEDGEBALANCE money = null output
,@POSTDATE datetime = null output
,@POSTSTATUSCODE tinyint = null output
,@DATE datetime = null output
,@WRITEOFFTOTALAMOUNT money = null output
,@REASON nvarchar(300) = null output
,@INSTALLMENTS xml = null output
,@REASONCODEID uniqueidentifier = null output
,@TRANSACTIONTYPECODE tinyint = null output
,@PLEDGEAMOUNTMINUSWRITEOFFS money = null output
,@RECOGNITIONCREDITADJUSTMENTCODE tinyint = null output
,@RECOGNITIONCREDITS xml = null output
,@REVENUESPLITS xml = null output
,@ORIGINALPLEDGEAMOUNT money = null output
,@TRANSACTIONCURRENCYID uniqueidentifier = null output
,@BASECURRENCYID uniqueidentifier = null output
,@EXCHANGERATE decimal(20, 8) = null output
,@ALLOWGLDISTRIBUTIONS bit = null output
,@USERMANUALLYADJUSTEDRECOGNITIONCREDITS bit = null output
)
as
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
select @TSLONG = B.TSLONG
,@DATALOADED = 1
,@CONSTITUENTNAME = NF.name
,@PLEDGEDATE = FINANCIALTRANSACTION.date
,@PLEDGEBALANCE = dbo.UFN_PLEDGE_GETBALANCE(FINANCIALTRANSACTION.ID)
,@DATE = B.date
,@WRITEOFFTOTALAMOUNT = B.WRITEOFFTOTALAMOUNT
,@POSTSTATUSCODE = B.POSTSTATUSCODE
,@POSTDATE = B.POSTDATE
,@REASON = B.REASON
,@REASONCODEID = B.REASONCODEID
,@RECOGNITIONCREDITADJUSTMENTCODE = B.RECOGNITIONCREDITADJUSTMENTCODE
,@TRANSACTIONTYPECODE = FINANCIALTRANSACTION.TYPECODE
,@TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
,@BASECURRENCYID = FINANCIALTRANSACTION.BASEEXCHANGERATEID
,@EXCHANGERATE = COALESCE(CURRENCYEXCHANGERATE.RATE, 1)
,@REVENUEID = B.REVENUEID
,@SEQUENCE = B.SEQUENCE
,@PLEDGEAMOUNTMINUSWRITEOFFS = (
FINANCIALTRANSACTION.TRANSACTIONAMOUNT - coalesce((
select sum(INSTALLMENTSPLITWRITEOFF.TRANSACTIONAMOUNT)
from dbo.INSTALLMENTSPLITWRITEOFF
inner join dbo.INSTALLMENTSPLIT on INSTALLMENTSPLITWRITEOFF.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
where INSTALLMENTSPLIT.PLEDGEID = @REVENUEID
), 0)
)
,@ORIGINALPLEDGEAMOUNT = FINANCIALTRANSACTION.TRANSACTIONAMOUNT
,@USERMANUALLYADJUSTEDRECOGNITIONCREDITS = B.USERMANUALLYADJUSTEDRECOGNITIONCREDITS
from dbo.BATCHPLEDGEWRITEOFF B
inner join dbo.FINANCIALTRANSACTION on B.REVENUEID = FINANCIALTRANSACTION.ID
inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(FINANCIALTRANSACTION.CONSTITUENTID) NF
left join dbo.CURRENCYEXCHANGERATE on FINANCIALTRANSACTION.BASEEXCHANGERATEID = CURRENCYEXCHANGERATE.ID
where B.ID = @ID
and FINANCIALTRANSACTION.DELETEDON is null;
if @DATALOADED = 1
begin
declare @BATCHSTATUS tinyint;
select @BATCHSTATUS=COALESCE(STATUSCODE,0) from dbo.BATCH inner join dbo.BATCHPLEDGEWRITEOFF on BATCH.ID=BATCHPLEDGEWRITEOFF.BATCHID where BATCHPLEDGEWRITEOFF.ID=@ID;
if @BATCHSTATUS=0 --uncommitted batches only
set @INSTALLMENTS = (
select ID
,INSTALLMENTID
,date
,TRANSACTIONAMOUNT as AMOUNT
,BALANCE
,WRITEOFFAMOUNT
,SEQUENCE
,TRANSACTIONCURRENCYID
from dbo.UFN_PLEDGEWRITEOFFBATCH_GETINSTALLMENTS(@ID, @REVENUEID) WRITEOFFINSTALLMENT
order by SEQUENCE
for xml raw('ITEM')
,type
,elements
,root('INSTALLMENTS')
,binary BASE64
);
else
set @INSTALLMENTS = (select
BATCHPLEDGEWRITEOFFINSTALLMENT.ID,
INSTALLMENT.ID as INSTALLMENTID,
INSTALLMENT.date,
INSTALLMENT.TRANSACTIONAMOUNT AMOUNT,
A.BALANCE as BALANCE,
COALESCE(BATCHPLEDGEWRITEOFFINSTALLMENT.AMOUNT, 0) as WRITEOFFAMOUNT,
INSTALLMENT.SEQUENCE,
INSTALLMENT.TRANSACTIONCURRENCYID
from dbo.INSTALLMENT
left join dbo.BATCHPLEDGEWRITEOFFINSTALLMENT on INSTALLMENT.ID = BATCHPLEDGEWRITEOFFINSTALLMENT.INSTALLMENTID and BATCHPLEDGEWRITEOFFINSTALLMENT.BATCHPLEDGEWRITEOFFID = @ID
left join dbo.UFN_INSTALLMENT_GETINSTALLMENTBALANCE_BULK() A on A.ID = INSTALLMENT.ID
where INSTALLMENT.REVENUEID = @REVENUEID
order by INSTALLMENT.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(@ID, @REVENUEID) 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 = @REVENUEID
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 = @REVENUEID;
set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
-- ****
return 0;