Kimai
Abrechnung

Kimai plugin for a billing overview. Shows all billable, not yet exported timesheet entries, grouped by customer and project.

Kimai-Plugin für die Abrechnungsübersicht. Zeigt alle abrechenbaren, noch nicht exportierten Zeiteinträge – gruppiert nach Kunde und Projekt.

git clone https://github.com/shrippen/kimai-abrechnung-bundle.git var/plugins/AbrechnungBundle && bin/console cache:clear --env=prod

The menu item “Billing” (German: “Abrechnung”) then appears under “Invoices”. In Docker, run the console command as docker exec -it CONTAINER /opt/kimai/bin/console cache:clear --env=prod, or restart the container. To update: git pull in the plugin folder, then clear the cache again.

Der Menüpunkt „Abrechnung“ erscheint danach unter „Rechnungen“. In Docker führst du den Konsolenbefehl als docker exec -it CONTAINER /opt/kimai/bin/console cache:clear --env=prod aus oder startest den Container neu. Zum Aktualisieren: git pull im Plugin-Ordner, danach den Cache erneut leeren.

The billing page with filters, billing buttons and entries grouped by customer and projectThe billing page with filters, billing buttons and entries grouped by customer and project
3Levels to bill: entry, project, customerEbenen zum Abrechnen: Eintrag, Projekt, Kunde
15Minutes to undo your last actionMinuten, um die letzte Aktion zurückzunehmen
0Own database tablesEigene Datenbanktabellen
GPL-3Open sourceOpen Source
OverviewÜbersicht

All open entries

Alle offenen Einträge

Lists every billable, not yet exported and finished timesheet entry, with totals and a KPI bar for open time and amount.

Listet jeden abrechenbaren, noch nicht exportierten und beendeten Zeiteintrag, mit Summen und einer Kennzahlen-Leiste für offene Zeit und offenen Betrag.

GroupingGruppierung

Customer → Project → Entries

Kunde → Projekt → Einträge

Entries are grouped by customer and project, with Kimai’s own color circles and a sum per group.

Einträge sind nach Kunde und Projekt gruppiert, mit den Farbkreisen von Kimai und einer Summe pro Gruppe.

FiltersFilter

Period, customer, user, status

Zeitraum, Kunde, Benutzer, Status

A month or year navigator (or all periods) and Kimai’s own toolbar with customer, user, status (open, billed, all) and search.

Ein Monats- oder Jahres-Navigator (oder alle Zeiträume) und Kimais eigene Toolbar mit Kunde, Benutzer, Status (offen, abgerechnet, alle) und Suche.

SelectionAuswahl

Tick and bill

Anhaken und abrechnen

Tick entries, or a whole project or customer at once, and bill the selection from the bulk bar. Every row and group also has a “…” menu.

Einträge anhaken, oder gleich ein ganzes Projekt oder einen Kunden, und die Auswahl über die Sammelleiste abrechnen. Jede Zeile und Gruppe hat außerdem ein „…“-Menü.

UndoRückgängig

Undo window

Rückgängig-Fenster

Billed entries leave the list, and the notice offers Undo for 15 minutes: same user, same session, only if nothing changed since.

Abgerechnete Einträge verlassen die Liste, und der Hinweis bietet 15 Minuten lang Rückgängig: gleicher Benutzer, gleiche Sitzung, nur wenn sich seitdem nichts geändert hat.

Kimai

Looks like Kimai

Sieht aus wie Kimai

Kimai page header, toolbar, data table and dialogs, dark mode and a phone layout, following the shared kimai-plugin-ui guidelines. One click opens the same selection in Kimai’s export.

Kimai-Seitenkopf, Toolbar, Datentabelle und Dialoge, Dark Mode und eine Handy-Ansicht nach dem gemeinsamen Leitfaden kimai-plugin-ui. Ein Klick öffnet dieselbe Auswahl in Kimais Export.

Billing in a few clicks

Abrechnen in wenigen Klicks

The page answers one question: what have I worked on that is billable and not billed yet? Pick the period and customer you are about to invoice, check the entries, and mark them as billed.

Die Seite beantwortet eine Frage: Woran habe ich gearbeitet, das abrechenbar und noch nicht abgerechnet ist? Wähle den Zeitraum und den Kunden, den du gerade abrechnest, prüfe die Einträge und rechne sie ab.

FilterFilternMonth or year, customer, user, status, searchMonat oder Jahr, Kunde, Benutzer, Status, Suche
CheckPrüfenCustomer → project → entries, with date, activity, user, duration and amountKunde → Projekt → Einträge, mit Datum, Tätigkeit, Benutzer, Dauer und Betrag
BillAbrechnenSelected entries, a project, a customer or everything visibleAusgewählte Einträge, ein Projekt, ein Kunde oder alles Sichtbare
DoneFertigEntries leave the list, with Undo in the noticeEinträge verlassen die Liste, mit Rückgängig im Hinweis

Open Billing in the sidebar under Invoices. Page to the month or year, narrow the toolbar to a customer or user, then tick entries, or use the checkbox of a project or customer to select all of it, and press Mark as billed in the bulk bar. Mark all visible as billed takes everything the filter shows. Changed your mind? Press Undo in the notice, or switch the status to Billed and Reopen entries.

