project60 / org.project60.banking Goto Github PK
View Code? Open in Web Editor NEWCiviCRM banking extension
CiviCRM banking extension
The date range check of the sepa payment matcher might be off by up to a day.
Paul, the more I thought about your reconciliation screen, the more I liked it. Could you somehow document the layout and the workflow, so that I could come up with a draft?
Maybe I am mistaken but I have not found the option to attibute an imported contribution to an event ID.
The use case would be multiple events that people register for and use the sepa direct debit as a means for payment.
When importing from the banking account there is a need to attribute the contribution to a specific event id in order to process the participant status from pending to definitive.
When in review mode, a modification of any of the parameters of a suggestion should automatically select it (i.e. its radio button). The probability of forgetting to change the selection before confirming is too high!
The tx_batch entity has an attribute tx_count with the number of contained payments. It does not get updated, if you delete individual payments via the UI.
Create an importer that can process the Belgian CODA format. Wait for #9 to use as a template.
We need this to work so we can get the import->select->process->review->execute workflow going
The matchers need to be able to execute their (own) suggestions. Paul proposed some kind of generic language that would be executed by a function of the abstract importer class.
There is currently no way to trace the link between a contribution and the BTX that generated it. Indirectly, there is a trace because of the financial_trxn created underneath the contribution. In reality, we would need to create a financial_trxn for the incoming payment also (with financial accounts for the 'owned' BA).
If you selected an list of payments to review, it might be tedious to advance to the first unconfirmed one - e.g. when you had to interrupt a previous review session.
We should add a button "next unconfimed" to go next to the standard "next" button.
If the value_date and the booking_date are not properly set during import, all sorts of errors could arise. Best not to create them in the first place.
...which it doesn't do atm. This should be a function in the importer base class, since it would be needed by almost every importer.
Another approach to improve matcher performance: the matchers will be asked upfront if they support bulk matching, and if so, they can select and process a bunch of BTXs in one go. Especially efficient if
Create API to be able to use the accounting API
Make the UI show the list of BTXs using the mockup, i.e. the civicrm/banking/payments?show=payments
path.
Please create the above for the banking transaction table (as created in #1), so I can start creating dummy data for testing.
please asap, so I can start working on the API
The review screen needs to be brushed up so that it shows the visualized suggestions of the matchers.
It would be good to have a flag on bank accounts indicating they are being managed by the CiviBanking app. In that way, we can populate a search field in the BTXB listing. Also, it makes it possible to avoid reading imports for the rong BA
This link should be removed as long as there's no functionality
In the manual processing panel, the little arrow next to the proposed contact takes you to the contact's summary. However, if no contact is selected (because none was found), it produces an illegal URL and opens the home page.
Instead, it should take the user to the search contact screen.
Add an extra tab to the user view, which allows to view, edit, add, and remove accounts (including additional information)
When reviewing a completed transaction, it should be immediately clear to the user, that this payment has already been processed:
If you select a certain statement in the statement overview, and then switch to the individual payment view, you'd expect it to show the selected statement's payments only.
If you use the 'create new contribution' button in the manual suggestion to create a new contribution, all values in the propagation set (config key: value_propagation
) will be copied into the newly created contribution. So far so good.
However, the same value set will again be copied into all contributions listed in the manual suggestion's table upon confirmation. This will, unfortunately, override all changes to these very values, should they have been changed in the new contribution's edit mask!
a collection of documented plugin configuration files
code PHP abstract classes for plugins:
I tried to create the DAOs following this instruction, but the php
interpreter simply hangs after a while with 100% CPU usage.
.../mamp_root/drupal/sites/all/modules/civicrm/xml>php GenCode.php BankingSchema.xml
civicrm_domain.version := 4.3.1
Generating civicrm.config.php
Generating civicrm-version file
Parsing input file BankingSchema.xml
Extracting database information
Extracting table information
civicrm_contact is not a valid foreign key table in civicrm_bank_account
any ideas?
Using the browser's back button when reviewing payments produces an error, and there is no easy way back to the previously processed item.
First draft of a configurable CSV importer plugin.
Complete a configurable generic matcher, that works with evidences based on value ranges.
the plugins are configured via a json string, maybe we could include a graphic JS json editor?
We need a task (API function) that can be called with (any of) the following parameters:
We need this to work so we can get the import->select->process->review->execute workflow going
please extend schema and derived files asap
When merging duplicate contacts, the merging algorithm should check, whether both contacts have a reference to the same account - otherwise both references will be kept.
This also raises the question what should happen, if there really are two identical account entities.
We need to implement a lock to prevent the engine from (re)matching payments, that have already been marked as 'completed'.
There should, however, be a manual(!) override.
We need to document the structure and the commonly used attributes in the civicrm_bank_tx.data_parsed
and the civicrm_bank_tx.suggestions
fields.
Using negative regular expressions is a pain. We'll add a 'dont_ignore' option to the ignore matcher, so you can comfortably express "ignore all but these" configurations.
Plugins will be subclasses of the respective plugin abstract classes. We need to come up with a way to find and instantiate them.
Approach favoured on design-sprint:
The default matcher offers the 'manual' booking of a payment. Usually you can paste any contact link there, to identify the contact. The links from the account search page, however, do not work.
At some point, please fix the XV project logo ;)
Before processing the BTXs, it might be nice to have the importers tag them. This could greatly improve matcher performance.
The tagging system would be similar to the CiviCRM approach, with a predefined (but extensible) set of tags.
Create DAO, BAO and API for bank transaction batches, and make the importer plugins and the UI use/display them.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.