Leitfaden · Abrechnung

Stunden abrechnen in Odoo: von der Zeiterfassung zur Rechnung

Wer nach Aufwand abrechnet, will jede geleistete Stunde auf der Rechnung sehen, und keine doppelt. Odoo kann das auch in Community: mit einer Dienstleistung, die auf Basis der Zeiterfassung abgerechnet wird. Wie Sie es einrichten, wo es in der Praxis hakt und was TimeViking ergänzt.

Aktualisiert am · vom Team von TimeViking

Wie Odoo Stunden abrechnet

In Odoo ist eine Zeitbuchung eine Kostenstellenbuchung auf einem Projekt, meist mit Aufgabe. Abgerechnet wird nicht auf der Buchung selbst, sondern über einen Verkaufsauftrag:

  1. eine Dienstleistung mit der Abrechnungsregel „Basierend auf Zeiterfassungen";
  2. ein bestätigter Verkaufsauftrag mit diesem Produkt;
  3. ein Projekt oder eine Aufgabe, die an der Auftragsposition hängt;
  4. Zeitbuchungen darauf, die automatisch die Auftragsposition erhalten;
  5. eine Rechnung für die gelieferten, noch nicht abgerechneten Stunden.

Das steckt im Modul sale_timesheet, das Odoo installiert, sobald Sie Verkauf und Zeiterfassung zusammen nutzen. Es ist Community: Wir haben es im Quellcode von Odoo 18, 19 und 20 geprüft.

Beispiel: Ein IT-Beratungshaus führt bei einem Logistikkunden ein System ein, abgerechnet nach Aufwand. Das Angebot wird zum Auftrag, die Aufgaben landen in einem Projekt, und jeden Freitag sieht die Projektleitung im Auftrag, wie viele Stunden schon geliefert sind.

So richten Sie es ein

  1. Eine Dienstleistung anlegen, die nach Stunden abrechnet

    Im Verkauf: ein Produkt vom Typ Dienstleistung, mit der Abrechnungsregel Basierend auf Zeiterfassungen (Based on Timesheets) und unter Bei Auftrag erstellen eine Aufgabe oder ein Projekt. Tragen Sie Ihren Stundensatz ein.

  2. Einen Verkaufsauftrag bestätigen

    Erstellen Sie ein Angebot mit diesem Produkt und den geschätzten Stunden und bestätigen Sie es. Odoo legt das Projekt oder die Aufgabe an und verknüpft sie mit der Auftragsposition.

  3. Das Team bucht Stunden auf diese Aufgabe

    Jede Zeitbuchung auf dem Projekt oder der Aufgabe erhält die Auftragsposition. Die Spalte Geliefert im Auftrag summiert die Stunden.

  4. Die Stunden prüfen

    Filtern Sie in der Zeiterfassung nach Projekt und Zeitraum und prüfen Sie, ob jede Zeile eine Auftragsposition hat. Zeilen ohne Position landen nicht auf der Rechnung.

  5. Die Rechnung erstellen

    Im Auftrag: Rechnung erstellen. Odoo übernimmt die gelieferten, noch nicht abgerechneten Stunden. Sobald die Rechnung gebucht ist, sind diese Zeilen gesperrt.

Drei Arten, ein Projekt zu bepreisen

Bei einem abrechenbaren Projekt wählen Sie in Odoo, wie Stunden einen Preis bekommen (Feld Preiskalkulation):

ArtWann
AufgabensatzJede Aufgabe hängt an einer eigenen Auftragsposition. Praktisch, wenn Sie verschiedene Leistungen an verschiedene Kunden verkaufen.
ProjektsatzEin Stundensatz für das ganze Projekt, egal wer die Arbeit macht.
MitarbeiterstundensatzDieselbe Arbeit zu unterschiedlichen Sätzen je Person, etwa Junior und Senior. Sie ordnen je Mitarbeiter eine Auftragsposition zu.

Auf jeder Zeitbuchung setzt Odoo zudem eine Abrechnungsart: nach Zeiterfassung, zum Festpreis, nach Meilensteinen, manuell oder nicht abrechenbar. In den Berichten der Zeiterfassung gruppieren Sie danach und sehen, welcher Anteil der Stunden wirklich Umsatz wird.

Wo es in der Praxis hakt

