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;