Add kilometer-based Fahrtkosten billing, self-service distance entry, role deletion
Docker-Images bauen und veröffentlichen / build (, omsorgCore/Dockerfile, omsorgcore) (push) Successful in 16s
Docker-Images bauen und veröffentlichen / build (, omsorgWeb/Dockerfile, omsorgweb) (push) Successful in 5s
Docker-Images bauen und veröffentlichen / build (, omsorgapp/Dockerfile, omsorgapp) (push) Successful in 19s

- Facility: TravelCostMode (Pauschale/ProKilometer) + TravelCostPerKm, alongside
  the existing flat rate; fixes FacilityService.UpdateAsync silently dropping all
  Konditionen fields on update.
- New EmployeeFacilityDistance (Mitarbeiter x Einrichtung -> km) with full
  office-side CRUD in omsorgapp, plus a self-service endpoint/UI so field staff
  can maintain their own commute distance via OMSORG Connect (new
  ModuleType.EmployeeFacilityDistances, Own-scope, no Facilities access needed).
- Roles can now be deleted (blocked with a 409 while still assigned to a user).
- Fix employeesApi.js missing the Date-object conversion for dateOfBirth/entryDate/
  exitDate that crashed employee creation whenever a date was filled in; add a
  clear/remove control for those date fields.
- Requirements: flesh out FR-REC-3 with a staged Akquise cadence, add FR-REC-5/6
  for CRM feature scope and success metrics.
- Regenerate api-client-ts and api-client-php for all of the above.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Felix Kemmler
2026-08-10 20:15:42 +02:00
co-authored by Claude Sonnet 5
parent 09dce2ab98
commit ffa2c4a9e7
120 changed files with 13433 additions and 36 deletions
+5
View File
@@ -45,6 +45,11 @@ function layout_start(string $title, string $currentPage = 'dashboard'): void {
<span class="nav-icon">⏱</span><span class="nav-label"> Zeiterfassung</span>
</a>
<?php endif; ?>
<?php if (has_permission('EmployeeFacilityDistances', 'View')): ?>
<a href="fahrtstrecken.php" class="<?= $currentPage === 'fahrtstrecken' ? 'active' : '' ?>">
<span class="nav-icon">🚗</span><span class="nav-label"> Fahrtstrecken</span>
</a>
<?php endif; ?>
<a href="settings.php" class="<?= $currentPage === 'settings' ? 'active' : '' ?>">
<span class="nav-icon">⚙</span><span class="nav-label"> Einstellungen</span>
</a>