Darstellung
Task-Buchungen (PRM29)
Transaktion: PRM29 Buchungen
UI-Pfad: /taskHistory
Controller: TaskHistoryApiController – /api/taskHistory
Business-Zweck
PRM29 erfasst Zeiten und Leistungen auf Tasks. Aus TaskHistory-Einträgen (Start/Ende) entstehen aggregierte TaskCost-Datensätze – die Basis für Projektabrechnung PRM58 und interne Kostencontrolling.
Partner integrieren Zeiterfassungs-Tools, PSA-Systeme oder mobile Buchungs-Apps über die Task-History-API.
Kernbegriffe
| Begriff | Bedeutung |
|---|---|
| TaskHistory | Einzelner Zeiteintrag mit startTime, endTime, user |
| TaskCost | Aggregierte Buchung: cost, timeConfirmed, quantity, costDate |
timeConfirmed | Bestätigte abrechenbare Stunden |
pause | Pausenminuten (abgezogen von cost) |
isCompleted | Buchung abgeschlossen |
isApplied | Bereits in Beleg übernommen (nicht mehr änderbar bei Factoring) |
atCustomer | Leistung beim Kunden (Reisezeit o. Ä.) |
salesItem / verificationItem | Belegreferenz nach Abrechnung |
Fachlicher Ablauf
Live-Zeiterfassung
GET /api/taskHistory/bookTask/{taskId}– Buchung startenGET /api/taskHistory/currentBookingTask– aktive Buchung prüfenGET /api/taskHistory/endTask– Buchung beenden- Optional mit SubTask:
POST /api/taskHistory/bookTaskWithSubTask
Manuelle Buchung / Korrektur
POST /api/taskHistory/ speichert TaskHistory-Einträge und TaskCost in einem Schritt (wie UI-Dialog „Buchung erfassen“).
Partner-Szenarien
Eigene offene Buchungen listen
GET /api/taskHistory/myBookingsGruppiert nach Task und Tag, liefert Dauer, cost, timeConfirmed.
Abgeschlossene Buchungen
GET /api/taskHistory/myClosedBookingsBuchungsdialog-Daten laden
POST /api/taskHistory/showBookingEntryDialogBody: { "taskId": ..., "startTime": "...", "taskCostId": ... }
TaskCosts löschen / wiederherstellen
POST /api/taskHistory/handleTaskCostsBody: { "type": "delete" | "restore", "taskCosts": [id1, id2] }
Laufende Buchungszeit (UI-Timer)
GET /api/taskHistory/bookingTimeE-Mail aus Buchung
POST /api/taskHistory/showEmailEditorLeistungsnachweis per E-Mail (Anhänge aus TaskCost).
Voraussetzungen
- Task mit Status > 1 (nicht „neu“)
- Für Freigabe: ggf.
taskType.isApprovedEnabledmitapprovedBy - TaskCost mit gültigem
costDate(nicht Platzhalter 1970) - Partner-Rechte PRM29
Auswirkungen im ERP
| Aktion | Auswirkung |
|---|---|
| TaskCost ohne salesItem | Erscheint in PRM58 (taskCostList) |
createSalesDocuments | TaskCost → SalesItem auf Rechnung |
createVerificationDocuments | TaskCost → VerificationItem (PUR04) |
isApplied=true | Keine Änderung mehr (Factoring-Schutz) |
| Internes Projekt | cost = Stunden (kein externer VK) |
API-Referenz
Details: Task History API