Im Odoo-Forum kehren immer dieselben Fragen wieder. Die meisten haben dieselbe Ursache: eine Zeitbuchung ohne Auftragsposition.

  • Das Projekt wurde von Hand angelegt. Dann hat es keine Auftragsposition, und die Stunden kommen nie auf die Rechnung. Verknüpfen Sie Projekt oder Aufgabe nachträglich mit einer Position.
  • Die Abrechnungsregel wurde nachträglich geändert. Odoo wendet das nicht rückwirkend auf bestehende Zeilen an.
  • Jemand hat auf die falsche Aufgabe gebucht. Eine Aufgabe ohne Position oder eine interne Aufgabe zählt nicht.
  • Der Auftrag ist nicht bestätigt. Erst nach der Bestätigung legt Odoo Projekt und Verknüpfung an.
Tipp: Blenden Sie in der Liste der Zeiterfassung die Spalte Auftragsposition ein. Eine leere Zelle ist eine Stunde, die Sie nicht abrechnen.

Abgerechnete Stunden sind gesperrt

Steht eine Zeitbuchung auf einer gebuchten Rechnung, lässt Odoo sie nicht mehr löschen („You cannot remove a timesheet that has already been invoiced"), auch nicht für Administratoren. Muss doch etwas geändert werden, stornieren Sie die Rechnung oder erstellen eine Gutschrift. In Odoo 18 und 19 heißt das Rechnungsfeld timesheet_invoice_id, in 20 reinvoice_move_id; das Verhalten ist gleich.

Was TimeViking ergänzt

TimeViking erstellt keine Rechnungen: Das bleibt Odoo. Es sorgt aber dafür, dass die Stunden rechtzeitig und an der richtigen Stelle in Odoo stehen.

  • Stunden auf der richtigen Aufgabe. Ihr Team wählt Projekt und Aufgabe aus Odoo, auch auf dem Handy. Odoo ordnet die Zeile selbst der Auftragsposition der Aufgabe zu, wie bei einer Buchung direkt in Odoo.
  • Vor der Rechnung: Freigabe pro Woche. Die Projektleitung sieht je Person die eingereichten Stunden und den abrechenbaren Anteil und schickt eine Woche zurück, wenn etwas nicht stimmt. Siehe Stunden genehmigen in Odoo.
  • Abrechenbare Stunden und ihr Wert je Projekt, Kunde oder Person, mit Export nach Excel und CSV.
  • Abgerechnete Zeilen bleiben unangetastet. Steht eine Zeile auf einer Rechnung, ändert oder löscht die App sie nicht und sagt, warum.

Mehr zur Anbindung lesen Sie auf der Seite Odoo-Anbindung, was es kostet, unter Preise.

Testen Sie TimeViking mit Ihrem eigenen Odoo.

Kostenlos für Teams bis 3 Nutzer, für immer. Größere Teams testen 30 Tage kostenlos, ohne Kreditkarte.

Häufige Fragen

Kann ich in Odoo Community Stunden abrechnen?

Ja. Das Modul sale_timesheet (Verkauf und Zeiterfassung zusammen) ist Community, LGPL-3, in Odoo 18, 19 und 20. Enterprise brauchen Sie dafür nicht.

Warum stimmen die gelieferten Stunden im Auftrag nicht mit der Zeiterfassung überein?

Meist hängen einige Zeitbuchungen nicht an der Auftragsposition: Das Projekt wurde von Hand angelegt, oder die Aufgabe hat keine Position. Blenden Sie in der Liste der Zeiterfassung die Spalte Auftragsposition ein und filtern Sie auf leere Werte. Auch eine nachträglich geänderte Abrechnungsregel wendet Odoo nicht rückwirkend an.

Kann ich eine abgerechnete Zeitbuchung noch ändern?

Nicht mehr, sobald die Rechnung gebucht ist: Dann verweigert Odoo auch das Löschen. Stornieren Sie die Rechnung oder erstellen Sie eine Gutschrift. TimeViking erzwingt bei solchen Zeilen nichts und zeigt, warum sie gesperrt sind.

Stellt TimeViking selbst Rechnungen?

Nein. Rechnungen erstellen Sie in Odoo. TimeViking trägt die Stunden in Odoo ein, auf das richtige Projekt und die richtige Aufgabe, damit Odoo sie dem Auftrag zuordnen kann. In der App sehen Sie je Projekt die abrechenbaren Stunden und ihren Wert und exportieren sie nach Excel.

Weitere Ratgeber