Files @ 42d682471220
Branch filter:

Location: NPO-Accounting/npo-accounting-ikiwiki/ExistingProjects/ERP5.mdwn
Americanize spelling
## Links

* <> - Project homepage
* <> - Source code
* <> - Virtual Machine for evaluation(You can use VirtualBox to run it).
* <> - How to install and use the ERP5 VM
* <> - Online Lectures including accounting.
* <> - Other user documents.
* <> - Accounting for Mathematicians

## Technical

* Web application
* Python2
* Zope2
* MariaDB(MySQL)

## Preliminary evaluation

### Positive

- Flexible system based on a good architecture([Unified Business Model](
- Highly configurable/customizable
- i18n/l10n support
- Rapid application development through the web(easy to do prototyping)

### Negative

- Community: The mailing lists are not very active, see <>, <>
- Take time to study(important to understand its design([Unified Business Model](
- Installation is not simple
- Need to read source code and need some experience.

### Comments

Yusei Tahara(an ERP5 developer): I'm sure ERP5 can be customized into an international NPO accounting program. ERP5 is very flexible, customizable, strong i18n/l10n support. However it takes time to understand how to use/develop. Let me know if there are any questions.

## Evaluation

### Evaluation of [[Reporting|UseCases/GeneratingReports]] UseCases
- [[Trial Balance Report|UseCases/GeneratingReports#trial-balance]]: Exist
- [[Bank Reconciliation Report|UseCases/GeneratingReports#bank-reconcilation]]: Not exist, it would be needed to implement "bank reconciliation transaction" document.
- [[Chart of Accounts|UseCases/GeneratingReports#chart-of-accounts]]: Exist(go to account module)
- [[Cash Disbursements Journal|UseCases/GeneratingReports#cash-disbursements]]: Exists.(go to accounting module and filter by document type)
- [[Income Report|UseCases/GeneratingReports#income-report]]: Use trial balance report.
- [[Expense Report|UseCases/GeneratingReports#expense-report]]: Use trial balance report.

### Evaluation of [[Reporting|UseCases/GeneratingReports]] UseCases for Fund Accounting

Can each of these reports be generated, confined to a specific temporarily
restricted asset type?

ERP5's search function can easily filter result by any categories(asset type of account, etc).
So all of them below are basically possible.

- [[Trial Balance Report|UseCases/GeneratingReports#trial-balance]]: Yes
- [[Bank Reconciliation Report|UseCases/GeneratingReports#bank-reconcilation]]: Yes, once this report is implemented.
- [[Chart of Accounts|UseCases/GeneratingReports#chart-of-accounts]]: Yes. It may require a small customization.
- [[Cash Disbursements Journal|UseCases/GeneratingReports#cash-disbursements]]: Yes, it may require small customization.
- [[Income Report|UseCases/GeneratingReports#income-report]]: Yes(Use trial balance report)
- [[Expense Report|UseCases/GeneratingReports#expense-report]]: Yes(Use trial balance report)

### Evaluation of [[Fund Accounting|UseCases/FundAccounting]] UseCases

My intuition tells(although it is necessary to think the design carefully) that this can be done by
implementing a security rule(note that security rule is configurable) based on project/group category with hierarchical structure. Since ERP5 accounting supports hierarchical structure to manage data, non-profit org can be parent and all fiscal sponsorship users can be children. This way, non-profit org can view everything and each fiscal sponsorship user can view only his data.

- [[Fund-only View|UseCases/FundAccounting#fund-view]] Possible
- [[Funds as part of whole org View|UseCases/FundAccounting#fundless-view]] Possible
- [[Ignore Funds for operations|UseCases/FundAccounting#fundless-view]] Possible

### [[UseCases/Collaborating]] evaluation
- [[Simultaneous Editing of Ledger|UseCases/Collaborating#simultaneous-ledger-edits]]: Yes
- FIXME: Other uses cases need rewrite.

### Evaluation of [[Double-entry Accounting|UseCases/DoubleEntryAccounting]] UseCases

- Does the system implement pure double-entry accounting? Yes

### Evaluation of [[TrackingDocumentation|UseCases/TrackingDocumentation]] UseCases

Tracking is possible. In ERP5 any documents can link to any other documents and can add link as many as one wants.
And ERP5 support not only accounting but invoicing, document management, etc.

- Does the system [[link up to external documentation|UseCases/TrackingDocumentation#document-link-up]]? Yes

- Does it have a [[the ability to explore transactions via documentation linkage|UseCases/TrackingDocumentation#document-link-explore]]? Yes

### Evaluation of [[Handling multiple currencies|UseCases/MultiCurrency]] UseCases

- Does it support the concept of
  [[a single functional currency|UseCases/MultiCurrency]], while still
  permitting multi-currency entries? Yes

### Evaluation of [[draft transaction|UseCases/DraftTransactions]] UseCases

- Does the system allow
  [[generally for draft transactions|UseCases/DraftTransactions#draft-general]]
  that can be later approved before officially being posted to the books? Yes thanks to workflow system.

### Evaluation of WorkFlow UseCases
- Is a [[specific workflow dictated by the system|UseCases/WorkFlow#workflow-dictated]] ? No. Workflow is completely customizable and you can even remove it if it is not needed.
- Is a [[the workflow configurable|UseCases/WorkFlow#workflow-configurable]] ?Yes. Workflow is customizable through the web.
- [[Unaccrued Invoice|UseCases/WorkFlow#unaccrued-invioice]] ? No problem. For example, it is possible to create invoice transaction once invoice is accepted(once invoice workflow becomes a specific state). And purchase order is not mandatory for example. Everything is customizable.

### Evaluation of the [[Reading and Reporting API|UseCases/ReadingAPI]]

FIXME: This is assessment of what the API for manipulating the accounting
data does, so I think it's tough to do it as a list of questions.

There is so called [Inventory API]( which you can know your inventory from various aspects. From ERP5 design point of view, warehouse inventory management and accounting is same.(container is warehouse or account, resource is currency or physical product, etc) Test code is [here](

There is also a reporting system and file conversion system. For example you can create a report which can be exported as PDF, ODS or other famous file format.

### Evaluation of the [[Storage API|UseCases/StorageAPI]]

FIXME: This is assessment of what the API for storing the accounting data
does, so I think it's tough to do it as a list of questions.

ERP5 uses ZODB(object database for python). API is simple. Following is an example.

    transaction = context.accounting_module.newContent(portal_type='Accounting Transaction')
    transaction.edit(source_section=xxx, start_date=now)
    line = transaction.newContent(portal_type='Accounting Transaction Line')
    line.edit(source_value=context.account_module.sales, source_credit=100)

### Evaluation of the [[Community Health|UseCases/CommunityHealth]]
- Is the [[license both determined as Free Software by FSF and OSI-approved|USeCases/CommunityHealth#license-approved]]? Yes (Mainly GPLv2 and some are Zope public license and maybe others)
- Is the [[license GPL-compatible||UseCases/CommunityHealth#gpl-compatible]]? Yes
- Does the project
  [[require assignment of copyright or a CLA to get code upstreamed|UseCases/CommunityHealth#no-cla-for-profit]]?  No, I do not think so.
- How many
  [[active developers/companies contribute to the project||USeCases/CommunityHealth#dev-count]]? ERP5 is a company based free software(not community based). Nexedi is the developer company. And I think there are some companies which can support/use ERP5.
     * If there aren't many, how hard would it be to take over the project if needed?
- Is there good [[developer documentation|UseCases/CommunityHealth#dev-docs]]? Not so much. Source code and test code is the best documents.
- How easy it to [[engage as a developer with the community|UseCases/CommunityHealth#dev-welcoming]]? Since ERP software is never implemented for personal use, all ERP developers do it as their job. If somebody want to engage as a developer, he/she need a real ERP project and requires a lot of experience.