Metadata-Version: 2.0
Name: python-billomat
Version: 0.5.1
Summary: Python Billomat API Client Library
Home-page: https://github.com/gerold-penz/python-billomat
Author: Gerold Penz
Author-email: gerold@halvar.at
License: UNKNOWN
Download-URL: https://github.com/gerold-penz/python-billomat/raw/master/dist/python-billomat-0.5.1.tar.gz
Keywords: Billomat,Client,API,Data Interchange,Google App Engine,REST Api
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Networking
Requires-Dist: bunch
Requires-Dist: urllib3

##################################
Python Billomat API Client Library
##################################

Billomat (http://www.billomat.com/): Online service
for quoting, billing and more.

Invoices, estimates, reminders, credit notes, order confirmations,
delivery notes,...

The billomat[API] is an open data and programming interface which
enables you to access the data in your Billomat account.

*python-billomat* can be used in Google App Engine (GAE).

- English API Description: http://www.billomat.com/en/api
- Deutsche API Beschreibung: http://www.billomat.com/api


========
Features
========

- Can be used in Google App Engine (GAE)

- Recurrings

  - Recurring-Items
  - Recurring-Tags
  - Recurring-Email-Receivers

- Invoices

  - Invoice-Items
  - Invoice-Tags
  - Invoice-Payments

- Clients

  - Client-Properties
  - Client-Tags

- Contacts

- Articles

  - Article-Properties
  - Article-Tags

- Reminders

  - Reminder-Items
  - Reminder-Tags

- Email-Templates

- Reminder-Texts

- Own meta data (customfield) for every Billomat object

- Credit-Notes

  - Credit-Note-Items


============
Installation
============

::

    pip install python-billomat


========
Examples
========

-------
Clients
-------

.. code:: python


    import pybillomat

    conn = pybillomat.Connection(
        billomat_id = "<BillomatId>",
        billomat_api_key = "<BillomatApiKey",
    )


    # Load one client
    client = pybillomat.Client(conn = conn, id = 422909)
    print client
    # --> Client(id=422909, name=u'TESTFIRMA', ...)


    # Iterate over ALL clients.
    # It loads the clients gradually. In pages of 30 clients.
    clients_iterator = pybillomat.ClientsIterator(conn = conn)
    clients_iterator.search()
    for client in clients_iterator:
        assert isinstance(client, pybillomat.Client)
        print client.name


    # Iterate over the first 10 clients
    clients_iterator = pybillomat.ClientsIterator(conn = conn, per_page = 10)
    clients_iterator.search()
    for client in clients_iterator[:10]:
        assert isinstance(client, pybillomat.Client)
        print client.name


    # Create new client
    client = pybillomat.Client.create(
        conn = conn,
        name = u"TEST-CUSTOMER with Umlauts ÖÄÜ",
        zip = u"6020",
        city = u"Innsbruck",
        country_code = u"AT",
        first_name = u"TEST-FIRSTNAME",
        last_name = u"TEST-LASTNAME",
        www = u"http://halvar.at/"
    )
    assert isinstance(client, pybillomat.Client)
    print client.name, unicode(client.id)


--------
Invoices
--------

.. code:: python


    import pybillomat

    conn = pybillomat.Connection(
        billomat_id = "<BillomatId>",
        billomat_api_key = "<BillomatApiKey",
    )


    # Load one invoice
    invoice = pybillomat.Invoice(conn = conn, id = 884447)
    print invoice
    # --> Invoice(address=u'TESTADRESSE', status=u'PAID', ...)


    # Iterate over the last 10 invoices
    invoices_iterator = pybillomat.InvoicesIterator(conn = conn, per_page = 10)
    invoices_iterator.search(order_by = "id DESC")
    for invoice in invoices_iterator[:10]:
        assert isinstance(invoice, pybillomat.Invoice)
        print invoice.invoice_number, invoice.status


    # Iterate over all DRAFT-invoices
    invoices_iterator = pybillomat.InvoicesIterator(conn = conn)
    invoices_iterator.search(status = "DRAFT")
    for invoice in invoices_iterator:
        assert isinstance(invoice, pybillomat.Invoice)
        print invoice.label, repr(invoice.address), invoice.open_amount


    #
    # Iterate over all DRAFT-invoices and complete all of them
    #
    invoices_iterator = pybillomat.InvoicesIterator(conn = conn)

    # Search DRAFT-invoices
    invoices_iterator.search(status = "DRAFT")
    print "Found :", len(invoices_iterator)

    # Complete all DRAFT-invoices
    for invoice in invoices_iterator:
        assert isinstance(invoice, pybillomat.Invoice)
        invoice.complete()

    # Search remaining DRAFT-invoices
    invoices_iterator.search(status = "DRAFT")
    print "Found:", len(invoices_iterator)


========
Licenses
========

- GNU Library or Lesser General Public License (LGPL)
- MIT License 




