Infoicer is a simple invoice items handler.
Project description
infoicer
Infoicer is a simple invoice items handler. It can group items by type and tax rate which helps in building the invoice for a customer.
Features
- All price handling is utilized with
Decimal
type to avoid float rounding problems - Easy to group invoice items by type and tax rate
- Implemented object serialization
- No external dependencies
Installation
From PyPi:
$ pip install infoicer
or clone repository:
$ git clone git@github.com:edkirin/infoicer.git
Basic usage
from infoicer import Invoice, InvoiceItem
from decimal import Decimal
invoice = Invoice()
invoice.add(InvoiceItem(
name="Ham",
item_type='food',
price=Decimal(10),
qty=1,
tax_rate=Decimal(5),
))
invoice.add(InvoiceItem(
name="Spam",
item_type='food',
price=Decimal(15),
qty=3,
tax_rate=Decimal(5),
))
print(invoice.serialize(json_output=True))
output:
{
"items":[
{
"item_type":"food",
"qty":1,
"name":"Ham",
"price":10.0,
"net_price":9.52,
"tax_rate":5.0,
"sum":10.0,
"net_sum":9.52,
"tax_sum":0.48
},
{
"item_type":"food",
"qty":3,
"name":"Spam",
"price":15.0,
"net_price":14.29,
"tax_rate":5.0,
"sum":45.0,
"net_sum":42.87,
"tax_sum":2.13
}
],
"total":{
"price":55.0,
"net":52.39,
"tax":2.61
}
}
Full demo
Check included demo.py for some more uses and features.
Licence
The code is available under MIT Licence.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
infoicer-0.0.1.tar.gz
(5.4 kB
view details)
Built Distribution
File details
Details for the file infoicer-0.0.1.tar.gz
.
File metadata
- Download URL: infoicer-0.0.1.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef5f1d1d53ed15f30408ad525f8c815f8825f9f7e29e04d5840ab7ed5e498c69 |
|
MD5 | c16d29542d5c33d017b771c0dbca97fc |
|
BLAKE2b-256 | b62f5cb84dc829d224615b7fe02f606839c018ca1700cc1dd991dd9e4f5dcf78 |
File details
Details for the file infoicer-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: infoicer-0.0.1-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6412dee018de8a15bc63ed5262d80ef09a59ac1858e02be331eb168145911e4d |
|
MD5 | b5cb839d6c7a568c1acbbab9d96ebc39 |
|
BLAKE2b-256 | 178d6288e79d4ec4f3e721654d0043456d526bfb8524955a60affd08eb75a004 |