The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
LedgerSMB-API

This module is meant to document access for those working to
integrate online commerce applications with the LedgerSMB
codebase, to the workings of the accounting application so
that simple and repetative transactions can be automated.

INSTALLATION

Access with your browser the administrative interface of your
LedgerSMB installation, to create and populate a new database,
perhaps lsmb_api_test, and create a new user, lsmb_api_test,
with privileges on that database.  The tests have been written
against the chart of accounts provided by the US_Service_Company
database template.

To install this module, run the following commands:

    perl Makefile.PL
    make
    make test

If you like the initial tests, you might then consider using
pgdump to backup a production accounting database, then as
your postgres user, use the psql command to restore that data
to your lsmb_api_test database, after you have DROP'd and
re-CREATE'd it.  Then run some tests with your books.  Finally,

    make install  <-- if you dare . . . 

INITIAL ALPHA RELEASE NOTICE

LedgerSMB::API 

In a collaboration initiated between Nigel Titley and Hugh Esco -- but
open to others, operating under a SourceForge project as
LedgerSMB-OSCommerce, but with an expanded focus of supporting
developers seeking to integrate LedgerSMB generically with other
applications which have a need to post transactions to or pull reports
from an accounting database.  

You may get your copy using your cpan> prompt, or download it from the
sourceforge or CPAN websites at these links:

   https://sourceforge.net/projects/ledgersmb-oscom/
   http://search.cpan.org/~hesco/LedgerSMB-API-0.04a/

As initiating co-conspirators we've agreed to make this work available
under the GPL inviting your collaboration in making this a trully
useful tool.  For now, we offer this, our first humble alpha release,
at version 0.04a, nicknamed: Caveat Emptor.  

Developers are urged to TEST this module against a TEST database.
Testers are urged NOT TO DEPLOY this code against a production copy of
clients accounting databases, without further testing of all your
customary interactions, from posting orders, invoices, payments,
through reports, book closing and review of audit data.  There is much
left to test and we are developers, Not Accountants, and certainly not
developers who have any sort of firm grasp on LedgerSMB/ SQL-Ledger's
programming interface.  

We are only developers who simply seek to expose LedgerSMB's API in a
usable way, as we come to understand it.  

As we complete this initial layer, we hope that others will step
forward to develop: 

LedgerSMB::API::OSCommerce, 
LedgerSMB::API::XAO,
LedgerSMB::API::ZenCart, 
LedgerSMB::API::AgoraCart, 

plus
LedgerSMB::API::YourFavorite 

and of course
LedgerSMB::API::YourCustomApplication.

So, CAVEAT EMPTOR:

You are encouraged to access with your browser the administrative
interface of your LedgerSMB installation, to create and populate a new
database, perhaps lsmb_api_test, and create a new user, lsmb_api_test,
with privileges on that database.  The tests have been written against 
the chart of accounts provided by the US_Service_Company database
template.

If you like the initial tests, you might then consider using pgdump to
backup a production accounting database, then as your postgres user,
the psql command to restore that data to your lsmb_api_test database,
after you have DROP'd and re-CREATE'd it.  

So, what's it do, you ask?

So far, the following routines seems to be passing rudimentary
automated and eyeball-on-browser tests.  

new_lsmb() 
create_new_vendor() 
id_existing_vendor() 
create_new_customer() 
id_existing_customer() 
create_new_part() 
create_new_purchase_order() 
generate_invoice_from_purchase_order() 
post_payment_to_ap_invoice() 
create_new_sales_order()

This routine is partially working and the nature of the known bug is
recorded in perldoc.

create_new_assembly() 

These routines are priority for the current developers, but of course,
others are encouraged to contribute code and documentation to help with
these or to scratch their own known itches.

generate_invoice_from_sales_order() 
post_payment_to_ar_invoice() 
generate_account_statement()

Feedback, comments, use cases, bug reports, tests for bugs, patches,
new code, new or revised perldoc, inspiration and paying work from
developers or other users who find this module useful are welcomed and
encouraged.  This is a work in progress.  Help us do the work which
makes for the progress.

SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the perldoc command.

    perldoc LedgerSMB::API

You can also look for information at:

    Search CPAN
        http://search.cpan.org/dist/LedgerSMB-API

    CPAN Request Tracker:
        http://rt.cpan.org/NoAuth/Bugs.html?Dist=LedgerSMB-API

    AnnoCPAN, annotated CPAN documentation:
        http://annocpan.org/dist/LedgerSMB-API

    CPAN Ratings:
        http://cpanratings.perl.org/d/LedgerSMB-API

COPYRIGHT AND LICENCE

Copyright (C) 2009 Nigel Titley and Hugh Esco

This program is released under the following license: gpl