USP_DATAFORMTEMPLATE_EDIT_BATCHMEMBERSHIPDUESBATCHROW_9
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@SEQUENCE | int | IN | |
@BILLTOCONSTITUENTID | uniqueidentifier | IN | |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN | |
@BASECURRENCYID | uniqueidentifier | IN | |
@BASEEXCHANGERATEID | uniqueidentifier | IN | |
@EXCHANGERATE | decimal(20, 8) | IN | |
@PDACCOUNTSYSTEMID | uniqueidentifier | IN | |
@POSTSTATUSCODE | tinyint | IN | |
@POSTDATE | date | IN | |
@DUESTYPECODE | tinyint | IN | |
@MEMBERSHIPRECIPIENT | uniqueidentifier | IN | |
@RENEWALRECIPIENT | tinyint | IN | |
@EFFORTID | uniqueidentifier | IN | |
@FINDERNUMBER | nvarchar(19) | IN | |
@APPEALID | uniqueidentifier | IN | |
@CHANNELCODEID | uniqueidentifier | IN | |
@DATE | date | IN | |
@MEMBERSHIPTRANSACTIONTYPECODE | tinyint | IN | |
@REVENUETYPECODE | tinyint | IN | |
@PAYADDITIONALTONEXTINSTALLMENT | bit | IN | |
@PAYADDITIONALMONEYAMOUNT | money | IN | |
@MEMBERSHIPPROGRAMID | uniqueidentifier | IN | |
@MEMBERSHIPLEVELID | uniqueidentifier | IN | |
@MEMBERSHIPLEVELTERMID | uniqueidentifier | IN | |
@MEMBERSHIPEXPIRESONDATE | date | IN | |
@MEMBERSHIPAMOUNT | money | IN | |
@MEMBERSHIPTRANSACTIONAMOUNT | money | IN | |
@EXISTINGMEMBERSHIPID | uniqueidentifier | IN | |
@MEMBERSHIPPLEDGEAMOUNT | money | IN | |
@CONTRIBUTORYDESIGNATIONID | uniqueidentifier | IN | |
@USEDISCOUNTRADIO | tinyint | IN | |
@DISCOUNTTYPE | uniqueidentifier | IN | |
@PROMOTIONCODE | nvarchar(50) | IN | |
@APPLIEDDISCOUNTID | uniqueidentifier | IN | |
@ADDDONATION | bit | IN | |
@DONATIONAMOUNT | money | IN | |
@GIVENANONYMOUSLY | bit | IN | |
@DONATIONOPPORTUNITYID | uniqueidentifier | IN | |
@DONATIONDESIGNATIONID | uniqueidentifier | IN | |
@DONATIONCATEGORYCODEID | uniqueidentifier | IN | |
@DECLINESGIFTAID | bit | IN | |
@PLEDGEFREQUENCYCODE | tinyint | IN | |
@PLEDGENUMBEROFINSTALLMENTS | int | IN | |
@PLEDGESTARTDATE | datetime | IN | |
@AUTOPAY | bit | IN | |
@SENDPLEDGEREMINDER | bit | IN | |
@CHECKDATE | UDT_FUZZYDATE | IN | |
@CHECKNUMBER | nvarchar(20) | IN | |
@REFERENCENUMBER | nvarchar(20) | IN | |
@REFERENCEDATE | UDT_FUZZYDATE | IN | |
@PAYMENTMETHODCODE | tinyint | IN | |
@DIRECTDEBITRESULTCODE | nvarchar(10) | IN | |
@DIRECTDEBITISREJECTED | bit | IN | |
@CONSTITUENTACCOUNTID | uniqueidentifier | IN | |
@REFERENCE | nvarchar(255) | IN | |
@AUTOMATICALLYRENEWMEMBERSHIP | bit | IN | |
@CREDITCARDID | uniqueidentifier | IN | |
@CREDITCARDNUMBER | nvarchar(20) | IN | |
@CREDITCARDTOKEN | uniqueidentifier | IN | |
@CARDHOLDERNAME | nvarchar(255) | IN | |
@EXPIRESON | UDT_FUZZYDATE | IN | |
@AUTHORIZATIONCODE | nvarchar(20) | IN | |
@REJECTIONMESSAGE | nvarchar(500) | IN | |
@CREDITTYPECODEID | uniqueidentifier | IN | |
@TRANSACTIONID | uniqueidentifier | IN | |
@PARTIALCREDITCARDNUMBER | nvarchar(4) | IN | |
@DONOTACKNOWLEDGE | bit | IN | |
@TAXDEDUCTIBLEAMOUNT | money | IN | |
@LETTERCODEID | uniqueidentifier | IN | |
@TRIBUTEID | uniqueidentifier | IN | |
@DONOTRECEIPT | bit | IN | |
@COMMENTS | nvarchar(255) | IN | |
@TOTALAMOUNT | money | IN | |
@EXISTINGMEMBERS | xml | IN | |
@EXISTINGCHILDREN | xml | IN | |
@MEMBERSHIPCARDS | xml | IN | |
@MEMBERSHIPRECOGNITION | xml | IN | |
@MEMBERSHIPPROGRAMADDON | xml | IN | |
@IMPORTADDON | xml | IN | |
@CAMPAIGNS | xml | IN | |
@SOLICITORS | xml | IN | |
@RECOGNITIONS | xml | IN | |
@BENEFITS | xml | IN | |
@PERCENTAGEBENEFITS | xml | IN | |
@INSTALLMENTS | xml | IN | |
@IMPORT | bit | IN | |
@NUMBEROFCHILDREN | smallint | IN | |
@OTHERPAYMENTMETHODCODEID | uniqueidentifier | IN | |
@SOURCECODE | nvarchar(50) | IN | |
@MEMBERSHIPDECLINESGIFTAID | bit | IN | |
@DDISOURCECODEID | uniqueidentifier | IN | |
@DDISOURCEDATE | date | IN | |
@VENDORID | nvarchar(50) | IN | |
@MEMBERSHIPLEVELTYPECODEID | uniqueidentifier | IN | |
@CREDITCARDATTEMPTCOUNT | tinyint | IN | |
@NEWCONSTITUENT | xml | IN | |
@BBNCTRANID | int | IN | |
@ORIGINPAGEID | int | IN | |
@ORIGINPAGE | nvarchar(100) | IN | |
@BBNCID | int | IN | |
@BBISPROCESSORID | uniqueidentifier | IN | |
@NAMECODE | tinyint | IN | |
@SIMILARADDRESSCODE | tinyint | IN | |
@UNSIMILARADDRESSCODE | tinyint | IN | |
@NEWADDRESSENDDATECODE | tinyint | IN | |
@NEWADDRESSPRIMARYCODE | tinyint | IN | |
@BIRTHDATERULECODE | tinyint | IN | |
@DIFFERENTPHONECODE | tinyint | IN | |
@NEWPHONEENDDATECODE | tinyint | IN | |
@NEWPHONEPRIMARYCODE | tinyint | IN | |
@DIFFERENTEMAILCODE | tinyint | IN | |
@NEWEMAILENDDATECODE | tinyint | IN | |
@NEWEMAILPRIMARYCODE | tinyint | IN | |
@USEGLOBALSETTINGS | bit | IN | |
@CREATEHISTORICALNAMECODE | tinyint | IN | |
@SEPAMANDATEID | uniqueidentifier | IN | |
@ADDSEPAMANDATE | bit | IN | |
@SEPAMANDATECUSTOMIDENTIFIER | nvarchar(35) | IN | |
@SEPAMANDATESIGNATUREDATE | date | IN | |
@SEPAMANDATETYPECODE | tinyint | IN | |
@REQUIRECREDITCARDPROCESSING | bit | IN | |
@PAYOTHERAMOUNT | money | IN | |
@ISGENERATEDPAYMENT | bit | IN | |
@GLREVENUECATEGORYMAPPINGID | uniqueidentifier | IN | |
@SOLICITCODES | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_BATCHMEMBERSHIPDUESBATCHROW_9
(
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@SEQUENCE int,
@BILLTOCONSTITUENTID uniqueidentifier,
@TRANSACTIONCURRENCYID uniqueidentifier,
@BASECURRENCYID uniqueidentifier,
@BASEEXCHANGERATEID uniqueidentifier,
@EXCHANGERATE decimal(20,8),
@PDACCOUNTSYSTEMID uniqueidentifier,
@POSTSTATUSCODE tinyint,
@POSTDATE date,
@DUESTYPECODE tinyint,
@MEMBERSHIPRECIPIENT uniqueidentifier,
@RENEWALRECIPIENT tinyint,
@EFFORTID uniqueidentifier,
@FINDERNUMBER nvarchar(19),
@APPEALID uniqueidentifier,
@CHANNELCODEID uniqueidentifier,
@DATE date,
@MEMBERSHIPTRANSACTIONTYPECODE tinyint, -- 0 = Add, 1 = Renew, 2 = Pay, 3 = Upgrade
@REVENUETYPECODE tinyint, -- 0 = Pay in full, 1 = Pay first/next installment, 2 = Pledge
@PAYADDITIONALTONEXTINSTALLMENT bit,
@PAYADDITIONALMONEYAMOUNT money,
@MEMBERSHIPPROGRAMID uniqueidentifier,
@MEMBERSHIPLEVELID uniqueidentifier,
@MEMBERSHIPLEVELTERMID uniqueidentifier,
@MEMBERSHIPEXPIRESONDATE date,
@MEMBERSHIPAMOUNT money,
@MEMBERSHIPTRANSACTIONAMOUNT money,
@EXISTINGMEMBERSHIPID uniqueidentifier,
@MEMBERSHIPPLEDGEAMOUNT money,
@CONTRIBUTORYDESIGNATIONID uniqueidentifier,
@USEDISCOUNTRADIO tinyint,
@DISCOUNTTYPE uniqueidentifier,
@PROMOTIONCODE nvarchar(50),
@APPLIEDDISCOUNTID uniqueidentifier,
@ADDDONATION bit,
@DONATIONAMOUNT money,
@GIVENANONYMOUSLY bit,
@DONATIONOPPORTUNITYID uniqueidentifier,
@DONATIONDESIGNATIONID uniqueidentifier,
@DONATIONCATEGORYCODEID uniqueidentifier,
@DECLINESGIFTAID bit,
@PLEDGEFREQUENCYCODE tinyint,
@PLEDGENUMBEROFINSTALLMENTS int,
@PLEDGESTARTDATE datetime,
@AUTOPAY bit,
@SENDPLEDGEREMINDER bit,
@CHECKDATE dbo.UDT_FUZZYDATE,
@CHECKNUMBER nvarchar(20),
@REFERENCENUMBER nvarchar(20),
@REFERENCEDATE dbo.UDT_FUZZYDATE,
@PAYMENTMETHODCODE tinyint,
@DIRECTDEBITRESULTCODE nvarchar(10),
@DIRECTDEBITISREJECTED bit,
@CONSTITUENTACCOUNTID uniqueidentifier,
@REFERENCE nvarchar(255),
@AUTOMATICALLYRENEWMEMBERSHIP bit,
@CREDITCARDID uniqueidentifier,
@CREDITCARDNUMBER nvarchar(20),
@CREDITCARDTOKEN uniqueidentifier,
@CARDHOLDERNAME nvarchar(255),
@EXPIRESON dbo.UDT_FUZZYDATE,
@AUTHORIZATIONCODE nvarchar(20),
@REJECTIONMESSAGE nvarchar(500),
@CREDITTYPECODEID uniqueidentifier,
@TRANSACTIONID uniqueidentifier,
@PARTIALCREDITCARDNUMBER nvarchar(4),
@DONOTACKNOWLEDGE bit,
@TAXDEDUCTIBLEAMOUNT money,
@LETTERCODEID uniqueidentifier,
@TRIBUTEID uniqueidentifier,
--@NEWEVENTREGISTRATION bit,
@DONOTRECEIPT bit,
@COMMENTS nvarchar(255),
@TOTALAMOUNT money,
@EXISTINGMEMBERS xml,
@EXISTINGCHILDREN xml,
@MEMBERSHIPCARDS xml,
@MEMBERSHIPRECOGNITION xml,
@MEMBERSHIPPROGRAMADDON xml,
@IMPORTADDON xml,
@CAMPAIGNS xml,
@SOLICITORS xml,
@RECOGNITIONS xml,
@BENEFITS xml,
@PERCENTAGEBENEFITS xml,
@INSTALLMENTS xml,
@IMPORT bit,
@NUMBEROFCHILDREN smallint, -- Temporary workaround for children not being implemented in 2012 Q1
@OTHERPAYMENTMETHODCODEID uniqueidentifier,
@SOURCECODE nvarchar(50),
@MEMBERSHIPDECLINESGIFTAID bit,
@DDISOURCECODEID uniqueidentifier,
@DDISOURCEDATE date,
@VENDORID nvarchar(50),
@MEMBERSHIPLEVELTYPECODEID uniqueidentifier,
@CREDITCARDATTEMPTCOUNT tinyint,
@NEWCONSTITUENT xml,
@BBNCTRANID int,
@ORIGINPAGEID int,
@ORIGINPAGE nvarchar(100),
@BBNCID int,
@BBISPROCESSORID uniqueidentifier,
@NAMECODE tinyint,
@SIMILARADDRESSCODE tinyint,
@UNSIMILARADDRESSCODE tinyint,
@NEWADDRESSENDDATECODE tinyint,
@NEWADDRESSPRIMARYCODE tinyint,
@BIRTHDATERULECODE tinyint,
@DIFFERENTPHONECODE tinyint,
@NEWPHONEENDDATECODE tinyint,
@NEWPHONEPRIMARYCODE tinyint,
@DIFFERENTEMAILCODE tinyint,
@NEWEMAILENDDATECODE tinyint,
@NEWEMAILPRIMARYCODE tinyint,
@USEGLOBALSETTINGS bit,
@CREATEHISTORICALNAMECODE tinyint,
@SEPAMANDATEID uniqueidentifier,
@ADDSEPAMANDATE bit,
@SEPAMANDATECUSTOMIDENTIFIER nvarchar(35),
@SEPAMANDATESIGNATUREDATE date,
@SEPAMANDATETYPECODE tinyint,
@REQUIRECREDITCARDPROCESSING bit,
@PAYOTHERAMOUNT money,
@ISGENERATEDPAYMENT bit,
@GLREVENUECATEGORYMAPPINGID uniqueidentifier,
@SOLICITCODES xml
)
as
begin
set nocount on;
declare @BATCHID uniqueidentifier;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @MEMBERSHIPTRANSACTIONTYPECODE = 3
select @EXISTINGMEMBERSHIPID = ID, @MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAMID from dbo.MEMBERSHIP where ID = @MEMBERSHIPPROGRAMID
if @CARDHOLDERNAME is null
set @CARDHOLDERNAME = '';
if @CREDITCARDNUMBER is null
set @CREDITCARDNUMBER = '';
if @AUTHORIZATIONCODE is null
set @AUTHORIZATIONCODE = '';
if @EXPIRESON is null
set @EXPIRESON = '00000000';
if @CREDITCARDATTEMPTCOUNT is null
set @CREDITCARDATTEMPTCOUNT = 0;
if @REQUIRECREDITCARDPROCESSING is null
set @REQUIRECREDITCARDPROCESSING = 0;
if @SIMILARADDRESSCODE is null
set @SIMILARADDRESSCODE = 3;
if @UNSIMILARADDRESSCODE is null
set @UNSIMILARADDRESSCODE = 3;
if @NEWADDRESSENDDATECODE is null
set @NEWADDRESSENDDATECODE = 0;
if @NEWADDRESSPRIMARYCODE is null
set @NEWADDRESSPRIMARYCODE = 1;
if @BIRTHDATERULECODE is null
set @BIRTHDATERULECODE = 0;
if @DIFFERENTPHONECODE is null
set @DIFFERENTPHONECODE = 3;
if @NEWPHONEENDDATECODE is null
set @NEWPHONEENDDATECODE = 0;
if @NEWPHONEPRIMARYCODE is null
set @NEWPHONEPRIMARYCODE = 1;
if @DIFFERENTEMAILCODE is null
set @DIFFERENTEMAILCODE = 3;
if @NEWEMAILENDDATECODE is null
set @NEWEMAILENDDATECODE = 0;
if @NEWEMAILPRIMARYCODE is null
set @NEWEMAILPRIMARYCODE = 1;
if @USEGLOBALSETTINGS is null
set @USEGLOBALSETTINGS = 1;
if @NAMECODE is null
set @NAMECODE = 1;
if @CREATEHISTORICALNAMECODE is null
set @CREATEHISTORICALNAMECODE = 1;
if @RENEWALRECIPIENT is null
set @RENEWALRECIPIENT = 0;
if @ISGENERATEDPAYMENT is null
set @ISGENERATEDPAYMENT = 0;
declare @CURRENTDATE datetime = getdate();
--If we're using the 'Pay other amount' option, clear additional amount
if @REVENUETYPECODE = 3
begin
set @PAYADDITIONALTONEXTINSTALLMENT = 0
set @PAYADDITIONALMONEYAMOUNT = 0
end
declare @RECURRINGPROGRAMTYPECODE tinyint = 1;
declare @MEMBERSHIPPROGRAMTYPECODE tinyint;
select @MEMBERSHIPPROGRAMTYPECODE = PROGRAMTYPECODE
from dbo.MEMBERSHIPPROGRAM
where ID = @MEMBERSHIPPROGRAMID;
begin try
if @REVENUETYPECODE = 3 and @PAYOTHERAMOUNT <= 0
raiserror('BBERR_INVALIDPAYOTHERAMOUNT', 13, 1);
/*Because of the way this batch in particular works, the findernumber parameter is a string instead of bigint, so we need to do some extra validation and casting.*/
if len(isnull(@FINDERNUMBER, '')) = 0
set @FINDERNUMBER = 0;
if len(@FINDERNUMBER) > 0 and isNumeric(@FINDERNUMBER) = 0
raiserror('BBERR_INVALIDFINDERNUMBER', 13, 1);
declare @MARKETINGCONSTITUENTID uniqueidentifier = @BILLTOCONSTITUENTID;
/* Lookup and set all possible marketing data (via output params) from the data that was specified. */
select
@BATCHID = [BATCHID]
from
dbo.[BATCHMEMBERSHIPDUES]
where
[ID] = @ID;
exec dbo.[USP_REVENUEBATCH_GETMARKETINGDATA]
@FINDERNUMBER = @FINDERNUMBER,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTAPPUSERID = @CURRENTAPPUSERID,
@SOURCECODE = @SOURCECODE output,
@MAILINGID = @EFFORTID output,
@APPEALID = @APPEALID output,
@CONSTITUENTID = @MARKETINGCONSTITUENTID output,
@BATCHID = @BATCHID,
@IMPORT = @IMPORT;
if @BBNCTRANID = 0
set @BILLTOCONSTITUENTID = @MARKETINGCONSTITUENTID;
declare @CONSTITUENTID uniqueidentifier;
select @CONSTITUENTID =
case @DUESTYPECODE
when 0 then @BILLTOCONSTITUENTID
else @MEMBERSHIPRECIPIENT
end;
-- Write Validation logic here.
if @PDACCOUNTSYSTEMID is null
set @PDACCOUNTSYSTEMID = dbo.UFN_PDACCOUNTSYSTEM_GETDEFAULTSYSTEMIDSFORUSER(@CURRENTAPPUSERID)
if @POSTSTATUSCODE is null
set @POSTSTATUSCODE = 1
if @ADDDONATION = 0 AND @SOLICITORS is not null
begin
set @SOLICITORS = null;
set @DONATIONDESIGNATIONID = null;
set @DONATIONCATEGORYCODEID = null;
end
if (select OBTAINLEVELCODE from dbo.MEMBERSHIPLEVEL where ID = @MEMBERSHIPLEVELID) = 1 and (select WHEREISREVENUETRACKEDCODE from dbo.MEMBERSHIPPROGRAM where ID = @MEMBERSHIPPROGRAMID) = 0 and @CONTRIBUTORYDESIGNATIONID is null
raiserror('BBERR_CONTRIBUTORYDESIGNATIONID_REQUIRED', 13, 1);
--Set currency parameters for backwards compatibility
if @TRANSACTIONCURRENCYID is null
set @TRANSACTIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
-- Ensure that we can add a payment of this transaction currency to the account system.
if not exists(
select 1
from
dbo.CURRENCYSETTRANSACTIONCURRENCY
inner join dbo.PDACCOUNTSYSTEM on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSETTRANSACTIONCURRENCY.CURRENCYSETID
where
PDACCOUNTSYSTEM.ID = @PDACCOUNTSYSTEMID
and CURRENCYSETTRANSACTIONCURRENCY.CURRENCYID = @TRANSACTIONCURRENCYID
)
raiserror('TRANSACTIONCURRENCYINVALIDFORACCOUNTSYSTEM',13,1)
-- If the system has set that households can't be donors, verify that constituent isn't a household
if dbo.UFN_INSTALLATIONINFO_GETHOUSEHOLDSCANBEDONORS() = 0 and dbo.UFN_CONSTITUENT_ISHOUSEHOLD(@CONSTITUENTID) = 1
raiserror('HOUSEHOLDSCANNOTBEDONORS', 13, 1);
-- if the group type can't be a donor, raise an error
if exists(select GD.ID from dbo.GROUPDATA GD inner join dbo.GROUPTYPE GT on GD.GROUPTYPEID = GT.ID where GD.ID = @CONSTITUENTID and GT.CANBEDONOR = 0)
raiserror('GROUPCANNOTBEDONOR', 13, 1);
-- Adding or renewing
if (@MEMBERSHIPTRANSACTIONTYPECODE = 0 or @MEMBERSHIPTRANSACTIONTYPECODE = 1 or @MEMBERSHIPTRANSACTIONTYPECODE = 3)
begin
exec dbo.USP_MEMBERSHIPDUESBATCH_VALIDATE_ADDRENEWPROGRAM
@CURRENTAPPUSERID,
@ID,
null,
@MEMBERSHIPTRANSACTIONTYPECODE,
@DATE,
@MEMBERSHIPEXPIRESONDATE,
@MEMBERSHIPPROGRAMID,
@MEMBERSHIPLEVELID,
@MEMBERSHIPLEVELTERMID,
@CONSTITUENTID,
@REVENUETYPECODE,
@EXISTINGMEMBERSHIPID,
@MEMBERSHIPPROGRAMADDON,
@EXISTINGMEMBERS,
@MEMBERSHIPCARDS,
@EXISTINGCHILDREN,
@NUMBEROFCHILDREN; -- Temporary workaround for children not being implemented in 2012 Q1
-- Creating a pledge
if @REVENUETYPECODE > 0 and @MEMBERSHIPPROGRAMTYPECODE <> @RECURRINGPROGRAMTYPECODE
exec dbo.USP_MEMBERSHIPDUESBATCH_VALIDATE_PLEDGE @DATE, @MEMBERSHIPPLEDGEAMOUNT, @PLEDGEFREQUENCYCODE, @PLEDGESTARTDATE, @PLEDGENUMBEROFINSTALLMENTS, @INSTALLMENTS;
end
else
exec dbo.USP_MEMBERSHIPDUESBATCH_VALIDATE_PAYPLEDGEDMEMBERSHIP
@MEMBERSHIPTRANSACTIONTYPECODE,
@DATE,
@MEMBERSHIPEXPIRESONDATE,
@MEMBERSHIPPROGRAMID,
@MEMBERSHIPLEVELID,
@MEMBERSHIPLEVELTERMID,
@CONSTITUENTID,
@REVENUETYPECODE,
@EXISTINGMEMBERSHIPID,
@MEMBERSHIPPROGRAMADDON,
@EXISTINGMEMBERS,
@MEMBERSHIPCARDS,
@EXISTINGCHILDREN,
@NUMBEROFCHILDREN; -- Temporary workaround for children not being implemented in 2012 Q1
if @EXCHANGERATE is null
set @EXCHANGERATE = 0;
if @PAYMENTMETHODCODE = 2
begin
exec dbo.USP_CREDITCARD_SAVE
@ID = @CREDITCARDID output,
@CREDITCARDTOKEN = @CREDITCARDTOKEN,
@CARDHOLDERNAME = @CARDHOLDERNAME,
@CREDITCARDPARTIALNUMBER = @CREDITCARDNUMBER,
@CREDITTYPECODEID = @CREDITTYPECODEID,
@EXPIRESON = @EXPIRESON,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTDATE = @CURRENTDATE;
end
--Check if existing membership has changed, if so clear the revenue schedule
declare @OLDEXISTINGMEMBERSHIPID uniqueidentifier = (select EXISTINGMEMBERSHIPID from dbo.BATCHMEMBERSHIPDUES where BATCHMEMBERSHIPDUES.ID = @ID);
if @OLDEXISTINGMEMBERSHIPID <> @EXISTINGMEMBERSHIPID
begin
declare @PLEDGEID uniqueidentifier = dbo.UFN_MEMBERSHIP_GETPLEDGE(@OLDEXISTINGMEMBERSHIPID);
update dbo.REVENUESCHEDULE
set
REVENUESCHEDULE.ISPENDING = 0,
REVENUESCHEDULE.CHANGEDBYID = @CHANGEAGENTID,
REVENUESCHEDULE.DATECHANGED = @CURRENTDATE
from dbo.REVENUESCHEDULE
where REVENUESCHEDULE.ID = @PLEDGEID;
end
update dbo.BATCHMEMBERSHIPDUES set
SEQUENCE = @SEQUENCE,
BILLTOCONSTITUENTID = @BILLTOCONSTITUENTID,
DUESTYPECODE = @DUESTYPECODE, -- Paying, giving, comping
MEMBERSHIPRECIPIENTID = @MEMBERSHIPRECIPIENT,
RENEWALRECIPIENTCODE = @RENEWALRECIPIENT,
FINDERNUMBER = @FINDERNUMBER,
APPEALID = @APPEALID,
EFFORTID = @EFFORTID,
CHANNELCODEID = @CHANNELCODEID,
DATE = @DATE,
MEMBERSHIPTRANSACTIONTYPECODE = @MEMBERSHIPTRANSACTIONTYPECODE,
REVENUETYPECODE = @REVENUETYPECODE,
PAYADDITIONALTONEXTINSTALLMENT = @PAYADDITIONALTONEXTINSTALLMENT,
PAYADDITIONALMONEYAMOUNT = @PAYADDITIONALMONEYAMOUNT,
MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID,
MEMBERSHIPLEVELID = @MEMBERSHIPLEVELID,
MEMBERSHIPLEVELTERMID = @MEMBERSHIPLEVELTERMID,
MEMBERSHIPEXPIRESONDATE = @MEMBERSHIPEXPIRESONDATE,
MEMBERSHIPAMOUNT = @MEMBERSHIPAMOUNT,
MEMBERSHIPTRANSACTIONAMOUNT = case when @REVENUETYPECODE = 3 then @PAYOTHERAMOUNT else @MEMBERSHIPTRANSACTIONAMOUNT end,
EXISTINGMEMBERSHIPID = @EXISTINGMEMBERSHIPID,
MEMBERSHIPPLEDGEAMOUNT = @MEMBERSHIPPLEDGEAMOUNT,
CONTRIBUTORYDESIGNATIONID = @CONTRIBUTORYDESIGNATIONID,
USEDISCOUNT = cast(@USEDISCOUNTRADIO as bit),
MEMBERSHIPPROMOID = @DISCOUNTTYPE,
PROMOTIONCODE = @PROMOTIONCODE,
APPLIEDDISCOUNTID = @APPLIEDDISCOUNTID,
ADDDONATION = @ADDDONATION,
DONATIONAMOUNT = @DONATIONAMOUNT,
DONATIONGIVENANONYMOUSLY = @GIVENANONYMOUSLY,
DONATIONOPPORTUNITYID = @DONATIONOPPORTUNITYID,
DONATIONSINGLEDESIGNATIONID = @DONATIONDESIGNATIONID,
DONATIONCATEGORYCODEID = @DONATIONCATEGORYCODEID,
DONATIONDECLINESGIFTAID = @DECLINESGIFTAID,
PLEDGEFREQUENCYCODE = @PLEDGEFREQUENCYCODE,
PLEDGENUMBEROFINSTALLMENTS = @PLEDGENUMBEROFINSTALLMENTS,
PLEDGESTARTDATE = @PLEDGESTARTDATE,
AUTOPAY = @AUTOPAY,
SENDPLEDGEREMINDER = @SENDPLEDGEREMINDER,
CHECKDATE = @CHECKDATE,
CHECKNUMBER = @CHECKNUMBER,
REFERENCENUMBER = @REFERENCENUMBER,
REFERENCEDATE = @REFERENCEDATE,
DIRECTDEBITRESULTCODE = @DIRECTDEBITRESULTCODE,
DIRECTDEBITISREJECTED = @DIRECTDEBITISREJECTED,
REFERENCE = @REFERENCE,
CONSTITUENTACCOUNTID = @CONSTITUENTACCOUNTID,
PAYMENTMETHODCODE = @PAYMENTMETHODCODE,
AUTOMATICALLYRENEWMEMBERSHIP = @AUTOMATICALLYRENEWMEMBERSHIP,
CREDITCARDID = @CREDITCARDID,
AUTHORIZATIONCODE = @AUTHORIZATIONCODE,
REJECTIONMESSAGE = @REJECTIONMESSAGE,
TRANSACTIONID = @TRANSACTIONID,
DONOTACKNOWLEDGE = @DONOTACKNOWLEDGE,
TAXDEDUCTIBLEAMOUNT = @TAXDEDUCTIBLEAMOUNT,
LETTERCODEID = @LETTERCODEID,
TRIBUTEID = @TRIBUTEID,
DONOTRECEIPT = @DONOTRECEIPT,
COMMENTS = @COMMENTS,
TOTALAMOUNT = @TOTALAMOUNT,
PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID,
BASECURRENCYID = @BASECURRENCYID,
TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
EXCHANGERATE = @EXCHANGERATE,
-- platform stuff
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
NUMBEROFCHILDREN = @NUMBEROFCHILDREN,-- Temporary workaround for children not being implemented in 2012 Q1
OTHERPAYMENTMETHODCODEID = @OTHERPAYMENTMETHODCODEID,
POSTSTATUSCODE = @POSTSTATUSCODE,
POSTDATE = @POSTDATE,
SOURCECODE = @SOURCECODE,
MEMBERSHIPDECLINESGIFTAID = @MEMBERSHIPDECLINESGIFTAID,
DDISOURCECODEID = @DDISOURCECODEID,
DDISOURCEDATE = @DDISOURCEDATE,
VENDORID = isnull(@VENDORID, ''),
MEMBERSHIPLEVELTYPECODEID = @MEMBERSHIPLEVELTYPECODEID,
CREDITCARDATTEMPTCOUNT = @CREDITCARDATTEMPTCOUNT,
NAMECODE = @NAMECODE,
SIMILARADDRESSCODE = @SIMILARADDRESSCODE,
UNSIMILARADDRESSCODE = @UNSIMILARADDRESSCODE,
NEWADDRESSENDDATECODE = @NEWADDRESSENDDATECODE,
NEWADDRESSPRIMARYCODE = @NEWADDRESSPRIMARYCODE,
BIRTHDATERULECODE = @BIRTHDATERULECODE,
DIFFERENTPHONECODE = @DIFFERENTPHONECODE,
NEWPHONEENDDATECODE = @NEWPHONEENDDATECODE,
NEWPHONEPRIMARYCODE = @NEWPHONEPRIMARYCODE,
DIFFERENTEMAILCODE = @DIFFERENTEMAILCODE,
NEWEMAILENDDATECODE = @NEWEMAILENDDATECODE,
NEWEMAILPRIMARYCODE = @NEWEMAILPRIMARYCODE,
USEGLOBALSETTINGS = @USEGLOBALSETTINGS,
CREATEHISTORICALNAMECODE = @CREATEHISTORICALNAMECODE,
SEPAMANDATEID = @SEPAMANDATEID,
REQUIRECREDITCARDPROCESSING = @REQUIRECREDITCARDPROCESSING,
ISGENERATEDPAYMENT = @ISGENERATEDPAYMENT,
GLREVENUECATEGORYMAPPINGID = @GLREVENUECATEGORYMAPPINGID
where ID = @ID;
update dbo.BATCHMEMBERSHIPDUESBBNCINFO set
BBNCTRANID = @BBNCTRANID,
PAGEID = @ORIGINPAGEID,
PAGENAME = @ORIGINPAGE,
BBNCID = @BBNCID,
NETCOMMUNITYTRANSACTIONPROCESSORID = @BBISPROCESSORID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where BATCHMEMBERSHIPDUESID = @ID
--exec dbo.USP_MEMBERSHIPDUESBATCH_GETDONATIONSPLITS_UPDATEFROMXML @ID, @DONATIONSPLITS, @CHANGEAGENTID, @CURRENTDATE;
-- Insert into child tables
exec dbo.USP_MEMBERSHIPDUESBATCH_GETBENEFITS_UPDATEFROMXML @ID, @BENEFITS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETPERCENTAGEBENEFITS_UPDATEFROMXML @ID, @PERCENTAGEBENEFITS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETMEMBERS_UPDATEFROMXML @ID, @EXISTINGMEMBERS, @CHANGEAGENTID, @CURRENTDATE;
--Children are intended for future release
--exec dbo.USP_MEMBERSHIPDUESBATCH_GETCHILDREN_UPDATEFROMXML @ID, @EXISTINGCHILDREN, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETMEMBERSHIPCARDS_UPDATEFROMXML @ID, @MEMBERSHIPCARDS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETMEMBERSHIPPROGRAMADDONS_UPDATEFROMXML @ID, @MEMBERSHIPPROGRAMADDON, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETMEMBERSHIPRECOGNITIONS_UPDATEFROMXML @ID, @MEMBERSHIPRECOGNITION, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETPLEDGEINSTALLMENTS_UPDATEFROMXML @ID, @INSTALLMENTS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETDONATIONCAMPAIGNS_UPDATEFROMXML @ID, @CAMPAIGNS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETDONATIONRECOGNITIONS_UPDATEFROMXML @ID, @RECOGNITIONS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETDONATIONSOLICITORS_UPDATEFROMXML @ID, @SOLICITORS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_MEMBERSHIPDUESBATCH_GETSOLICITCODES_UPDATEFROMXML @ID, @SOLICITCODES, @CHANGEAGENTID, @CURRENTDATE;
-- Get rid of any constituent edits for a constituent other than the one we ended up saving.
delete from dbo.BATCHCONSTITUENTUPDATE
where ID = @ID
and PRIMARYRECORDID <> @BILLTOCONSTITUENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end