Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/drahnr/shinypenny
A cli tool to create reimbursement request pdfs from a set of receipts in pdf or image formats. Creates accounting information per tax percentage and sums of totals for tax, brutto, netto in a tabular view.
https://github.com/drahnr/shinypenny
accounting chore pdf-generation reimbursement
Last synced: 8 days ago
JSON representation
A cli tool to create reimbursement request pdfs from a set of receipts in pdf or image formats. Creates accounting information per tax percentage and sums of totals for tax, brutto, netto in a tabular view.
- Host: GitHub
- URL: https://github.com/drahnr/shinypenny
- Owner: drahnr
- License: apache-2.0
- Created: 2020-10-02T12:44:57.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-02-25T13:49:57.000Z (almost 3 years ago)
- Last Synced: 2024-11-28T13:18:42.836Z (27 days ago)
- Topics: accounting, chore, pdf-generation, reimbursement
- Language: Rust
- Homepage:
- Size: 532 KB
- Stars: 11
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# shinypenny 🪙
A small helper tool to collect and concatenate receipts data with tax and value annotations from a csv or command-line.
Create a fully sanitized reimbursement request with
`shinypenny --csv ./monopoly.csv`
or
`shinypenny --csv ./monopoly.csv reimbursement_request.pdf`
or for a single data entry, you can pass all items via command-line
flags see `shinypenny --help`.## License
There are certain artifacts included, i.e. fonts and pivot image.
* Roboto Fonts as taken from `google-roboto-fonts-2.138-6.fc32.noarch` and is pubished under [`Apache-2.0`](https://fonts.google.com/specimen/Roboto#license).
* Test image by [Jonathan Brinkhorst](https://unsplash.com/@jbrinkhorst) under the [The Unsplash License](https://unsplash.com/license).
* Source code is under `Apache-2.0 OR MIT`.## Configuration
Configure the destination bank account by setting these two vars
accordingly in your `shinypenny.toml` configuration file```toml
name = "Roger Ronjason"
iban = "NO1876..........909"[company]
name = "Big $ Corp"
address = "Strahlemax Str. 20, 1111 Irgendwo"
```which resides in (given your username is `Alice`)
`/home/alice/.config/` Linux
`C:/Users/Alice/AppData/Roaming` Windows
`/Users/Alice/Library/Application Support` Mac OS## CSV
The format is determined by the header row, which can be omitted if the order
as kept in the example below. If the columns are re-ordered, the header tags must be provided
with the names as shown below.By default `|` is used as separator, if parsing fails with that assumption, a secondary parse attempt is made with `;`.
Numbers and decimals may be delimited with `.` characters independent of the locale - `,` is not a valid decimal separator, see [the rust `f64` grammar](https://doc.rust-lang.org/std/primitive.f64.html#grammar) - this will change with `v0.4.0` onwards and `3,5` will be accepted as well.
Receipt paths are relative to the `cwd`.
```csv
date |company |description |netto |tax |brutto|path
2020-09-20|watercorp |Device: Superblaster 2k21 |100.00|0.05| 95 |spensiv.pdf
2020-09-20|OfflineBooks|How to create a wormhole. |100 |0.05| 95.00|funny.pdf
2020-09-20|OfflineBooks|Yaks, to shave or not to | 10 |0.16| 9.40|001_receipt.pdf
2020-09-20|Prepers. Inc|Doomsday prep day |111 |0.16| 93.24|dpd.pdf
```but also with `€` and `%` annotations.
```csv
date |company |description |netto |tax |brutto|path
2020-09-20|watercorp |Device: Superblaster 2k21 |100 €|5 %| 95 |spensiv.tiff
2020-09-20|OfflineBooks|How to create a wormhole. |100 €|0.05| 95.00 €|funny.jpeg
2020-09-20|OfflineBooks|Yaks, to shave or not to | 10 |16 %| 9.40|001_receipt.pdf
2020-09-20|Prepers. Inc|Doomsday prep day |111 |0.16| 93.24|dpd.png
```## Roadmap
This is a purely necessity driven project.
* [x] Support entries other than euros (€) https://github.com/drahnr/shinypenny/issues/2
* [ ] Allow specifying a pivot pdf page with a designate table area
* [ ] Replace `0.00` values with a `-` within the tableIf you need a particular feature, please open an issue before filing a pull request.