Zum Hauptinhalt springen

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

info

Diese Entitäten sind immer einem Projekt zugeordnet. Verwenden Sie ProjectId beim Filtern, um eine bestimmten Untermenge abzurufen.

EntitätBeschreibung
BudgetDas übergeordnete Budgetobjekt eines Projekts
LineItemEinzelne Budgetpositionen (Einnahmen/Ausgaben)
BudgetGroupGruppierung von Positionen
BudgetStateStatusdefinitionen für Budgets

Stammdaten-Entitäten

info

Diese Entitäten werden auf Kontoebene in den Einstellungen konfiguriert und gelten für alle Projekte.

EntitätBeschreibung
BudgetPresetBudgetvorlagen
BudgetPresetLineItemPositionen innerhalb einer Budgetvorlage
LineItemTemplateVorlagen für Budgetpositionen
LineItemTemplateGroupZuordnung von Vorlagen zu Gruppen
LineItemTemplatePricePreisdefinitionen 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

EigenschaftTypBeschreibung
BudgetIdGuid (UUID)Eindeutiger Bezeichner des Budgets (Primärschlüssel).
ProjectIdGuidZugehöriges Projekt.
BudgetTypeint32Budgettyp: 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).
BudgetStateIdGuidAktueller Status des Budgets.
ConsecutiveNumberint32Fortlaufende Nummer.
Namestring?Name des Budgets.
BudgetDateDateTimeOffsetDatum des Budgets.
BudgetContactIdGuid?Zuständiger Kontakt.
BudgetCreatedDateDateTimeOffsetErstellungsdatum.
BudgetChangedDateDateTimeOffset?Datum der letzten Änderung.
AmountAssetsdoubleGesamtbetrag.

Endpunkte

Alle Budgets aller Projekte abrufen

GET/odata/Budget

Unterstützt OData-Abfrageparameter.


Ein einzelnes Budget abrufen

GET/odata/Budget({key})
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.

Neues Budget erstellen

POST/odata/Budget
ParameterTypErforderlichBeschreibung
BodyDelta<ApiBudget>JSON-Objekt mit den Budgeteigenschaften.

Budget aktualisieren

PATCH/odata/Budget({key})
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.
BodyDelta<ApiBudget>JSON-Objekt mit den zu aktualisierenden Feldern.

Budget löschen

DELETE/odata/Budget({key})
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.
warnung

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

GET/odata/Budget({key})/GetUnbilledLineitemsCount()
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.

Eine Rechnung für alle Positionen des Budgets erstellen

GET/odata/Budget({key})/CreateInvoiceForAllLineitems()
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.

Eine Rechnung für ausgewählte Positionen erstellen

POST/odata/Budget({key})/CreateInvoiceForSelectedLineitems
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.
BodyobjectJSON-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

POST/odata/Budget({key})/AddDocumentToBudget
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.
BodyobjectJSON-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

POST/odata/Budget({key})/RemoveDocumentFromBudget
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.
BodyobjectJSON-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

POST/odata/Budget({key})/AddLineItemFromTemplate
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.
BodyobjectJSON-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

POST/odata/Budget({key})/AddRelation
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.
BodyobjectJSON-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

POST/odata/Budget({key})/RemoveRelation
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetId.
BodyobjectJSON-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

