USP_DATAFORMTEMPLATE_EDIT_PLEDGEPAYMENTDETAILS_6
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@PAYMENTMETHODCODE | tinyint | IN | |
@AUTOPAY | bit | IN | |
@CARDHOLDERNAME | nvarchar(255) | IN | |
@CREDITCARDNUMBER | nvarchar(20) | IN | |
@CREDITTYPECODEID | uniqueidentifier | IN | |
@EXPIRESON | UDT_FUZZYDATE | IN | |
@REFERENCEDATE | UDT_FUZZYDATE | IN | |
@REFERENCENUMBER | nvarchar(20) | IN | |
@ACCOUNTID | uniqueidentifier | IN | |
@CREDITCARDTOKEN | uniqueidentifier | IN | |
@STANDINGORDERSETUP | bit | IN | |
@STANDINGORDERSETUPDATE | datetime | IN | |
@DDISOURCECODEID | uniqueidentifier | IN | |
@DDISOURCEDATE | date | IN | |
@SENDPMINSTRUCTION | bit | IN | |
@PMINSTRUCTIONTOSENDCODE | tinyint | IN | |
@PMINSTRUCTIONDATE_NEW | date | IN | |
@PMINSTRUCTIONDATE_CANCEL | date | IN | |
@PMINSTRUCTIONDATE_SETUP | date | IN | |
@PMADVANCENOTICESENTDATE | date | IN | |
@UPDATEOTHERTRANSACTIONSTOUSENEWCREDITCARD | bit | IN | |
@USESYSTEMGENERATEDREFERENCENUMBER | bit | IN | |
@STANDINGORDERREFERENCENUMBER | nvarchar(18) | IN | |
@SEPAMANDATEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PLEDGEPAYMENTDETAILS_6
(
@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,
@STANDINGORDERSETUP bit,
@STANDINGORDERSETUPDATE datetime,
@DDISOURCECODEID uniqueidentifier,
@DDISOURCEDATE date,
@SENDPMINSTRUCTION bit,
@PMINSTRUCTIONTOSENDCODE tinyint,
@PMINSTRUCTIONDATE_NEW date,
@PMINSTRUCTIONDATE_CANCEL date,
@PMINSTRUCTIONDATE_SETUP date,
@PMADVANCENOTICESENTDATE date,
@UPDATEOTHERTRANSACTIONSTOUSENEWCREDITCARD bit,
@USESYSTEMGENERATEDREFERENCENUMBER bit,
@STANDINGORDERREFERENCENUMBER nvarchar(18),
@SEPAMANDATEID 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
-- Have to set @PREVIOUSCREDITCARDID before setting REVENUESCHEDULE.CREDITCARDID to null
-- so that updating other card numbers works when changing to a partial number.
declare @PREVIOUSCREDITCARDID uniqueidentifier
if @UPDATEOTHERTRANSACTIONSTOUSENEWCREDITCARD = 1 and @PAYMENTMETHODCODE = 2 -- Credit card
begin
select
@PREVIOUSCREDITCARDID = CREDITCARDID
from dbo.REVENUESCHEDULE
where
ID = @ID
end
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;
if @PAYMENTMETHODCODE = 2 --Credit debit
begin
declare @CREDITCARDID uniqueidentifier
exec dbo.USP_CREDITCARD_SAVE
@ID = @CREDITCARDID output,
@CREDITCARDTOKEN = @CREDITCARDTOKEN,
@CARDHOLDERNAME = @CARDHOLDERNAME,
@CREDITCARDPARTIALNUMBER = @CREDITCARDNUMBER,
@CREDITTYPECODEID = @CREDITTYPECODEID,
@EXPIRESON = @EXPIRESON,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTDATE = @CURRENTDATE
update dbo.REVENUESCHEDULE set
CREDITCARDID = @CREDITCARDID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
-- Update other pledges and recurring gifts that previously used the old card
-- to now use the new card.
-- @PREVIOUSCREDITCARDID can only be set if @UPDATEOTHERTRANSACTIONSTOUSENEWCREDITCARD is true
select @PREVIOUSCREDITCARDID
if @PREVIOUSCREDITCARDID is not null
begin
update dbo.REVENUESCHEDULE set
CREDITCARDID = @CREDITCARDID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where CREDITCARDID = @PREVIOUSCREDITCARDID
update dbo.BATCHREVENUE set
CREDITCARDID = @CREDITCARDID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
CREDITCARDID = @PREVIOUSCREDITCARDID and
(select top 1 STATUSCODE
from dbo.BATCH
where
ID = BATCHREVENUE.BATCHID) = 0 -- Uncommitted
end
end
else
update dbo.REVENUESCHEDULE set
CREDITCARDID = null,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
if @PAYMENTMETHODCODE = 3 --Direct debit
begin
--Direct Debit w/ Paperless mandate fields is UK only
if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('9568A6C2-F7AA-45fd-8F54-21FE9654EE2D') = 1
begin
if @PMINSTRUCTIONTOSENDCODE is null
set @PMINSTRUCTIONTOSENDCODE = 0;
if @SENDPMINSTRUCTION is null
set @SENDPMINSTRUCTION = 0;
update dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
set
REFERENCEDATE = @REFERENCEDATE,
REFERENCENUMBER = @REFERENCENUMBER,
CONSTITUENTACCOUNTID = @ACCOUNTID,
DDISOURCECODEID = @DDISOURCECODEID,
DDISOURCEDATE = @DDISOURCEDATE,
SENDPMINSTRUCTION = @SENDPMINSTRUCTION,
PMINSTRUCTIONTOSENDCODE = case
when @SENDPMINSTRUCTION = 0 then 0
else @PMINSTRUCTIONTOSENDCODE
end,
PMINSTRUCTIONDATE_NEW = @PMINSTRUCTIONDATE_NEW,
PMINSTRUCTIONDATE_CANCEL = @PMINSTRUCTIONDATE_CANCEL,
PMINSTRUCTIONDATE_SETUP = @PMINSTRUCTIONDATE_SETUP,
PMADVANCENOTICESENTDATE = @PMADVANCENOTICESENTDATE,
SEPAMANDATEID = @SEPAMANDATEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
if @@ROWCOUNT = 0
insert into dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
(
ID,
REFERENCEDATE,
REFERENCENUMBER,
CONSTITUENTACCOUNTID,
DDISOURCECODEID,
DDISOURCEDATE,
SENDPMINSTRUCTION,
PMINSTRUCTIONTOSENDCODE,
PMINSTRUCTIONDATE_NEW,
PMINSTRUCTIONDATE_CANCEL,
PMINSTRUCTIONDATE_SETUP,
PMADVANCENOTICESENTDATE,
SEPAMANDATEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)values(
@ID,
@REFERENCEDATE,
@REFERENCENUMBER,
@ACCOUNTID,
@DDISOURCECODEID,
@DDISOURCEDATE,
@SENDPMINSTRUCTION,
case
when @SENDPMINSTRUCTION = 0 then 0
else @PMINSTRUCTIONTOSENDCODE
end,
@PMINSTRUCTIONDATE_NEW,
@PMINSTRUCTIONDATE_CANCEL,
@PMINSTRUCTIONDATE_SETUP,
@PMADVANCENOTICESENTDATE,
@SEPAMANDATEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
if dbo.UFN_PAPERLESSMANDATES_DAYSADVANCEDNOTICE_FORREVENUE(@ID) = -1
begin
--Bug 138736 - AdamBu 2/2/11 - Error on invalid paperless mandate setup.
raiserror('BBERR_MULTIPLE_PAPERLESSMANDATECONFIGS', 13, 1);
return 1;
end
end
else
begin
update dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
set
REFERENCEDATE = @REFERENCEDATE,
REFERENCENUMBER = @REFERENCENUMBER,
CONSTITUENTACCOUNTID = @ACCOUNTID,
SEPAMANDATEID = @SEPAMANDATEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
if @@ROWCOUNT = 0
insert into dbo.REVENUESCHEDULEDIRECTDEBITPAYMENT
(ID, REFERENCEDATE, REFERENCENUMBER, CONSTITUENTACCOUNTID, SEPAMANDATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, @REFERENCEDATE, @REFERENCENUMBER, @ACCOUNTID, @SEPAMANDATEID,@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
end
end
else
exec dbo.USP_REVENUESCHEDULEDIRECTDEBITPAYMENT_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
if @PAYMENTMETHODCODE = 11 --Standing order
begin
if @USESYSTEMGENERATEDREFERENCENUMBER is null or @USESYSTEMGENERATEDREFERENCENUMBER = 1
select
@STANDINGORDERREFERENCENUMBER = '',
@USESYSTEMGENERATEDREFERENCENUMBER = 1
if @STANDINGORDERSETUP = 0
set @STANDINGORDERSETUPDATE = null;
update dbo.REVENUESCHEDULESTANDINGORDERPAYMENT
set
REFERENCEDATE = @REFERENCEDATE,
CONSTITUENTACCOUNTID = @ACCOUNTID,
STANDINGORDERSETUP = @STANDINGORDERSETUP,
STANDINGORDERSETUPDATE = @STANDINGORDERSETUPDATE,
REFERENCENUMBER = @STANDINGORDERREFERENCENUMBER,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
if @@ROWCOUNT = 0
insert into dbo.REVENUESCHEDULESTANDINGORDERPAYMENT
(ID, REFERENCEDATE, REFERENCENUMBER, CONSTITUENTACCOUNTID, STANDINGORDERSETUP, STANDINGORDERSETUPDATE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (@ID, @REFERENCEDATE, @STANDINGORDERREFERENCENUMBER, @ACCOUNTID, @STANDINGORDERSETUP, @STANDINGORDERSETUPDATE, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
update dbo.REVENUESTANDINGORDER
set
CUSTOMREFERENCENUMBER = @STANDINGORDERREFERENCENUMBER,
USESYSTEMGENERATEDREFERENCENUMBER = @USESYSTEMGENERATEDREFERENCENUMBER,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
if @@ROWCOUNT = 0
insert into dbo.REVENUESTANDINGORDER(ID, CUSTOMREFERENCENUMBER, USESYSTEMGENERATEDREFERENCENUMBER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@ID, @STANDINGORDERREFERENCENUMBER, @USESYSTEMGENERATEDREFERENCENUMBER, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
end
else
begin
exec dbo.USP_REVENUESTANDINGORDER_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
exec dbo.USP_REVENUESCHEDULESTANDINGORDERPAYMENT_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
close symmetric key sym_BBInfinity;
return 1;
end catch
return 0;