Rechnungen für Kosten und Erlöse, Freelancer und Lieferanten im Projekt

Ein wichtiger Bestandteil im Projektmanagement ist das Management von Kosten und Erlösen. Kosten entstehen im Projektgeschäft meist durch "Fremdleistungen" im Einsatz von Freelancern, den Kauf von "Proprietärem Code" als Teilmodule der Software. Dazu kommen Reisekosten und evtl Verkaufsprovisionen für vermittelte Aufträge. All diese Leistungen werden per Lieferantenrechnungen abgerechnet. Es entstehen jedoch auch Kosten durch Umlagen (Pauschale Kosten wie Miete, Strom etc.) sowie durch Mitarbeiter, die im Projekt als Festangestellte arbeiten. Diese Kosten werden nicht per Rechnung abgerechnet. All diese Daten sind nötig um realistische Projektreports zu bekommen.
Wie diese Herausforderung in ERPAL gelöst wird (Umsetzung ist bereits abgeschlossen), möchte ich in diesem Blogeintrag beschreiben.

Zunächst die Features auf einen Blick, danach gehen wir ins Detail:

- Tasks sind abrechenbar pro Stunde oder als Festpreis
- ein "Festpreis-Lieferant" pro Task oder pro Projekt
- Unterstützung verschiedener Währungen
- Unterstützung verschiedener Mehrwersteuer-Sätze
- Profile mit Kosten für Freelancer und angestellte Mitarbeiter Zeitraumbezogen und mit Unterscheidung für interne und externe Projekte
- Kontrolle über anfallende Kosten durch Lieferanten
- Unterstützung für das Erfassen von Reisekosten
- Event-gesteuertes auslösen von Kosten

Zunächst gibt es User mit einem Profil. In diesem Profil kann man für die Projektabwicklung und Kostenverfolgung relevante Vertragsdaten hinterlegen. Diese haben ein Datum "gültig ab", ein Feld für "Project Tags" und Felder für Kosten, sowie für einen Mitarbeiter-Typ (Freelancer oder fester Mitarbeiter). Dann wird je nach Mitarbeiter-Typ unterschieden welche folgenden Felder noch mit Daten zu füllen sind. Freelancer haben einen MwSt. Satz und eine Währung in der sie abrechnen, Festangestellte haben neben einem Kostensatz pro Stunde zusätzlich Urlaubstage pro Jahr und ein "Soll" an Arbeitsstunden pro Woche (später für die Mitarbeiterverwaltung relevant).
Dann gibt es Tasks und für jeden Task Abrechnungsinformationen. Diese Abrechnungsinformationen beinhalten folgende Felder:

- Preismodus (nicht abrechenbar, pro Stunde, Festpreis, Budget)
- Mehrwertsteuersatz (kann auch im Projekt als Default hinterlegt werden)
- Währung (ebenfalls im Projekt als Default hinterlegbar)
- Preis (wenn Preismodus nicht "nicht abrechenbar" ist)

Zu diesen VK (Verkaufs-) Informationen kann man EK (Einkaufs-) Informationen hinterlegen. Diese EK Informationen bestehen aus den Feldern:

- Lieferant (ein Kontakt aus dem CRM der den Task zum Festpreis bearbeitet)
- Mehrwertsteuersatz
- Währung
- Festpreis nach Abnahme.

Diese EK Informationen sind nur relevant, wenn man einen Task zum Festpreis einkaufen will. Wird der Task abgenommen und auf "completed" gesetzt, entstehen Kosten für den Einkauf (wenn EK Daten eingetragen sind) und Erlöse für den Verkauf (wenn VK Daten eingetragen sind).
Durch diese VK Informationen lassen sich alle möglichen Kosten abbilden, die im Projekt anfallen und diese Kosten lassen sich wiederum mit Tags kategorisieren.

Bucht nun ein Freelancer seine Zeit auf einen Task, sind dafür die EK und VK Informationen uninteressant (es sei denn es wurde mit Ihm einen Vereinbarung getroffen, dass ein Task zum Festpreis umgesetzt werden soll, was parallel auch möglich ist). Wird der Zeiteintrag gebucht, werden die Vertragsdaten aus dem Profil des Freelancers geladen. Dort wird ein aktuell gültiger Stundensatz ermittelt. Wichtig ist, dass der Zeitraum "Gültig ab" kleiner als das aktuelle Datum ist. Alternativ kann noch anhand der Project-Tags ermittelt werden, ob für dieses Projekt ein spezieller Stundensatz vereinbart wurde (ein Tag könnte z.B. "intern" oder "extern" sein, wofür evtl. unterschiedliche Stundensätze vereinbart wurden). Wurde ein Stundensatz ermittelt, wird dieser mit dem wert des Zeiteintrags multipliziert und ein Kostendatensatz (billable Entity) angelegt.

Kosten und Erlöse werden als "billable Entities" abgebildet, die automatisch bestimmten Regeln folgend erstellt werden.
Diese "billables" kann man dann nach Lieferant filtern, nach Kunden, pro Projekt, pro Zeitraum etc. Man kann diese sogar nach Bestellnummern filtern, die im Vorgang des CRM, der zu dem Projekt gehört, in der Beauftragung hinterlegt wurden.

Natürlich werden die billable Entities zu einem Task oder einem Zeiteintrag (das Subject zum billable Entity) nochmal geändert, wenn sich dieses Subject ändert. Voraussetzung dafür ist, dass der billable Entity noch nicht in einer Rechnung abgerechnet wurde. Was bereits in eine Rechnung verpackt wurde, darf nicht mehr geändert werden.

Aus billable Entities, die als Erlös entstanden sind kann man dann per Bulk-Operation eine Rechnung an einen Kunden erstellen. Diese wird dann über ein Template als PDF generiert und an den Rechnungs-Node angehängt. Dazu jedoch in einem weiteren Blogeintrag mehr.

All diese Kosten und Erlöse fließen dann später in die Projektreports ein und geben einen realistischen Überblick über den finanziellen Stand im Projekt.

Neuen Kommentar schreiben

Filtered HTML

  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.

Plain text

  • Keine HTML-Tags erlaubt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.