Files @ 8e665fd30022
Branch filter:

Location: NPO-Accounting/npo-accounting-ikiwiki/ExistingProjects/LedgerSMB.mdwn

http://wandborg.se/ Joar@web
LedgerSMB is a fork of [[SQLLedger]]:

- [[!wikipedia SQL-Ledger#Licensing_Issues]]
- [[!wikipedia LedgerSMB#Forking_controversy]]

## Links

* [Web Site](http://www.ledgersmb.org)
* [Ohloh Metrics](https://www.ohloh.net/p/ledger-smb/)
* [Manual](https://demo.cloud.efficito.com/erp/doc/LedgerSMB-manual.pdf)
* [Secondary Documentation](http://book.ledgersmb.org)
* [Changelog of current beta and past versions](https://demo.cloud.efficito.com/erpbeta/Changelog)
* [Demo of current beta](https://demo.cloud.efficito.com/erpbeta/login.pl?login=demo)
* [Demo of current stable](https://cust0.cloud.efficito.com/beta/login.pl?login=demo)

## Technical

* Perl
* PostgreSQL
* In transition:
   * Old codebase Perl, DBI, few if any templates
   * New codebase Perl, Stored procedures, templates
   * Moving further to the Moose object-oriented programming framework and the Dojo Javascript framework in 1.4  
   * PHP integration classes working for areas of the software re-engineered since 1.3 (though may need some extension to reach all these areas)

## Note from Developers

LedgerSMB is very much in transition and will be for a number of years.  We are unhappy with the old financial framework (messy code, SQL assembled as strings, HTML printed to STDOUT) and are trying to move to a more modern/postmodern architecture which uses stored procedures as named queries, supports applications written in many languages, and the like. What we are shooting for is an accounting engine written in SQL which can be automated by applications written in whatever languages folks want to use. This ideal is still many years out, but we do have an application which is working today and can be customized with some patience and effort.

Also clarifications as requested:

We chose Moose over other object frameworks in Perl because it offers a heavily declarative object system along with a very rich set of property constraints.  We use this extensively.  However it does have a startup cost, which is why, in 1.4, FCGI will be the preferred way to run the software.  Moose is an extremely powerful object system which borrows many ideas from CLOS.

Dojo is a Javascript framework for dynamic web applications.  It handles everything from tabular-like layout to complex controls, like date selections with popup calendars.

<a id="evaluation"></a>
## Evaluation

### Evaluation of [[Reporting|UseCases/GeneratingReports]] UseCases
- [[Trial Balance Report|UseCases/GeneratingReports#trial-balance]]: Yes
- [[Bank Reconciliation Report|UseCases/GeneratingReports#bank-reconcilation]]: FIXME
- [[Chart of Accounts|UseCases/GeneratingReports#chart-of-accounts]]: FIXME
- [[Cash Disbursements Journal|UseCases/GeneratingReports#cash-disbursements]]: FIXME
- [[Income Report|UseCases/GeneratingReports#income-report]]: FIXME
- [[Expense Report|UseCases/GeneratingReports#expense-report]]: FIXME

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

Can each of these reports be generated, confined to a specific temporarily
restricted asset type?
   
- [[Trial Balance Report|UseCases/GeneratingReports#trial-balance]]: FIXME
- [[Bank Reconciliation Report|UseCases/GeneratingReports#bank-reconcilation]]: FIXME
- [[Chart of Accounts|UseCases/GeneratingReports#chart-of-accounts]]: FIXME
- [[Cash Disbursements Journal|UseCases/GeneratingReports#cash-disbursements]]: FIXME
- [[Income Report|UseCases/GeneratingReports#income-report]]: FIXME
- [[Expense Report|UseCases/GeneratingReports#expense-report]]: FIXME

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

- [[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]]: FIXME
- FIXME: Other uses cases need rewrite.

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

- Does the system implement pure double-entry accounting?

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

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

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

### 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?

### 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? 

### Evaluation of WorkFlow UseCases
- Is a [[specific workflow dictated by the system|UseCases/WorkFlow#workflow-dictated]] ?
- Is a [[the workflow configurable|UseCases/WorkFlow#workflow-configurable]] ?
- [[Unaccrued Invoice|UseCases/WorkFlow#unaccrued-invioice]] ?

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

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

### Evaluation of the [[Community Health|UseCases/CommunityHealth]]
- Is the [[license both determined as Free Software by FSF and OSI-approved|USeCases/CommunityHealth#license-approved]]?
- Is the [[license GPL-compatible||UseCases/CommunityHealth#gpl-compatible]]?
- Does the project
  [[require assignment of copyright or a CLA to get code upstreamed|UseCases/CommunityHealth#no-cla-for-profit]]?
- How many
  [[active developers/companies contribute to the project||USeCases/CommunityHealth#dev-count]]?
     * 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]]?
- How easy it to [[engage as a developer with the community|UseCases/CommunityHealth#dev-welcoming]]?