Giter Site home page Giter Site logo

org.project60.banking's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

org.project60.banking's Issues

Interface draft reconsiliation screen

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?

Attribute contribution to event

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.

Automatically select suggestion upon modifcation

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!

CODA importer

Create an importer that can process the Belgian CODA format. Wait for #9 to use as a template.

Execute Suggestions

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.

Need link between contribution and BTX

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).

Review workflow: jump to next unconfirmed item

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.

Bulk Matching

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

  • the matcher can 100% identify the match
  • tagging (#7) is used.

UI list BTXs

Make the UI show the list of BTXs using the mockup, i.e. the civicrm/banking/payments?show=payments path.

DAO, BAO & API for BTX

Please create the above for the banking transaction table (as created in #1), so I can start creating dummy data for testing.

Proper use option values

  • Instead of using the id's of the civicrm_option_value directly, it would be safer to use the value field.
    • civicrm_banking.plugin_types and civicrm_banking.plugin_classes seems to be switched.

Need to be able to mark BA as owned by this organisation

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

[Default matcher/manual] Open contact on "not found" should search

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.

Accounting data UI

Add an extra tab to the user view, which allows to view, edit, add, and remove accounts (including additional information)

Different 'review' display for completed transactions

When reviewing a completed transaction, it should be immediately clear to the user, that this payment has already been processed:

  1. clear indicators, e.g. different color scheme
  2. missing or disabled "confirm" button
  3. show the execution date
  4. present a visualization of the executed actions, ideally with links to the contributions, etc.

Manual default 'matcher' overrides changes

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!

Cannot generate DAOs

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?

Generic Matcher

Complete a configurable generic matcher, that works with evidences based on value ranges.

Configuration UI

the plugins are configured via a json string, maybe we could include a graphic JS json editor?

Matcher Tasks

We need a task (API function) that can be called with (any of) the following parameters:

  • list of BTX ids
  • status filter (e.g. all 'new' BTXs)
    This function should then (in the background) (re-)run the matcher on all the specified BTXs and generate (and store) suggestions for it.

We need this to work so we can get the import->select->process->review->execute workflow going

Dummy importer plugin

Importer plugin that takes random contacts from the system and creates bank transactions (BTX).

Waiting for #1 and #2

Eliminate duplicate account references when merging contacts

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.

Don't match completed payments

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.

Create document for JSON usage

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.

Ignore matcher neets "dont_ignore"

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.

Find the plugins

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:

  • CiviBanking creates new option value group. Or maybe one per plugin type
  • each extension inserts the class names as option value for the respective group

Tagging of BTX

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.

Statement Structures

Create DAO, BAO and API for bank transaction batches, and make the importer plugins and the UI use/display them.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.