Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

(OT) Perl Open Source accounting packages?

by Ovid (Cardinal)
on Oct 10, 2002 at 18:50 UTC ( [id://204281]=perlquestion: print w/replies, xml ) Need Help??

Ovid has asked for the wisdom of the Perl Monks concerning the following question:

This isn't exactly a "what's wrong with this" type of question, so bear with me :)

With one of our products, we are hoping to integrate some accounting software. Naturally, we'd prefer that the software be open-source (not necessarily free) and written in Perl. I've reviewed a number of packages that my boss has sent to me and I have said 'no' to every one. Here's a small code snippet from, believe it or not, one of the better written products.

# Untaint $db, $args and $columns. $db =~ /(.*)/; $db = $1; $args =~ /(.*)/; $args = $1; $columns =~ /(.*)/; $columns = $1; $stripheader =~ /(.*)/; $stripheader = $1; my @entries = qx{ $ROW $args < $db $columns $stripheader };

If this were the only example of that problem, I might be less worried, but I saw this repeatedly throughout the code.

On to the main question: are there any decent open-source accounting packages in Perl? We need GL, AR, AP, Inventory control. Any other features would be a bonus. We've also considered merely going through these packages for a specs requirement and writing our own rather than deal with the many burdens that cleaning up someone else's code entails.

Second question: how do you evaluate software packages? Do you have a checklist that you go through, or is everything evaluated on a case-by-case basis? (for example, I'd consider acceptable a wonderfully written product that didn't use strict -- read anything by TheDamian :)


Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

Replies are listed 'Best First'.
Re: (OT) Perl Open Source accounting packages?
by rir (Vicar) on Oct 10, 2002 at 22:00 UTC
    Update: Ouch, on the vaporware remarks below. My interest has not waned, but divorce and single-parenthood has put my bookkeeping system on a backburner. (Oct. 2007)

    Don't get a Perl system without use strict; just don't. Update: Maintenance and extensibility are the reasons.

    I chose the last system based on:

    • Hundred-plus longtime similiar-to-me user base.
      This is a proof of viability.
    • On supportable, affordable, scalable platform, meant *nix here, then.
      This has saved much in OS support, admin and license costs.
    • Required features. Don't over spec up front, just what
      accounting issues have to be handled.
    • Ease of customization. Cause you'll need
      specialisations to make everyone happy.
    • Accountant okays reports. Given item one this should
      be easy.

    Though I have some complaints with my choice, I'd do it
    again the same way.

    (People usually hate change so expect aggravation.)

    One large problem I have with this system is convincing
    the accountant or the bookkeepers that some function
    can be written in. Simple UI interfaces may help create
    this rather nice problem.

    Warning! Warning! Vaporware alert!

    I am working on a beast like you request. The core of it, aside from
    the UI is getting close to releasable. A few weeks work equals
    several months lag, though.

    After General Ledger and General Journal come together,
    A/R, A/P, Inventory should benefit from much reuse.
    Purchasing, Receiving, and Sales will follow thereafter.

    I have vague intentions on Payroll as no one seems to be interested
    unless you provide annual tax updates.

    No current plans for Depreciation, Job Costing, Bill of
    Materials or Fixed Assets journals.

    There is SQLedger and GNU has a couple of accounting (GNU-Cash?)
    products. Those all seem oriented toward one or two person offices.
    Don't believe me on this I have not been following those
    SQ-Ledger seems to have a solid following, it runs through a
    browser interface.

    My project is being targeted at businesses like wholesalers,
    auto-parts stores, lumber-yards, etc. Businesses with large
    inventories with moderate transaction rates. It should scale up
    pretty well. With all the journals it would suit cities.

    When I have the GL ledger and journal okay, I'll release.
    As everything else can pretty much be a report against
    the data base.

    At present I'm only planning on supporting Average Costing.
    I am willing to hear, or be aimed at literature, about
    tracking batches or individual items; and fifo, lifo, etc.
    costing. Now I might consider factoring such in, later
    I'll probably want to push such issues into the distant future.

    I'm using Linux, Perl, Tk, DBI, and Postgres. My code is
    fairly portable but *nix-centric. Without bribes I won't
    be dealing with other platforms. Perhaps other UIs, though.

    When you see any practical questions from me it will be
    to support this bookkeeping system.

      Rir, this sounds very interesting. I have been done some research looking for open source accounting packages that could be adopted to the wild ideas described in ledgerism, or in various utopian community currency and bartering schemes, such as my scrawled-on-a-napkin idea nbarter. The idea I am most interested in is a scheme called community wizard that would empower groups of people to better understand the flow of money in their neighborhoods.

      Total vaporware as of now.

      But I wanted to see what already existed in open source that could be scavenged, to implement this. The first thing that would be needed is a multi user general ledger with a web interface.

      For candidates I wound up with just sql-ledger, which is unfortunately is not the most robust code, and Compiere, which runs on java and requires oracle.

      Neither of these sounded real appealing. I did like the rich/reach (windows widget/web) idea of Compiere, but it runs reeeal slow and has too much overhead to factor just the general ledger stuff out of it. (Even if I knew java, which I don't.)

      Martin Bramwell is putting together an open source package he calls CACH (Community Automated Clearing House), which I am also very interested in. He said he was aiming to release in March, but unfortunately until then there's no public information about it online.

      I don't know if your work would be helpful in this regard, but I would be interested in learning more about what you are doing, and maybe beta testing it if you need anyone.

        Thanks for your interest. Life changes have pulled me away from my accounting system work. I am just getting back into it and am grappling with the user interface.

        That interface is to be in Tk, but I am trying to keep a separation of concerns.

        The working name is Rbks. It is a fairly simple and flexible double entry bookkeeping system. As it stands now I have the General Journal backend code fairly squared away. Which is to say a Gj_entry posts itself correctly.

        Ledger and journal reports don't concern me much. These seem to be straight forward SQL reports. I haven't found any strong justification to have reporting be part of the objects. I am open to argument and think the design is flexible enough to add this.

        I have looked at the ledgerism reference. For practical purposes I have a distrust of such all encompassing models. The other links you give don't work for me.

        I am researching scaffold code for basic database Find/Prev/Next/Add/Update/Delete interface screens. If I don't find anything soon I'll be posting a long SOPW.

        I'd rather have an interface before releasing code, but I am willing to share the overview info. Be well,

Re: (OT) Perl Open Source accounting packages?
by lemming (Priest) on Oct 10, 2002 at 20:52 UTC

    You need to be able to have a checklist of what your requirements are. This will be based on what accounting you need to keep track of. So, I lean more to a case by case basis.

    I used to work for a company whose niche market was a database for Public Guardians and Public Administrators. Most of the work was keeping track of assets and how much $$$ was being spent. Then of course the tons of reports that everyone wanted a slightly different version of.

    Pretty much, Accounting packages can be thought of as source control with money. And various different reporting methods possible. Usually, the more flexible the report configuration the better.

Re: (OT) Perl Open Source accounting packages?
by Anonymous Monk on Oct 10, 2002 at 21:17 UTC


    Accounting software is definately not OSS's strongest field, but I've heard good things about SQL Ledger. It's released under version 2 of the GPL, so it's free as free can be (flame away ;-).

    Also, about the following:

    Naturally, we'd prefer that the software be open-source (not necessarily free)

    Other than support or pretty packaging, I don't see a reason to pay for OSS. If you check out the OS definition (particularly the parts about free redistribution) you'll find that any compliant license ultimately enables you to receive the code for free.

    Another note, if you're combining this with proprietary software, make sure to read Combining work with code released under the GPL in the GPL Faq (or preferably get a lawyer to do it).

    Searches on SourceForge and Freshmeat might be useful as well (if you haven't already checked them).

    Best of luck and let us know what you decide on :-).

      Hi, Anonymous Monk. SQL Ledger was actually the very first package that we evaluated. We were very impressed with its long list of features. However, "features" are only part of the package. This is a short list from my initial review of the code.

      • Poorly written
      • Doesn't use strict
      • Extensive use of global variables
      • Has security concerns
      • Is non-portable
      • Hand-rolled template system
      • Difficult to test
      • Will be difficult to extend
      • And guess how it handles CGI data ...

      You are absolutely correct that OSS doesn't appear to have been terribly successful with accounting software. In the defense of the people responsible for SQL Ledger, the above list is not unique to their product.

      Now, if only I could find an accounting package with a test suite ... any test suite.


      Update: Just to let people know that I am not being too picky, here's a sample of code from in SQL Ledger.

      # customization if (-f "$form->{path}/custom_$form->{script}") { eval { require "$form->{path}/custom_$form->{script}"; }; $form->error($@) if ($@); }

      You'll notice that we are using eval on data from a hashref named $form. As one can imagine, this data has been pulled (incorrectly) straight from a Web form. It is also tainted (or would be if taint checking were used). Due to how feature-rich this code is, working to track down all of the security holes (such as unvalidated and improperly quoted data being used in SQL statements) would take so much time that I'd rather start with a better written, but less feature-rich package.

      Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

        I just had a little look through the SQL Ledger source, I think you're review was too nice. Excuse me while I go find the people who recommended it to me =D.

        With regards to the lack of strict, it does slow down execution time right? So, as long as it's included during development is it that big of a deal if it's removed (or preferably commented out) and just switched back on when changes are being made/tested?

        A reply falls below the community's threshold of quality. You may see it by logging in.

      Anyone with (or without) accounting knowledge up for creating an Open Source Perl alternative if nothing suitable is found?

        I'd say that without accounting knowledge you're going to be pretty hard pressed to do a whole hell of a lot for an accounting package.

        I've had to play accountant a few times here at work and "the books" made less sense to me than some of the Perl obfu's here. : )

        Seriously though, it's not something I think I'd trust if the person didn't have some accounting background behind them that was doing the work. Just my opine.

        There is no emoticon for what I'm feeling now.

Re: (OT) Perl Open Source accounting packages?
by Mr. Muskrat (Canon) on Oct 10, 2002 at 19:45 UTC

    I would **love** to be able to replace our current accounting software (OSAS) with something written in perl! Then I would be a natural choice for replacing our MIS Director when he moves on (sometime within the next 6 months, IIRC). Unfortunately, I haven't found anything that even comes close to the requirements.

    So I have two choices: 1) write one myself or 2) learn BBx. Looks like I'll be learning BBx. :(

      BBx is an acronym for Business BASIC eXtended.
