https://github.com/numtide/freelancer-toolbox
A set of tools useful for freelancing
https://github.com/numtide/freelancer-toolbox
buildbot-numtide
Last synced: about 1 year 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 (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-02-07T12:56:39.000Z (over 1 year ago)
- Last Synced: 2025-04-02T23:55:51.044Z (about 1 year 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)