EigenschaftTypBeschreibung
LineItemIdGuidPrimärschlüssel. Eindeutiger Bezeichner der Position.
BudgetIdGuidFremdschlüssel zum übergeordneten Budget.
GroupIdGuid?Fremdschlüssel zur Budgetgruppe, der diese Position zugeordnet ist.
PerformedByContactIdGuid?Kontakt, der die Leistung erbracht hat.
OrdinalPositionint?Sortierreihenfolge innerhalb des Budgets.
ConsecutiveNumberint?Automatisch vergebene fortlaufende Nummer.
ShortDescriptionstringKurzbeschreibung der Position.
Quantitydecimal?Menge der Einheiten.
UnitstringMaßeinheit (z. B. Stunden, Stück).
PricePerUnitdecimal?Primärer Preis pro Einheit.
SecondaryPricePerUnitdecimal?Sekundärer Preis pro Einheit (z. B. Einkaufspreis).
IsCustomPricePerUnitboolGibt an, ob der Preis manuell überschrieben wurde.
IsBilledboolOb die Position abgerechnet wurde.
IsBillableboolOb die Position abrechenbar ist.
CreatedByContactIdGuid?Kontakt, der die Position erstellt hat.
ChangedByContactIdGuid?Kontakt, der die Position zuletzt geändert hat.
CreatedDateDateTimeOffset?Zeitstempel der Erstellung der Position.
ChangedDateDateTimeOffset?Zeitstempel der letzten Änderung der Position.
ProvisionDateDateTimeOffset?Datum der Leistungserbringung.
DescriptionTextstringBeschreibung der Position als Klartext.
DescriptionHTMLstringBeschreibung der Position als HTML.
ProjectIdGuid?Fremdschlüssel zum zugehörigen Projekt.
LineItemTypeintTyp 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

GET/odata/LineItem

Position abrufen

Gibt eine einzelne Position anhand ihrer ID zurück

GET/odata/LineItem({key})
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemId.

Position erstellen

Erstellt eine neue Position

POST/odata/LineItem
ParameterTypErforderlichBeschreibung
BodyDelta<ApiLineItem>JSON-Objekt mit den Positionseigenschaften.

Position aktualisieren

Aktualisiert eine bestehende Position

PATCH/odata/LineItem({key})
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemId.
BodyDelta<ApiLineItem>JSON-Objekt mit den zu aktualisierenden Feldern.

Position löschen

Löscht eine Position

DELETE/odata/LineItem({key})
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemId.
warnung

Das Löschen einer Position kann nicht rückgängig gemacht werden.

Aktionen

Position kopieren

Erstellt ein Duplikat der angegebenen Position

POST/odata/LineItem({key})/Copy
ParameterTypErforderlichBeschreibung
keyGuidDie zu kopierende LineItemId.
BodyobjectJSON-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

POST/odata/LineItem({key})/AddDocumentToLineItem
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemId.
BodyobjectJSON-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

POST/odata/LineItem({key})/RemoveDocumentFromLineItem
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemId.
BodyobjectJSON-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

POST/odata/LineItem({key})/AddRelation
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemId.
BodyobjectJSON-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

POST/odata/LineItem({key})/RemoveRelation
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemId.
BodyobjectJSON-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

EigenschaftTypBeschreibung
BudgetGroupIdGuidPrimärschlüssel. Eindeutiger Bezeichner der Gruppe.
NamestringAnzeigename der Gruppe.
OrdinalPositionintSortierposition der Gruppe innerhalb des Budgets.
PurchasePricedecimal?Aggregierter Einkaufspreis der Gruppe.
DispositionPricedecimal?Aggregierter Verkaufspreis der Gruppe.
VisibleboolGibt an, ob die Gruppe in der Benutzeroberfläche sichtbar ist.

Endpunkte

Alle Budgetgruppen abrufen

Gibt alle Budgetgruppen zurück

GET/odata/BudgetGroup

Unterstützt OData-Abfrageoptionen.


Einzelne Budgetgruppe abrufen

Gibt eine einzelne Budgetgruppe anhand ihrer ID zurück

GET/odata/BudgetGroup({key})
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetGroupId der abzurufenden Gruppe.

Budgetgruppe erstellen

Erstellt eine neue Budgetgruppe

POST/odata/BudgetGroup
ParameterTypErforderlichBeschreibung
BodyDelta<ApiBudgetGroup>JSON-Objekt mit den Gruppeneigenschaften.

Budgetgruppe aktualisieren

