USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEPAYMENTDETAILS_2
The load procedure used by the edit dataform template "Pledge Payment Details 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. |
@PAYMENTMETHODCODE | tinyint | INOUT | Payment method |
@AUTOPAY | bit | INOUT | Pay automatically by: |
@CARDHOLDERNAME | nvarchar(255) | INOUT | Name on card |
@CREDITCARDNUMBER | nvarchar(20) | INOUT | Card number |
@CREDITTYPECODEID | uniqueidentifier | INOUT | Card type |
@EXPIRESON | UDT_FUZZYDATE | INOUT | Expires on |
@REFERENCEDATE | UDT_FUZZYDATE | INOUT | Reference date |
@REFERENCENUMBER | nvarchar(20) | INOUT | Reference number |
@ACCOUNTID | uniqueidentifier | INOUT | Account |
@CONSTITUENTID | uniqueidentifier | INOUT | Constituent |
@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. |
@CREDITCARDTOKEN | uniqueidentifier | INOUT | Card token |
@STANDINGORDERSETUP | bit | INOUT | Standing order has been setup |
@STANDINGORDERSETUPDATE | datetime | INOUT | Setup on |
@DDISOURCECODEID | uniqueidentifier | INOUT | DDI source |
@DDISOURCEDATE | date | INOUT | DDI source date |
@SENDPMINSTRUCTION | bit | INOUT | Send instruction |
@PMINSTRUCTIONTOSENDCODE | tinyint | INOUT | Send instruction |
@PMINSTRUCTIONDATE_NEW | date | INOUT | New instruction sent |
@PMINSTRUCTIONDATE_CANCEL | date | INOUT | Cancel instruction sent |
@PMINSTRUCTIONDATE_SETUP | date | INOUT | Set-up instruction sent |
@PMADVANCENOTICESENTDATE | date | INOUT | Advance notice sent |
@UPDATEOTHERTRANSACTIONSTOUSENEWCREDITCARD | bit | INOUT | Update other transactions to use new credit card |
@OTHERTRANSACTIONSUSEEXISTINGCREDITCARD | bit | INOUT | Other transactions use existing credit card? |
@USESYSTEMGENERATEDREFERENCENUMBER | bit | INOUT | Use system-generated reference number |
@STANDINGORDERREFERENCENUMBER | nvarchar(18) | INOUT | Reference number |
@SEPAMANDATEID | uniqueidentifier | INOUT | |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLEDGEPAYMENTDETAILS_2
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@PAYMENTMETHODCODE tinyint = null output,
@AUTOPAY bit = null output,
@CARDHOLDERNAME nvarchar(255) = null output,
@CREDITCARDNUMBER nvarchar(20) = null output,
@CREDITTYPECODEID uniqueidentifier = null output,
@EXPIRESON dbo.UDT_FUZZYDATE = null output,
@REFERENCEDATE dbo.UDT_FUZZYDATE = null output,
@REFERENCENUMBER nvarchar(20) = null output,
@ACCOUNTID uniqueidentifier = null output,
@CONSTITUENTID uniqueidentifier = null output,
@TSLONG bigint = 0 output,
@CREDITCARDTOKEN uniqueidentifier = null output,
@STANDINGORDERSETUP bit = null output,
@STANDINGORDERSETUPDATE datetime = null output,
@DDISOURCECODEID uniqueidentifier = null output,
@DDISOURCEDATE date = null output,
@SENDPMINSTRUCTION bit = null output,
@PMINSTRUCTIONTOSENDCODE tinyint = null output,
@PMINSTRUCTIONDATE_NEW date = null output,
@PMINSTRUCTIONDATE_CANCEL date = null output,
@PMINSTRUCTIONDATE_SETUP date = null output,
@PMADVANCENOTICESENTDATE date = null output,
@UPDATEOTHERTRANSACTIONSTOUSENEWCREDITCARD bit = null output,
@OTHERTRANSACTIONSUSEEXISTINGCREDITCARD bit = null output,
@USESYSTEMGENERATEDREFERENCENUMBER bit = null output,
@STANDINGORDERREFERENCENUMBER nvarchar(18) = null output,
@SEPAMANDATEID uniqueidentifier = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output
)
as
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
set @UPDATEOTHERTRANSACTIONSTOUSENEWCREDITCARD = 0;
declare @CREDITCARDID uniqueidentifier;
select
@DATALOADED = 1,
@PAYMENTMETHODCODE = REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE,
@CARDHOLDERNAME = CREDITCARD.CARDHOLDERNAME,
@CREDITCARDNUMBER = CREDITCARD.CREDITCARDPARTIALNUMBER,
@CREDITTYPECODEID = CREDITCARD.CREDITTYPECODEID,
@EXPIRESON = CREDITCARD.EXPIRESON,
@CONSTITUENTID = FINANCIALTRANSACTION.CONSTITUENTID,
@TSLONG = FINANCIALTRANSACTION.TSLONG,
@CREDITCARDTOKEN = CREDITCARD.CREDITCARDTOKEN,
@CREDITCARDID = CREDITCARD.ID,
@TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
from dbo.FINANCIALTRANSACTION
inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
inner join dbo.REVENUEPAYMENTMETHOD
on REVENUEPAYMENTMETHOD.REVENUEID = FINANCIALTRANSACTION.ID
left join dbo.REVENUESCHEDULE on FINANCIALTRANSACTION.ID = REVENUESCHEDULE.ID
left join dbo.CREDITCARD on CREDITCARD.ID = REVENUESCHEDULE.CREDITCARDID
where FINANCIALTRANSACTION.ID = @ID and FINANCIALTRANSACTION.TYPECODE in (1,15)
and FINANCIALTRANSACTION.DELETEDON is null
set @OTHERTRANSACTIONSUSEEXISTINGCREDITCARD = 0;
if exists ( select 1
from dbo.REVENUESCHEDULE
where
CREDITCARDID = @CREDITCARDID and
ID <> @ID
union all
select 1
from dbo.BATCHREVENUE
inner join dbo.BATCH on BATCHREVENUE.BATCHID = BATCH.ID
where
BATCH.STATUSCODE = 0 and -- Uncommitted
CREDITCARDID = @CREDITCARDID)
set @OTHERTRANSACTIONSUSEEXISTINGCREDITCARD = 1;
if @PAYMENTMETHODCODE = 3 --Direct Debit
--Direct Debit w/ Paperless mandate fields is UK only
if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('9568A6C2-F7AA-45fd-8F54-21FE9654EE2D') = 1
begin
select
@REFERENCEDATE = REVENUESCHEDULEDIRECTDEBITPAYMENT.REFERENCEDATE,
@REFERENCENUMBER = REVENUESCHEDULEDIRECTDEBITPAYMENT.REFERENCENUMBER,
@ACCOUNTID = REVENUESCHEDULEDIRECTDEBITPAYMENT.CONSTITUENTACCOUNTID,
@DDISOURCECODEID = REVENUESCHEDULEDIRECTDEBITPAYMENT.DDISOURCECODEID,
@DDISOURCEDATE = REVENUESCHEDULEDIRECTDEBITPAYMENT.DDISOURCEDATE,
@SENDPMINSTRUCTION = REVENUESCHEDULEDIRECTDEBITPAYMENT.SENDPMINSTRUCTION,
@PMINSTRUCTIONTOSENDCODE = case when REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONTOSENDCODE = 0 then null else REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONTOSENDCODE end,
@PMINSTRUCTIONDATE_NEW = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONDATE_NEW,
@PMINSTRUCTIONDATE_CANCEL = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONDATE_CANCEL,
@PMINSTRUCTIONDATE_SETUP = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONDATE_SETUP,
@PMADVANCENOTICESENTDATE = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMADVANCENOTICESENTDATE,
@SEPAMANDATEID = REVENUESCHEDULEDIRECTDEBITPAYMENT.SEPAMANDATEID
from
dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
where
REVENUESCHEDULEDIRECTDEBITPAYMENT.ID = @ID;
end
else
begin
select
@REFERENCEDATE = REVENUESCHEDULEDIRECTDEBITPAYMENT.REFERENCEDATE,
@REFERENCENUMBER = REVENUESCHEDULEDIRECTDEBITPAYMENT.REFERENCENUMBER,
@ACCOUNTID = REVENUESCHEDULEDIRECTDEBITPAYMENT.CONSTITUENTACCOUNTID,
@SEPAMANDATEID = REVENUESCHEDULEDIRECTDEBITPAYMENT.SEPAMANDATEID
from
dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
where
REVENUESCHEDULEDIRECTDEBITPAYMENT.ID = @ID;
end
if @PAYMENTMETHODCODE = 11 --Standing order
select
@REFERENCEDATE = REFERENCEDATE,
@STANDINGORDERREFERENCENUMBER = dbo.UFN_STANDINGORDER_REFERENCENUMBER_FORDISPLAY(REVENUESCHEDULESTANDINGORDERPAYMENT.ID),
@ACCOUNTID = CONSTITUENTACCOUNTID,
@STANDINGORDERSETUP = STANDINGORDERSETUP,
@STANDINGORDERSETUPDATE = STANDINGORDERSETUPDATE,
@USESYSTEMGENERATEDREFERENCENUMBER = USESYSTEMGENERATEDREFERENCENUMBER
from dbo.REVENUESCHEDULESTANDINGORDERPAYMENT
left join dbo.REVENUESTANDINGORDER on REVENUESTANDINGORDER.ID = REVENUESCHEDULESTANDINGORDERPAYMENT.ID
where REVENUESCHEDULESTANDINGORDERPAYMENT.ID = @ID
if @PAYMENTMETHODCODE = 9
set @AUTOPAY = 0
else
set @AUTOPAY = 1
return 0