Öffne Abrechnung in der Seitenleiste unter Rechnungen. Blättere zum Monat oder Jahr, grenze die Toolbar auf einen Kunden oder Benutzer ein, hake dann Einträge an, oder nutze das Kästchen eines Projekts oder Kunden, um alles davon auszuwählen, und drücke Abrechnen in der Sammelleiste. Alle sichtbaren abrechnen nimmt alles, was der Filter zeigt. Anders überlegt? Drücke Rückgängig im Hinweis, oder stelle den Status auf Abgerechnet und nimm Einträge mit Zurücknehmen zurück.

Levels of billing

Ebenen des Abrechnens

ActionAktionWhat it billsWas sie abrechnet
Selection + Mark as billedAuswahl + AbrechnenThe ticked entriesDie angehakten Einträge
Project checkbox or “…” menuKästchen oder „…“-Menü des ProjektsAll visible entries of that projectAlle sichtbaren Einträge dieses Projekts
Customer checkbox or “…” menuKästchen oder „…“-Menü des KundenAll visible entries of that customer, across projectsAlle sichtbaren Einträge dieses Kunden, projektübergreifend
Mark all visible as billedAlle sichtbaren abrechnenEvery entry the current filter showsJeden Eintrag, den der aktuelle Filter anzeigt

“Visible” means after your filter. Narrow it first, and the actions only touch what you see. Nothing reloads: each click is a request in the background, and billing twice changes nothing.

„Sichtbar“ heißt: nach deinem Filter. Grenze zuerst ein, dann betreffen die Aktionen nur, was du siehst. Nichts lädt neu: Jeder Klick ist ein Hintergrund-Request, und doppeltes Abrechnen ändert nichts.

Requirements

Voraussetzungen

Install

Installation

  1. Clone the repository into var/plugins/AbrechnungBundle, or download a release and copy the AbrechnungBundle folder there.
  2. Restart the container, or run bin/console cache:clear --env=prod.
  3. Done: the menu item Billing appears under Invoices.
  1. Klone das Repository nach var/plugins/AbrechnungBundle oder lade ein Release herunter und kopiere den Ordner AbrechnungBundle dorthin.
  2. Starte den Container neu oder führe bin/console cache:clear --env=prod aus.
  3. Fertig: Der Menüpunkt Abrechnung erscheint unter Rechnungen.
# from the Kimai directory git clone https://github.com/shrippen/kimai-abrechnung-bundle.git var/plugins/AbrechnungBundle bin/console cache:clear --env=prod # Docker: restart instead docker restart CONTAINER

Permissions

Rechte

The plugin uses existing Kimai permissions.

Das Plugin nutzt vorhandene Kimai-Berechtigungen.

ActionAktionPermissionBerechtigung
Show pageSeite anzeigenview_invoice
Bill / unbill entriesEinträge abrechnen / abwählenedit_export_own_timesheet / edit_export_other_timesheet
Reopen already billed entriesBereits abgerechnete Einträge zurücknehmenedit_exported_timesheet (not needed to undo your own action within 15 minutes)edit_exported_timesheet (nicht nötig, um die eigene Aktion innerhalb von 15 Minuten rückgängig zu machen)
See amountsBeträge sehenview_rate_own_timesheet / view_rate_other_timesheet

As on Kimai’s own timesheet pages, you only see your own entries and those of the teams you lead; admins see all.

Wie auf Kimais eigenen Zeiterfassungs-Seiten siehst du nur deine eigenen Einträge und die der Teams, die du leitest; Admins sehen alle.

Technology

Technik

Questions

Fragen

Does it change my data?Ändert es meine Daten?

It only sets the exported flag that Kimai already has on every timesheet entry, through the same code path as Kimai’s own API endpoint for the export flag. Nothing else is written.

Es setzt nur das Flag exported, das Kimai an jedem Zeiteintrag ohnehin hat, über denselben Code-Pfad wie Kimais eigener API-Endpunkt für das Export-Flag. Sonst wird nichts geschrieben.

Which entries are listed?Welche Einträge werden angezeigt?

Every entry that is billable, not yet exported and finished. Running entries and entries you already billed do not appear in the open list; switch the status to Billed or All to see them.

Jeder Eintrag, der abrechenbar, noch nicht exportiert und beendet ist. Laufende Einträge und bereits abgerechnete Einträge erscheinen nicht in der offenen Liste; stelle den Status auf Abgerechnet oder Alle, um sie zu sehen.

Can I undo a billing?Kann ich das Abrechnen zurücknehmen?

Yes. Right after billing, the notice offers Undo for 15 minutes. Later, switch the status to Billed and use Reopen; that needs the permission edit_exported_timesheet.

Ja. Direkt nach dem Abrechnen bietet der Hinweis 15 Minuten lang Rückgängig. Später stellst du den Status auf Abgerechnet und nutzt Zurücknehmen; dafür brauchst du das Recht edit_exported_timesheet.

How do I remove it?Wie entferne ich es?

Delete the plugin folder and restart the container. There are no database migrations to revert.

Lösche den Plugin-Ordner und starte den Container neu. Es gibt keine Datenbank-Migrationen, die zurückgenommen werden müssten.