Aktualisiert eine bestehende Budgetgruppe

PATCH/odata/BudgetGroup({key})
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetGroupId der zu aktualisierenden Gruppe.
BodyDelta<ApiBudgetGroup>JSON-Objekt mit den zu aktualisierenden Feldern.

Budgetgruppe löschen

Löscht eine Budgetgruppe

DELETE/odata/BudgetGroup({key})
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetGroupId der zu löschenden Gruppe.
Wichtiger Hinweis

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

EigenschaftTypBeschreibung
BudgetStateIdGuidPrimärschlüssel. Eindeutiger Bezeichner des Status.
NamestringAnzeigename des Status.
IsHiddenboolGibt an, ob der Status in der Benutzeroberfläche ausgeblendet ist.

Endpunkte

Alle Budgetstatus abrufen

Gibt alle Budgetstatus zurück

GET/odata/BudgetState

Unterstützt OData-Abfrageoptionen.


Budgetstatus erstellen

Erstellt einen neuen Budgetstatus

POST/odata/BudgetState
ParameterTypErforderlichBeschreibung
BodyDelta<ApiBudgetState>JSON-Objekt mit den Statuseigenschaften.

Einzelnen Budgetstatus abrufen

Gibt einen einzelnen Budgetstatus anhand seiner ID zurück

GET/odata/BudgetState({key})
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetStateId des abzurufenden Status.

Budgetstatus aktualisieren

Aktualisiert einen bestehenden Budgetstatus

PATCH/odata/BudgetState({key})
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetStateId des zu aktualisierenden Status.
BodyDelta<ApiBudgetState>JSON-Objekt mit den zu aktualisierenden Feldern.

Budgetstatus löschen

Löscht einen Budgetstatus

DELETE/odata/BudgetState({key})
ParameterTypErforderlichBeschreibung
keyGuidDie BudgetStateId des zu löschenden Status.
warnung

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

EigenschaftTypBeschreibung
PresetIdGuidPrimärschlüssel. Eindeutiger Bezeichner der Budgetvorlage.
PresetTypeintTyp der Vorlage.
NamestringAnzeigename der Vorlage.
PresetDateDateTimeOffsetDatum der Vorlage.
AmountAssetsdecimal?Gesamtbetrag.
IsGlobalboolGibt an, ob die Vorlage global verfügbar ist.

Endpunkte

Alle Budgetvorlagen abrufen

Gibt alle Budgetvorlagen zurück

GET/odata/BudgetPreset

Unterstützt OData-Abfrageoptionen.


Einzelne Budgetvorlage abrufen

Gibt eine einzelne Budgetvorlage anhand ihrer ID zurück

GET/odata/BudgetPreset({key})
ParameterTypErforderlichBeschreibung
keyGuidDie PresetId der abzurufenden Vorlage.

Budgetvorlage erstellen

Erstellt eine neue Budgetvorlage

POST/odata/BudgetPreset
ParameterTypErforderlichBeschreibung
BodyDelta<ApiBudgetPreset>JSON-Objekt mit den Vorlageneigenschaften.

Budgetvorlage aktualisieren

Aktualisiert eine bestehende Budgetvorlage

PATCH/odata/BudgetPreset({key})
ParameterTypErforderlichBeschreibung
keyGuidDie PresetId der zu aktualisierenden Vorlage.

Budgetvorlage löschen

Löscht eine Budgetvorlage

DELETE/odata/BudgetPreset({key})
ParameterTypErforderlichBeschreibung
keyGuidDie PresetId der zu löschenden Vorlage.
warnung

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

POST/odata/BudgetPreset({key})/LoadTemplateForProject
ParameterTypErforderlichBeschreibung
keyGuidDie PresetId der zu ladenden Vorlage.
BodyobjectJSON-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

POST/odata/BudgetPreset/SaveTemplateForBudget
ParameterTypErforderlichBeschreibung
BodyobjectJSON-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

