119 lines
7.4 KiB
Markdown
119 lines
7.4 KiB
Markdown
Links:
|
|
|
|
- <https://erpnext.com> - Commercial homepage
|
|
- <https://erpnext.com/open-source> - Community homepage
|
|
- <https://github.com/webnotes/erpnext> - Source code
|
|
|
|
Demo: <https://demo.erpnext.com>
|
|
|
|
### Evaluation of codebase & development
|
|
|
|
The framework [wnframework](https://github.com/webnotes/wnframework) is used and seemingly developed in parallel.
|
|
|
|
The python code does not follow the guidelines in [PEP8](http://www.python.org/dev/peps/pep-0008/).
|
|
|
|
|
|
#### Database
|
|
|
|
wnframework contains a database model abstraction which is used in some places, though there are > 2000 places where raw SQL is composed using python's `'foo %s' % ('bar')` string formatting. I have managed to cause some minor SQL injections, I have not yet found any places where I can cause significant damage / data loss.
|
|
|
|
Not using a database abstraction model such as SQLAlchemy reduces storage portability and adds security overhead to ensure that no malicious queries can be executed.
|
|
|
|
Update: SQLAlchemy has a severe performance penalty based on our testing. Plus, SQL reduces the code complexity in many instances and has much better performance too. - *Rushabh*
|
|
|
|
In those places I have seen, no input sanitation was performed, although they were only SELECT queries. I suspect that you could alter database contents by modifiying a SELECT query, but I have not managed to do so myself.
|
|
|
|
Update: The library does not allow multiple SQL Queries to be executed, hence altering is not possible. There is possibility of overriding certain conditions. We will fix these on priority. - *Rushabh*
|
|
|
|
### Evaluation of [[Reporting|UseCases/GeneratingReports]] UseCases
|
|
- [[Trial Balance Report|UseCases/GeneratingReports#trial-balance]]: [Yes](https://demo.erpnext.com/app.html#trial-balance)
|
|
- [[Bank Reconciliation Report|UseCases/GeneratingReports#bank-reconcilation]]: [Yes](https://demo.erpnext.com/app.html#Form/Bank%20Reconciliation/Bank%20Reconciliation)
|
|
- [[Chart of Accounts|UseCases/GeneratingReports#chart-of-accounts]]: [Yes](https://demo.erpnext.com/app.html#Accounts%20Browser/Account)
|
|
- [[Cash Disbursements Journal|UseCases/GeneratingReports#cash-disbursements]]: FIXME
|
|
- [[Income Report|UseCases/GeneratingReports#income-report]]: [Kind of](https://demo.erpnext.com/app.html#financial-analytics)
|
|
- [[Expense Report|UseCases/GeneratingReports#expense-report]]: Yes, shown together with "Income Report" and a graph.
|
|
|
|
### Evaluation of [[Reporting|UseCases/GeneratingReports]] UseCases for Fund Accounting
|
|
|
|
Can each of these reports be generated, confined to a specific temporarily
|
|
restricted asset type?
|
|
|
|
*It does not seem like it*. There are 'Cost Centers', but they do not seem to be usable in fund accounting.
|
|
|
|
Update: *Yes*. Cost Centers can be easily extended to manage funds. Each Income / Expense is tagged against cost center, so you can accurately track per Fund. Some of the terminology can be fixed if required - *Rushabh*
|
|
|
|
- [[Trial Balance Report|UseCases/GeneratingReports#trial-balance]]: YES
|
|
- [[Bank Reconciliation Report|UseCases/GeneratingReports#bank-reconcilation]]: YES
|
|
- [[Chart of Accounts|UseCases/GeneratingReports#chart-of-accounts]]: YES
|
|
- [[Cash Disbursements Journal|UseCases/GeneratingReports#cash-disbursements]]: YES
|
|
- [[Income Report|UseCases/GeneratingReports#income-report]]: YES
|
|
- [[Expense Report|UseCases/GeneratingReports#expense-report]]: YES
|
|
|
|
### Evaluation of [[Fund Accounting|UseCases/FundAccounting]] UseCases
|
|
|
|
*No*. It does not seem like 'Cost Centers' can be used this way.
|
|
|
|
Update: *Yes*. Please see earlier comment, each fund can be a cost center and invoices, expenses can be booked against it. Even budgeting can be done against a cost center. - *Rushabh*
|
|
|
|
- [[Fund-only View|UseCases/FundAccounting#fund-view]]
|
|
- [[Funds as part of whole org View|UseCases/FundAccounting#fundless-view]]
|
|
- [[Ignore Funds for operations|UseCases/FundAccounting#fundless-view]]
|
|
|
|
### [[UseCases/Collaborating]] evaluation
|
|
- [[Simultaneous Editing of Ledger|UseCases/Collaborating#simultaneous-ledger-edits]]: Yes, the application is web-based.
|
|
- FIXME: Other uses cases need rewrite.
|
|
|
|
### Evaluation of [[Double-entry Accounting|UseCases/DoubleEntryAccounting]] UseCases
|
|
|
|
- Does the system implement pure double-entry accounting? In my judgement, yes. Money goes into one or more accounts, out of another one or more accounts.
|
|
|
|
### Evaluation of [[TrackingDocumentation|UseCases/TrackingDocumentation]] UseCases
|
|
|
|
- Does the system [[link up to external documentation|UseCases/TrackingDocumentation#document-link-up]]? Yes, it seems so.
|
|
|
|
- Does it have a [[the ability to explore transactions via documentation linkage|UseCases/TrackingDocumentation#document-link-explore]]? Yes, you can e.g. filter "Journal Vouchers" by "Bill No".
|
|
|
|
### 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? I have a good faith belief that it does.
|
|
|
|
### 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. Each transaction has a Draft and Submitted status. And separate rights can be given to separate roles for doing approvals. Plus rule based approvals based on properties also exist.
|
|
|
|
### Evaluation of WorkFlow UseCases
|
|
- Is a [[specific workflow dictated by the system|UseCases/WorkFlow#workflow-dictated]] ? Yes
|
|
- Is a [[the workflow configurable|UseCases/WorkFlow#workflow-configurable]] ? Yes - there is a workflow system [User Docs](https://docs.erpnext.com/workflows.html)
|
|
- [[Unaccrued Invoice|UseCases/WorkFlow#unaccrued-invioice]] ? Exists - You can check in Accounts Receivable
|
|
|
|
### Evaluation of the [[Reading and Reporting API|UseCases/ReadingAPI]]
|
|
|
|
See below.
|
|
|
|
### Evaluation of the [[Storage API|UseCases/StorageAPI]]
|
|
|
|
It is a web application using JavaScript to communicate with the backend, so there is an API endpoint for everything you'll ever see in the application.
|
|
|
|
- Is the accounting API separate from the ERP stuff? No
|
|
|
|
### Evaluation of the [[Community Health|UseCases/CommunityHealth]]
|
|
- To post in [erpnext-developer-forum](https://groups.google.com/forum/#!forum/erpnext-developer-forum) you must first apply for membership.
|
|
- Is the [[license both determined as Free Software by FSF and OSI-approved|USeCases/CommunityHealth#license-approved]]? Yes, it's [GPLv3](https://github.com/webnotes/erpnext/blob/master/license.txt), (CC-BY-SA 3.0 for documentation).
|
|
- Is the [[license GPL-compatible||USeCases/CommunityHealth#gpl-compatible]]? Yes, it's [GPLv3](https://github.com/webnotes/erpnext/blob/master/license.txt), (CC-BY-SA 3.0 for documentation).
|
|
|
|
## Final(-ish) Evaluation
|
|
<a id="final-eval"></a>
|
|
|
|
Unfortunately, we discovered
|
|
[this policy early in our evaluation](https://github.com/webnotes/erpnext#copyright-for-contributors),
|
|
and decided that until this policy can be corrected to something more fitting
|
|
with actual copyright law and that will allow us to contribute under the
|
|
stated license of the project, it's not worth further evaluation of the codebase,
|
|
since this policy is just not acceptable. bkuhn has
|
|
[raised the issue on the ERPNext Developers' Forum](https://groups.google.com/forum/?_escaped_fragment_=msg/erpnext-developer-forum/jfsURU8Ew9A/HVDX1z3vvkgJ#!msg/erpnext-developer-forum/jfsURU8Ew9A/HVDX1z3vvkgJ).
|
|
|
|
Udpate: **FIxed** - Rushabh
|