USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEWRITEOFF2
The load procedure used by the edit dataform template "Pledge Write-off Edit Form 2"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@CONSTITUENTNAME | nvarchar(700) | INOUT | |
@PLEDGEDATE | datetime | INOUT | Pledged on |
@PLEDGEBALANCE | money | INOUT | Pledge balance |
@DATE | datetime | INOUT | Date |
@WRITEOFFTOTALAMOUNT | money | INOUT | Amount |
@POSTSTATUSCODE | tinyint | INOUT | GL post status |
@POSTDATE | datetime | INOUT | GL post date |
@REASON | nvarchar(300) | INOUT | Details |
@INSTALLMENTS | xml | INOUT | |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@REASONCODEID | uniqueidentifier | INOUT | Reason code |
@TRANSACTIONTYPECODE | tinyint | INOUT | Transaction type code |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Transaction currency |
@ALLOWGLDISTRIBUTIONS | bit | INOUT | Allow GL distributions |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEWRITEOFF2
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@CONSTITUENTNAME nvarchar(700) = null output,
@PLEDGEDATE datetime = null output,
@PLEDGEBALANCE money = null output,
@DATE datetime = null output,
@WRITEOFFTOTALAMOUNT money = null output,
@POSTSTATUSCODE tinyint = null output,
@POSTDATE datetime = null output,
@REASON nvarchar(300) = null output,
@INSTALLMENTS xml = null output,
@TSLONG bigint = 0 output,
@REASONCODEID uniqueidentifier = null output,
@TRANSACTIONTYPECODE tinyint = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output,
@ALLOWGLDISTRIBUTIONS bit = null output
)
as
begin
set nocount on;
declare @REVENUEID uniqueidentifier;
set @DATALOADED = 0;
set @TSLONG = 0;
select
@CONSTITUENTNAME = NF.NAME,
@PLEDGEDATE = FINANCIALTRANSACTION.DATE,
@PLEDGEBALANCE = dbo.UFN_PLEDGE_GETBALANCE(FINANCIALTRANSACTION.ID),
@DATE = WRITEOFF.DATE,
@WRITEOFFTOTALAMOUNT = (select sum(TRANSACTIONAMOUNT) from dbo.INSTALLMENTWRITEOFF where WRITEOFFID = WRITEOFF.ID),
@POSTSTATUSCODE = WRITEOFF.POSTSTATUSCODE,
@POSTDATE = WRITEOFF.POSTDATE,
@REASON = WRITEOFF.REASON,
@TSLONG = WRITEOFF.TSLONG,
@DATALOADED = 1,
@REASONCODEID = WRITEOFF.REASONCODEID,
@TRANSACTIONTYPECODE = FINANCIALTRANSACTION.TYPECODE,
@TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID,
@REVENUEID = WRITEOFF.REVENUEID,
@ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(FINANCIALTRANSACTION.PDACCOUNTSYSTEMID) -- Check GL business rule for this account system and set to 'Do not post' if needed.
from
dbo.WRITEOFF
inner join
dbo.FINANCIALTRANSACTION on WRITEOFF.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
WRITEOFF.ID = @ID and FINANCIALTRANSACTION.DELETEDON is null;
if @DATALOADED = 1
set @INSTALLMENTS =
(
select
ID,
DATE,
TRANSACTIONAMOUNT as AMOUNT,
BALANCE,
WRITEOFFAMOUNT,
SEQUENCE,
TRANSACTIONCURRENCYID
from dbo.UFN_WRITEOFF_GETINSTALLMENTSFOREDIT(@ID) WRITEOFFINSTALLMENT
order by SEQUENCE
for xml raw('ITEM'),type,elements,root('INSTALLMENTS'),BINARY BASE64
);
return 0;
end