EigenschaftTypBeschreibung
PresetLineItemIdGuid (UUID)Eindeutiger Bezeichner der Vorlagenposition.
PresetIdGuidZugehörige Budgetvorlage.
GroupIdGuidZugehörige Budgetgruppe.
PerformedByContactIdGuid?Kontakt, der die Leistung erbringt.
OrdinalPositionint32Sortierposition innerhalb der Vorlage.
ConsecutiveNumberint32Automatisch vergebene laufende Nummer.
ShortDescriptionstringKurzbeschreibung der Position.
QuantitydoubleStandardmenge.
UnitstringMengeneinheit (z. B. Stunden, Stück).
PricePerUnitdoublePrimärer Preis pro Einheit.
SecondaryPricePerUnitdoubleSekundärer Preis pro Einheit (z. B. Einkaufspreis).
IsBilledboolOb die Position als abgerechnet markiert ist.
IsBillableboolOb die Position abrechnungsfähig ist.
ProvisionDateDateTimeOffset?Leistungsdatum.
DescriptionTextstringBeschreibung als Klartext.
DescriptionHTMLstringBeschreibung als HTML.

Endpunkte

Vorlagenpositionen auflisten

Alle Vorlagenpositionen abrufen

GET/odata/BudgetPresetLineItem

Unterstützt OData-Abfrageoptionen.


Vorlagenposition abrufen

Eine einzelne Vorlagenposition anhand ihrer ID abrufen

GET/odata/BudgetPresetLineItem({key})
ParameterTypErforderlichBeschreibung
keyGuidDie PresetLineItemId der abzurufenden Position.

Vorlagenposition erstellen

Neue Vorlagenposition erstellen

POST/odata/BudgetPresetLineItem
ParameterTypErforderlichBeschreibung
BodyDelta<ApiBudgetPresetLineItem>JSON-Objekt mit den Positionseigenschaften.

Vorlagenposition aktualisieren

Eine vorhandene Vorlagenposition aktualisieren

PATCH/odata/BudgetPresetLineItem({key})
ParameterTypErforderlichBeschreibung
keyGuidDie PresetLineItemId der zu aktualisierenden Position.

Vorlagenposition löschen

Eine Vorlagenposition löschen

DELETE/odata/BudgetPresetLineItem({key})
ParameterTypErforderlichBeschreibung
keyGuidDie PresetLineItemId der zu löschenden Position.
warnung

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

EigenschaftTypBeschreibung
LineItemTemplateIdGuid (UUID)Eindeutiger Bezeichner der Positionsvorlage.
Namestring?Name der Vorlage.
ShortDescriptionstring?Kurzbeschreibung.
LongDescriptionstring?Ausführliche Beschreibung.
QuantitydoubleStandardmenge.

Endpunkte

Positionsvorlagen auflisten

Alle Positionsvorlagen abrufen. Unterstützt OData-Abfrageoptionen

GET/odata/LineItemTemplate

Positionsvorlage erstellen

Neue Positionsvorlage erstellen

POST/odata/LineItemTemplate
ParameterTypErforderlichBeschreibung
BodyDelta<ApiLineItemTemplate>JSON-Objekt mit den Vorlageneigenschaften.

Positionsvorlage abrufen

Eine einzelne Positionsvorlage anhand ihrer ID abrufen

GET/odata/LineItemTemplate({key})
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemTemplateId der abzurufenden Vorlage.

Positionsvorlage aktualisieren

Eine vorhandene Positionsvorlage aktualisieren

PATCH/odata/LineItemTemplate({key})
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemTemplateId der zu aktualisierenden Vorlage.
BodyDelta<ApiLineItemTemplate>JSON-Objekt mit den zu aktualisierenden Feldern.

Positionsvorlage löschen

Eine Positionsvorlage löschen

DELETE/odata/LineItemTemplate({key})
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemTemplateId der zu löschenden Vorlage.
warnung

