USP_DATAFORMTEMPLATE_EDIT_PLEDGEPAYMENTDETAILS
The save procedure used by the edit dataform template "Pledge Payment Details Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@PAYMENTMETHODCODE | tinyint | IN | Payment method |
@AUTOPAY | bit | IN | Pay automatically by: |
@CARDHOLDERNAME | nvarchar(255) | IN | Name on card |
@CREDITCARDNUMBER | nvarchar(20) | IN | Card number |
@CREDITTYPECODEID | uniqueidentifier | IN | Card type |
@EXPIRESON | UDT_FUZZYDATE | IN | Expires on |
@REFERENCEDATE | UDT_FUZZYDATE | IN | Reference date |
@REFERENCENUMBER | nvarchar(20) | IN | Reference number |
@ACCOUNTID | uniqueidentifier | IN | Account |
@CREDITCARDTOKEN | uniqueidentifier | IN | Card token |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PLEDGEPAYMENTDETAILS
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@PAYMENTMETHODCODE tinyint,
@AUTOPAY bit,
@CARDHOLDERNAME nvarchar(255),
@CREDITCARDNUMBER nvarchar(20),
@CREDITTYPECODEID uniqueidentifier,
@EXPIRESON dbo.UDT_FUZZYDATE,
@REFERENCEDATE dbo.UDT_FUZZYDATE,
@REFERENCENUMBER nvarchar(20),
@ACCOUNTID uniqueidentifier,
@CREDITCARDTOKEN uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE datetime;
begin try
if @AUTOPAY = 0
set @PAYMENTMETHODCODE = 9;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
if @PAYMENTMETHODCODE <> 2 --Credit card
set @CREDITCARDTOKEN = null
if @CREDITCARDTOKEN is null
update dbo.REVENUESCHEDULE set
CREDITCARDID = null,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
update dbo.REVENUEPAYMENTMETHOD
set PAYMENTMETHODCODE = @PAYMENTMETHODCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where REVENUEID = @ID;
declare @NEWCREDITCARDID uniqueidentifier
if @PAYMENTMETHODCODE = 2 --Credit debit
begin
declare @PREVIOUSCREDITCARDID uniqueidentifier
select @PREVIOUSCREDITCARDID = CREDITCARDID
from dbo.REVENUESCHEDULE where ID = @ID
exec dbo.USP_CREDITCARD_SAVE
@ID = @NEWCREDITCARDID output,
@CREDITCARDTOKEN = @CREDITCARDTOKEN,
@CARDHOLDERNAME = @CARDHOLDERNAME,
@CREDITCARDPARTIALNUMBER = @CREDITCARDNUMBER,
@CREDITTYPECODEID = @CREDITTYPECODEID,
@EXPIRESON = @EXPIRESON,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTDATE = @CURRENTDATE,
@PREVIOUSCREDITCARDID = @PREVIOUSCREDITCARDID,
@OWNINGRECORDID = @ID
end
update dbo.REVENUESCHEDULE set
CREDITCARDID = @NEWCREDITCARDID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
if @PAYMENTMETHODCODE = 3 --Direct debit
begin
update dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
set
REFERENCEDATE = @REFERENCEDATE,
REFERENCENUMBER = @REFERENCENUMBER,
CONSTITUENTACCOUNTID = @ACCOUNTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
if @@ROWCOUNT = 0
insert into dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
(ID, REFERENCEDATE, REFERENCENUMBER, CONSTITUENTACCOUNTID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, @REFERENCEDATE, @REFERENCENUMBER, @ACCOUNTID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
end
else
exec dbo.USP_REVENUESCHEDULEDIRECTDEBITPAYMENT_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
close symmetric key sym_BBInfinity;
return 1;
end catch
return 0;