Finanzen
Die Budgetverwaltung in InLoox umfasst mehrere zusammenhängende Entitäten: Budget, LineItem (Positionen), BudgetGroup, BudgetState und BudgetPreset. Über die OData-API können Sie die gesamte Finanzstruktur eines Projekts programmatisch verwalten.
Entitätsübersicht
Projektentitäten
Diese Entitäten sind immer einem Projekt zugeordnet. Verwenden Sie ProjectId beim Filtern, um eine bestimmten Untermenge abzurufen.
| Entität | Beschreibung |
|---|---|
| Budget | Das übergeordnete Budgetobjekt eines Projekts |
| LineItem | Einzelne Budgetpositionen (Einnahmen/Ausgaben) |
| BudgetGroup | Gruppierung von Positionen |
| BudgetState | Statusdefinitionen für Budgets |
Stammdaten-Entitäten
Diese Entitäten werden auf Kontoebene in den Einstellungen konfiguriert und gelten für alle Projekte.
| Entität | Beschreibung |
|---|---|
| BudgetPreset | Budgetvorlagen |
| BudgetPresetLineItem | Positionen innerhalb einer Budgetvorlage |
| LineItemTemplate | Vorlagen für Budgetpositionen |
| LineItemTemplateGroup | Zuordnung von Vorlagen zu Gruppen |
| LineItemTemplatePrice | Preisdefinitionen für Positionsvorlagen |
Budget (Plan)
Ein Budget stellt einen Finanzplan dar, der einem Projekt zugeordnet ist. Jedes Budget kann Einzelposten (Positionen) enthalten, mit Dokumenten verknüpft werden und einen definierten Status haben.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
BudgetId | Guid (UUID) | Eindeutiger Bezeichner des Budgets (Primärschlüssel). |
ProjectId | Guid | Zugehöriges Projekt. |
BudgetType | int32 | Budgettyp: 1 = Ist-Betriebskosten (OpEx) aus Zeiterfassung, 2 = Ist-Investitionskosten (CapEx), 3 = Plan-Einnahmen, 4 = Ist-Einnahmen, 5 = Plan-Investitionskosten (CapEx), 6 = Plan-Betriebskosten (OpEx) aus Ressourcenplanung, 7 = Plan-Betriebskosten (OpEx), 8 = Ist-Betriebskosten (OpEx). |
BudgetStateId | Guid | Aktueller Status des Budgets. |
ConsecutiveNumber | int32 | Fortlaufende Nummer. |
Name | string? | Name des Budgets. |
BudgetDate | DateTimeOffset | Datum des Budgets. |
BudgetContactId | Guid? | Zuständiger Kontakt. |
BudgetCreatedDate | DateTimeOffset | Erstellungsdatum. |
BudgetChangedDate | DateTimeOffset? | Datum der letzten Änderung. |
AmountAssets | double | Gesamtbetrag. |
Endpunkte
Alle Budgets aller Projekte abrufen
/odata/BudgetUnterstützt OData-Abfrageparameter.
Ein einzelnes Budget abrufen
/odata/Budget({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Neues Budget erstellen
/odata/Budget| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiBudget> | ✅ | JSON-Objekt mit den Budgeteigenschaften. |
Budget aktualisieren
/odata/Budget({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Body | Delta<ApiBudget> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Budget löschen
/odata/Budget({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Das Löschen eines Budgets entfernt auch alle zugehörigen Positionen. Diese Aktion kann nicht rückgängig gemacht werden.
Rechnungserstellung
Anzahl der noch nicht abgerechneten Positionen abrufen
/odata/Budget({key})/GetUnbilledLineitemsCount()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Eine Rechnung für alle Positionen des Budgets erstellen
/odata/Budget({key})/CreateInvoiceForAllLineitems()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Eine Rechnung für ausgewählte Positionen erstellen
/odata/Budget({key})/CreateInvoiceForSelectedLineitems| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: lineItemIds (Guid[], erforderlich) — IDs der Positionen, die in die Rechnung aufgenommen werden sollen. |
Dokument mit Budget verknüpfen
Ein Dokument mit dem Budget verknüpfen
/odata/Budget({key})/AddDocumentToBudget| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: documentIds (Guid[], erforderlich) — IDs der Dokumente, die mit dem Budget verknüpft werden sollen. |
Dokument vom Budget entfernen
Ein Dokument vom Budget entfernen
/odata/Budget({key})/RemoveDocumentFromBudget| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: documentId (Guid, erforderlich) — ID des Dokuments, das vom Budget entfernt werden soll. |
Position aus Vorlage hinzufügen
Eine Position aus einer Vorlage zum Budget hinzufügen
/odata/Budget({key})/AddLineItemFromTemplate| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: lineItemTemplateId (Guid, erforderlich) — ID der Positionsvorlage, aus der erstellt werden soll. lineItemTemplatePriceId (Guid?, optional) — ID eines bestimmten Preiseintrags der Vorlage. Kann weggelassen oder auf null gesetzt werden, wenn kein bestimmter Preis gewünscht ist. lineItemTemplateGroupId (Guid, erforderlich) — ID der Positionsvorlagengruppe. |
Verknüpfung hinzufügen
Eine Verknüpfung zum Budget hinzufügen
/odata/Budget({key})/AddRelation| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: itemId (Guid, erforderlich) — ID des Elements, das als Verknüpfung zum Budget hinzugefügt werden soll. |
Verknüpfung entfernen
Eine Verknüpfung vom Budget entfernen
/odata/Budget({key})/RemoveRelation| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: itemId (Guid, erforderlich) — ID des verknüpften Elements, das vom Budget entfernt werden soll. |
LineItem (Positionen)
Eine Position repräsentiert einen einzelnen Finanzeintrag innerhalb eines Budgets. Positionen können gruppiert, als abrechenbar markiert und mit Dokumenten verknüpft werden.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
LineItemId | Guid | Primärschlüssel. Eindeutiger Bezeichner der Position. |
BudgetId | Guid | Fremdschlüssel zum übergeordneten Budget. |
GroupId | Guid? | Fremdschlüssel zur Budgetgruppe, der diese Position zugeordnet ist. |
PerformedByContactId | Guid? | Kontakt, der die Leistung erbracht hat. |
OrdinalPosition | int? | Sortierreihenfolge innerhalb des Budgets. |
ConsecutiveNumber | int? | Automatisch vergebene fortlaufende Nummer. |
ShortDescription | string | Kurzbeschreibung der Position. |
Quantity | decimal? | Menge der Einheiten. |
Unit | string | Maßeinheit (z. B. Stunden, Stück). |
PricePerUnit | decimal? | Primärer Preis pro Einheit. |
SecondaryPricePerUnit | decimal? | Sekundärer Preis pro Einheit (z. B. Einkaufspreis). |
IsCustomPricePerUnit | bool | Gibt an, ob der Preis manuell überschrieben wurde. |
IsBilled | bool | Ob die Position abgerechnet wurde. |
IsBillable | bool | Ob die Position abrechenbar ist. |
CreatedByContactId | Guid? | Kontakt, der die Position erstellt hat. |
ChangedByContactId | Guid? | Kontakt, der die Position zuletzt geändert hat. |
CreatedDate | DateTimeOffset? | Zeitstempel der Erstellung der Position. |
ChangedDate | DateTimeOffset? | Zeitstempel der letzten Änderung der Position. |
ProvisionDate | DateTimeOffset? | Datum der Leistungserbringung. |
DescriptionText | string | Beschreibung der Position als Klartext. |
DescriptionHTML | string | Beschreibung der Position als HTML. |
ProjectId | Guid? | Fremdschlüssel zum zugehörigen Projekt. |
LineItemType | int | Typ der Position: 0 = Manuelle Position, 1 = Automatische Position aus einem Zeiteintrag, 2 = Automatische Position aus einem Aufgabenelement. |
Endpunkte
Positionen auflisten
Gibt alle Positionen aller Budgets aller Projeke zurück. Unterstützt OData-Abfrageoptionen
/odata/LineItemPosition abrufen
Gibt eine einzelne Position anhand ihrer ID zurück
/odata/LineItem({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemId. |
Position erstellen
Erstellt eine neue Position
/odata/LineItem| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiLineItem> | ✅ | JSON-Objekt mit den Positionseigenschaften. |
Position aktualisieren
Aktualisiert eine bestehende Position
/odata/LineItem({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemId. |
Body | Delta<ApiLineItem> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Position löschen
Löscht eine Position
/odata/LineItem({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemId. |
Das Löschen einer Position kann nicht rückgängig gemacht werden.
Aktionen
Position kopieren
Erstellt ein Duplikat der angegebenen Position
/odata/LineItem({key})/Copy| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die zu kopierende LineItemId. |
Body | object | — | JSON-Objekt mit folgenden Feldern: budgetId (Guid?, optional) — Ziel-Budget-ID, in das kopiert werden soll. Wenn nicht angegeben, wird innerhalb desselben Budgets kopiert. |
Dokument zur Position hinzufügen
Verknüpft ein Dokument mit der Position
/odata/LineItem({key})/AddDocumentToLineItem| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: documentIds (Guid[], erforderlich) — IDs der Dokumente, die mit der Position verknüpft werden sollen. |
Dokument von Position entfernen
Entfernt eine Dokumentverknüpfung von der Position
/odata/LineItem({key})/RemoveDocumentFromLineItem| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: documentId (Guid, erforderlich) — ID des Dokuments, das von der Position entfernt werden soll. |
Verknüpfung hinzufügen
Erstellt eine Verknüpfung zwischen der Position und einer anderen Entität
/odata/LineItem({key})/AddRelation| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: itemId (Guid, erforderlich) — ID des Elements, das als Verknüpfung zur Position hinzugefügt werden soll. |
Verknüpfung entfernen
Entfernt eine Verknüpfung von der Position
/odata/LineItem({key})/RemoveRelation| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: itemId (Guid, erforderlich) — ID des verknüpften Elements, das von der Position entfernt werden soll. |
BudgetGroup (Gruppen)
Gruppen organisieren die Positionen innerhalb eines Budgets in logische Kategorien, z. B. Kostenstellen.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
BudgetGroupId | Guid | Primärschlüssel. Eindeutiger Bezeichner der Gruppe. |
Name | string | Anzeigename der Gruppe. |
OrdinalPosition | int | Sortierposition der Gruppe innerhalb des Budgets. |
PurchasePrice | decimal? | Aggregierter Einkaufspreis der Gruppe. |
DispositionPrice | decimal? | Aggregierter Verkaufspreis der Gruppe. |
Visible | bool | Gibt an, ob die Gruppe in der Benutzeroberfläche sichtbar ist. |
Endpunkte
Alle Budgetgruppen abrufen
Gibt alle Budgetgruppen zurück
/odata/BudgetGroupUnterstützt OData-Abfrageoptionen.
Einzelne Budgetgruppe abrufen
Gibt eine einzelne Budgetgruppe anhand ihrer ID zurück
/odata/BudgetGroup({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetGroupId der abzurufenden Gruppe. |
Budgetgruppe erstellen
Erstellt eine neue Budgetgruppe
/odata/BudgetGroup| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiBudgetGroup> | ✅ | JSON-Objekt mit den Gruppeneigenschaften. |
Budgetgruppe aktualisieren
Aktualisiert eine bestehende Budgetgruppe
/odata/BudgetGroup({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetGroupId der zu aktualisierenden Gruppe. |
Body | Delta<ApiBudgetGroup> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Budgetgruppe löschen
Löscht eine Budgetgruppe
/odata/BudgetGroup({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetGroupId der zu löschenden Gruppe. |
Das Löschen einer Budgetgruppe wirkt sich auf alle zugeordneten Budgetpositionen, Aufgaben und Zeiteinträge in allen Projekten aus. Es wird daher empfohlen, Gruppen nicht zu löschen, sondern sie auf unsichtbar zu setzen (Visible: false) und als Alteinträge beizubehalten.
BudgetState
Budgetstatus definieren die Workflow-Phasen eines Budgets (z. B. Entwurf, Genehmigt, Abgeschlossen).
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
BudgetStateId | Guid | Primärschlüssel. Eindeutiger Bezeichner des Status. |
Name | string | Anzeigename des Status. |
IsHidden | bool | Gibt an, ob der Status in der Benutzeroberfläche ausgeblendet ist. |
Endpunkte
Alle Budgetstatus abrufen
Gibt alle Budgetstatus zurück
/odata/BudgetStateUnterstützt OData-Abfrageoptionen.
Budgetstatus erstellen
Erstellt einen neuen Budgetstatus
/odata/BudgetState| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiBudgetState> | ✅ | JSON-Objekt mit den Statuseigenschaften. |
Einzelnen Budgetstatus abrufen
Gibt einen einzelnen Budgetstatus anhand seiner ID zurück
/odata/BudgetState({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetStateId des abzurufenden Status. |
Budgetstatus aktualisieren
Aktualisiert einen bestehenden Budgetstatus
/odata/BudgetState({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetStateId des zu aktualisierenden Status. |
Body | Delta<ApiBudgetState> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Budgetstatus löschen
Löscht einen Budgetstatus
/odata/BudgetState({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die BudgetStateId des zu löschenden Status. |
Das Löschen eines Budgetstatus wirkt sich auf alle Budgets in allen Projekten aus, die diesen Status verwenden. Es wird daher empfohlen, einen Status nicht zu löschen, sondern ihn auf ausgeblendet zu setzen (IsHidden: true) und als Alteintrag beizubehalten.
BudgetPreset (Budgetvorlagen)
Budgetvorlagen speichern wiederverwendbare Budgetkonfigurationen, die auf Projekte angewendet werden können. Vorlagen können in ein Projekt geladen werden, um schnell eine vollständige Budgetstruktur einzurichten.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
PresetId | Guid | Primärschlüssel. Eindeutiger Bezeichner der Budgetvorlage. |
PresetType | int | Typ der Vorlage. |
Name | string | Anzeigename der Vorlage. |
PresetDate | DateTimeOffset | Datum der Vorlage. |
AmountAssets | decimal? | Gesamtbetrag. |
IsGlobal | bool | Gibt an, ob die Vorlage global verfügbar ist. |
Endpunkte
Alle Budgetvorlagen abrufen
Gibt alle Budgetvorlagen zurück
/odata/BudgetPresetUnterstützt OData-Abfrageoptionen.
Einzelne Budgetvorlage abrufen
Gibt eine einzelne Budgetvorlage anhand ihrer ID zurück
/odata/BudgetPreset({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PresetId der abzurufenden Vorlage. |
Budgetvorlage erstellen
Erstellt eine neue Budgetvorlage
/odata/BudgetPreset| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiBudgetPreset> | ✅ | JSON-Objekt mit den Vorlageneigenschaften. |
Budgetvorlage aktualisieren
Aktualisiert eine bestehende Budgetvorlage
/odata/BudgetPreset({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PresetId der zu aktualisierenden Vorlage. |
Budgetvorlage löschen
Löscht eine Budgetvorlage
/odata/BudgetPreset({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PresetId der zu löschenden Vorlage. |
Das Löschen einer Budgetvorlage entfernt auch alle zugehörigen Vorlagenpositionen (BudgetPresetLineItem). Diese Aktion kann nicht rückgängig gemacht werden.
Aktionen
Vorlage in Projekt laden
Lädt eine Budgetvorlage und wendet sie auf ein Projekt an
/odata/BudgetPreset({key})/LoadTemplateForProject| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PresetId der zu ladenden Vorlage. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: projectId (Guid, erforderlich) — ID des Projekts, auf das die Vorlage angewendet werden soll. |
Budget als Vorlage speichern
Speichert die aktuelle Budgetkonfiguration als wiederverwendbare Vorlage
/odata/BudgetPreset/SaveTemplateForBudget| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: budgetId (Guid, erforderlich) — ID des bestehenden Budgets, das als Vorlagentemplate gespeichert werden soll. name (string, erforderlich) — Name für die neue Budgetvorlage. |
BudgetPresetLineItem (Vorlagenpositionen)
Vorlagenpositionen definieren die einzelnen Budgetpositionen innerhalb einer Budgetvorlage. Jede Position enthält Standardwerte für Menge, Einheit, Preis und Abrechnungsstatus, die beim Laden der Vorlage in ein Projekt übernommen werden.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
PresetLineItemId | Guid (UUID) | Eindeutiger Bezeichner der Vorlagenposition. |
PresetId | Guid | Zugehörige Budgetvorlage. |
GroupId | Guid | Zugehörige Budgetgruppe. |
PerformedByContactId | Guid? | Kontakt, der die Leistung erbringt. |
OrdinalPosition | int32 | Sortierposition innerhalb der Vorlage. |
ConsecutiveNumber | int32 | Automatisch vergebene laufende Nummer. |
ShortDescription | string | Kurzbeschreibung der Position. |
Quantity | double | Standardmenge. |
Unit | string | Mengeneinheit (z. B. Stunden, Stück). |
PricePerUnit | double | Primärer Preis pro Einheit. |
SecondaryPricePerUnit | double | Sekundärer Preis pro Einheit (z. B. Einkaufspreis). |
IsBilled | bool | Ob die Position als abgerechnet markiert ist. |
IsBillable | bool | Ob die Position abrechnungsfähig ist. |
ProvisionDate | DateTimeOffset? | Leistungsdatum. |
DescriptionText | string | Beschreibung als Klartext. |
DescriptionHTML | string | Beschreibung als HTML. |
Endpunkte
Vorlagenpositionen auflisten
Alle Vorlagenpositionen abrufen
/odata/BudgetPresetLineItemUnterstützt OData-Abfrageoptionen.
Vorlagenposition abrufen
Eine einzelne Vorlagenposition anhand ihrer ID abrufen
/odata/BudgetPresetLineItem({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PresetLineItemId der abzurufenden Position. |
Vorlagenposition erstellen
Neue Vorlagenposition erstellen
/odata/BudgetPresetLineItem| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiBudgetPresetLineItem> | ✅ | JSON-Objekt mit den Positionseigenschaften. |
Vorlagenposition aktualisieren
Eine vorhandene Vorlagenposition aktualisieren
/odata/BudgetPresetLineItem({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PresetLineItemId der zu aktualisierenden Position. |
Vorlagenposition löschen
Eine Vorlagenposition löschen
/odata/BudgetPresetLineItem({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PresetLineItemId der zu löschenden Position. |
Das Löschen einer Vorlagenposition kann nicht rückgängig gemacht werden.
LineItemTemplate (Positionsvorlagen)
Positionsvorlagen stellen wiederverwendbare Positionskonfigurationen bereit, die zu Budgets hinzugefügt werden können. Vorlagen können in Gruppen organisiert sein und mehrere Preiseinträge besitzen.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
LineItemTemplateId | Guid (UUID) | Eindeutiger Bezeichner der Positionsvorlage. |
Name | string? | Name der Vorlage. |
ShortDescription | string? | Kurzbeschreibung. |
LongDescription | string? | Ausführliche Beschreibung. |
Quantity | double | Standardmenge. |
Endpunkte
Positionsvorlagen auflisten
Alle Positionsvorlagen abrufen. Unterstützt OData-Abfrageoptionen
/odata/LineItemTemplatePositionsvorlage erstellen
Neue Positionsvorlage erstellen
/odata/LineItemTemplate| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiLineItemTemplate> | ✅ | JSON-Objekt mit den Vorlageneigenschaften. |
Positionsvorlage abrufen
Eine einzelne Positionsvorlage anhand ihrer ID abrufen
/odata/LineItemTemplate({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemTemplateId der abzurufenden Vorlage. |
Positionsvorlage aktualisieren
Eine vorhandene Positionsvorlage aktualisieren
/odata/LineItemTemplate({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemTemplateId der zu aktualisierenden Vorlage. |
Body | Delta<ApiLineItemTemplate> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Positionsvorlage löschen
Eine Positionsvorlage löschen
/odata/LineItemTemplate({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemTemplateId der zu löschenden Vorlage. |
Das Löschen einer Positionsvorlage kann nicht rückgängig gemacht werden.
Aktionen
Gruppe hinzufügen
Weist die Vorlage einer Budgetgruppe zu
/odata/LineItemTemplate({key})/AddGroup| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemTemplateId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: groupId (Guid, erforderlich) — ID der Budgetgruppe, der die Vorlage zugewiesen werden soll. |
Gruppe entfernen
Entfernt die Vorlage aus einer Budgetgruppe
/odata/LineItemTemplate({key})/RemoveGroup| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemTemplateId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: groupId (Guid, erforderlich) — ID der Budgetgruppe, aus der die Vorlage entfernt werden soll. |
LineItemTemplateGroup (Vorlagengruppen)
Vorlagengruppen stellen die Zuordnung zwischen Positionsvorlagen und Budgetgruppen dar. Diese Entität ist schreibgeschützt.
Verwenden Sie die Aktionen AddGroup und RemoveGroup der LineItemTemplate-Entität, um Gruppenzuordnungen zu verwalten.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
LineItemTemplateGroupId | Guid | Eindeutiger Bezeichner der Vorlagen-Gruppen-Zuordnung. |
LineItemTemplateId | Guid | Zugehörige Positionsvorlage. |
GroupId | Guid | Zugehörige Budgetgruppe. |
Endpunkte
Vorlagen-Gruppen-Zuordnungen auflisten
Alle Vorlagen-Gruppen-Zuordnungen abrufen
/odata/LineItemTemplateGroupLineItemTemplatePrice (Vorlagenpreise)
Vorlagenpreise definieren einheitenbasierte Preise für eine Positionsvorlage. Jeder Preiseintrag enthält eine Einheit mit dem jeweiligen Einkaufs- und Verkaufspreis pro Einheit. Vorlagen können mehrere Preiseinträge für unterschiedliche Einheiten haben.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
LineItemTemplatePriceId | Guid | Eindeutiger Bezeichner des Preiseintrags. |
LineItemTemplateId | Guid | Zugehörige Positionsvorlage. |
Unit | string | Mengeneinheit (z. B. Stunden, Stück). |
PurchasePricePerUnit | decimal? | Einkaufspreis pro Einheit. |
DispositionPricePerUnit | decimal? | Verkaufspreis pro Einheit. |
Endpunkte
Vorlagenpreise auflisten
Alle Vorlagenpreise abrufen
/odata/LineItemTemplatePriceUnterstützt OData-Abfrageoptionen.
Vorlagenpreis abrufen
Einen einzelnen Vorlagenpreis anhand seiner ID abrufen
/odata/LineItemTemplatePrice({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemTemplatePriceId des abzurufenden Preises. |
Vorlagenpreis erstellen
Neuen Vorlagenpreis erstellen
/odata/LineItemTemplatePrice| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiLineItemTemplatePrice> | ✅ | JSON-Objekt mit den Preiseigenschaften. |
Vorlagenpreis aktualisieren
Einen vorhandenen Vorlagenpreis aktualisieren
/odata/LineItemTemplatePrice({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemTemplatePriceId des zu aktualisierenden Preises. |
Body | Delta<ApiLineItemTemplatePrice> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Vorlagenpreis löschen
Einen Vorlagenpreis löschen
/odata/LineItemTemplatePrice({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die LineItemTemplatePriceId des zu löschenden Preises. |
Das Löschen eines Vorlagenpreises kann nicht rückgängig gemacht werden.
DynamicBudget & DynamicLineItem
Für Budgets und Positionen stehen jeweils abgeflachte, schreibgeschützte Ansichten zur Verfügung, die Daten aus mehreren Entitäten zusammenführen.
DynamicBudget
Abgeflachte Budgetliste mit Projekt-, Status- und Berechtigungsdaten
/odata/DynamicBudgetEin einzelnes Budget mit benutzerdefinierten Feldspalten abrufen
/odata/DynamicBudget({key})DynamicLineItem
Abgeflachte Positionsliste mit Budget-, Projekt- und Gruppendaten
/odata/DynamicLineItemEine einzelne Position mit benutzerdefinierten Feldspalten abrufen
/odata/DynamicLineItem({key})DynamicBudget und DynamicLineItem unterstützen ausschließlich GET-Anfragen. Zum Erstellen oder Bearbeiten verwenden Sie die regulären Endpunkte.
OData-Abfragebeispiele
Alle Budgets eines Projekts
GET /odata/Budget?$filter=ProjectId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
Positionen eines Budgets abrufen
GET /odata/LineItem?$filter=BudgetId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
Nur abrechenbare, nicht abgerechnete Positionen
GET /odata/LineItem?$filter=IsBillable eq true and IsBilled eq false
Sichtbare Budgetgruppen
GET /odata/BudgetGroup?$filter=Visible eq true&$orderby=OrdinalPosition
Aktive Budgetstatus
GET /odata/BudgetState?$filter=IsHidden eq false
Globale Budgetvorlagen
GET /odata/BudgetPreset?$filter=IsGlobal eq true&$orderby=Name
Vorlagenpositionen nach Vorlage
GET /odata/BudgetPresetLineItem?$filter=PresetId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'&$orderby=OrdinalPosition
Positionsvorlagen
GET /odata/LineItemTemplate?$orderby=Name
Vorlagenpreise nach Vorlage
GET /odata/LineItemTemplatePrice?$filter=LineItemTemplateId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
Budget erstellen
POST /odata/Budget
Content-Type: application/json
{
"ProjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Name": "Q1-Budget",
"BudgetType": 1,
"BudgetDate": "2024-01-01T00:00:00Z"
}
Position erstellen
POST /odata/LineItem
Content-Type: application/json
{
"BudgetId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"GroupId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ShortDescription": "Beratungsstunden",
"Quantity": 8.0,
"Unit": "Stunden",
"PricePerUnit": 150.00,
"IsBillable": true,
"ProjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Budgetgruppe erstellen
POST /odata/BudgetGroup
Content-Type: application/json
{
"Name": "Externe Dienstleistungen",
"OrdinalPosition": 1,
"Visible": true
}
Budgetstatus erstellen
POST /odata/BudgetState
Content-Type: application/json
{
"Name": "Genehmigt",
"IsHidden": false
}
Budgetvorlage erstellen
POST /odata/BudgetPreset
Content-Type: application/json
{
"Name": "Standard-Projektbudget",
"PresetType": 1,
"IsGlobal": true
}
Vorlagenposition erstellen
POST /odata/BudgetPresetLineItem
Content-Type: application/json
{
"PresetId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ShortDescription": "Beratungsstunden",
"Quantity": 10,
"Unit": "Stunden",
"PricePerUnit": 150.00,
"IsBillable": true
}
Positionsvorlage erstellen
POST /odata/LineItemTemplate
Content-Type: application/json
{
"Name": "Senior-Berater",
"ShortDescription": "Beratungsleistungen",
"Quantity": 1
}
Vorlagenpreis erstellen
POST /odata/LineItemTemplatePrice
Content-Type: application/json
{
"LineItemTemplateId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Unit": "Stunden",
"PurchasePricePerUnit": 80.00,
"DispositionPricePerUnit": 150.00
}
Verwenden Sie CreateInvoiceForAllLineitems oder CreateInvoiceForSelectedLineitems, um aus Budgetpositionen direkt Rechnungen zu generieren. Prüfen Sie vorher mit GetUnbilledLineitemsCount, wie viele Positionen noch offen sind.