Projekt aktualisieren
Mit diesem Endpunkt können Sie ein bestehendes Projekt aktualisieren. Alle Felder sind optional; es werden nur die übermittelten Felder aktualisiert.
Request
PATCH /api/v1/projects/:id
curl --request PATCH \
--url 'https://www.zep-online.de/zepinstanz/next/api/v1/projects/123' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"name": "Website Relaunch 2024",
"description": "Komplette Überarbeitung der Unternehmenswebsite",
"start_date": "2024-01-15",
"end_date": "2024-06-30",
"plan_hours": 500.0,
"plan_expenses": 15000.00,
"project_status_id": "in_progress"
}'Parameter
- id (integer, erforderlich): Die ID des zu aktualisierenden Projekts
Optionale Felder
Alle Felder sind optional. Sie können einzelne oder mehrere Felder gleichzeitig aktualisieren:
Grundlegende Informationen
- name (string): Projektname/Kennung (max. 64 Zeichen, muss eindeutig sein)
- department_id (integer): Abteilungs-ID
- description (string): Projektbeschreibung (max. 255 Zeichen)
- start_date (string): Projektstartdatum (Format: YYYY-MM-DD)
- end_date (string): Projektenddatum (Format: YYYY-MM-DD, muss nach start_date liegen)
- comments (string): Zusätzliche Kommentare oder Notizen
Standortinformationen
- location_address (string): Adresse (max. 64 Zeichen)
- location_city (string): Stadt (max. 64 Zeichen)
- location_state (string): Bundesland/Region (max. 64 Zeichen)
- location_country (string): Land (max. 32 Zeichen)
Planungsdaten
- plan_hours (number): Geplante Stunden (≥ 0)
- plan_expenses (number): Geplante Ausgaben (≥ 0)
- plan_wage (number): Geplanter Lohn (≥ 0)
- plan_expenses_travel (number): Geplante Reisekosten (≥ 0)
- plan_hours_done (number): Erledigte Stunden
- plan_hours_invoiced (number): Abgerechnete Stunden
- plan_hours_children (number): Geplante Stunden für Unterprojekte (≥ 0)
- plan_hours_per_day (number): Geplante Stunden pro Tag (≥ 0)
- plan_warning_percent (number): Warnungsprozentsatz 1 (≥ 0)
- plan_warning_percent_2 (number): Warnungsprozentsatz 2 (≥ 0)
- plan_warning_percent_3 (number): Warnungsprozentsatz 3 (≥ 0)
- plan_can_exceed (integer): Option zum Überschreiten der Planung (Enum-Wert)
Kostenrechnung
- cost_object (string): Kostenträger (max. 32 Zeichen)
- cost_object_identifier (string/integer): Kostenträgerkennung (max. 32 Zeichen oder Zahl ≥ 0)
- revenue_account (string): Erlöskonto (max. 32 Zeichen)
Kundeninformationen
- customer_id (integer): Kunden-ID
- customer_contact_id (integer): Kontaktpersonen-ID beim Kunden
- customer_project_reference (string): Kundenreferenz für das Projekt (max. 64 Zeichen)
- customer_billing_address_id (integer): Rechnungsadresse-ID
- customer_shipping_address_id (integer): Lieferadresse-ID
- has_multiple_customers (boolean): Mehrere Kunden für dieses Projekt
Abrechnungs- und Spracheinstellungen
- billing_type (integer): Abrechnungsart
- default_billability (integer): Standard-Abrechnungsfähigkeit
- receipts_billability (integer): Abrechnungsfähigkeit für Belege
- billing_tasks (boolean): Aufgaben abrechnen
- currency (string): Währung
- language (integer): Sprache
Status und Referenzen
- project_status_id (string): Projektstatus-ID (max. 64 Zeichen)
- url (string): Projekt-URL (max. 255 Zeichen)
- reference_commission (string): Kommissionsreferenz (max. 100 Zeichen)
- reference_procurement (string): Beschaffungsreferenz (max. 100 Zeichen)
- reference_object (string): Objektreferenz (max. 100 Zeichen)
- reference_order (string): Bestellreferenz (max. 100 Zeichen)
Berichts- und Formatierungsoptionen
- indicate_hours_for_daily_proof (integer): Stundenangabe für täglichen Nachweis
- indicate_remarks_for_daily_proof (integer): Bemerkungen für täglichen Nachweis
- indicate_all_locations_per_day (integer): Alle Standorte pro Tag anzeigen
- indicate_all_activities_per_day (integer): Alle Aktivitäten pro Tag anzeigen
- also_take_into_account_the_price_factors_for_hourly_rates (integer): Preisfaktoren für Stundensätze berücksichtigen
- employee_name_time_report_format (integer): Format für Mitarbeitername im Zeitbericht
- employee_name_project_sales_volume_format (integer): Format für Mitarbeitername im Projektumsatz
- employee_name_invoice_attachment_format (integer): Format für Mitarbeitername in Rechnungsanhängen
Sonstige Felder
- travel_flat_rate (number): Reisekostenpauschale
- keywords (array): Array von Schlüsselwörtern (strings)
- dynamic_attributes (array): Benutzerdefinierte dynamische Attribute (array von Objekten)
- categories (array): Array von Kategorie-IDs (integers)
Response
{
"data": {
"id": 123,
"name": "Website Relaunch 2024",
"description": "Komplette Überarbeitung der Unternehmenswebsite",
"start_date": "2024-01-15",
"end_date": "2024-06-30",
"plan_hours": "500.00",
"plan_expenses": "15000.00",
"project_status_id": "in_progress",
"department_id": 5,
"customer_id": 42,
"created": "2023-12-10T09:00:00.000000Z",
"modified": "2024-11-20T15:30:00.000000Z"
},
"info": null
}Response-Felder
- data: Das aktualisierte Projektobjekt
- info: Optionale Konsistenzinformationen, wenn Projektdaten während der Aktualisierung angepasst wurden
Fehlercodes
- 401 Unauthorized: Ungültige oder fehlende Authentifizierung
- 404 Not Found: Projekt nicht gefunden
- 422 Unprocessable Entity: Validierungsfehler
Hinweise
- Nur die übermittelten Felder werden aktualisiert; nicht angegebene Felder bleiben unverändert
- Der Projektname muss eindeutig sein, wenn er geändert wird
- Das Enddatum muss nach dem Startdatum liegen, wenn beide angegeben werden
- Alle Planungswerte (Stunden, Ausgaben) müssen nicht-negativ sein
- Währungs- und Sprachcodes müssen im System existieren
- Referenzen auf Kunden, Abteilungen und Kontaktpersonen müssen gültige IDs sein