Details
-
Type: New Feature
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Incomplete
-
Affects Version/s: 4.5.8
-
Fix Version/s: Unscheduled
-
Component/s: Accounting Integration, CiviContribute, Core CiviCRM
-
Labels:
-
Versioning Impact:Major (incompatible API change)
-
Documentation Required?:Developer Doc
-
Sprint:4.7.10 Financials
-
Funding Source:Contributed Code
Description
Create a new Setting for Accounting Method, with two options: 'Cash', 'Accrual'.
When Accrual is selected:
1. Create appropriate bookkeeping transactions for recurring payments for donations, memberships and participants to ensure that there are accounts receivable transactions posted for all payments due in next 12 months. As a payment is received, post A/R transactions for additional payment(s) that will be received within the 12 months following the receipt of the payment. Implement in Order API, and as appropriate for front end and back end UIs.
2. When full payment is received for a membership with a period longer than one month, post all but current month's portion of membership fee to a deferred revenue account, and post transactions to recognize that revenue on a equal monthly basis for the period of the membership. For lifetime memberships with revenue associated with them, do not create deferred revenue transactions as this is a one-time fee that covers an indeterminate number of future accounting periods (the CiviCRM organization can correct this accounting assumption). When membership renews, redo this process. When changes are made to membership amount, reverse remaining deferred revenue transactions and post newly calculated ones. This calculation should divide the remaining amount unpaid by the number of payment periods to determine the amount for each period. If the new balance is negative, then make a call to the refund api. When membership is cancelled, reverse remaining deferred revenue transactions.
3. When payment is received for an event participant where the event is in a future month (eg Oct 2 if is Sep 30), post the revenue to a deferred revenue account and create a deferred revenue transaction to recognize it on the first day of the event.
To do: figure out if CiviCRM core supports multi-session events that are likely spread over several reporting periods. If so, split income recognition appropriately over the various periods (eg equally by month).
4. Do not make accrual transactions for premiums.
5. Document changes that would be required to properly support Cash basis accounting, eg removing all accounts receivable transactions (ie Pay Later).
6. Deferred Revenue report: rows for each Financial Type, columns for a) Type, b) Total, each of next 12 months. Cells to contain the revenue that is expected to be recognized for that type during that period.
Related to IIDA-102
Attachments
Issue Links
- links to