Zum Hauptinhalt springen

Projekt-Anfragen (ProjectRequests)

Zweck

ProjectRequest modelliert eingehende Anfragen von Mandanten (/clients) oder eigenen Mitarbeitern (/employees). Pro Anfrage wird über eine Checklist ein strukturierter Fragebogen erfasst, der typischerweise vom Anfragenden selbst ausgefuellt wird. Pro Anfrage werden Status, zustaendiger Mitarbeiter (employeeId) und eine Anfrage-Nummer (über NumberCircle) gepflegt.

Sub-Route /project-requests/:id/form liefert das Checklist-Formular zur Bearbeitung.

Voraussetzungen

- Berechtigung `view:ProjectRequest` und `create:ProjectRequest`. - Bestehende Checklist als Anfrage-Vorlage (`checklistId`). - Optional Mitarbeiter als Bearbeiter.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_ProjectRequest, ProjectRequestListe/Detail aufrufbar
create/update/deleteProjectRequestPflegenAPP_SPEAMCORE_CREATE/UPDATE/DELETE_PROJECT_REQUEST
viewChecklistChecklist-AuswahlAPP_SPEAMCORE_VIEW_CHECKLIST
viewEmployeeBearbeiter-AuswahlAPP_SPEAMCORE_VIEW_EMPLOYEE
viewNumberCircleAssignmentAnfrage-NummerAPP_SPEAMCORE_VIEW_NUMBER_CIRCLE_ASSIGNMENT

Schritt-für-Schritt-Anleitung

Anfrage anlegen

  1. Projekt-Anfragen (/project-requests) → + Neu.
  2. name setzen.
  3. Beim Speichern wird die projectRequestNo über den NumberCircle vergeben.
  4. Status (projectRequestStatusSelect) wird nach Anlage editierbar.
  5. employeeId (Bearbeiter) zuordnen.

Anfrage-Formular ausfuellen

/project-requests/:id/form zeigt das Checklist-Formular zum Beantworten — typischerweise vom Anfragenden selbst.

Listenansicht — project-requests

Toolbar (Detail-Seite)

Schlanke Toolbar oben rechts:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:

  • KAL. (Mini-Kalender)
  • ZEIT (Persoenliche Wochen-Arbeitszeit)
  • ARBEIT (Eigene bevorstehende Aufträge)

Felder und Eingaben

FeldnamePflichtDatentypWirkung beim AusfuellenVoraussetzung
projectRequestNonein (read-only)NumberCircleAssignmentWird über den NumberCircle vergeben.view:NumberCircleAssignment.
statusjaENUM (project-spezifisch)Steuert den Workflow (z. B. received, inProgress, responded, archived).
nameneinStringAnzeigename.
parentType/parentIdjaPolymorph (Client/Employee)Anfragender.view:Client/view:Employee.
employeeIdneinUUIDBearbeiter (interner Mitarbeiter).view:Employee.
checklistIdjaUUIDVerweis auf die Checklist-Vorlage.view:Checklist.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/project-requestsListeview ProjectRequest
POST/api/project-requestsAnlegencreate ProjectRequest
GET/api/project-requests/:idDetailview ProjectRequest
PATCH/api/project-requests/:idÄndernupdate ProjectRequest
DELETE/api/project-requests/:idSoft-Deletedelete ProjectRequest

Versionshinweise

  • 2026-04-30: Initiale Veroeffentlichung.