Das Löschen einer Positionsvorlage kann nicht rückgängig gemacht werden.

Aktionen

Gruppe hinzufügen

Weist die Vorlage einer Budgetgruppe zu

POST/odata/LineItemTemplate({key})/AddGroup
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemTemplateId.
BodyobjectJSON-Objekt mit folgenden Feldern:

groupId (Guid, erforderlich) — ID der Budgetgruppe, der die Vorlage zugewiesen werden soll.

Gruppe entfernen

Entfernt die Vorlage aus einer Budgetgruppe

POST/odata/LineItemTemplate({key})/RemoveGroup
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemTemplateId.
BodyobjectJSON-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.

hinweis

Verwenden Sie die Aktionen AddGroup und RemoveGroup der LineItemTemplate-Entität, um Gruppenzuordnungen zu verwalten.

Datenmodell

EigenschaftTypBeschreibung
LineItemTemplateGroupIdGuidEindeutiger Bezeichner der Vorlagen-Gruppen-Zuordnung.
LineItemTemplateIdGuidZugehörige Positionsvorlage.
GroupIdGuidZugehörige Budgetgruppe.

Endpunkte

Vorlagen-Gruppen-Zuordnungen auflisten

Alle Vorlagen-Gruppen-Zuordnungen abrufen

GET/odata/LineItemTemplateGroup

LineItemTemplatePrice (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

EigenschaftTypBeschreibung
LineItemTemplatePriceIdGuidEindeutiger Bezeichner des Preiseintrags.
LineItemTemplateIdGuidZugehörige Positionsvorlage.
UnitstringMengeneinheit (z. B. Stunden, Stück).
PurchasePricePerUnitdecimal?Einkaufspreis pro Einheit.
DispositionPricePerUnitdecimal?Verkaufspreis pro Einheit.

Endpunkte

Vorlagenpreise auflisten

Alle Vorlagenpreise abrufen

GET/odata/LineItemTemplatePrice

Unterstützt OData-Abfrageoptionen.


Vorlagenpreis abrufen

Einen einzelnen Vorlagenpreis anhand seiner ID abrufen

GET/odata/LineItemTemplatePrice({key})
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemTemplatePriceId des abzurufenden Preises.

Vorlagenpreis erstellen

Neuen Vorlagenpreis erstellen

POST/odata/LineItemTemplatePrice
ParameterTypErforderlichBeschreibung
BodyDelta<ApiLineItemTemplatePrice>JSON-Objekt mit den Preiseigenschaften.

Vorlagenpreis aktualisieren

Einen vorhandenen Vorlagenpreis aktualisieren

PATCH/odata/LineItemTemplatePrice({key})
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemTemplatePriceId des zu aktualisierenden Preises.
BodyDelta<ApiLineItemTemplatePrice>JSON-Objekt mit den zu aktualisierenden Feldern.

Vorlagenpreis löschen

Einen Vorlagenpreis löschen

DELETE/odata/LineItemTemplatePrice({key})
ParameterTypErforderlichBeschreibung
keyGuidDie LineItemTemplatePriceId des zu löschenden Preises.
warnung

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

GET/odata/DynamicBudget

Ein einzelnes Budget mit benutzerdefinierten Feldspalten abrufen

GET/odata/DynamicBudget({key})

DynamicLineItem

Abgeflachte Positionsliste mit Budget-, Projekt- und Gruppendaten

GET/odata/DynamicLineItem

Eine einzelne Position mit benutzerdefinierten Feldspalten abrufen

GET/odata/DynamicLineItem({key})
Nur lesender Zugriff

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
}
Rechnungserstellung

Verwenden Sie CreateInvoiceForAllLineitems oder CreateInvoiceForSelectedLineitems, um aus Budgetpositionen direkt Rechnungen zu generieren. Prüfen Sie vorher mit GetUnbilledLineitemsCount, wie viele Positionen noch offen sind.