{"id":16814669,"url":"https://github.com/findus23/invoices","last_synced_at":"2025-04-11T02:11:22.915Z","repository":{"id":46602837,"uuid":"123824288","full_name":"Findus23/invoices","owner":"Findus23","description":"Quickly creating invoices with the power of LaTeX and Python","archived":false,"fork":false,"pushed_at":"2021-10-04T09:55:46.000Z","size":71,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-11T02:11:19.226Z","etag":null,"topics":["hacktoberfest","invoice","latex","python","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Findus23.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-04T20:07:20.000Z","updated_at":"2023-07-25T21:37:46.000Z","dependencies_parsed_at":"2022-09-23T06:11:44.999Z","dependency_job_id":null,"html_url":"https://github.com/Findus23/invoices","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Findus23%2Finvoices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Findus23%2Finvoices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Findus23%2Finvoices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Findus23%2Finvoices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Findus23","download_url":"https://codeload.github.com/Findus23/invoices/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248328160,"owners_count":21085261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","invoice","latex","python","yaml"],"created_at":"2024-10-13T10:30:04.725Z","updated_at":"2025-04-11T02:11:22.896Z","avatar_url":"https://github.com/Findus23.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Invoices\nTo generate invoices, you need multiple local configs. Your own information\nshould be present in `from.yaml`, the person (or company) you write the invoice\nto should be present as a file in `recipients/\u003crname\u003e.yaml`, where `rname` is\nthe selector. The specific information about this invoice should be in\n`config.yaml`.\n\n# More Features\nIf you need more features than are available here, take a look at [this version\nfrom fkarg](https://github.com/fkarg/invoices).\n\n\n## Your own information: from.yaml\nHave a file called `from.yaml` with your own information structured like this:\n\n### Field descriptions\n| Field | Type | description |\n|:---|:---:|:---|\n| `name`        | string    | Your full name.    |\n| `address`     | string    | Your Address. Both street and number. |\n| `zip`         | int       | Your area ZIP code.   |\n| `city`        | string    | The city you live in. |\n| `cityShort`   | string    | Shortened version of your city name.  |\n| `countryDE`   | strang    | Name of your country in German, used for an invoice in German. |\n| `countryEN`   | strang    | Name of your country in English, used for an invoice in English. |\n| `IBAN`        | string    | The IBAN of your bank account.    |\n| `BIC`         | string    | The BIC of your bank account. |\n| `bank`        | string    | The name of your bank.    |\n| `phone`       | string    | Optional. Your phone number. |\n| `email`       | string    | Optional. Your mail address. |\n| `url`         | string    | Optional. Your homepage.  |\n\n### Example\n```from.yaml\nname: \u003cname\u003e\naddress: \u003caddress\u003e\nzip: \u003czip\u003e\ncity: \u003cname of city\u003e\ncityShort: \u003cshort name of city\u003e\ncountryDE: Deutschland\ncountryEN: Germany\nIBAN: \u003cIBAN\u003e\nBIC: \u003cBIC\u003e\nbank: \u003cname of bank\u003e\n```\n\nIt's no big deal to leave some of the fields empty.\n\n## Clients: recipients/\\\u003crname\\\u003e.yaml\nFor every clients `rname`, have a `recipients/\u003crname\u003e.yaml` file structured\nlike this:\n\n### Field descriptions\n| Field | Type | description |\n|:---|:---:|:---|\n| `name`        | string    | Your clients name. |\n| `address`     | string    | Your clients business address. Both street and number. |\n| `zip`         | int       | ZIP code of your clients address.   |\n| `city`        | string    | City correlating to the zip code. |\n| `country`     | string    | Country of your clients business address. |\n\n### Example\n```recipients/\u003crname\u003e.yaml\nname: \u003cname\u003e\naddress: \u003caddress\u003e\nzip: \u003czip\u003e\ncity: \u003ccity\u003e\ncountry: \u003ccountry\u003e\n```\n\n\n## Config: config.yaml\nThe main config is in a file called `config.yaml`:\n\n### Field descriptions\n| Field | Type | description |\n|:---|:---:|:---|\n| `title`               | string    | Title of the invoice. |\n| `description`         | string    | Description of the work you did.  |\n| `range`               | string    | Timeframe during which you accumulated the given number of hours. |\n| `hours`               | int       | Number of hours you worked for the given timeframe and client. |\n| `default_recipient`   | string    | Filename (before the `.yaml`) of your default client. |\n| `last_id`             | int       | Since invoices need to have unique IDs, this number will be increased by one. After that, the config will be written back to the file. This deletes any prior comments. |\n| `invoice_dir`         | string    | Directory in which the invoice will be generated. Needs to exist prior to execution. |\n| `default_hourly_rate` | int       | The hourly rate you bill for in this receipt. |\n| `bank_fee`            | int       | Optional. Amount of bank fees you can invoice.    |\n\n### Example\n```config.yaml\ntitle: \u003cinvoice title\u003e\ndescription: \u003cwork description\u003e\nrange: \u003ctimeframe in which you worked\u003e\nhours: \u003chours worked\u003e\ndefault_recipient: \u003crname\u003e\nlast_id: \u003cint\u003e\ninvoice_dir: invoice    # directory needs to exist\ndefault_hourly_rate: \u003cint\u003e\n```\n\n## Structure\nThe directory structure of where you execute this script should look something\nlike this:\n```\n$ tree\n.\n├── invoice     # content is generated, but folder needs to exist\n│   ├── \u003cid\u003e\n│   └── \u003cid\u003e\n├── recipients\n│   ├── \u003crname\u003e.yaml\n│   └── \u003crname\u003e.yaml\n├── from.yaml\n└── config.yaml\n```\n\n## Setup\nMake sure to install poetry first.\n\n### Nix\n`nix-env -iA nixpkgs.poetry`\n\n### Other\nAccording to [their website](https://python-poetry.org/docs/#installation),\nthis is the recommended way of installation:\n`curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python`\n\n### Install dependencies\nMake sure to switch to a virtual environment prior to installing dependencies.\n```\n$ virtualenv -p python3 .venv\n$ source .venv/bin/activate\n$ poetry install              # install dependencies\n```\n\n\n## Usage\n\n```\n$ python main.py create\n...     # you will be asked for details and further information interactively\n$ python main.py compile\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffindus23%2Finvoices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffindus23%2Finvoices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffindus23%2Finvoices/lists"}