USP_DATAFORMTEMPLATE_EDIT_2_REVENUEBATCHROW_16
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@TYPECODE | tinyint | IN | |
@DATE | datetime | IN | |
@AMOUNT | money | IN | |
@PAYMENTMETHODCODE | tinyint | IN | |
@DONOTACKNOWLEDGE | bit | IN | |
@CHECKDATE | UDT_FUZZYDATE | IN | |
@CHECKNUMBER | nvarchar(20) | IN | |
@REFERENCEDATE | UDT_FUZZYDATE | IN | |
@REFERENCENUMBER | nvarchar(20) | IN | |
@CARDHOLDERNAME | nvarchar(255) | IN | |
@CREDITCARDNUMBER | nvarchar(20) | IN | |
@CREDITTYPECODEID | uniqueidentifier | IN | |
@AUTHORIZATIONCODE | nvarchar(20) | IN | |
@EXPIRESON | UDT_FUZZYDATE | IN | |
@ISSUER | nvarchar(100) | IN | |
@NUMBEROFUNITS | decimal(20, 3) | IN | |
@SYMBOL | nvarchar(25) | IN | |
@MEDIANPRICE | decimal(19, 4) | IN | |
@PROPERTYSUBTYPECODEID | uniqueidentifier | IN | |
@GIFTINKINDSUBTYPECODEID | uniqueidentifier | IN | |
@RECEIPTAMOUNT | money | IN | |
@DONOTRECEIPT | bit | IN | |
@CONSTITUENTACCOUNTID | uniqueidentifier | IN | |
@SPLITS | xml | IN | |
@SINGLEDESIGNATIONID | uniqueidentifier | IN | |
@REVENUESTREAMS | xml | IN | |
@APPLYTOSHOWNFORCONSTITUENTID | uniqueidentifier | IN | |
@SEQUENCE | int | IN | |
@INSTALLMENTFREQUENCYCODE | tinyint | IN | |
@INSTALLMENTSTARTDATE | datetime | IN | |
@INSTALLMENTENDDATE | datetime | IN | |
@NUMBEROFINSTALLMENTS | int | IN | |
@SOLICITORS | xml | IN | |
@BENEFITS | xml | IN | |
@FINDERNUMBER | bigint | IN | |
@SOURCECODE | nvarchar(60) | IN | |
@APPEALID | uniqueidentifier | IN | |
@FINDERNUMBERISVALID | bit | IN | |
@USERMODIFIEDBENEFITS | bit | IN | |
@BENEFITSWAIVED | bit | IN | |
@POSTDATE | datetime | IN | |
@POSTSTATUSCODE | tinyint | IN | |
@SENDPLEDGEREMINDER | bit | IN | |
@SALEDATE | datetime | IN | |
@SALEAMOUNT | money | IN | |
@BROKERFEE | money | IN | |
@SALEPOSTSTATUSCODE | tinyint | IN | |
@SALEPOSTDATE | datetime | IN | |
@NOTETITLE | nvarchar(50) | IN | |
@NOTEAUTHORID | uniqueidentifier | IN | |
@NOTEDATEENTERED | datetime | IN | |
@NOTETYPECODEID | uniqueidentifier | IN | |
@NOTETEXTNOTE | nvarchar(max) | IN | |
@GIVENANONYMOUSLY | bit | IN | |
@GIVENANONYMOUSLYDEFAULTEDFORCONSTITUENTID | uniqueidentifier | IN | |
@USERMODIFIEDRECEIPTAMOUNT | bit | IN | |
@PLEDGESUBTYPEID | uniqueidentifier | IN | |
@REJECTIONCODEID | uniqueidentifier | IN | |
@CONSTITUENTLOOKUPID | uniqueidentifier | IN | |
@MAILINGID | uniqueidentifier | IN | |
@CHANNELCODEID | uniqueidentifier | IN | |
@INSTALLMENTS | xml | IN | |
@PAYMENTFORPLEDGEAMOUNT | money | IN | |
@RECOGNITIONS | xml | IN | |
@DIDRECOGNITIONSDEFAULT | bit | IN | |
@TRIBUTES | xml | IN | |
@UNAPPLIEDMATCHINGGIFTSPLITS | xml | IN | |
@UNAPPLIEDMATCHINGGIFTAMOUNT | money | IN | |
@RECEIPTTYPECODE | tinyint | IN | |
@NEWCONSTITUENT | xml | IN | |
@OTHERPAYMENTMETHODCODEID | uniqueidentifier | IN | |
@LETTERCODEID | uniqueidentifier | IN | |
@ACKNOWLEDGEDATE | datetime | IN | |
@REFERENCE | nvarchar(255) | IN | |
@CATEGORYCODEID | uniqueidentifier | IN | |
@ACKNOWLEDGEEID | uniqueidentifier | IN | |
@APPLICATIONINFO | nvarchar(60) | IN | |
@OTHERTYPECODEID | uniqueidentifier | IN | |
@OPPORTUNITYID | uniqueidentifier | IN | |
@DIRECTDEBITRESULTCODE | nvarchar(10) | IN | |
@LOWPRICE | decimal(19, 4) | IN | |
@HIGHPRICE | decimal(19, 4) | IN | |
@NUMBEROFUNITSSOLD | decimal(20, 3) | IN | |
@USERMODIFIEDNUMBEROFUNITSSOLD | bit | IN | |
@CREDITCARDTOKEN | uniqueidentifier | IN | |
@REJECTIONMESSAGE | nvarchar(500) | IN | |
@PARTIALCREDITCARDNUMBER | nvarchar(4) | IN | |
@TAXDECLARATIONS | xml | IN | |
@STANDINGORDERCONSTITUENTACCOUNTID | uniqueidentifier | IN | |
@STANDINGORDERREFERENCENUMBER | nvarchar(18) | IN | |
@STANDINGORDERREFERENCEDATE | UDT_FUZZYDATE | IN | |
@STANDINGORDERSETUP | bit | IN | |
@STANDINGORDERSETUPDATE | datetime | IN | |
@TRANSACTIONID | uniqueidentifier | IN | |
@ISTRANSIENTCARD | bit | IN | |
@DECLINESGIFTAID | bit | IN | |
@DDISOURCECODEID | uniqueidentifier | IN | |
@DDISOURCEDATE | date | IN | |
@ISCOVENANT | bit | IN | |
@AMOUNTFORVAT | money | IN | |
@VATTAXRATEID | uniqueidentifier | IN | |
@VATAMOUNT | money | IN | |
@ADDITIONALAPPLICATIONSSTREAM | xml | IN | |
@REVENUELOOKUPID | nvarchar(100) | IN | |
@APPLICATIONSOLICITORS | xml | IN | |
@APPLICATIONRECOGNITIONS | xml | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@MATCHINGGIFTS | xml | IN | |
@MGGENERATED | bit | IN | |
@MGALTERED | bit | IN | |
@PAYINGPENDINGREVENUEID | uniqueidentifier | IN | |
@GIFTINKINDITEMNAME | nvarchar(100) | IN | |
@GIFTINKINDDISPOSITIONCODE | tinyint | IN | |
@GIFTINKINDNUMBEROFUNITS | int | IN | |
@GIFTINKINDFAIRMARKETVALUE | money | IN | |
@DIRECTDEBITISREJECTED | bit | IN | |
@PERCENTAGEBENEFITS | xml | IN | |
@ISGIFTAIDSPONSORSHIP | bit | IN | |
@LOCKBOXID | uniqueidentifier | IN | |
@LOCKBOXBATCHNUMBER | nvarchar(100) | IN | |
@LOCKBOXBATCHSEQUENCE | int | IN | |
@PDACCOUNTSYSTEMID | uniqueidentifier | IN | |
@APPLICATIONBUSINESSUNITS | xml | IN | |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN | |
@BASECURRENCYID | uniqueidentifier | IN | |
@BASEEXCHANGERATEID | uniqueidentifier | IN | |
@EXCHANGERATE | decimal(20, 8) | IN | |
@GENERATEREFERENCENUMBER | bit | IN | |
@APPLYBYPERCENT | bit | IN | |
@SOURCECODEIMPORT | nvarchar(60) | IN | |
@CURRENTBATCHROWID | uniqueidentifier | IN | |
@MERCHANTACCOUNTID | uniqueidentifier | IN | |
@SETNULLBASEEXCHANGERATETOLATEST | bit | IN | |
@APPEALIDFORIMPORT | uniqueidentifier | IN | |
@SALE_LOWPRICE | decimal(19, 4) | IN | |
@SALE_MEDIANPRICE | decimal(19, 4) | IN | |
@SALE_HIGHPRICE | decimal(19, 4) | IN | |
@CREDITCARDATTEMPTCOUNT | tinyint | IN | |
@VENDORID | nvarchar(50) | IN | |
@CLIENTAPPLICENSEID | nvarchar(100) | IN | |
@BBNCTRANSACTIONPROCESSORID | uniqueidentifier | IN | |
@BBNCORIGINAPPEALID | uniqueidentifier | IN | |
@BBNCTRANID | int | IN | |
@BBNCID | int | IN | |
@BBNCORIGINPAGENAME | nvarchar(100) | IN | |
@BBNCORIGINPAGEID | int | IN | |
@FINANCIALINSTITUTIONID | uniqueidentifier | IN | |
@ACCOUNTNUMBER | nvarchar(50) | IN | |
@ACCOUNTTYPE | tinyint | IN | |
@ACCOUNTNAME | nvarchar(100) | IN | |
@RECEIPTNUMBER | nvarchar(30) | IN | |
@EMAILID | int | IN | |
@EMAILNAME | nvarchar(510) | IN | |
@EMAILSUBJECT | nvarchar(510) | 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 | |
@RECEIPTSTACKSHORTNAME | nvarchar(20) | IN | |
@MARKGIFTASRECEIPTED | bit | IN | |
@FIRSTPAYMENTPROCESSED | nvarchar(10) | IN | |
@PAYMENTFORPLEDGERECEIPTAMOUNT | money | IN | |
@SEPAMANDATEID | uniqueidentifier | IN | |
@ADDSEPAMANDATE | bit | IN | |
@SEPAMANDATECUSTOMIDENTIFIER | nvarchar(35) | IN | |
@SEPAMANDATESIGNATUREDATE | date | IN | |
@SEPAMANDATETYPECODE | tinyint | IN | |
@FINANCIALINSTITUTIONNAME | nvarchar(100) | IN | |
@BANKINGSYSTEMID | uniqueidentifier | IN | |
@BRANCHNAME | nvarchar(100) | IN | |
@ROUTINGNUMBER | nvarchar(9) | IN | |
@SORTCODE | nvarchar(6) | IN | |
@BIC | nvarchar(11) | IN | |
@BANKCODE | nvarchar(25) | IN | |
@INSTALLMENTAMOUNT | money | IN | |
@REQUIRECREDITCARDPROCESSING | bit | IN | |
@NOTEHTMLNOTE | nvarchar(max) | IN | |
@IMPORT | bit | IN | |
@SOLICITCODES | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_2_REVENUEBATCHROW_16
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@TYPECODE tinyint,
@DATE datetime,
@AMOUNT money,
@PAYMENTMETHODCODE tinyint,
@DONOTACKNOWLEDGE bit,
@CHECKDATE dbo.UDT_FUZZYDATE,
@CHECKNUMBER nvarchar(20),
@REFERENCEDATE dbo.UDT_FUZZYDATE,
@REFERENCENUMBER nvarchar(20),
@CARDHOLDERNAME nvarchar(255),
@CREDITCARDNUMBER nvarchar(20),
@CREDITTYPECODEID uniqueidentifier,
@AUTHORIZATIONCODE nvarchar(20),
@EXPIRESON dbo.UDT_FUZZYDATE,
@ISSUER nvarchar(100),
@NUMBEROFUNITS decimal(20,3),
@SYMBOL nvarchar(25),
@MEDIANPRICE decimal(19,4),
@PROPERTYSUBTYPECODEID uniqueidentifier,
@GIFTINKINDSUBTYPECODEID uniqueidentifier,
@RECEIPTAMOUNT money,
@DONOTRECEIPT bit,
@CONSTITUENTACCOUNTID uniqueidentifier,
@SPLITS xml,
@SINGLEDESIGNATIONID uniqueidentifier,
@REVENUESTREAMS xml,
@APPLYTOSHOWNFORCONSTITUENTID uniqueidentifier,
@SEQUENCE int,
@INSTALLMENTFREQUENCYCODE tinyint,
@INSTALLMENTSTARTDATE datetime,
@INSTALLMENTENDDATE datetime,
@NUMBEROFINSTALLMENTS int,
@SOLICITORS xml,
@BENEFITS xml,
@FINDERNUMBER bigint,
@SOURCECODE nvarchar(60),
@APPEALID uniqueidentifier,
@FINDERNUMBERISVALID bit,
@USERMODIFIEDBENEFITS bit,
@BENEFITSWAIVED bit,
@POSTDATE datetime,
@POSTSTATUSCODE tinyint,
@SENDPLEDGEREMINDER bit,
@SALEDATE datetime,
@SALEAMOUNT money,
@BROKERFEE money,
@SALEPOSTSTATUSCODE tinyint,
@SALEPOSTDATE datetime,
@NOTETITLE nvarchar(50),
@NOTEAUTHORID uniqueidentifier,
@NOTEDATEENTERED datetime,
@NOTETYPECODEID uniqueidentifier,
@NOTETEXTNOTE nvarchar(max),
@GIVENANONYMOUSLY bit,
@GIVENANONYMOUSLYDEFAULTEDFORCONSTITUENTID uniqueidentifier,
@USERMODIFIEDRECEIPTAMOUNT bit,
@PLEDGESUBTYPEID uniqueidentifier,
@REJECTIONCODEID uniqueidentifier,
@CONSTITUENTLOOKUPID uniqueidentifier,
@MAILINGID uniqueidentifier,
@CHANNELCODEID uniqueidentifier,
@INSTALLMENTS xml,
@PAYMENTFORPLEDGEAMOUNT money,
@RECOGNITIONS xml,
@DIDRECOGNITIONSDEFAULT bit,
@TRIBUTES xml,
@UNAPPLIEDMATCHINGGIFTSPLITS xml,
@UNAPPLIEDMATCHINGGIFTAMOUNT money,
@RECEIPTTYPECODE tinyint,
@NEWCONSTITUENT xml,
@OTHERPAYMENTMETHODCODEID uniqueidentifier,
@LETTERCODEID uniqueidentifier,
@ACKNOWLEDGEDATE datetime,
@REFERENCE nvarchar(255),
@CATEGORYCODEID uniqueidentifier,
@ACKNOWLEDGEEID uniqueidentifier,
@APPLICATIONINFO nvarchar(60),
@OTHERTYPECODEID uniqueidentifier,
@OPPORTUNITYID uniqueidentifier,
@DIRECTDEBITRESULTCODE nvarchar(10),
@LOWPRICE decimal(19,4),
@HIGHPRICE decimal(19,4),
@NUMBEROFUNITSSOLD decimal(20,3),
@USERMODIFIEDNUMBEROFUNITSSOLD bit,
@CREDITCARDTOKEN uniqueidentifier,
@REJECTIONMESSAGE nvarchar(500),
-- PARTIALCREDITCARDNUMBER is used to support import and
-- credit card - last 4 digits recurring gifts
@PARTIALCREDITCARDNUMBER nvarchar(4),
@TAXDECLARATIONS xml,
@STANDINGORDERCONSTITUENTACCOUNTID uniqueidentifier,
@STANDINGORDERREFERENCENUMBER nvarchar(18),
@STANDINGORDERREFERENCEDATE dbo.UDT_FUZZYDATE,
@STANDINGORDERSETUP bit,
@STANDINGORDERSETUPDATE datetime,
@TRANSACTIONID uniqueidentifier,
@ISTRANSIENTCARD bit,
@DECLINESGIFTAID bit,
@DDISOURCECODEID uniqueidentifier,
@DDISOURCEDATE date,
@ISCOVENANT bit,
@AMOUNTFORVAT money,
@VATTAXRATEID uniqueidentifier,
@VATAMOUNT money,
@ADDITIONALAPPLICATIONSSTREAM xml,
@REVENUELOOKUPID nvarchar(100),
@APPLICATIONSOLICITORS xml,
@APPLICATIONRECOGNITIONS xml,
@CURRENTAPPUSERID uniqueidentifier = null,
@MATCHINGGIFTS xml,
@MGGENERATED bit,
@MGALTERED bit,
@PAYINGPENDINGREVENUEID uniqueidentifier,
@GIFTINKINDITEMNAME nvarchar(100),
@GIFTINKINDDISPOSITIONCODE tinyint,
@GIFTINKINDNUMBEROFUNITS int,
@GIFTINKINDFAIRMARKETVALUE money,
@DIRECTDEBITISREJECTED bit,
@PERCENTAGEBENEFITS xml,
@ISGIFTAIDSPONSORSHIP bit,
@LOCKBOXID uniqueidentifier,
@LOCKBOXBATCHNUMBER nvarchar(100),
@LOCKBOXBATCHSEQUENCE int,
@PDACCOUNTSYSTEMID uniqueidentifier,
@APPLICATIONBUSINESSUNITS xml,
@TRANSACTIONCURRENCYID uniqueidentifier,
@BASECURRENCYID uniqueidentifier,
@BASEEXCHANGERATEID uniqueidentifier,
@EXCHANGERATE decimal(20,8),
@GENERATEREFERENCENUMBER bit,
@APPLYBYPERCENT bit,
@SOURCECODEIMPORT nvarchar(60),
@CURRENTBATCHROWID uniqueidentifier,
@MERCHANTACCOUNTID uniqueidentifier,
@SETNULLBASEEXCHANGERATETOLATEST bit,
@APPEALIDFORIMPORT uniqueidentifier,
@SALE_LOWPRICE decimal(19,4),
@SALE_MEDIANPRICE decimal(19,4),
@SALE_HIGHPRICE decimal(19,4),
@CREDITCARDATTEMPTCOUNT tinyint,
@VENDORID nvarchar(50),
@CLIENTAPPLICENSEID nvarchar(100),
@BBNCTRANSACTIONPROCESSORID uniqueidentifier,
@BBNCORIGINAPPEALID uniqueidentifier,
@BBNCTRANID int,
@BBNCID int,
@BBNCORIGINPAGENAME nvarchar(100),
@BBNCORIGINPAGEID int,
@FINANCIALINSTITUTIONID uniqueidentifier,
@ACCOUNTNUMBER nvarchar(50),
@ACCOUNTTYPE tinyint,
@ACCOUNTNAME nvarchar(100),
@RECEIPTNUMBER nvarchar(30),
@EMAILID int,
@EMAILNAME nvarchar(510),
@EMAILSUBJECT nvarchar(510),
@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,
@RECEIPTSTACKSHORTNAME nvarchar(20),
@MARKGIFTASRECEIPTED bit,
@FIRSTPAYMENTPROCESSED nvarchar(10),
@PAYMENTFORPLEDGERECEIPTAMOUNT money,
@SEPAMANDATEID uniqueidentifier,
@ADDSEPAMANDATE bit,
@SEPAMANDATECUSTOMIDENTIFIER nvarchar(35),
@SEPAMANDATESIGNATUREDATE date,
@SEPAMANDATETYPECODE tinyint,
@FINANCIALINSTITUTIONNAME nvarchar(100),
@BANKINGSYSTEMID uniqueidentifier,
@BRANCHNAME nvarchar(100),
@ROUTINGNUMBER nvarchar(9),
@SORTCODE nvarchar(6),
@BIC nvarchar(11),
@BANKCODE nvarchar(25),
@INSTALLMENTAMOUNT money,
@REQUIRECREDITCARDPROCESSING bit,
@NOTEHTMLNOTE nvarchar(max),
@IMPORT bit,
@SOLICITCODES xml
)
as
set nocount on;
declare @CURRENTDATE datetime
declare @BATCHID uniqueidentifier;
if @ID is null
set @ID = NewID()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
set @CURRENTDATE = getdate();
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
begin try
select @BATCHID = [BATCHID]
from dbo.[BATCHREVENUE]
where [ID] = @ID;
-- Check batch status
-- Note: The Infinity platform checks for this, but the BizOps endpoints do not. This change prevents adding/editing rows in committed/deleted batches.
if (select STATUSCODE from dbo.BATCH where ID = @BATCHID) > 0
raiserror('BBERR_BATCH_STATUSCODE_INVALIDFORADDEDIT', 13, 1);
-- Check constituent security.
if exists (select top 1 ID from REVENUEBATCHCONSTITUENTSECURITY where CONSTITUENTSECURITY = 1)
and exists (select top 1 ID from CONSTITUENT where ID = @CONSTITUENTID) -- Don't check if new constituent
begin -- site security is enabled
if not ((dbo .UFN_APPUSER_ISSYSADMIN( @CURRENTAPPUSERID) = 1) or
((dbo. UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT (@CURRENTAPPUSERID, '3E5B7B99-FB01-49D4-9020-C953006B7D0F' , @CONSTITUENTID) = 1 ) and -- Constituent group security
exists ( select 1 from dbo.UFN_SITEID_MAPFROM_CONSTITUENTID( @CONSTITUENTID)
where dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORSITE(@CURRENTAPPUSERID , '3E5B7B99-FB01-49D4-9020-C953006B7D0F' , SITEID) = 1 ))) -- Site security
begin
raiserror ('BBERR_DB_RECORDSECURITY_PERMISSION_DENIED' , 13, 1)
end
end
if @TYPECODE = 0 -- payment
begin
if @PAYMENTMETHODCODE = 6 --Gift-in-kind
begin
if @GIFTINKINDITEMNAME is null or @GIFTINKINDITEMNAME = ''
raiserror('BBERR_GIFTINKINDITEMNAMEREQUIRED', 13, 1)
if @GIFTINKINDDISPOSITIONCODE is null
raiserror('BBERR_GIFTINKINDDISPOSITIONCODEREQUIRED', 13, 1)
if @GIFTINKINDNUMBEROFUNITS is null
raiserror('BBERR_GIFTINKINDNUMBEROFUNITSREQUIRED', 13, 1)
if @GIFTINKINDFAIRMARKETVALUE is null
raiserror('BBERR_GIFTINKINDFAIRMARKETVALUEREQUIRED', 13, 1)
if @GIFTINKINDNUMBEROFUNITS < 0
raiserror('BBERR_GIFTINKINDNUMBEROFUNITSNEGATIVE', 13, 1)
if @GIFTINKINDFAIRMARKETVALUE < 0
raiserror('BBERR_GIFTINKINDFAIRMARKETVALUENEGATIVE', 13, 1)
end
end
if @PAYMENTMETHODCODE = 11 --Standing order
begin
if @GENERATEREFERENCENUMBER is null or @GENERATEREFERENCENUMBER = 1
select
@STANDINGORDERREFERENCENUMBER = '',
@GENERATEREFERENCENUMBER = 1
set @CONSTITUENTACCOUNTID = @STANDINGORDERCONSTITUENTACCOUNTID;
--if @CONSTITUENTACCOUNTID is null
--begin
--raiserror('Standing order account must be specified for standing order payments', 13, 1)
--end
set @REFERENCEDATE = @STANDINGORDERREFERENCEDATE;
end
--JamesWill CR269707-031107 2007/03/19 Set default values for any non-nullable fields that might come in as null
if @DONOTACKNOWLEDGE is null
set @DONOTACKNOWLEDGE = 0;
if @CHECKDATE is null
set @CHECKDATE = '00000000';
if @CHECKNUMBER is null
set @CHECKNUMBER = '';
if @REFERENCEDATE is null
set @REFERENCEDATE = '00000000';
if @REFERENCENUMBER is null
set @REFERENCENUMBER = '';
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 @ISSUER is null
set @ISSUER = '';
if @NUMBEROFUNITS is null
set @NUMBEROFUNITS = 0;
if @NUMBEROFUNITSSOLD is null
set @NUMBEROFUNITSSOLD = 0;
if @USERMODIFIEDNUMBEROFUNITSSOLD is null
set @USERMODIFIEDNUMBEROFUNITSSOLD = 0;
if @SYMBOL is null
set @SYMBOL = '';
if @MEDIANPRICE is null
set @MEDIANPRICE = 0;
if @LOWPRICE is null
set @LOWPRICE = 0;
if @HIGHPRICE is null
set @HIGHPRICE = 0;
if @RECEIPTAMOUNT is null
set @RECEIPTAMOUNT = 0;
if @DONOTRECEIPT is null
set @DONOTRECEIPT = 0;
if @NUMBEROFINSTALLMENTS is null
set @NUMBEROFINSTALLMENTS = 1;
if @SOURCECODE is null
set @SOURCECODE = '';
if @FINDERNUMBERISVALID is null
set @FINDERNUMBERISVALID = 0;
if @USERMODIFIEDBENEFITS is null
set @USERMODIFIEDBENEFITS = 0;
if @BENEFITSWAIVED is null
set @BENEFITSWAIVED = 0;
if @SENDPLEDGEREMINDER is null
set @SENDPLEDGEREMINDER = 1;
if @SALEAMOUNT is null
set @SALEAMOUNT = 0;
if @BROKERFEE is null
set @BROKERFEE = 0;
if @NOTETITLE is null
set @NOTETITLE = '';
if @NOTETEXTNOTE is null
set @NOTETEXTNOTE = '';
if @NOTEHTMLNOTE is null
set @NOTEHTMLNOTE = '';
if @GIVENANONYMOUSLY is null
set @GIVENANONYMOUSLY = 0;
if @USERMODIFIEDRECEIPTAMOUNT is null
set @USERMODIFIEDRECEIPTAMOUNT = 0;
if @PAYMENTFORPLEDGEAMOUNT is null
set @PAYMENTFORPLEDGEAMOUNT = 0;
if @PAYMENTFORPLEDGERECEIPTAMOUNT is null
set @PAYMENTFORPLEDGERECEIPTAMOUNT = 0;
if @DIDRECOGNITIONSDEFAULT is null
set @DIDRECOGNITIONSDEFAULT = 0;
if @STANDINGORDERREFERENCEDATE is null
set @STANDINGORDERREFERENCEDATE = '00000000';
if @STANDINGORDERSETUP is null
set @STANDINGORDERSETUP = 0;
if @STANDINGORDERREFERENCENUMBER is null
set @STANDINGORDERREFERENCENUMBER = '';
if @AMOUNTFORVAT is null
set @AMOUNTFORVAT = 0;
if @VATAMOUNT is null
set @VATAMOUNT = 0;
if @GIFTINKINDITEMNAME is null
set @GIFTINKINDITEMNAME = '';
if @GIFTINKINDDISPOSITIONCODE is null
set @GIFTINKINDDISPOSITIONCODE = 0;
if @GIFTINKINDNUMBEROFUNITS is null
set @GIFTINKINDNUMBEROFUNITS = 0;
if @GIFTINKINDFAIRMARKETVALUE is null
set @GIFTINKINDFAIRMARKETVALUE = 0;
if @DIRECTDEBITISREJECTED is null --JamesWill WI174301 2011-11-21
set @DIRECTDEBITISREJECTED = 0;
if @CREDITCARDATTEMPTCOUNT is null
set @CREDITCARDATTEMPTCOUNT = 0;
if @TYPECODE <> 0
set @LOCKBOXID = null;
if @REQUIRECREDITCARDPROCESSING is null
set @REQUIRECREDITCARDPROCESSING = 0;
if not @LOCKBOXID is null
if @LOCKBOXBATCHSEQUENCE is null or @LOCKBOXBATCHNUMBER is null
raiserror('BBERR_LOCKBOXFIELDREQUIRED', 13, 1)
if @LOCKBOXBATCHNUMBER is null or @LOCKBOXID is null
set @LOCKBOXBATCHNUMBER = '';
if @LOCKBOXBATCHSEQUENCE is null or @LOCKBOXID is null
set @LOCKBOXBATCHSEQUENCE = 0;
if @FINDERNUMBER is null
set @FINDERNUMBER = 0;
if cast(@SPLITS as nvarchar(max)) = ''
set @SPLITS = null;
if not @SPLITS is null
set @SINGLEDESIGNATIONID = null;
if @PAYMENTMETHODCODE is null
set @PAYMENTMETHODCODE = 255;
/* JamesWill CR267402-021907 INSTALLMENTFREQUENCYCODE cannot be null in the database, but it can be null in the defaults */
if @INSTALLMENTFREQUENCYCODE is null
begin
-- For Recurring Gifts, default to Monthly. For other types, use Single Installment.
if @TYPECODE = 3
set @INSTALLMENTFREQUENCYCODE = 3;
else
set @INSTALLMENTFREQUENCYCODE = 5;
end
/* JamesWill CR265838-020507 2007/03/07 */
if @POSTSTATUSCODE is null
set @POSTSTATUSCODE = 255;
if @SALEPOSTSTATUSCODE is null
set @SALEPOSTSTATUSCODE = 255;
if @RECEIPTTYPECODE is null
set @RECEIPTTYPECODE = 255;
-- Don't save account system for recurring gifts.
if @TYPECODE = 3
set @PDACCOUNTSYSTEMID = null;
if @BASECURRENCYID is null
begin
declare @CURRENCYSETID uniqueidentifier
select @CURRENCYSETID = CURRENCYSETID
from dbo.PDACCOUNTSYSTEM
where ID = @PDACCOUNTSYSTEMID
select
@BASECURRENCYID = CURRENCYSET.BASECURRENCYID
from
dbo.CURRENCYSET
where
CURRENCYSET.ID = coalesce(@CURRENCYSETID,dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID))
end
if @EXCHANGERATE is null
set @EXCHANGERATE = 0;
declare @MARKETINGCONSTITUENTID uniqueidentifier = @CONSTITUENTID;
/* Lookup and set all possible marketing data (via output params) from the data that was specified. */
declare @LOOKUPSINGLEDESIGNATION bit = (case when @SINGLEDESIGNATIONID is null and @SPLITS is null and @REVENUESTREAMS is null and @ADDITIONALAPPLICATIONSSTREAM is null then 1 else 0 end);
exec dbo.[USP_REVENUEBATCH_GETMARKETINGDATA]
@FINDERNUMBER = @FINDERNUMBER,
@LOOKUPSINGLEDESIGNATION = @LOOKUPSINGLEDESIGNATION,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTAPPUSERID = @CURRENTAPPUSERID,
@SOURCECODE = @SOURCECODE output,
@MAILINGID = @MAILINGID output,
@APPEALID = @APPEALID output,
@CONSTITUENTID = @MARKETINGCONSTITUENTID output,
@FINDERNUMBERISVALID = @FINDERNUMBERISVALID output,
@SINGLEDESIGNATIONID = @SINGLEDESIGNATIONID output,
@BATCHID = @BATCHID,
@IMPORT = @IMPORT;
if @BBNCTRANID = 0
set @CONSTITUENTID = @MARKETINGCONSTITUENTID;
declare @BASECURRENCYDECIMALDIGITS tinyint;
declare @BASECURRENCYROUNDINGTYPECODE tinyint;
select @BASECURRENCYDECIMALDIGITS = DECIMALDIGITS, @BASECURRENCYROUNDINGTYPECODE = ROUNDINGTYPECODE
from dbo.CURRENCY where ID = @BASECURRENCYID;
declare @CREDITCARDID uniqueidentifier
if @PAYMENTMETHODCODE = 2
begin try
exec dbo.USP_CREDITCARD_SAVE
@ID = @CREDITCARDID output,
@CREDITCARDTOKEN = @CREDITCARDTOKEN,
@CARDHOLDERNAME = @CARDHOLDERNAME,
@CREDITCARDPARTIALNUMBER = @CREDITCARDNUMBER,
@CREDITTYPECODEID = @CREDITTYPECODEID,
@EXPIRESON = @EXPIRESON,
@CHANGEAGENTID = @CHANGEAGENTID,
@CURRENTDATE = @CURRENTDATE,
@ISTRANSIENT = @ISTRANSIENTCARD;
end try
begin catch
if (@CREDITCARDTOKEN is null or len(coalesce(@CREDITCARDNUMBER, '')) < 4)
raiserror('BBERR_CREDITCARDFIELDSREQUIRED', 13, 1);
if coalesce(@EXPIRESON, '00000000') = '00000000'
raiserror('BBERR_EXPIRESONFIELDSREQUIRED', 13, 1);
if len(coalesce(@CARDHOLDERNAME, '')) = 0
raiserror('BBERR_CARDHOLDERFIELDSREQUIRED', 13, 1);
end catch
-- if there was a duplicate and it was resolved with UPDATE, remove the BATCHREVENUECONSTITUENT
if exists (select ID from dbo.CONSTITUENT where ID = @CONSTITUENTID) and exists (select ID from dbo.BATCHREVENUECONSTITUENT where ID = @CONSTITUENTID)
begin
--delete the temporary batch version of the constituent
exec dbo.USP_REVENUEBATCH_CONSTITUENT_DELETE @BATCHREVENUECONSTITUENTID = @CONSTITUENTID, @CHANGEAGENTID = @CHANGEAGENTID
end
declare @OLDAPPLICATIONINFO nvarchar(60);
select @OLDAPPLICATIONINFO = APPLICATIONINFO
from dbo.BATCHREVENUE where ID = @ID;
--Clear the credit card fields before inserting them into the batch table if the payment method is credit card (2)
--They are saved above in that scenario and they only need to be saved to the BATCHREVENUE table if the payment method is 98 - Credit card - last 4 digits only
if @PAYMENTMETHODCODE = 2
begin
set @CARDHOLDERNAME = '';
set @CREDITTYPECODEID = null;
set @EXPIRESON = '00000000';
end
--Calculate receipt amount
declare @CALCULATEDRECEIPTAMOUNT money = dbo.UFN_REVENUEBATCH_CALCULATERECEIPTAMOUNT
(
@AMOUNT, @RECEIPTAMOUNT, @APPLICATIONINFO, @DATE, @BENEFITSWAIVED, @BENEFITS, @PERCENTAGEBENEFITS, @REVENUESTREAMS,
@TRANSACTIONCURRENCYID, @BASECURRENCYID, @BASEEXCHANGERATEID
);
--User modified receipt amount if it is not set to calculated amount
if @RECEIPTAMOUNT > 0 and @RECEIPTAMOUNT <> @CALCULATEDRECEIPTAMOUNT
set @USERMODIFIEDRECEIPTAMOUNT = 1;
if @USERMODIFIEDRECEIPTAMOUNT = 0
set @RECEIPTAMOUNT = @CALCULATEDRECEIPTAMOUNT;
update dbo.BATCHREVENUE
set CONSTITUENTID = @CONSTITUENTID,
TYPECODE = @TYPECODE,
DATE = @DATE,
PAYMENTMETHODCODE = @PAYMENTMETHODCODE,
DONOTACKNOWLEDGE = @DONOTACKNOWLEDGE,
CHECKDATE = @CHECKDATE,
CHECKNUMBER = @CHECKNUMBER,
REFERENCEDATE = @REFERENCEDATE,
REFERENCENUMBER = @REFERENCENUMBER,
CREDITCARDID = @CREDITCARDID,
AUTHORIZATIONCODE = @AUTHORIZATIONCODE,
CONSTITUENTACCOUNTID = @CONSTITUENTACCOUNTID,
AMOUNT = @AMOUNT,
RECEIPTAMOUNT = @RECEIPTAMOUNT,
DONOTRECEIPT = @DONOTRECEIPT,
SEQUENCE = @SEQUENCE,
INSTALLMENTFREQUENCYCODE = @INSTALLMENTFREQUENCYCODE,
INSTALLMENTSTARTDATE = @INSTALLMENTSTARTDATE,
INSTALLMENTENDDATE = @INSTALLMENTENDDATE,
NUMBEROFINSTALLMENTS = @NUMBEROFINSTALLMENTS,
APPLYTOSHOWNFORCONSTITUENTID = @APPLYTOSHOWNFORCONSTITUENTID,
FINDERNUMBER = @FINDERNUMBER,
SOURCECODE = @SOURCECODE,
APPEALID = @APPEALID,
FINDERNUMBERISVALID = @FINDERNUMBERISVALID,
USERMODIFIEDBENEFITS = @USERMODIFIEDBENEFITS,
BENEFITSWAIVED = @BENEFITSWAIVED,
POSTDATE = @POSTDATE,
POSTSTATUSCODE = @POSTSTATUSCODE,
SENDPLEDGEREMINDER = @SENDPLEDGEREMINDER,
SALEDATE = @SALEDATE,
SALEAMOUNT = @SALEAMOUNT,
BROKERFEE = @BROKERFEE,
SALEPOSTSTATUSCODE = @SALEPOSTSTATUSCODE,
SALEPOSTDATE = @SALEPOSTDATE,
ISSUER = @ISSUER,
MERCHANTACCOUNTID = @MERCHANTACCOUNTID,
NUMBEROFUNITS = @NUMBEROFUNITS,
SYMBOL = @SYMBOL,
MEDIANPRICE = @MEDIANPRICE,
GIFTINKINDSUBTYPECODEID = @GIFTINKINDSUBTYPECODEID,
PROPERTYSUBTYPECODEID = @PROPERTYSUBTYPECODEID,
NOTETITLE = @NOTETITLE,
NOTEAUTHORID = @NOTEAUTHORID,
NOTEDATEENTERED = @NOTEDATEENTERED,
NOTETYPECODEID = @NOTETYPECODEID,
NOTETEXTNOTE = @NOTETEXTNOTE,
GIVENANONYMOUSLY = @GIVENANONYMOUSLY,
GIVENANONYMOUSLYDEFAULTEDFORCONSTITUENTID = @GIVENANONYMOUSLYDEFAULTEDFORCONSTITUENTID,
USERMODIFIEDRECEIPTAMOUNT = @USERMODIFIEDRECEIPTAMOUNT,
PLEDGESUBTYPEID = @PLEDGESUBTYPEID,
REJECTIONMESSAGE = @REJECTIONMESSAGE,
MAILINGID = @MAILINGID,
CHANNELCODEID = @CHANNELCODEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
PAYMENTFORPLEDGEAMOUNT = @PAYMENTFORPLEDGEAMOUNT,
RECEIPTTYPECODE = @RECEIPTTYPECODE,
OTHERPAYMENTMETHODCODEID = @OTHERPAYMENTMETHODCODEID,
LETTERCODEID = @LETTERCODEID,
ACKNOWLEDGEDATE = @ACKNOWLEDGEDATE,
REFERENCE = @REFERENCE,
GLREVENUECATEGORYMAPPINGID = @CATEGORYCODEID,
ACKNOWLEDGEEID = @ACKNOWLEDGEEID,
OTHERTYPECODEID = @OTHERTYPECODEID,
OPPORTUNITYID = @OPPORTUNITYID,
DIRECTDEBITRESULTCODE = @DIRECTDEBITRESULTCODE,
LOWPRICE = @LOWPRICE,
HIGHPRICE = @HIGHPRICE,
NUMBEROFUNITSSOLD = @NUMBEROFUNITSSOLD,
USERMODIFIEDNUMBEROFUNITSSOLD = @USERMODIFIEDNUMBEROFUNITSSOLD,
STANDINGORDERSETUP = @STANDINGORDERSETUP,
STANDINGORDERSETUPDATE = @STANDINGORDERSETUPDATE,
USESYSTEMGENERATEDREFERENCENUMBER = @GENERATEREFERENCENUMBER,
STANDINGORDERREFERENCENUMBER = @STANDINGORDERREFERENCENUMBER,
TRANSACTIONID = @TRANSACTIONID,
DECLINESGIFTAID = coalesce(@DECLINESGIFTAID, 0),
DDISOURCECODEID = @DDISOURCECODEID,
DDISOURCEDATE = @DDISOURCEDATE,
ISCOVENANT = @ISCOVENANT,
AMOUNTFORVAT = @AMOUNTFORVAT,
VATTAXRATEID = @VATTAXRATEID,
VATAMOUNT = @VATAMOUNT,
APPLICATIONINFO = @APPLICATIONINFO,
REVENUELOOKUPID = coalesce(rtrim(ltrim(@REVENUELOOKUPID)),''),
MGGENERATED = @MGGENERATED,
MGALTERED = @MGALTERED,
PAYINGPENDINGREVENUEID = @PAYINGPENDINGREVENUEID,
GIFTINKINDITEMNAME = @GIFTINKINDITEMNAME,
GIFTINKINDDISPOSITIONCODE = @GIFTINKINDDISPOSITIONCODE,
GIFTINKINDNUMBEROFUNITS = @GIFTINKINDNUMBEROFUNITS,
GIFTINKINDFAIRMARKETVALUE = @GIFTINKINDFAIRMARKETVALUE,
DIRECTDEBITISREJECTED = @DIRECTDEBITISREJECTED,
ISGIFTAIDSPONSORSHIP = coalesce(@ISGIFTAIDSPONSORSHIP, 0),
LOCKBOXID = @LOCKBOXID,
LOCKBOXBATCHNUMBER = @LOCKBOXBATCHNUMBER,
LOCKBOXBATCHSEQUENCE = @LOCKBOXBATCHSEQUENCE,
PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID,
BASECURRENCYID = @BASECURRENCYID,
TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
EXCHANGERATE = @EXCHANGERATE,
APPLYBYPERCENT= @APPLYBYPERCENT,
SALE_LOWPRICE = @SALE_LOWPRICE,
SALE_MEDIANPRICE = @SALE_MEDIANPRICE,
SALE_HIGHPRICE = @SALE_HIGHPRICE,
CREDITCARDATTEMPTCOUNT = @CREDITCARDATTEMPTCOUNT,
VENDORID = isnull(@VENDORID, ''),
CLIENTAPPLICENSEID = isnull(@CLIENTAPPLICENSEID, ''),
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,
PAYMENTFORPLEDGERECEIPTAMOUNT = @PAYMENTFORPLEDGERECEIPTAMOUNT,
SEPAMANDATEID = @SEPAMANDATEID,
INSTALLMENTAMOUNT = @INSTALLMENTAMOUNT,
REQUIRECREDITCARDPROCESSING = @REQUIRECREDITCARDPROCESSING,
NOTEHTMLNOTE = @NOTEHTMLNOTE,
CARDHOLDERNAME = @CARDHOLDERNAME,
CREDITTYPECODEID = @CREDITTYPECODEID,
CREDITCARDPARTIALNUMBER = @PARTIALCREDITCARDNUMBER,
EXPIRESON= @EXPIRESON
where ID = @ID;
-- Create the splits collection with the single designation if the splits collection is null and the designation isn't
if ((@TYPECODE<>0) and (@SPLITS is null) and (@SINGLEDESIGNATIONID is not null))
begin
set @SPLITS = ( select
@SINGLEDESIGNATIONID as DESIGNATIONID,
@AMOUNT as AMOUNT,
@DECLINESGIFTAID as DECLINESGIFTAID,
1 as SEQUENCE,
@ISGIFTAIDSPONSORSHIP as ISGIFTAIDSPONSORSHIP
for xml raw('ITEM'),type,elements,root('SPLITS'),binary base64)
end
if @SPLITS is not null
begin
exec dbo.USP_REVENUEBATCH_SPLITSWITHCHILDREN_UPDATEFROMXML @ID, @SPLITS, @DATE, @CHANGEAGENTID, @CURRENTDATE;
end
else
delete from dbo.BATCHREVENUESPLIT where BATCHREVENUEID = @ID;
delete from dbo.BATCHREVENUERECOGNITION where BATCHREVENUEID = @ID;
delete from dbo.BATCHREVENUESOLICITOR where BATCHREVENUEID = @ID;
declare @APPLICATIONCODE tinyint;
declare @SINGLEAPPLICATIONID uniqueidentifier;
declare @APPLICATIONTYPECODE tinyint;
if @APPLICATIONINFO is not null
if len(@APPLICATIONINFO) > 0
if len(@APPLICATIONINFO) = 3
set @APPLICATIONCODE = cast(substring(@APPLICATIONINFO, 3, 1) as tinyint);
else if len(@APPLICATIONINFO) > 3
select
@SINGLEAPPLICATIONID = SINGLEAPPLICATIONID,
@APPLICATIONTYPECODE = APPLICATIONTYPECODE
from dbo.UFN_REVENUEBATCH_PARSEAPPLICATIONINFO(@APPLICATIONINFO)
declare @SPLITCOUNT int
select @SPLITCOUNT = count(*) from @SPLITS.nodes('/SPLITS/ITEM') T(c)
declare @ADDITIONALAPPLICATIONCOUNT int
select @ADDITIONALAPPLICATIONCOUNT = count(*) from @ADDITIONALAPPLICATIONSSTREAM.nodes('/ADDITIONALAPPLICATIONSSTREAM/ITEM') T(c)
--JamesWilliams If this application was generated by the generate payments process, mark it pending
if @SINGLEAPPLICATIONID is not null and @SINGLEAPPLICATIONID <> '00000000-0000-0000-0000-000000000000' and @SINGLEAPPLICATIONID = @PAYINGPENDINGREVENUEID
update dbo.REVENUESCHEDULE
set REVENUESCHEDULE.ISPENDING = 1,
REVENUESCHEDULE.CHANGEDBYID = @CHANGEAGENTID,
REVENUESCHEDULE.DATECHANGED = @CURRENTDATE
where ID = @PAYINGPENDINGREVENUEID;
-- Default additional application recognition credits if they were not specified.
-- Note that additional applications are in the transaction currency of the row.
if @APPLICATIONRECOGNITIONS is null and @ADDITIONALAPPLICATIONCOUNT > 0 and @DIDRECOGNITIONSDEFAULT = 0
begin
exec dbo.USP_REVENUEBATCH_DEFAULTAPPLICATIONRECOGNITIONS @APPLICATIONRECOGNITIONS output, @ADDITIONALAPPLICATIONSSTREAM, @GIVENANONYMOUSLY, @CONSTITUENTID, @DATE, @BASECURRENCYID, @BASEEXCHANGERATEID, @TRANSACTIONCURRENCYID, @BASECURRENCYDECIMALDIGITS, @BASECURRENCYROUNDINGTYPECODE, @EXCHANGERATE;
end
-- deal with payment payment application recognitions/solicitors
if @REVENUESTREAMS.exist('/REVENUESTREAMS/ITEM') <> 0 and @TYPECODE = 0
begin
exec dbo.USP_REVENUEBATCH_ADDPAYMENTRECOGNITIONSANDSOLICITORS @ID, @APPLICATIONRECOGNITIONS, @APPLICATIONSOLICITORS, @REVENUESTREAMS, @CHANGEAGENTID, @CURRENTDATE
if exists(select ID from BATCHREVENUERECOGNITION where BATCHREVENUEID = @ID)
set @RECOGNITIONS = null
end
if @APPLICATIONCODE is not null and @SPLITCOUNT > 1 and @TYPECODE = 0
exec dbo.USP_REVENUEBATCH_ADDRECOGNITIONSANDSOLICITORS @ID, @APPLICATIONRECOGNITIONS, @APPLICATIONSOLICITORS, @SPLITS, @APPLICATIONCODE, NULL, @CHANGEAGENTID, @CURRENTDATE
else if @APPLICATIONCODE is null and @SINGLEAPPLICATIONID is null and @ADDITIONALAPPLICATIONCOUNT >= 1 and @TYPECODE = 0
exec dbo.USP_REVENUEBATCH_ADDRECOGNITIONSANDSOLICITORS @ID, @APPLICATIONRECOGNITIONS, @APPLICATIONSOLICITORS, NULL, NULL, @ADDITIONALAPPLICATIONSSTREAM, @CHANGEAGENTID, @CURRENTDATE
else
begin
if not @RECOGNITIONS is null and @RECOGNITIONS.exist('RECOGNITIONS/ITEM') <> 0
begin
exec dbo.USP_REVENUEBATCH_GETRECOGNITIONS_ADDFROMXML @ID, @RECOGNITIONS, @CHANGEAGENTID;
end
else if @DIDRECOGNITIONSDEFAULT = 0
begin
-- Bug 67025 - AdamBu 12/3/09 - When DIDRECOGNITIONSDEFAULT is false and RECOGNITIONS is null, it means that we should clear then default recognitions
exec dbo.USP_REVENUEBATCH_GETRECOGNITIONS_UPDATEFROMXML @ID, null, @CHANGEAGENTID;
-- Create default recognitions
declare @SCAMOUNT money;
set @SCAMOUNT = @AMOUNT
-- Convert to base currency.
set @SCAMOUNT = case
when @BASECURRENCYID = @TRANSACTIONCURRENCYID
then @SCAMOUNT
when @BASEEXCHANGERATEID = '00000000-0000-0000-0000-000000000001'
then dbo.UFN_CURRENCY_ROUND(dbo.UFN_CURRENCY_APPLYRATE(@SCAMOUNT, @EXCHANGERATE), @BASECURRENCYDECIMALDIGITS, @BASECURRENCYROUNDINGTYPECODE)
else
dbo.UFN_CURRENCY_CONVERT(@SCAMOUNT, @BASEEXCHANGERATEID)
end
--APPLICATIONTYPECODE 8 in APPLICATIONINFO is for Matching gift and UFN_REVENUEBATCH_GETRECOGNITIONDEFAULTS_2 expects type code 3 for matching gift.
--APPLICATIONTYPECODE 4 in APPLICATIONINFO is for Recurring Gift and UFN_REVENUEBATCH_GETRECOGNITIONDEFAULTS_2 expects 2.
--APPLICATIONTYPECODE 1 in APPLICATIONINFO is for Sponsorship Recurring Gift and UFN_REVENUEBATCH_GETRECOGNITIONDEFAULTS_2 expects 2.
declare @APPTYPECODE tinyint =
case @APPLICATIONTYPECODE
when 8 then 3
when 4 then 2
when 1 then 2
else coalesce(@APPLICATIONTYPECODE, @APPLICATIONCODE)
end;
if @SCAMOUNT >= 0
begin
insert into dbo.BATCHREVENUERECOGNITION
(
BATCHREVENUEID,
CONSTITUENTID,
REVENUERECOGNITIONTYPECODEID,
AMOUNT,
EFFECTIVEDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
(
select
@ID,
RECOGNITIONS.CONSTITUENTID,
RECOGNITIONS.REVENUERECOGNITIONTYPECODEID,
RECOGNITIONS.AMOUNT,
@date,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.UFN_REVENUEBATCH_GETRECOGNITIONDEFAULTS_3(@GIVENANONYMOUSLY, @CONSTITUENTID, @SCAMOUNT, @DATE, null, @APPTYPECODE, @SINGLEAPPLICATIONID, @ID) as RECOGNITIONS
);
end
end
if not @SOLICITORS is null
exec dbo.USP_REVENUEBATCH_GETSOLICITORS_ADDFROMXML @ID, @SOLICITORS, @CHANGEAGENTID;
end
--exec dbo.USP_REVENUEBATCH_GETADDITIONALAPPLICATIONS_UPDATEFROMXML @ID, @ADDITIONALAPPLICATIONSSTREAM, @CHANGEAGENTID;
exec dbo.USP_REVENUEBATCH_ADDITIONALAPPLICATIONWITHCHILDREN_UPDATEFROMXML @ID, @ADDITIONALAPPLICATIONSSTREAM, @DATE, @CHANGEAGENTID
exec dbo.USP_REVENUEBATCH_GETBENEFITS_UPDATEFROMXML @ID, @BENEFITS, @CHANGEAGENTID;
exec dbo.USP_REVENUEBATCH_GETBENEFITSPCT_UPDATEFROMXML @ID, @PERCENTAGEBENEFITS, @CHANGEAGENTID;
--exec dbo.USP_REVENUEBATCH_GETMATCHINGGIFTSPLITS_UPDATEFROMXML @ID, @MGSPLITS, @CHANGEAGENTID;
exec dbo.USP_REVENUEBATCH_GETUNAPPLIEDMATCHINGGIFTSPLITS_UPDATEFROMXML @ID, @UNAPPLIEDMATCHINGGIFTSPLITS, @CHANGEAGENTID;
exec dbo.USP_REVENUEBATCH_GETINSTALLMENTS_UPDATEFROMXML @ID, @INSTALLMENTS, @CHANGEAGENTID;
--exec dbo.USP_REVENUEBATCH_GETINSTALLMENTS_UPDATEFROMXML @ID, @INSTALLMENTS, @CHANGEAGENTID;
if not @INSTALLMENTS is null
begin
set @INSTALLMENTS = (select
case when T.c.value('(ID)[1]','uniqueidentifier') is null or T.c.value('(ID)[1]','uniqueidentifier') = '00000000-0000-0000-0000-000000000000' then newid() else T.c.value('(ID)[1]','uniqueidentifier') end as ID,
T.c.value('(INSTALLMENTID)[1]','uniqueidentifier') AS 'INSTALLMENTID',
T.c.value('(DATE)[1]','datetime') AS 'DATE',
T.c.value('(AMOUNT)[1]','money') AS 'AMOUNT',
T.c.value('(RECEIPTAMOUNT)[1]','money') AS 'RECEIPTAMOUNT',
T.c.value('(BALANCE)[1]','money') AS 'BALANCE',
T.c.value('(APPLIED)[1]','money') AS 'APPLIED',
T.c.value('(SEQUENCE)[1]','int') AS 'SEQUENCE',
(select
ID,
INSTALLMENTSPLITID,
AMOUNT,
APPLIED,
DESIGNATIONID
from dbo.UFN_REVENUEUPDATEBATCH_GETINSTALLMENTSPLITS_FROMITEMLISTXML(T.c.query('(INSTALLMENTSPLITS)[1]'))
for xml raw('ITEM'),type,elements,BINARY BASE64) as 'INSTALLMENTSPLITS'
from @INSTALLMENTS.nodes('/INSTALLMENTS/ITEM') T(c)
for xml raw('ITEM'),type,elements,root('INSTALLMENTS'),binary base64);
exec dbo.USP_REVENUEBATCH_GETINSTALLMENTS_UPDATEFROMXML @ID, @INSTALLMENTS, @CHANGEAGENTID;
declare @BATCHINSTALLMENTID uniqueidentifier;
declare @INSTALLMENTSPLITS xml;
declare INSTALLMENTSPLITS cursor local fast_forward for
select
T.c.value('(ID)[1]','uniqueidentifier') as BATCHINSTALLMENTID,
cast(T.c.query('INSTALLMENTSPLITS') as xml) as INSTALLMENTSPLITS
from @INSTALLMENTS.nodes('/INSTALLMENTS/ITEM') T(c)
open INSTALLMENTSPLITS
fetch next from INSTALLMENTSPLITS into @BATCHINSTALLMENTID, @INSTALLMENTSPLITS
while @@FETCH_STATUS = 0
begin
exec dbo.USP_REVENUEUPDATEBATCH_GETINSTALLMENTSPLITS_UPDATEFROMXML @BATCHINSTALLMENTID, @INSTALLMENTSPLITS, @CHANGEAGENTID;
fetch next from INSTALLMENTSPLITS into @BATCHINSTALLMENTID, @INSTALLMENTSPLITS
end
close INSTALLMENTSPLITS
deallocate INSTALLMENTSPLITS
end
exec dbo.USP_REVENUEBATCH_GETTRIBUTES_UPDATEFROMXML @ID, @TRIBUTES, @CHANGEAGENTID;
exec dbo.USP_REVENUEBATCH_GETTAXDECLARATIONS_UPDATEFROMXML @ID, @TAXDECLARATIONS, @CHANGEAGENTID;
--JamesWill CR268756-030207 2007/03/02
--Unset the ISPENDING flag for all of the gifts we were previously applying to from a generated transaction
update dbo.REVENUESCHEDULE
set REVENUESCHEDULE.ISPENDING = 0,
REVENUESCHEDULE.CHANGEDBYID = @CHANGEAGENTID,
REVENUESCHEDULE.DATECHANGED = @CURRENTDATE
where REVENUESCHEDULE.ID in (select REVENUEID from dbo.BATCHREVENUEAPPLICATION where BATCHREVENUEID = @ID and APPLIED > 0 and WASGENERATED = 1)
-- It's possible there isn't a BATCHREVENUEAPPLICATION record for the pledge or recurring gift that was being paid
-- and so the ISPENDING flag needs to be cleared without checking BATCHREVENUEAPPLICATION.
if len(@OLDAPPLICATIONINFO) > 3
begin
declare @OLDSINGLEAPPLICATIONID uniqueidentifier;
select @OLDSINGLEAPPLICATIONID = SINGLEAPPLICATIONID
from dbo.UFN_REVENUEBATCH_PARSEAPPLICATIONINFO(@OLDAPPLICATIONINFO);
-- Verify that the old single commitment would have set the ISPENDING flag
if @OLDSINGLEAPPLICATIONID is not null and @OLDSINGLEAPPLICATIONID <> '00000000-0000-0000-0000-000000000000' and @OLDSINGLEAPPLICATIONID = @PAYINGPENDINGREVENUEID
begin
declare @SINGLEAPPLICATIONCHANGED bit = 0;
if len(@APPLICATIONINFO) > 3
begin
if @OLDSINGLEAPPLICATIONID <> (select top 1 SINGLEAPPLICATIONID from dbo.UFN_REVENUEBATCH_PARSEAPPLICATIONINFO(@APPLICATIONINFO))
set @SINGLEAPPLICATIONCHANGED = 1;
end
else
set @SINGLEAPPLICATIONCHANGED = 1;
-- If the single application has changed to not be towards the old commitment, clear the ISPENDING flag
if @SINGLEAPPLICATIONCHANGED = 1
update dbo.REVENUESCHEDULE
set REVENUESCHEDULE.ISPENDING = 0,
REVENUESCHEDULE.CHANGEDBYID = @CHANGEAGENTID,
REVENUESCHEDULE.DATECHANGED = @CURRENTDATE
where REVENUESCHEDULE.ID = @PAYINGPENDINGREVENUEID;
end
end
declare @PLEDGEIDS as table (ID uniqueidentifier);
insert into @PLEDGEIDS select BATCHREVENUEAPPLICATIONPLEDGEID from BATCHREVENUEAPPLICATION where BATCHREVENUEID = @ID
delete from dbo.BATCHREVENUEAPPLICATIONPLEDGE where ID in (select ID from @PLEDGEIDS);
declare @MEMBERSHIPIDS as table (ID uniqueidentifier);
insert into @MEMBERSHIPIDS select BATCHREVENUEAPPLICATIONMEMBERSHIPID from BATCHREVENUEAPPLICATION where BATCHREVENUEID = @ID
delete from dbo.BATCHREVENUEAPPLICATIONMEMBERSHIP where ID in (select ID from @MEMBERSHIPIDS);
delete from BATCHREVENUEAPPLICATION where BATCHREVENUEID = @ID;
exec dbo.USP_REVENUEBATCH_REVENUEAPPLICATIONS_ADDFROMXML_2 @ID, @REVENUESTREAMS, @CHANGEAGENTID, @CURRENTDATE, @CURRENTAPPUSERID;
--JamesWill CR268756-030207 2007/03/02
--Set the ISPENDING flag for all gifts that we are currently applying to which were from a generated transaction
update dbo.REVENUESCHEDULE
set REVENUESCHEDULE.ISPENDING = 1,
REVENUESCHEDULE.CHANGEDBYID = @CHANGEAGENTID,
REVENUESCHEDULE.DATECHANGED = @CURRENTDATE
where REVENUESCHEDULE.ID in (select REVENUEID from dbo.BATCHREVENUEAPPLICATION where BATCHREVENUEID = @ID and APPLIED > 0 and WASGENERATED = 1)
exec dbo.USP_REVENUEBATCH_ENHANCEDMATCHINGGIFTSWITHCHILDREN_UPDATEFROMXML @ID, @MATCHINGGIFTS, @CHANGEAGENTID, @CURRENTDATE;
if not @contextCache is null
set CONTEXT_INFO @contextCache;
/* Apply business units */
exec dbo.USP_REVENUEBATCH_ADDBUSINESSUNITS @ID, @APPLICATIONBUSINESSUNITS, @TYPECODE
/* Update BBIS transaction information */
--@RECEIPTSTACKSHORTNAME is not used by USP, as it is read-only in ERB.
--@MARKGIFTASRECEIPTED is not used by USP, as it is read-only in ERB.
update
dbo.BATCHREVENUEBBNCINFO
set
BBNCTRANID = @BBNCTRANID,
BBNCID = @BBNCID,
NETCOMMUNITYTRANSACTIONPROCESSORID = @BBNCTRANSACTIONPROCESSORID,
ORIGINAPPEALID = @BBNCORIGINAPPEALID,
PAGENAME = @BBNCORIGINPAGENAME,
PAGEID = @BBNCORIGINPAGEID,
EMAILID = @EMAILID,
EMAILSUBJECT = @EMAILSUBJECT,
EMAILNAME = @EMAILNAME
where
BATCHREVENUEID = @ID;
-- 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 <> @CONSTITUENTID;
if @SOLICITCODES is not null
begin
exec dbo.USP_BATCHREVENUE_GETCONSTITUENTSOLICITCODES_UPDATEFROMXML @ID, @SOLICITCODES, @CHANGEAGENTID;
end
else
begin
delete from dbo.BATCHREVENUECONSTITUENTSOLICITCODE where BATCHREVENUEID = @ID;
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;