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