USP_DATAFORMTEMPLATE_VIEW_REVENUEPAYMENTDETAILSBYTRANSACTION
The load procedure used by the view dataform template "Revenue Payment Details By Transaction View Form"
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. |
@PAYMENTMETHOD | nvarchar(15) | INOUT | Payment method |
@PAYMENTMETHODCODE | tinyint | INOUT | Payment method code |
@AUTOPAY | bit | INOUT | Automatic payment |
@CARDHOLDERNAME | nvarchar(255) | INOUT | Name on card |
@CREDITCARDNUMBER | nvarchar(4) | INOUT | Card number |
@CREDITTYPE | nvarchar(100) | INOUT | Card type |
@EXPIRESON | UDT_FUZZYDATE | INOUT | Expires on |
@REFERENCEDATE | UDT_FUZZYDATE | INOUT | Reference date |
@REFERENCENUMBER | nvarchar(20) | INOUT | Reference number |
@ACCOUNT | nvarchar(100) | INOUT | Account |
@TYPECODE | tinyint | INOUT | Type code |
@STANDINGORDERSETUP | bit | INOUT | Standing order setup |
@STANDINGORDERSETUPDATE | datetime | INOUT | Setup on |
@DDISOURCE | nvarchar(100) | INOUT | DDI source |
@DDISOURCEDATE | date | INOUT | DDI source date |
@SENDPMINSTRUCTION | bit | INOUT | Instruction pending flag |
@PMINSTRUCTIONTOSEND | nvarchar(10) | INOUT | Instruction pending |
@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 |
@SEPAMANDATELOOKUPID | nvarchar(35) | INOUT | |
@SEPAMANDATESIGNATUREDATE | datetime | INOUT | |
@CONSTITUENTACCOUNTID | uniqueidentifier | INOUT | |
@SEPAMANDATESTATUSCODE | tinyint | INOUT | |
@OTHERPAYMENTMETHODCODEID | uniqueidentifier | INOUT | |
@CREDITCARDUPDATEDATE | date | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_REVENUEPAYMENTDETAILSBYTRANSACTION
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@PAYMENTMETHOD nvarchar(15) = null output,
@PAYMENTMETHODCODE tinyint = null output,
@AUTOPAY bit = null output,
@CARDHOLDERNAME nvarchar(255) = null output,
@CREDITCARDNUMBER nvarchar(4) = null output,
@CREDITTYPE nvarchar(100) = null output,
@EXPIRESON dbo.UDT_FUZZYDATE = null output,
@REFERENCEDATE dbo.UDT_FUZZYDATE = null output,
@REFERENCENUMBER nvarchar(20) = null output,
@ACCOUNT nvarchar(100) = null output,
@TYPECODE tinyint = null output,
@STANDINGORDERSETUP bit = null output,
@STANDINGORDERSETUPDATE datetime = null output,
@DDISOURCE nvarchar(100) = null output,
@DDISOURCEDATE date = null output,
@SENDPMINSTRUCTION bit = null output,
@PMINSTRUCTIONTOSEND nvarchar(10) = null output,
@PMINSTRUCTIONDATE_NEW date = null output,
@PMINSTRUCTIONDATE_CANCEL date = null output,
@PMINSTRUCTIONDATE_SETUP date = null output,
@PMADVANCENOTICESENTDATE date = null output,
@SEPAMANDATELOOKUPID nvarchar(35) = null output,
@SEPAMANDATESIGNATUREDATE datetime = null output,
@CONSTITUENTACCOUNTID uniqueidentifier = null output,
@SEPAMANDATESTATUSCODE tinyint = null output,
@OTHERPAYMENTMETHODCODEID uniqueidentifier = null output,
@CREDITCARDUPDATEDATE date = null output
)
as
set nocount on;
declare @REVENUEID uniqueidentifier;
set @DATALOADED = 0;
select top 1
@DATALOADED = 1,
@REVENUEID = FINANCIALTRANSACTION.ID,
@PAYMENTMETHOD = REVENUEPAYMENTMETHOD.PAYMENTMETHOD,
@PAYMENTMETHODCODE = case when (FINANCIALTRANSACTION.TYPECODE = 2 and REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 2 and REVENUESCHEDULE.CREDITCARDID is null)
then 98 else REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE end,
@CARDHOLDERNAME = case when (FINANCIALTRANSACTION.TYPECODE = 2 and REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 2 and REVENUESCHEDULE.CREDITCARDID is null)
then CD.CARDHOLDERNAME else CREDITCARD.CARDHOLDERNAME end,
@CREDITCARDNUMBER = case when (FINANCIALTRANSACTION.TYPECODE = 2 and REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 2 and REVENUESCHEDULE.CREDITCARDID is null)
then CD.CREDITCARDPARTIALNUMBER else CREDITCARD.CREDITCARDPARTIALNUMBER end,
@CREDITTYPE = case when (FINANCIALTRANSACTION.TYPECODE = 2 and REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 2 and REVENUESCHEDULE.CREDITCARDID is null)
then dbo.UFN_CREDITTYPECODE_GETDESCRIPTION(CD.CREDITTYPECODEID) else dbo.UFN_CREDITTYPECODE_GETDESCRIPTION(CREDITCARD.CREDITTYPECODEID) end,
@EXPIRESON = case when (FINANCIALTRANSACTION.TYPECODE = 2 and REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE = 2 and REVENUESCHEDULE.CREDITCARDID is null)
then CD.EXPIRESON else CREDITCARD.EXPIRESON end,
@TYPECODE = FINANCIALTRANSACTION.TYPECODE,
@OTHERPAYMENTMETHODCODEID = OTHERPAYMENTMETHODDETAIL.OTHERPAYMENTMETHODCODEID,
@REFERENCENUMBER = OTHERPAYMENTMETHODDETAIL.REFERENCENUMBER,
@REFERENCEDATE = OTHERPAYMENTMETHODDETAIL.REFERENCEDATE
from dbo.FINANCIALTRANSACTION
inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
inner join dbo.REVENUEPAYMENTMETHOD on FINANCIALTRANSACTION.ID = REVENUEPAYMENTMETHOD.REVENUEID
left join dbo.REVENUESCHEDULE on FINANCIALTRANSACTION.ID = REVENUESCHEDULE.ID
left join dbo.CREDITCARD on CREDITCARD.ID = REVENUESCHEDULE.CREDITCARDID
left join dbo.CREDITCARDPAYMENTMETHODDETAIL CD on CD.ID = REVENUEPAYMENTMETHOD.ID
left join dbo.OTHERPAYMENTMETHODDETAIL on OTHERPAYMENTMETHODDETAIL.ID = REVENUEPAYMENTMETHOD.ID
where
FINANCIALTRANSACTION.ID = @ID
and FINANCIALTRANSACTION.DELETEDON is null
-- if there are credit card updates, get the latest one
select top 1
@CREDITCARDUPDATEDATE = CCU.DATEPROCESSED
from
dbo.FINANCIALTRANSACTION FT
inner join dbo.REVENUESCHEDULE RS on RS.ID = FT.ID
inner join dbo.CREDITCARDUPDATE CCU on CCU.CREDITCARDID = RS.CREDITCARDID
where
FT.ID = @ID
and FT.DELETEDON is null
and CCU.STATUSCODE = 1 --Updated
order by
CCU.DATEPROCESSED desc,
CCU.DATEADDED desc
if @PAYMENTMETHODCODE = 3 --Direct Debit
select
@REFERENCEDATE = REVENUESCHEDULEDIRECTDEBITPAYMENT.REFERENCEDATE,
@REFERENCENUMBER = REVENUESCHEDULEDIRECTDEBITPAYMENT.REFERENCENUMBER,
@ACCOUNT = dbo.UFN_CONSTITUENTACCOUNT_GETDESCRIPTION(REVENUESCHEDULEDIRECTDEBITPAYMENT.CONSTITUENTACCOUNTID),
@DDISOURCE = coalesce((select DESCRIPTION from dbo.DDISOURCECODE where ID = DDISOURCECODEID), N''),
@DDISOURCEDATE = REVENUESCHEDULEDIRECTDEBITPAYMENT.DDISOURCEDATE,
@SENDPMINSTRUCTION = REVENUESCHEDULEDIRECTDEBITPAYMENT.SENDPMINSTRUCTION,
@PMINSTRUCTIONTOSEND = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONTOSEND,
@PMINSTRUCTIONDATE_NEW = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONDATE_NEW,
@PMINSTRUCTIONDATE_CANCEL = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONDATE_CANCEL,
@PMINSTRUCTIONDATE_SETUP = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMINSTRUCTIONDATE_SETUP,
@PMADVANCENOTICESENTDATE = REVENUESCHEDULEDIRECTDEBITPAYMENT.PMADVANCENOTICESENTDATE,
@CONSTITUENTACCOUNTID = REVENUESCHEDULEDIRECTDEBITPAYMENT.CONSTITUENTACCOUNTID,
@SEPAMANDATELOOKUPID = SEPAMANDATE.LOOKUPID,
@SEPAMANDATESIGNATUREDATE = SEPAMANDATE.SIGNATUREDATE,
@SEPAMANDATESTATUSCODE = SEPAMANDATE.STATUSCODE
from dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
left join dbo.SEPAMANDATE on SEPAMANDATE.ID = REVENUESCHEDULEDIRECTDEBITPAYMENT.SEPAMANDATEID
where REVENUESCHEDULEDIRECTDEBITPAYMENT.ID = @REVENUEID;
if @PAYMENTMETHODCODE = 11 --Standing order
select
@REFERENCEDATE = REFERENCEDATE,
@REFERENCENUMBER = dbo.UFN_STANDINGORDER_REFERENCENUMBER_FORDISPLAY(@REVENUEID),
@ACCOUNT = dbo.UFN_CONSTITUENTACCOUNT_GETDESCRIPTION(CONSTITUENTACCOUNTID),
@STANDINGORDERSETUP = STANDINGORDERSETUP,
@STANDINGORDERSETUPDATE = STANDINGORDERSETUPDATE
from dbo.REVENUESCHEDULESTANDINGORDERPAYMENT
where ID = @REVENUEID
if @PAYMENTMETHODCODE = 9
set @AUTOPAY = 0
else
set @AUTOPAY = 1
return 0