USP_DATAFORMTEMPLATE_EDITLOAD_REVENUEUPDATEBATCHROW
The load procedure used by the edit dataform template "Revenue Update Batch Edit Data Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@REVENUEID | uniqueidentifier | INOUT | Revenue |
@REVENUESPLITID | uniqueidentifier | INOUT | Revenue Split |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@CONSTITUENTID | uniqueidentifier | INOUT | Constituent |
@TYPECODE | tinyint | INOUT | Revenue type |
@DATE | datetime | INOUT | Date |
@AMOUNT | money | INOUT | Amount |
@PAYMENTMETHODCODE | tinyint | INOUT | Payment method |
@DONOTACKNOWLEDGE | bit | INOUT | Do not acknowledge |
@CHECKDATE | UDT_FUZZYDATE | INOUT | Check date |
@CHECKNUMBER | nvarchar(20) | INOUT | Check number |
@REFERENCEDATE | UDT_FUZZYDATE | INOUT | Reference date |
@REFERENCENUMBER | nvarchar(20) | INOUT | Reference number |
@CARDHOLDERNAME | nvarchar(255) | INOUT | Name on card |
@CREDITCARDNUMBER | nvarchar(20) | INOUT | Card number |
@CREDITTYPECODEID | uniqueidentifier | INOUT | Card type |
@AUTHORIZATIONCODE | nvarchar(20) | INOUT | Authorization code |
@EXPIRESON | UDT_FUZZYDATE | INOUT | Expires on |
@ISSUER | nvarchar(100) | INOUT | Issuer |
@NUMBEROFUNITS | decimal(20, 3) | INOUT | Stock number of units |
@SYMBOL | nvarchar(25) | INOUT | Symbol |
@MEDIANPRICE | decimal(19, 4) | INOUT | Median price |
@PROPERTYSUBTYPECODEID | uniqueidentifier | INOUT | Property subtype |
@GIFTINKINDSUBTYPECODEID | uniqueidentifier | INOUT | Gift-in-kind subtype |
@RECEIPTAMOUNT | money | INOUT | Receipt amount |
@DONOTRECEIPT | bit | INOUT | Do not receipt |
@CONSTITUENTACCOUNTID | uniqueidentifier | INOUT | Account |
@SPLITS | xml | INOUT | Designations |
@SINGLEDESIGNATIONID | uniqueidentifier | INOUT | Designation |
@REVENUESTREAMS | xml | INOUT | Revenue streams |
@APPLYTOSHOWNFORCONSTITUENTID | uniqueidentifier | INOUT | Apply to shown for constituent |
@SEQUENCE | int | INOUT | Sequence |
@INSTALLMENTFREQUENCYCODE | tinyint | INOUT | Installment frequency |
@INSTALLMENTSTARTDATE | datetime | INOUT | Installment start date |
@INSTALLMENTENDDATE | datetime | INOUT | Installment end date |
@NUMBEROFINSTALLMENTS | int | INOUT | No. installments |
@SOLICITORS | xml | INOUT | Solicitors |
@BENEFITS | xml | INOUT | Money benefits |
@FINDERNUMBER | bigint | INOUT | Finder number |
@SOURCECODE | nvarchar(60) | INOUT | Source code |
@APPEALID | uniqueidentifier | INOUT | Appeal |
@FINDERNUMBERISVALID | bit | INOUT | Finder number is valid |
@USERMODIFIEDBENEFITS | bit | INOUT | User modified benefits |
@BENEFITSWAIVED | bit | INOUT | User waived benefits |
@POSTDATE | datetime | INOUT | GL post date |
@POSTSTATUSCODE | tinyint | INOUT | GL post status |
@SENDPLEDGEREMINDER | bit | INOUT | Send reminders |
@SALEDATE | datetime | INOUT | Sale date |
@SALEAMOUNT | money | INOUT | Sale amount |
@BROKERFEE | money | INOUT | Sale fees |
@SALEPOSTSTATUSCODE | tinyint | INOUT | Sale GL post status |
@SALEPOSTDATE | datetime | INOUT | Sale GL post date |
@NOTETITLE | nvarchar(50) | INOUT | Note Title |
@NOTEAUTHORID | uniqueidentifier | INOUT | Note Author |
@NOTEDATEENTERED | datetime | INOUT | Note Date |
@NOTETYPECODEID | uniqueidentifier | INOUT | Note Type |
@NOTETEXTNOTE | nvarchar(max) | INOUT | Notes |
@GIFTAMOUNT | nvarchar(100) | INOUT | Gift amount |
@GIVENANONYMOUSLY | bit | INOUT | Given anonymously |
@GIVENANONYMOUSLYDEFAULTEDFORCONSTITUENTID | uniqueidentifier | INOUT | Given anonymously defaulted for constituent |
@USERMODIFIEDRECEIPTAMOUNT | bit | INOUT | User modified receipt amount |
@PLEDGESUBTYPEID | uniqueidentifier | INOUT | Pledge subtype |
@REJECTIONCODEID | uniqueidentifier | INOUT | Rejection code |
@CONSTITUENTLOOKUPID | uniqueidentifier | INOUT | Lookup ID |
@MAILINGID | uniqueidentifier | INOUT | Effort |
@CHANNELCODEID | uniqueidentifier | INOUT | Inbound channel |
@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. |
@INSTALLMENTS | xml | INOUT | Installments |
@PAYMENTFORPLEDGEAMOUNT | money | INOUT | Payment for pledge amount |
@RECOGNITIONS | xml | INOUT | Recognition credits |
@DIDRECOGNITIONSDEFAULT | bit | INOUT | Did default recognition credits |
@TRIBUTES | xml | INOUT | Tributes |
@UNAPPLIEDMATCHINGGIFTSPLITS | xml | INOUT | Unapplied MG Split |
@UNAPPLIEDMATCHINGGIFTAMOUNT | money | INOUT | Applied |
@RECEIPTTYPECODE | tinyint | INOUT | Receipt type |
@NEWCONSTITUENT | xml | INOUT | New constituent |
@OTHERPAYMENTMETHODCODEID | uniqueidentifier | INOUT | Other method |
@LETTERCODEID | uniqueidentifier | INOUT | Letter |
@ACKNOWLEDGEDATE | datetime | INOUT | Acknowledge date |
@REFERENCE | nvarchar(255) | INOUT | Reference |
@CATEGORYCODEID | uniqueidentifier | INOUT | Revenue category |
@ACKNOWLEDGEEID | uniqueidentifier | INOUT | Acknowledgee |
@APPLICATIONINFO | nvarchar(60) | INOUT | Application |
@OTHERTYPECODEID | uniqueidentifier | INOUT | Other type |
@OPPORTUNITYID | uniqueidentifier | INOUT | Opportunity |
@DIRECTDEBITRESULTCODE | nvarchar(10) | INOUT | Result code |
@LOWPRICE | decimal(19, 4) | INOUT | Low price |
@HIGHPRICE | decimal(19, 4) | INOUT | High price |
@NUMBEROFUNITSSOLD | decimal(20, 3) | INOUT | Stock sale number of units |
@USERMODIFIEDNUMBEROFUNITSSOLD | bit | INOUT | User modified stock number of units sold |
@CREDITCARDTOKEN | uniqueidentifier | INOUT | Credit card token |
@REJECTIONMESSAGE | nvarchar(250) | INOUT | Rejection message |
@PARTIALCREDITCARDNUMBER | nvarchar(4) | INOUT | Partial card number |
@ISEXISTINGCONSTITUENT | bit | INOUT | Is existing constituent |
@TAXDECLARATIONS | xml | INOUT | Declarations |
@CONSTITUENTTYPE | tinyint | INOUT | Constituent type |
@STANDINGORDERCONSTITUENTACCOUNTID | uniqueidentifier | INOUT | Standing order account |
@STANDINGORDERREFERENCEDATE | UDT_FUZZYDATE | INOUT | Standing order reference date |
@STANDINGORDERREFERENCENUMBER | nvarchar(20) | INOUT | Standing order reference number |
@STANDINGORDERSETUP | bit | INOUT | Standing order has been setup |
@STANDINGORDERSETUPDATE | datetime | INOUT | Standing order setup date |
@TRANSACTIONID | uniqueidentifier | INOUT | Transaction ID |
@ISTRANSIENTCARD | bit | INOUT | Is transient credit card |
@DECLINESGIFTAID | bit | INOUT | Declines Gift Aid |
@DDISOURCECODEID | uniqueidentifier | INOUT | DDI source |
@DDISOURCEDATE | date | INOUT | DDI source date |
@ISCOVENANT | bit | INOUT | Is covenant gift |
@AMOUNTFORVAT | money | INOUT | Portion subject to VAT |
@VATTAXRATEID | uniqueidentifier | INOUT | VAT tax rate |
@VATAMOUNT | money | INOUT | VAT amount |
@ADDITIONALAPPLICATIONSSTREAM | xml | INOUT | Additional applications stream |
@REVENUELOOKUPID | nvarchar(100) | INOUT | Revenue ID |
@APPLICATIONSOLICITORS | xml | INOUT | Application solicitors |
@APPLICATIONRECOGNITIONS | xml | INOUT | Application recognitions |
@MATCHINGGIFTS | xml | INOUT | Matching gifts |
@MGGENERATED | bit | INOUT | MG Generated |
@MGALTERED | bit | INOUT | MG Altered |
@PAYINGPENDINGREVENUEID | uniqueidentifier | INOUT | Was paying pending revenue |
@GIFTINKINDITEMNAME | nvarchar(100) | INOUT | Item name |
@GIFTINKINDDISPOSITIONCODE | tinyint | INOUT | Disposition |
@GIFTINKINDNUMBEROFUNITS | int | INOUT | Gift-in-kind number of units |
@GIFTINKINDFAIRMARKETVALUE | money | INOUT | Fair market value per unit |
@DIRECTDEBITISREJECTED | bit | INOUT | Direct debit is rejected |
@PERCENTAGEBENEFITS | xml | INOUT | Percent benefits |
@ISGIFTAIDSPONSORSHIP | bit | INOUT | Gift Aid sponsorship |
@OTHERCONSTITUENTAPPLICATIONINFO | nvarchar(60) | INOUT | Application |
@LOCKBOXID | uniqueidentifier | INOUT | Lockbox |
@LOCKBOXBATCHNUMBER | nvarchar(100) | INOUT | Lockbox batch number |
@LOCKBOXBATCHSEQUENCE | int | INOUT | Lockbox batch sequence |
@PDACCOUNTSYSTEMID | uniqueidentifier | INOUT | Account system |
@ISADJUSTMENT | bit | INOUT | ISADJUSTMENT |
@ADJUSTMENTDATE | datetime | INOUT | Adjustment date |
@ADJUSTMENTPOSTDATE | datetime | INOUT | Adjustment post date |
@ADJUSTMENTREASON | nvarchar(300) | INOUT | Adjustment details |
@ADJUSTMENTREASONCODEID | uniqueidentifier | INOUT | Adjustment reason |
@ADJUSTMENTPOSTSTATUSCODE | tinyint | INOUT | Adjustment post status |
@REVENUEDEVELOPMENTFUNCTIONCODEID | uniqueidentifier | INOUT | Revenue function |
@ORIGINALAPPLICATIONINFO | nvarchar(60) | INOUT | ORIGINALAPPLICATIONINFO |
@RELOADRECOGNITION | bit | INOUT | Reload recognition credit |
@RELOADSOLICITORS | bit | INOUT | Reload solicitors |
@LETTERS | xml | INOUT | Letters |
@APPLICATIONBUSINESSUNITS | xml | INOUT | Application business units |
@NOTES | xml | INOUT | Notes |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Transaction currency |
@BASECURRENCYID | uniqueidentifier | INOUT | Base currency |
@BASEEXCHANGERATEID | uniqueidentifier | INOUT | Base exchange rate |
@EXCHANGERATE | decimal(20, 8) | INOUT | Exchange rate |
@BASEAMOUNT | money | INOUT | Base amount |
@ISSPONSORSHIPRG | bit | INOUT | Is sponsorship RG |
@LASTPAYMENTSEQUENCE | int | INOUT | Installment sequence of last payment |
@LASTUNPAIDROW | int | INOUT | Sequence of last unpaid installment. |
@GENERATEREFERENCENUMBER | bit | INOUT | Automatically generate reference number |
@UPDATEMATCHINGGIFTCLAIMS | tinyint | INOUT | Update matching gift claims |
@ORIGINALCONSTITUENTID | uniqueidentifier | INOUT | Original constituent |
@UPDATEGIFTFEES | bit | INOUT | Update gift fees |
@ORIGINALREVENUEAMOUNT | money | INOUT | Original revenue amount |
@ORIGINALTRIBUTES | xml | INOUT | Tributes |
@UPDATETRIBUTES | bit | INOUT | Update tributes |
@INSTALLMENTSCHEDULESEEDDATE | datetime | INOUT | Installment next transaction |
@APPLYBYPERCENT | bit | INOUT | Apply by |
@HASPOSTEDPAYMENTS | bit | INOUT | |
@ORIGINALINSTALLMENTS | xml | INOUT | |
@ADJPAYMENT_DATE | datetime | INOUT | |
@ADJPAYMENT_POSTDATE | datetime | INOUT | |
@ADJPAYMENT_REASONCODEID | uniqueidentifier | INOUT | |
@ADJPAYMENT_DETAILS | nvarchar(255) | INOUT | |
@ADJPAYMENT_FORMSHOWN | bit | INOUT | |
@ADJPAYMENT_ORIGINALPOSTDATE | date | INOUT | |
@DEPOSITID | uniqueidentifier | INOUT | |
@SALE_LOWPRICE | decimal(19, 4) | INOUT | |
@SALE_MEDIANPRICE | decimal(19, 4) | INOUT | |
@SALE_HIGHPRICE | decimal(19, 4) | INOUT | |
@VENDORID | nvarchar(50) | INOUT | |
@PLEDGEAMOUNTPAID | money | INOUT | |
@HASSOLDFIXEDASSETS | bit | INOUT | |
@GIFTAIDCOMMITTED | bit | INOUT | |
@RGSTATUSCODE | tinyint | INOUT | |
@INSTALLMENTAMOUNT | money | INOUT | |
@ADJPAYMENT_REVENUECATEGORYCHANGED | bit | INOUT | |
@ADJPAYMENT_POSTDATEDEPOSIT | date | INOUT | |
@PROMPTONADJUSTMENTDATECHANGE | bit | INOUT | |
@HASCHANGEDBYGRUB | bit | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_REVENUEUPDATEBATCHROW
(
@ID uniqueidentifier,
@REVENUEID uniqueidentifier = null output,
@REVENUESPLITID uniqueidentifier = null output,
@DATALOADED bit = 0 output,
@CONSTITUENTID uniqueidentifier = null output,
@TYPECODE tinyint = null output,
@DATE datetime = null output,
@AMOUNT money = null output,
@PAYMENTMETHODCODE tinyint = null output,
@DONOTACKNOWLEDGE bit = null output,
@CHECKDATE dbo.UDT_FUZZYDATE = null output,
@CHECKNUMBER nvarchar(20) = null output,
@REFERENCEDATE dbo.UDT_FUZZYDATE = null output,
@REFERENCENUMBER nvarchar(20) = null output,
@CARDHOLDERNAME nvarchar(255) = null output,
@CREDITCARDNUMBER nvarchar(20) = null output,
@CREDITTYPECODEID uniqueidentifier = null output,
@AUTHORIZATIONCODE nvarchar(20) = null output,
@EXPIRESON dbo.UDT_FUZZYDATE = null output,
@ISSUER nvarchar(100) = null output,
@NUMBEROFUNITS decimal(20,3) = null output,
@SYMBOL nvarchar(25) = null output,
@MEDIANPRICE decimal(19,4) = null output,
@PROPERTYSUBTYPECODEID uniqueidentifier = null output,
@GIFTINKINDSUBTYPECODEID uniqueidentifier = null output,
@RECEIPTAMOUNT money = null output,
@DONOTRECEIPT bit = null output,
@CONSTITUENTACCOUNTID uniqueidentifier = null output,
@SPLITS xml = null output,
@SINGLEDESIGNATIONID uniqueidentifier = null output,
@REVENUESTREAMS xml = null output,
@APPLYTOSHOWNFORCONSTITUENTID uniqueidentifier = null output,
@SEQUENCE int = null output,
@INSTALLMENTFREQUENCYCODE tinyint = null output,
@INSTALLMENTSTARTDATE datetime = null output,
@INSTALLMENTENDDATE datetime = null output,
@NUMBEROFINSTALLMENTS int = null output,
--Solicitors field is no longer in use (APPLICATIONSOLICITORS is current)
@SOLICITORS xml = null output,
@BENEFITS xml = null output,
@FINDERNUMBER bigint = null output,
@SOURCECODE nvarchar(60) = null output,
@APPEALID uniqueidentifier = null output,
@FINDERNUMBERISVALID bit = null output,
@USERMODIFIEDBENEFITS bit = null output,
@BENEFITSWAIVED bit = null output,
@POSTDATE datetime = null output,
@POSTSTATUSCODE tinyint = null output,
@SENDPLEDGEREMINDER bit = null output,
@SALEDATE datetime = null output,
@SALEAMOUNT money = null output,
@BROKERFEE money = null output,
@SALEPOSTSTATUSCODE tinyint = null output,
@SALEPOSTDATE datetime = null output,
@NOTETITLE nvarchar(50) = null output,
@NOTEAUTHORID uniqueidentifier = null output,
@NOTEDATEENTERED datetime = null output ,
@NOTETYPECODEID uniqueidentifier = null output,
@NOTETEXTNOTE nvarchar(max) = null output,
@GIFTAMOUNT nvarchar(100) = null output,
@GIVENANONYMOUSLY bit = null output,
@GIVENANONYMOUSLYDEFAULTEDFORCONSTITUENTID uniqueidentifier = null output,
@USERMODIFIEDRECEIPTAMOUNT bit = null output,
@PLEDGESUBTYPEID uniqueidentifier = null output,
@REJECTIONCODEID uniqueidentifier = null output,
@CONSTITUENTLOOKUPID uniqueidentifier = null output,
@MAILINGID uniqueidentifier = null output,
@CHANNELCODEID uniqueidentifier = null output,
@TSLONG bigint = 0 output,
@INSTALLMENTS xml = null output,
@PAYMENTFORPLEDGEAMOUNT money = null output,
--Recognitions field is no longer in use (APPLICATIONRECOGNITIONS is current)
@RECOGNITIONS xml = null output,
@DIDRECOGNITIONSDEFAULT bit = null output,
@TRIBUTES xml = null output,
@UNAPPLIEDMATCHINGGIFTSPLITS xml = null output,
@UNAPPLIEDMATCHINGGIFTAMOUNT money = null output,
@RECEIPTTYPECODE tinyint = null output,
@NEWCONSTITUENT xml = null output,
@OTHERPAYMENTMETHODCODEID uniqueidentifier = null output,
@LETTERCODEID uniqueidentifier = null output,
@ACKNOWLEDGEDATE datetime = null output,
@REFERENCE nvarchar(255) = null output,
@CATEGORYCODEID uniqueidentifier = null output,
@ACKNOWLEDGEEID uniqueidentifier = null output,
@APPLICATIONINFO nvarchar(60) = null output,
@OTHERTYPECODEID uniqueidentifier = null output,
@OPPORTUNITYID uniqueidentifier = null output,
@DIRECTDEBITRESULTCODE nvarchar(10) = null output,
@LOWPRICE decimal(19,4) = null output,
@HIGHPRICE decimal(19,4) = null output,
@NUMBEROFUNITSSOLD decimal(20,3) = null output,
@USERMODIFIEDNUMBEROFUNITSSOLD bit = null output,
@CREDITCARDTOKEN uniqueidentifier = null output,
@REJECTIONMESSAGE nvarchar(250) = null output,
-- PARTIALCREDITCARDNUMBER is used to support import and
-- credit card - last 4 digits recurring gifts
@PARTIALCREDITCARDNUMBER nvarchar(4) = null output,
@ISEXISTINGCONSTITUENT bit = null output,
@TAXDECLARATIONS xml = null output,
@CONSTITUENTTYPE tinyint = null output,
@STANDINGORDERCONSTITUENTACCOUNTID uniqueidentifier = null output,
@STANDINGORDERREFERENCEDATE dbo.UDT_FUZZYDATE = null output,
@STANDINGORDERREFERENCENUMBER nvarchar(20) = null output,
@STANDINGORDERSETUP bit = null output,
@STANDINGORDERSETUPDATE datetime = null output,
@TRANSACTIONID uniqueidentifier = null output,
@ISTRANSIENTCARD bit = null output, -- Isn't set since it's write-only
@DECLINESGIFTAID bit = null output,
@DDISOURCECODEID uniqueidentifier = null output,
@DDISOURCEDATE date = null output,
@ISCOVENANT bit = null output,
@AMOUNTFORVAT money = null output,
@VATTAXRATEID uniqueidentifier = null output,
@VATAMOUNT money = null output,
@ADDITIONALAPPLICATIONSSTREAM xml = null output,
@REVENUELOOKUPID nvarchar(100) = null output,
@APPLICATIONSOLICITORS xml = null output,
@APPLICATIONRECOGNITIONS xml = null output,
@MATCHINGGIFTS xml = null output,
@MGGENERATED bit = null output,
@MGALTERED bit = null output,
@PAYINGPENDINGREVENUEID uniqueidentifier = null output,
@GIFTINKINDITEMNAME nvarchar(100) = null output,
@GIFTINKINDDISPOSITIONCODE tinyint = null output,
@GIFTINKINDNUMBEROFUNITS int = null output,
@GIFTINKINDFAIRMARKETVALUE money = null output,
@DIRECTDEBITISREJECTED bit = null output,
@PERCENTAGEBENEFITS xml = null output,
@ISGIFTAIDSPONSORSHIP bit = null output,
@OTHERCONSTITUENTAPPLICATIONINFO nvarchar(60) = null output,
@LOCKBOXID uniqueidentifier = null output,
@LOCKBOXBATCHNUMBER nvarchar(100) = null output,
@LOCKBOXBATCHSEQUENCE int = null output,
@PDACCOUNTSYSTEMID uniqueidentifier = null output,
@ISADJUSTMENT bit = null output,
@ADJUSTMENTDATE datetime = null output,
@ADJUSTMENTPOSTDATE datetime = null output,
@ADJUSTMENTREASON nvarchar(300) = null output,
@ADJUSTMENTREASONCODEID uniqueidentifier = null output,
@ADJUSTMENTPOSTSTATUSCODE tinyint = null output,
@REVENUEDEVELOPMENTFUNCTIONCODEID uniqueidentifier = null output,
@ORIGINALAPPLICATIONINFO nvarchar(60) = null output,
@RELOADRECOGNITION bit = null output,
@RELOADSOLICITORS bit = null output,
@LETTERS xml = null output,
@APPLICATIONBUSINESSUNITS xml = null output,
@NOTES xml = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output,
@BASECURRENCYID uniqueidentifier = null output,
@BASEEXCHANGERATEID uniqueidentifier = null output,
@EXCHANGERATE decimal(20,8) = null output,
@BASEAMOUNT money = null output,
@ISSPONSORSHIPRG bit = null output,
@LASTPAYMENTSEQUENCE int = null output,
@LASTUNPAIDROW int = null output,
@GENERATEREFERENCENUMBER bit = null output,
@UPDATEMATCHINGGIFTCLAIMS tinyint = null output,
@ORIGINALCONSTITUENTID uniqueidentifier = null output,
@UPDATEGIFTFEES bit = null output,
@ORIGINALREVENUEAMOUNT money = null output,
@ORIGINALTRIBUTES xml = null output,
@UPDATETRIBUTES bit = null output,
@INSTALLMENTSCHEDULESEEDDATE datetime = null output,
@APPLYBYPERCENT bit= null output,
@HASPOSTEDPAYMENTS bit = null output,
@ORIGINALINSTALLMENTS xml = null output,
@ADJPAYMENT_DATE datetime = null output,
@ADJPAYMENT_POSTDATE datetime = null output,
@ADJPAYMENT_REASONCODEID uniqueidentifier = null output,
@ADJPAYMENT_DETAILS nvarchar(255) = null output,
@ADJPAYMENT_FORMSHOWN bit = null output,
@ADJPAYMENT_ORIGINALPOSTDATE date = null output,
@DEPOSITID uniqueidentifier = null output,
@SALE_LOWPRICE decimal(19,4) = null output,
@SALE_MEDIANPRICE decimal(19,4) = null output,
@SALE_HIGHPRICE decimal(19,4) = null output,
@VENDORID nvarchar(50) = null output,
@PLEDGEAMOUNTPAID money = null output,
@HASSOLDFIXEDASSETS bit = null output,
@GIFTAIDCOMMITTED bit = null output,
@RGSTATUSCODE tinyint = null output,
@INSTALLMENTAMOUNT money = null output,
@ADJPAYMENT_REVENUECATEGORYCHANGED bit = null output,
@ADJPAYMENT_POSTDATEDEPOSIT date = null output,
@PROMPTONADJUSTMENTDATECHANGE bit = null output,
@HASCHANGEDBYGRUB bit = null output
)
as
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
select @DATALOADED = 1,
@REVENUESPLITID = BATCHREVENUE.REVENUESPLITID,
@REVENUEID = BATCHREVENUE.REVENUEID,
@CONSTITUENTID = BATCHREVENUE.CONSTITUENTID,
@TYPECODE = BATCHREVENUE.TYPECODE,
@SINGLEDESIGNATIONID = case when (select count(*) from dbo.BATCHREVENUESPLIT where BATCHREVENUESPLIT.BATCHREVENUEID = BATCHREVENUE.ID) <> 1 then BATCHREVENUE.SINGLEDESIGNATIONID
else (select DESIGNATIONID from dbo.BATCHREVENUESPLIT where BATCHREVENUESPLIT.BATCHREVENUEID = BATCHREVENUE.ID)
end,
@SPLITS = dbo.UFN_REVENUEBATCH_GETSPLITS_TOITEMLISTXML(BATCHREVENUE.ID),
@DATE = BATCHREVENUE.DATE,
@PAYMENTMETHODCODE = BATCHREVENUE.PAYMENTMETHODCODE,
@DONOTACKNOWLEDGE = BATCHREVENUE.DONOTACKNOWLEDGE,
@CHECKDATE = BATCHREVENUE.CHECKDATE,
@CHECKNUMBER = BATCHREVENUE.CHECKNUMBER,
@REFERENCEDATE = BATCHREVENUE.REFERENCEDATE,
@REFERENCENUMBER = BATCHREVENUE.REFERENCENUMBER,
@CARDHOLDERNAME = case when BATCHREVENUE.PAYMENTMETHODCODE = 98 then BATCHREVENUE.CARDHOLDERNAME else CREDITCARD.CARDHOLDERNAME end,
@CREDITCARDNUMBER = CREDITCARD.CREDITCARDPARTIALNUMBER,
@PARTIALCREDITCARDNUMBER = BATCHREVENUE.CREDITCARDPARTIALNUMBER,
@CREDITCARDTOKEN = CREDITCARD.CREDITCARDTOKEN,
@CREDITTYPECODEID = case when BATCHREVENUE.PAYMENTMETHODCODE = 98 then BATCHREVENUE.CREDITTYPECODEID else CREDITCARD.CREDITTYPECODEID end,
@AUTHORIZATIONCODE = BATCHREVENUE.AUTHORIZATIONCODE,
@EXPIRESON = case when BATCHREVENUE.PAYMENTMETHODCODE = 98 then BATCHREVENUE.EXPIRESON else CREDITCARD.EXPIRESON end,
@CONSTITUENTACCOUNTID = BATCHREVENUE.CONSTITUENTACCOUNTID,
@AMOUNT = BATCHREVENUE.AMOUNT,
@RECEIPTAMOUNT = BATCHREVENUE.RECEIPTAMOUNT,
@DONOTRECEIPT = BATCHREVENUE.DONOTRECEIPT,
@REVENUESTREAMS = dbo.UFN_REVENUEBATCH_GETAPPLICATIONSWITHCHILDREN_TOITEMLISTXML(@ID),
@APPLYTOSHOWNFORCONSTITUENTID = BATCHREVENUE.APPLYTOSHOWNFORCONSTITUENTID,
@PROPERTYSUBTYPECODEID = BATCHREVENUE.PROPERTYSUBTYPECODEID,
@GIFTINKINDSUBTYPECODEID = BATCHREVENUE.GIFTINKINDSUBTYPECODEID,
@SEQUENCE = BATCHREVENUE.SEQUENCE,
@INSTALLMENTFREQUENCYCODE = BATCHREVENUE.INSTALLMENTFREQUENCYCODE,
@INSTALLMENTSTARTDATE = case
when BATCHREVENUE.TYPECODE = 1 then coalesce(BATCHREVENUE.INSTALLMENTSTARTDATE, BATCHREVENUE.DATE)
else BATCHREVENUE.INSTALLMENTSTARTDATE
end,
@INSTALLMENTENDDATE = BATCHREVENUE.INSTALLMENTENDDATE,
@NUMBEROFINSTALLMENTS = case when @TYPECODE = 3 then null else BATCHREVENUE.NUMBEROFINSTALLMENTS end, -- if its recurring gift set it to null
@INSTALLMENTAMOUNT = BATCHREVENUE.INSTALLMENTAMOUNT,
@BENEFITS = dbo.UFN_REVENUEBATCH_GETBENEFITS_TOITEMLISTXML(@ID),
@PERCENTAGEBENEFITS = dbo.UFN_REVENUEBATCH_GETBENEFITSPCT_TOITEMLISTXML(@ID),
@FINDERNUMBER = BATCHREVENUE.FINDERNUMBER,
@SOURCECODE = BATCHREVENUE.SOURCECODE,
@APPEALID = BATCHREVENUE.APPEALID,
@FINDERNUMBERISVALID = BATCHREVENUE.FINDERNUMBERISVALID,
@USERMODIFIEDBENEFITS = BATCHREVENUE.USERMODIFIEDBENEFITS,
@BENEFITSWAIVED = BATCHREVENUE.BENEFITSWAIVED,
@POSTDATE = BATCHREVENUE.POSTDATE,
@POSTSTATUSCODE = BATCHREVENUE.POSTSTATUSCODE,
@SENDPLEDGEREMINDER = BATCHREVENUE.SENDPLEDGEREMINDER,
@SALEDATE = BATCHREVENUE.SALEDATE,
@SALEAMOUNT = BATCHREVENUE.SALEAMOUNT,
@BROKERFEE = BATCHREVENUE.BROKERFEE,
@SALEPOSTSTATUSCODE = BATCHREVENUE.SALEPOSTSTATUSCODE,
@SALEPOSTDATE = BATCHREVENUE.SALEPOSTDATE,
@ISSUER = BATCHREVENUE.ISSUER,
@NUMBEROFUNITS = BATCHREVENUE.NUMBEROFUNITS,
@SYMBOL = BATCHREVENUE.SYMBOL,
@MEDIANPRICE = BATCHREVENUE.MEDIANPRICE,
@NOTETITLE = BATCHREVENUE.NOTETITLE,
@NOTEAUTHORID = BATCHREVENUE.NOTEAUTHORID,
@NOTEDATEENTERED = BATCHREVENUE.NOTEDATEENTERED,
@NOTETYPECODEID = BATCHREVENUE.NOTETYPECODEID,
@NOTETEXTNOTE = BATCHREVENUE.NOTETEXTNOTE,
@GIFTAMOUNT = 0,
@GIVENANONYMOUSLY = BATCHREVENUE.GIVENANONYMOUSLY,
@GIVENANONYMOUSLYDEFAULTEDFORCONSTITUENTID = BATCHREVENUE.GIVENANONYMOUSLYDEFAULTEDFORCONSTITUENTID,
@USERMODIFIEDRECEIPTAMOUNT = BATCHREVENUE.USERMODIFIEDRECEIPTAMOUNT,
@PLEDGESUBTYPEID = BATCHREVENUE.PLEDGESUBTYPEID,
@REJECTIONMESSAGE = BATCHREVENUE.REJECTIONMESSAGE,
@CONSTITUENTLOOKUPID = BATCHREVENUE.CONSTITUENTID,
@DIDRECOGNITIONSDEFAULT = 1,
@MAILINGID = MAILINGID,
@CHANNELCODEID = CHANNELCODEID,
@INSTALLMENTS = dbo.UFN_REVENUEUPDATEBATCH_GETINSTALLMENTS_TOITEMLISTXML(@ID),
@ORIGINALINSTALLMENTS = case when BATCHREVENUE.TYPECODE = 1 then dbo.UFN_REVENUEUPDATEBATCH_LOADINSTALLMENTS_TOITEMLISTXML(@REVENUEID) else null end,
@PAYMENTFORPLEDGEAMOUNT = PAYMENTFORPLEDGEAMOUNT,
@TSLONG = BATCHREVENUE.TSLONG,
@TRIBUTES = dbo.UFN_REVENUEBATCH_GETTRIBUTES_TOITEMLISTXML(@ID),
@UNAPPLIEDMATCHINGGIFTSPLITS = dbo.UFN_REVENUEBATCH_GETUNAPPLIEDMATCHINGGIFTSPLITS_TOITEMLISTXML(BATCHREVENUE.ID),
@RECEIPTTYPECODE = BATCHREVENUE.RECEIPTTYPECODE,
@OTHERPAYMENTMETHODCODEID = BATCHREVENUE.OTHERPAYMENTMETHODCODEID,
@LETTERCODEID = BATCHREVENUE.LETTERCODEID,
@ACKNOWLEDGEDATE = BATCHREVENUE.ACKNOWLEDGEDATE,
@REFERENCE = BATCHREVENUE.REFERENCE,
@CATEGORYCODEID = BATCHREVENUE.GLREVENUECATEGORYMAPPINGID,
@ACKNOWLEDGEEID = BATCHREVENUE.ACKNOWLEDGEEID,
@APPLICATIONINFO = BATCHREVENUE.APPLICATIONINFO,
@OTHERTYPECODEID = BATCHREVENUE.OTHERTYPECODEID,
@OPPORTUNITYID = BATCHREVENUE.OPPORTUNITYID,
@DIRECTDEBITRESULTCODE = BATCHREVENUE.DIRECTDEBITRESULTCODE,
@LOWPRICE = BATCHREVENUE.LOWPRICE,
@HIGHPRICE = BATCHREVENUE.HIGHPRICE,
@NUMBEROFUNITSSOLD = BATCHREVENUE.NUMBEROFUNITSSOLD,
@USERMODIFIEDNUMBEROFUNITSSOLD = BATCHREVENUE.USERMODIFIEDNUMBEROFUNITSSOLD,
@TAXDECLARATIONS = dbo.UFN_REVENUEBATCH_GETTAXDECLARATIONS_TOITEMLISTXML(BATCHREVENUE.ID),
@STANDINGORDERSETUP = BATCHREVENUE.STANDINGORDERSETUP,
@STANDINGORDERSETUPDATE = BATCHREVENUE.STANDINGORDERSETUPDATE,
@TRANSACTIONID = BATCHREVENUE.TRANSACTIONID,
@ISEXISTINGCONSTITUENT = case when CONSTITUENT.ID is null then 0 else 1 end,
@DECLINESGIFTAID = case when (select count(*) from dbo.BATCHREVENUESPLIT where BATCHREVENUESPLIT.BATCHREVENUEID = BATCHREVENUE.ID) <> 1 then BATCHREVENUE.DECLINESGIFTAID
else coalesce((select DECLINESGIFTAID from dbo.BATCHREVENUESPLIT where BATCHREVENUESPLIT.BATCHREVENUEID = BATCHREVENUE.ID), 0)
end,
@DDISOURCECODEID = DDISOURCECODEID,
@DDISOURCEDATE = DDISOURCEDATE,
@ISCOVENANT = ISCOVENANT,
@AMOUNTFORVAT = AMOUNTFORVAT,
@VATTAXRATEID = VATTAXRATEID,
@VATAMOUNT = VATAMOUNT,
@ADDITIONALAPPLICATIONSSTREAM = dbo.UFN_REVENUEBATCH_GETADDITIONALAPPLICATIONS_TOITEMLISTXML(@ID),
@REVENUELOOKUPID = BATCHREVENUE.REVENUELOOKUPID,
@MATCHINGGIFTS = dbo.UFN_REVENUEBATCH_GETENHANCEDMATCHINGGIFTS_2_TOITEMLISTXML(BATCHREVENUE.ID),
@MGGENERATED = MGGENERATED,
@MGALTERED = MGALTERED,
@PAYINGPENDINGREVENUEID = PAYINGPENDINGREVENUEID,
@GIFTINKINDITEMNAME = GIFTINKINDITEMNAME,
@GIFTINKINDDISPOSITIONCODE = GIFTINKINDDISPOSITIONCODE,
@GIFTINKINDNUMBEROFUNITS = GIFTINKINDNUMBEROFUNITS,
@GIFTINKINDFAIRMARKETVALUE = GIFTINKINDFAIRMARKETVALUE,
@DIRECTDEBITISREJECTED = coalesce(BATCHREVENUE.DIRECTDEBITISREJECTED,0),
@ISGIFTAIDSPONSORSHIP = case when (select count(*) from dbo.BATCHREVENUESPLIT where BATCHREVENUESPLIT.BATCHREVENUEID = BATCHREVENUE.ID) <> 1 then BATCHREVENUE.ISGIFTAIDSPONSORSHIP
else coalesce((select ISGIFTAIDSPONSORSHIP from dbo.BATCHREVENUESPLIT where BATCHREVENUESPLIT.BATCHREVENUEID = BATCHREVENUE.ID), 0)
end,
@OTHERCONSTITUENTAPPLICATIONINFO = BATCHREVENUE.APPLICATIONINFO,
@LOCKBOXID = BATCHREVENUE.LOCKBOXID,
@LOCKBOXBATCHNUMBER = BATCHREVENUE.LOCKBOXBATCHNUMBER,
@LOCKBOXBATCHSEQUENCE = BATCHREVENUE.LOCKBOXBATCHSEQUENCE,
@PDACCOUNTSYSTEMID = BATCHREVENUE.PDACCOUNTSYSTEMID,
@ISADJUSTMENT = BATCHREVENUE.ISADJUSTMENT,
@ADJUSTMENTDATE = BATCHREVENUE.ADJUSTMENTDATE,
@ADJUSTMENTPOSTDATE = BATCHREVENUE.ADJUSTMENTPOSTDATE,
@ADJUSTMENTREASON = BATCHREVENUE.ADJUSTMENTREASON,
@ADJUSTMENTREASONCODEID = BATCHREVENUE.ADJUSTMENTREASONCODEID,
@ADJUSTMENTPOSTSTATUSCODE = case when BATCHREVENUE.ISADJUSTMENT = 1 and BATCHREVENUE.TYPECODE = 0 then BATCHREVENUE.ADJUSTMENTPOSTSTATUSCODE else null end,
@REVENUEDEVELOPMENTFUNCTIONCODEID = REVENUEDEVELOPMENTFUNCTIONCODEID,
@ORIGINALAPPLICATIONINFO = ORIGINALAPPLICATIONINFO,
@RELOADRECOGNITION = RELOADRECOGNITION,
@RELOADSOLICITORS = RELOADSOLICITORS,
@LETTERS = dbo.UFN_REVENUEUPDATEBATCH_GETLETTERS_TOITEMLISTXML(BATCHREVENUE.ID),
@NOTES = dbo.UFN_REVENUEUPDATEBATCH_GETNOTES_TOITEMLISTXML(BATCHREVENUE.ID),
@TRANSACTIONCURRENCYID = BATCHREVENUE.TRANSACTIONCURRENCYID,
@BASECURRENCYID = BATCHREVENUE.BASECURRENCYID,
@BASEEXCHANGERATEID = BATCHREVENUE.BASEEXCHANGERATEID,
@EXCHANGERATE = BATCHREVENUE.EXCHANGERATE,
@GENERATEREFERENCENUMBER = BATCHREVENUE.USESYSTEMGENERATEDREFERENCENUMBER,
@UPDATEMATCHINGGIFTCLAIMS = BATCHREVENUE.UPDATEMATCHINGGIFTCLAIMSCODE,
@UPDATEGIFTFEES = UPDATEGIFTFEES,
@ORIGINALREVENUEAMOUNT = (select AMOUNT from dbo.REVENUE where REVENUE.ID = BATCHREVENUE.REVENUEID),
@ORIGINALTRIBUTES = dbo.UFN_REVENUEUPDATEBATCH_GETTRIBUTES_TOITEMLISTXML(BATCHREVENUE.REVENUEID),
@UPDATETRIBUTES = BATCHREVENUE.UPDATETRIBUTES,
@INSTALLMENTSCHEDULESEEDDATE = case
when BATCHREVENUE.TYPECODE = 3 then coalesce(BATCHREVENUE.INSTALLMENTSCHEDULESEEDDATE, BATCHREVENUE.DATE)
else BATCHREVENUE.INSTALLMENTSCHEDULESEEDDATE
end,
@APPLYBYPERCENT = APPLYBYPERCENT,
@ADJPAYMENT_DATE = BATCHREVENUE.ADJPAYMENT_DATE,
@ADJPAYMENT_POSTDATE = BATCHREVENUE.ADJPAYMENT_POSTDATE,
@ADJPAYMENT_REASONCODEID = BATCHREVENUE.ADJPAYMENT_REASONCODEID,
@ADJPAYMENT_DETAILS = BATCHREVENUE.ADJPAYMENT_DETAILS,
@SALE_LOWPRICE = BATCHREVENUE.SALE_LOWPRICE,
@SALE_MEDIANPRICE = BATCHREVENUE.SALE_MEDIANPRICE,
@SALE_HIGHPRICE = BATCHREVENUE.SALE_HIGHPRICE,
@VENDORID = BATCHREVENUE.VENDORID,
@PLEDGEAMOUNTPAID = case
when BATCHREVENUE.TYPECODE = 1 then ((select TRANSACTIONAMOUNT from FINANCIALTRANSACTION where id= BATCHREVENUE.REVENUEID) - dbo.UFN_PLEDGE_GETBALANCE(BATCHREVENUE.REVENUEID))
else null
end,
@STANDINGORDERREFERENCENUMBER = STANDINGORDERREFERENCENUMBER
from dbo.BATCHREVENUE
left join dbo.CREDITCARD ON BATCHREVENUE.CREDITCARDID = CREDITCARD.ID
left join dbo.CONSTITUENT on CONSTITUENT.ID = BATCHREVENUE.CONSTITUENTID
where BATCHREVENUE.ID = @ID
if @PAYMENTMETHODCODE = 255
set @PAYMENTMETHODCODE = null;
if @PAYMENTMETHODCODE = 11 --Standing order
begin
set @STANDINGORDERCONSTITUENTACCOUNTID = @CONSTITUENTACCOUNTID;
set @STANDINGORDERREFERENCEDATE = @REFERENCEDATE;
end
set @HASSOLDFIXEDASSETS = 0;
if @PAYMENTMETHODCODE in (4, 6) --stock, gift-in-kind
begin
-- sold stock or sold gift-in-kind
if exists (select 1 from dbo.FINANCIALTRANSACTION
where FINANCIALTRANSACTION.PARENTID = @REVENUEID
and FINANCIALTRANSACTION.TYPECODE in (21,27))
set @HASSOLDFIXEDASSETS = 1;
end
if @PAYMENTMETHODCODE = 5 --property
begin
-- sold property
if exists (select 1 from dbo.FINANCIALTRANSACTION
inner join dbo.PROPERTYDETAIL_EXT on PROPERTYDETAIL_EXT.ID = FINANCIALTRANSACTION.ID
where FINANCIALTRANSACTION.PARENTID = @REVENUEID
and PROPERTYDETAIL_EXT.SALEDATE is not null)
set @HASSOLDFIXEDASSETS = 1;
end
if @FINDERNUMBER = 0
set @FINDERNUMBER = null;
/* JamesWill CR267402-021907 INSTALLMENTFREQUENCYCODE cannot be null in the database, but it can be null in the defaults */
if @INSTALLMENTFREQUENCYCODE = 255
set @INSTALLMENTFREQUENCYCODE = null;
/* JamesWill CR265838-020507 2007/03/07 */
if @POSTSTATUSCODE = 255
set @POSTSTATUSCODE = null;
if @SALEPOSTSTATUSCODE = 255
set @SALEPOSTSTATUSCODE = null;
if @RECEIPTTYPECODE = 255
set @RECEIPTTYPECODE = null;
-- Determine the constituent type
declare @ISORGANIZATION bit, @ISGROUP bit, @ISHOUSEHOLD bit
select
@ISORGANIZATION = CONSTITUENT.ISORGANIZATION,
@ISGROUP = CONSTITUENT.ISGROUP,
@ISHOUSEHOLD = case when ISGROUP = 1 and GROUPDATA.GROUPTYPECODE = 0 then 1 else 0 end
from dbo.CONSTITUENT
left join dbo.GROUPDATA on CONSTITUENT.ID = GROUPDATA.ID
where CONSTITUENT.ID = @CONSTITUENTID
-- If the fields weren't set, then the constituent must be a batch constituent
if @ISORGANIZATION is null
select
@ISORGANIZATION = BATCHREVENUECONSTITUENT.ISORGANIZATION,
@ISGROUP = BATCHREVENUECONSTITUENT.ISGROUP,
@ISHOUSEHOLD = case when ISGROUP = 1 and GROUPDATA.GROUPTYPECODE = 0 then 1 else 0 end
from dbo.BATCHREVENUECONSTITUENT
left join dbo.GROUPDATA on BATCHREVENUECONSTITUENT.ID = GROUPDATA.ID
where BATCHREVENUECONSTITUENT.ID = @CONSTITUENTID
if @ISORGANIZATION = 0 and @ISGROUP = 0
set @CONSTITUENTTYPE = 0 -- Individual
else
begin
if @ISORGANIZATION = 1
set @CONSTITUENTTYPE = 1 -- Org
else
begin
if @ISHOUSEHOLD = 1
set @CONSTITUENTTYPE = 2 -- Household
else
set @CONSTITUENTTYPE = 3 -- Group
end
end
declare @APPLICATIONCODE tinyint;
if @APPLICATIONINFO is not null
if len(@APPLICATIONINFO) > 0
if len(@APPLICATIONINFO) = 3
set @APPLICATIONCODE = cast(substring(@APPLICATIONINFO, 3, 1) as tinyint);
declare @SPLITCOUNT int
select @SPLITCOUNT = count(*) from @SPLITS.nodes('/SPLITS/ITEM') T(c)
declare @USESPLITS bit;
if @APPLICATIONCODE is not null and @SPLITCOUNT > 1
set @USESPLITS = 1
else
set @USESPLITS = 0
if @TYPECODE in (1,3)
set @USESPLITS = 1
set @APPLICATIONRECOGNITIONS = dbo.UFN_REVENUEUPDATEBATCH_GETPAYMENTRECOGNITIONS(@ID, @USESPLITS)
set @APPLICATIONSOLICITORS = dbo.UFN_REVENUEUPDATEBATCH_GETPAYMENTSOLICITORS(@ID, @USESPLITS)
/* Load business units */
declare @APPORSPLIT bit =0;
if @SPLITCOUNT>1
set @APPORSPLIT=1
else
set @APPORSPLIT=0
set @APPLICATIONBUSINESSUNITS = dbo.UFN_REVENUEBATCH_GETAPPLICATIONBUSINESSUNITS(@ID,@APPORSPLIT)
--see if this item is a sponsorship RG
set @ISSPONSORSHIPRG = case when @TYPECODE = 3 and (select top 1 TYPECODE from dbo.REVENUESPLIT where REVENUEID = @REVENUEID) = 9 then 1 else 0 end;
--INSTALLMENTS--
--Find the first and last installment that have a full balance/no payments
declare @LASTUNPAIDINSTALLMENTSEQUENCE integer;
declare @FIRSTUNPAIDINSTALLMENTSEQUENCE integer;
declare @MAXINSTALLMENTSEQUENCE integer;
-- NUMBEROFINSTALLMENTS is null incase of recurring gift, so set MAXINSTALLMENTSEQUENCE to 0
-- if set to 1 (default), RG behaves as if installments have been paid because of RevenueBatchHelper.RevenueHasPaidInstallments
set @MAXINSTALLMENTSEQUENCE = isnull(@NUMBEROFINSTALLMENTS,0);
select
@FIRSTUNPAIDINSTALLMENTSEQUENCE = min(SEQUENCE),
@LASTUNPAIDINSTALLMENTSEQUENCE = max(SEQUENCE)
from dbo.INSTALLMENT
left join dbo.INSTALLMENTPAYMENT on INSTALLMENT.ID = INSTALLMENTPAYMENT.INSTALLMENTID
where
INSTALLMENT.REVENUEID = @REVENUEID and
INSTALLMENTPAYMENT.INSTALLMENTID is null;
/*
select
@RESCHEDULEBALANCE = sum(dbo.UFN_INSTALLMENT_GETINSTALLMENTBALANCE(INSTALLMENT.ID))
from dbo.INSTALLMENT
where
INSTALLMENT.REVENUEID = @ID;
*/
if @FIRSTUNPAIDINSTALLMENTSEQUENCE is not null
begin
set @LASTPAYMENTSEQUENCE = @FIRSTUNPAIDINSTALLMENTSEQUENCE - 1;
-- set @NUMBEROFINSTALLMENTS to the number of unpaid installments
--set @NUMBEROFINSTALLMENTS = (@LASTUNPAIDINSTALLMENTSEQUENCE - @FIRSTUNPAIDINSTALLMENTSEQUENCE) + 1;
end
else
begin
--all installments have a payment towards them
set @LASTPAYMENTSEQUENCE = (@MAXINSTALLMENTSEQUENCE);
--set @NUMBEROFINSTALLMENTS = 0;
end
select @RGSTATUSCODE = REVENUESCHEDULE.STATUSCODE
from dbo.REVENUESCHEDULE
where REVENUESCHEDULE.ID = @REVENUEID
--If there have been no payments towards the balance, then the @MAXINSTALLSEQUENCE
--and the @LASTUNPAIDINSTALLMENTSEQUENCE will be equal. If they are equal,
--we do not care about the last unpaid row. Set it to 0 as it can never be 0 on its own.
--Otherwise, set it to the sequence number of the last installment that has no payments
--applied to it.
if @LASTUNPAIDINSTALLMENTSEQUENCE = @MAXINSTALLMENTSEQUENCE or @LASTUNPAIDINSTALLMENTSEQUENCE is null
set @LASTUNPAIDROW = 0;
else
set @LASTUNPAIDROW = @LASTUNPAIDINSTALLMENTSEQUENCE;
--set @INSTALLMENTS = dbo.UFN_REVENUEUPDATEBATCH_LOADINSTALLMENTS_TOITEMLISTXML(@ID)
select @ORIGINALCONSTITUENTID = CONSTITUENTID from dbo.REVENUE where ID = @REVENUEID
set @HASPOSTEDPAYMENTS = dbo.UFN_PLEDGEHASPOSTEDPAYMENTS(@REVENUEID);
if @HASPOSTEDPAYMENTS = 1
begin
declare @hasbatchrevenuesplitrows int = 0
select @hasbatchrevenuesplitrows = count(1) from dbo.BATCHREVENUESPLIT where BATCHREVENUESPLIT.BATCHREVENUEID = @ID
if @hasbatchrevenuesplitrows >= 1 and exists(select 1
from dbo.BATCHREVENUESPLIT
where BATCHREVENUEID = @ID and
DESIGNATIONID not in (select DESIGNATIONID from dbo.REVENUESPLIT_EXT
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
where FINANCIALTRANSACTION.ID = @REVENUEID))
set @HASCHANGEDBYGRUB = 1;
else if @hasbatchrevenuesplitrows = 0 and exists(select 1
from dbo.BATCHREVENUE
where ID = @ID and
SINGLEDESIGNATIONID not in (select DESIGNATIONID from dbo.REVENUESPLIT_EXT
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
where FINANCIALTRANSACTION.ID = @REVENUEID))
set @HASCHANGEDBYGRUB = 1;
else
set @HASCHANGEDBYGRUB = 0;
end
else
begin
set @HASCHANGEDBYGRUB = 0;
end
if exists(select 1
from dbo.FINANCIALTRANSACTIONLINEITEM
inner join REVENUECATEGORY on REVENUECATEGORY.ID = FINANCIALTRANSACTIONLINEITEM.ID
where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @REVENUEID and REVENUECATEGORY.GLREVENUECATEGORYMAPPINGID <> @CATEGORYCODEID)
begin
set @ADJPAYMENT_REVENUECATEGORYCHANGED = 1 ;
end
select @DEPOSITID = DEPOSITID
from dbo.BANKACCOUNTDEPOSITPAYMENT
where ID = @REVENUEID;
/* Determine if the original revenue record was posted to determine its adjustment date. The logic to determine its adjustment status is complicated.
* This comes from USP_DATAFORMTEMPLATE_VIEW_REVENUEUPDATEBATCH_GETREVENUE.
*/
declare @ISPAYMENT bit = 0;
declare @ISPLEDGE bit = 0;
declare @ISRECURRINGGIFT bit = 0;
declare @ISPOSTED bit = 0;
declare @ISMISCELLANEOUSPAYMENT bit = 0;
declare @ISORDERAPPLICATION bit = 0;
declare @HASGIFTAIDSPLITONPENDINGR68PROCESS bit;
declare @ADJPAYMENT_ORIGINALPOSTSTATUS tinyint;
declare @ADJPAYMENT_ORIGINALREASONCODEID uniqueidentifier;
select
@ISPAYMENT = case when R.TRANSACTIONTYPECODE = 0 then 1 else 0 end,
@ISPOSTED = case when P.ID is null then 0 else 1 end,
@ISPLEDGE = case when R.TRANSACTIONTYPECODE = 1 then 1 else 0 end,
@ISRECURRINGGIFT = case when R.TRANSACTIONTYPECODE = 2 then 1 else 0 end
from dbo.REVENUE R
inner join dbo.REVENUEPAYMENTMETHOD RP on R.ID = RP.REVENUEID
left join dbo.REVENUEPOSTED P on P.ID = R.ID
where R.ID = @REVENUEID;
if exists(select ID from dbo.REVENUESPLIT where REVENUEID = @REVENUEID and APPLICATIONCODE = 11)
begin
set @ISMISCELLANEOUSPAYMENT = 1;
end
if @ISPAYMENT = 1
if exists(select 'x' from dbo.SALESORDERPAYMENT
inner join dbo.SALESORDERITEM on SALESORDERITEM.SALESORDERID = SALESORDERPAYMENT.SALESORDERID
where SALESORDERPAYMENT.PAYMENTID = @REVENUEID and SALESORDERITEM.TYPECODE <> 12)
begin
select @ISORDERAPPLICATION = 1
from dbo.SALESORDERPAYMENT
where PAYMENTID = @REVENUEID;
end
set @HASGIFTAIDSPLITONPENDINGR68PROCESS = dbo.UFN_REVENUE_HASGIFTAIDSPLITONPENDINGR68(@REVENUEID, @ISPAYMENT)
--payment adjustment
if @ISPAYMENT = 1 and @ISPOSTED = 1 and @ISMISCELLANEOUSPAYMENT = 0 and @ISORDERAPPLICATION = 0 and @HASGIFTAIDSPLITONPENDINGR68PROCESS = 0
begin
set @ISADJUSTMENT = 1;
set @POSTSTATUSCODE = null
end;
--pledge adjustment
if @ISPLEDGE = 1 and @ISPOSTED = 1
begin
set @ISADJUSTMENT = 1;
set @POSTSTATUSCODE = null
end;
if @ISADJUSTMENT = 1
begin
select
@ADJPAYMENT_ORIGINALPOSTDATE = getdate()
select top 1
@ADJPAYMENT_ORIGINALPOSTDATE = ADJUSTMENT.POSTDATE,
@ADJPAYMENT_ORIGINALPOSTSTATUS = ADJUSTMENT.POSTSTATUSCODE,
@ADJPAYMENT_ORIGINALREASONCODEID = ADJUSTMENT.REASONCODEID
from dbo.ADJUSTMENT
where ADJUSTMENT.REVENUEID = @REVENUEID
order by dateadded desc;
if @ADJPAYMENT_ORIGINALREASONCODEID is null
begin
select
@ADJPAYMENT_ORIGINALPOSTDATE = POSTDATE,
@ADJPAYMENT_ORIGINALPOSTSTATUS = 1,
@ADJPAYMENT_ORIGINALREASONCODEID = REASONCODEID
from dbo.BENEFITADJUSTMENT
where REVENUEID = @REVENUEID and POSTSTATUSCODE = 1
end
--if the most recent adjustment has been posted then in essence we have no adjustment so clear out the adjustment fields
if @ADJPAYMENT_ORIGINALPOSTSTATUS = 0
begin
select
@ADJPAYMENT_ORIGINALPOSTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate()),
@ADJPAYMENT_ORIGINALPOSTSTATUS = 1,
@ADJPAYMENT_ORIGINALREASONCODEID = null
end
if @ADJUSTMENTPOSTDATE is null
select @ADJPAYMENT_ORIGINALPOSTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());
end
if @ISPLEDGE = 1 and @HASPOSTEDPAYMENTS = 1
select
@ADJPAYMENT_POSTDATEDEPOSIT = case when count(distinct Deposit.POSTDATE) = 1 then max(Deposit.POSTDATE) else null end,
@PROMPTONADJUSTMENTDATECHANGE = case when count(*) > 0 then 1 else 0 end
from dbo.FINANCIALTRANSACTIONLINEITEM as Pledge
inner join dbo.FINANCIALTRANSACTIONLINEITEM as Payment on Pledge.ID = Payment.SourceLineItemID
inner join dbo.BANKACCOUNTDEPOSITPAYMENT on Payment.FINANCIALTRANSACTIONID = BANKACCOUNTDEPOSITPAYMENT.ID
inner join dbo.FINANCIALTRANSACTION as Deposit on BANKACCOUNTDEPOSITPAYMENT.DEPOSITID = Deposit.ID
where Pledge.FINANCIALTRANSACTIONID = @REVENUEID
and Pledge.DELETEDON is null
and Pledge.TYPECODE = 0
and Payment.DELETEDON is null
and Payment.TYPECODE = 0
/* End logic to determine original adjustment date for the revenue record
*
*/
return 0;