USP_DATAFORMTEMPLATE_EDITLOAD_BANKACCOUNTDEPOSIT
The load procedure used by the edit dataform template "Bank Account Deposit Edit Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@BANKACCOUNTID | uniqueidentifier | INOUT | Bank account |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@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. |
@REFERENCE | nvarchar(100) | INOUT | Reference |
@DEPOSITDATE | datetime | INOUT | Deposit date |
@POSTSTATUSCODE | tinyint | INOUT | Post status |
@POSTDATE | datetime | INOUT | Post date |
@PROJECTEDNUMBEROFPAYMENTS | int | INOUT | Number of payments |
@PROJECTEDAMOUNT | numeric(19, 4) | INOUT | Amount |
@STATUSCODE | tinyint | INOUT | Status |
@PDACCOUNTSYSTEMID | uniqueidentifier | INOUT | Account System |
@HASLINKS | bit | INOUT | Has links |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Payment currency |
@TRANSACTIONEXCHANGERATEID | uniqueidentifier | INOUT | Payment exchange rate |
@TRANSACTIONEXCHANGERATE | decimal(20, 8) | INOUT | Exchange rate |
@BASECURRENCYID | uniqueidentifier | INOUT | Base currency |
@BASEEXCHANGERATEID | uniqueidentifier | INOUT | Exchange rate ID |
@BASEEXCHANGERATE | decimal(20, 8) | INOUT | Exchange rate |
@BANKACCOUNTCURRENCYID | uniqueidentifier | INOUT | Bank account currency |
@HADTRANSACTIONSPOTRATE | bit | INOUT | Had transaction spot rate |
@HADBASESPOTRATE | bit | INOUT | Had base spot rate |
@TOTALPAYMENTAMOUNT | money | INOUT | Total linked payments |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_BANKACCOUNTDEPOSIT(
@ID uniqueidentifier,
@BANKACCOUNTID uniqueidentifier = null output,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@REFERENCE nvarchar(100) = null output,
@DEPOSITDATE datetime = null output,
@POSTSTATUSCODE tinyint = null output,
@POSTDATE datetime = null output,
@PROJECTEDNUMBEROFPAYMENTS int = null output,
@PROJECTEDAMOUNT numeric(19,4) = null output,
@STATUSCODE tinyint = null output,
@PDACCOUNTSYSTEMID uniqueidentifier = null output
,@HASLINKS bit = null output
,@TRANSACTIONCURRENCYID uniqueidentifier = null output
,@TRANSACTIONEXCHANGERATEID uniqueidentifier = null output
,@TRANSACTIONEXCHANGERATE decimal(20,8) = null output
,@BASECURRENCYID uniqueidentifier = null output
,@BASEEXCHANGERATEID uniqueidentifier = null output
,@BASEEXCHANGERATE decimal(20,8) = null output
,@BANKACCOUNTCURRENCYID uniqueidentifier = null output
,@HADTRANSACTIONSPOTRATE bit = null output
,@HADBASESPOTRATE bit = null output
,@TOTALPAYMENTAMOUNT money = null output
)
as
set nocount on;
-- be sure to set these, in case the select returns no rows
set @DATALOADED = 0
set @TSLONG = 0
-- populate the output parameters, which correspond to fields on the form. Note that
-- we set @DATALOADED = 1 to indicate that the load was successful. Otherwise, the system
-- will display a "no data loaded" message. Also note that we fetch the TSLONG so that concurrency
-- can be considered.
select
@DATALOADED = 1,
@TSLONG = BANKACCOUNTDEPOSIT.TSLONG,
@BANKACCOUNTID = BANKACCOUNTTRANSACTION.BANKACCOUNTID,
@REFERENCE = BANKACCOUNTTRANSACTION.REFERENCE,
@DEPOSITDATE = BANKACCOUNTTRANSACTION.TRANSACTIONDATE,
@POSTSTATUSCODE = BANKACCOUNTTRANSACTION.POSTSTATUSCODE,
@POSTDATE = BANKACCOUNTTRANSACTION.POSTDATE,
@PROJECTEDNUMBEROFPAYMENTS = BANKACCOUNTDEPOSIT.PROJECTEDNUMBEROFPAYMENTS,
@PROJECTEDAMOUNT = BANKACCOUNTDEPOSIT.PROJECTEDAMOUNT,
@STATUSCODE = BANKACCOUNTDEPOSIT.STATUSCODE,
@PDACCOUNTSYSTEMID = BANKACCOUNT.PDACCOUNTSYSTEMID
,@TRANSACTIONCURRENCYID = BANKACCOUNTDEPOSIT.TRANSACTIONCURRENCYID
,@TRANSACTIONEXCHANGERATEID = BANKACCOUNTDEPOSIT.TRANSACTIONEXCHANGERATEID
,@TRANSACTIONEXCHANGERATE =
case
when BANKACCOUNTDEPOSIT.TRANSACTIONEXCHANGERATEID is not null
then TRANRATE.RATE
when BANKACCOUNTDEPOSIT.TRANSACTIONCURRENCYID = BANKACCOUNT.TRANSACTIONCURRENCYID
then 1
else 0
end
,@HADTRANSACTIONSPOTRATE =
case
when TRANRATE.TYPECODE = 2
then 1
else 0
end
,@BASECURRENCYID = BANKACCOUNTTRANSACTION.BASECURRENCYID
,@BASEEXCHANGERATEID = BANKACCOUNTTRANSACTION.BASEEXCHANGERATEID
,@BASEEXCHANGERATE =
case
when BANKACCOUNTTRANSACTION.BASEEXCHANGERATEID is not null
then BASERATE.RATE
when BANKACCOUNT.TRANSACTIONCURRENCYID = BANKACCOUNTTRANSACTION.BASECURRENCYID
then 1
else 0
end
,@HADBASESPOTRATE =
case
when BASERATE.TYPECODE = 2
then 1
else 0
end
,@BANKACCOUNTCURRENCYID = BANKACCOUNT.TRANSACTIONCURRENCYID
,@TOTALPAYMENTAMOUNT = BANKACCOUNTDEPOSIT.TOTALPAYMENTAMOUNT
from dbo.BANKACCOUNTDEPOSIT
inner join dbo.BANKACCOUNTTRANSACTION on BANKACCOUNTTRANSACTION.ID = BANKACCOUNTDEPOSIT.ID
inner join dbo.BANKACCOUNT on BANKACCOUNT.ID = BANKACCOUNTTRANSACTION.BANKACCOUNTID
left outer join dbo.CURRENCYEXCHANGERATE TRANRATE on TRANRATE.ID = BANKACCOUNTDEPOSIT.TRANSACTIONEXCHANGERATEID
left outer join dbo.CURRENCYEXCHANGERATE BASERATE on BASERATE.ID = BANKACCOUNTTRANSACTION.BASEEXCHANGERATEID
where BANKACCOUNTDEPOSIT.ID = @ID
if exists(select P.ID from dbo.BANKACCOUNTDEPOSITPAYMENT P where P.DEPOSITID = @ID)
or exists(select C.ID from dbo.BANKACCOUNTDEPOSITCORRECTION C where C.DEPOSITID = @ID)
set @HASLINKS = 1;
else
set @HASLINKS = 0;
return 0;