Re: (OT) Perl Open Source accounting packages?
by mojotoad (Monsignor) on Oct 10, 2002 at 23:04 UTC
    Even though it does not meet all of your requirements (yet), I would hate to see this discussion pass without mentioning GnuCash. It's by and large a personal accounting package at this point, with aims for small business functionality (including inventory management, payroll, etc).

    The majority of the code is not Perl, though it does utilize several modules written in Perl.

    Once the small business features are implemented, it remains to be seen how scalable it will be. Check out their list of goals for more information.


Re: (OT) Perl Open Source accounting packages?
by jordanh (Chaplain) on Oct 10, 2002 at 22:05 UTC
    Well, it's not OSS, and it may or may not be as full featured as you require, but it might fit a lot of your requirements and I think the Interfaces might be free to use. Intuit's products have excellent User Interfaces, are widely used and are integratable with other products.

    Intuit gives out SDKs and even has a Perl API for QuickBase, the back end database used by it's products.

    Start here.

Re: (OT) Perl Open Source accounting packages?
by bprew (Monk) on Oct 11, 2002 at 02:53 UTC

    Here is a link to freshmeat programs in the accounting category that use Perl.
    freshmeat accounting software

    There were about 15 programs, but I don't know much about any of them. Its too bad SQL Ledger wasn't better, it looked pretty good.

Re: (OT) Perl Open Source accounting packages?
by bart (Canon) on Oct 11, 2002 at 20:10 UTC
    To be honest, for accounting packages I'd have other concerns than it not using strict or not properly untainting CGI data. After all, this is intended for in house use only, and a program can work well even without strict. No, my main concern would be: does it not make mistakes? Most of all: does it use FP for money calculations, or does it do the proper thing and work with one of the BigNum extensions, properly used, as any good money calculation program should? Otherwise, you can get round off errors. Ack.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://204281]
Approved by mdillon
Front-paged by ignatz
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (6)
As of 2024-05-21 06:26 GMT
Find Nodes?
    Voting Booth?

    No recent polls found