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