https://github.com/numtide/freelancer-toolbox
A set of tools useful for freelancing
https://github.com/numtide/freelancer-toolbox
buildbot-numtide
Last synced: 6 months ago
JSON representation
A set of tools useful for freelancing
- Host: GitHub
- URL: https://github.com/numtide/freelancer-toolbox
- Owner: numtide
- Created: 2022-04-04T16:41:23.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-02-07T12:56:39.000Z (8 months ago)
- Last Synced: 2025-04-02T23:55:51.044Z (6 months ago)
- Topics: buildbot-numtide
- Language: Python
- Homepage:
- Size: 208 KB
- Stars: 5
- Watchers: 9
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Harvest invoice calculator
Create your invoice based on [Harvest](https://numtide.harvestapp.com) timesheets
and calculate the exchange rate to your currency using [Transferwise](https://transferwise.com).Optional: generate invoice using Sevdesk
## Requirements
Generate your personal access token in Harvest using [this page](https://id.getharvest.com/oauth2/access_tokens/new).
```console
cp .envrc.local-template .envrc.local
```Save your Account ID and your token in `.envrc.local`
## Usage / Examples
* Generate for the current month
```console
harvest-exporter
```* Generate for march:
```console
harvest-exporter --month 3
```* Filter by user
```console
harvest-exporter --user "Hans Maier"
```* Generate using json output
```console
harvest-exporter --format json
```* Generate using other currency
```console
harvest-exporter --currency CHF
```* Override hourly rate:
```
harvest-exporter --hourly-rate 100
```This will override the hourly rate reported by harvest prior to applying the nutmide rate.
* Filter by client:
```
harvest-exporter --client "Some client"
```This can be also used to export hours for clients that are external to numtide (client name starting with "External -")
* Generate an invoice with [sevdesk](https://sevdesk.de)
Generate a bill from the harvest exprt for the customer with the ID 1000
```
$ sevdesk-invoicer --customer "1000" harvest.json
```* Calculate working days from harvest time report.
For income tax in Germany one can claim money back for each day. The time report can be obtained from [here](https://numtide.harvestapp.com/reports) for each user.
Than run this script:``` console
$ working-days-calculator report.csv
Working days: 171 from 2022-01-12 00:00:00 to 2022-12-29 00:00:00
```## Kimai Usage/Examples
Exports the last month timesheets of user Jon for client Bob
```
./bin/kimai-exporter --client Bob --user Jon
```* German income tax estimator
Calculates how much money still needs to be paid for the current year, given the current revenu, expenses and already payed pre-tax.
```
$ nix shell $HOME/git/harvest-invoice-calculator#sevdesk-invoicer -c sevdesk-tax-estimator --tax-office-name 'Finanzamt Berlin Finanzkasse' --harvest-folder 2024 --wise-folder statements/2024
...
Taxes left to pay: XXXXX.XX
```## API References
* [Harvest](https://help.getharvest.com/api-v2)
* [Transferwise](https://api-docs.transferwise.com/#quotes-get-temporary-quote)
* [Sevdesk](https://my.sevdesk.de/api/InvoiceAPI/doc.html#tag/Invoice)