Commit Graph

16 Commits

Author SHA1 Message Date
335cf02a9f feat: Adresszusatz (Ortsteil/Etage/Hinweis) anzeigen, Land nur im Ausland
- Address.addition aus dem Backend (ERP-Freitext, praktisch Ortsteil,
  Etage oder Hinweis); API-Client neu generiert.
- Listen (Sortieren, Beladen, Liefer-Übersicht): Adresse mit Zusatz in
  Klammern, z. B. „… 41472 Neuss (Holzheim)".
- Lieferdetails: „Zusatz: …" unter der Anschrift von Empfänger und
  Besteller; Land nur außerhalb Deutschlands.
- Maps-Suche weiter ohne Zusatz (sonst stört „3 Etage" die Suche).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 16:13:28 +02:00
857c92031a feat: abweichende Lieferadresse und Empfänger vor Ort anzeigen
Belege können im ERP eine eigene Lieferadresse (LieferAdressId) mit
anderer Person tragen als der Besteller. Die App zeigt jetzt überall den
Empfänger vor Ort:

- TourDetails.recipientOf liefert Empfänger (Name aus der Lieferadresse,
  sonst Besteller), Lieferanschrift und differsFromOrderer.
- Sortieren, Auswählen, Beladen und Liefer-Übersicht: Empfängername +
  Lieferadresse, bei Abweichung „Bestellt von: <Kunde>".
- Lieferdetails: hervorgehobene Karte „Abweichende Lieferadresse" mit
  Empfänger, Anschrift und Kontakt; Kunden-Block als „Besteller (Kunde)"
  mit Adresse, Kundennummer und Kontaktdaten.
- Maps navigiert zur Lieferadresse statt zur Kundenadresse; AppBar,
  Unterschrift und Beladen-Avatar nutzen den Empfänger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:51:31 +02:00
99247b4b67 fix(pickup): nach vollständiger Filial-Abholung direkt die Lieferung öffnen
Der Fertig-Button der Filial-Abholung ersetzt die Scan-Page jetzt durch
DeliveryDetail (pushReplacement) statt zur Übersicht zurückzukehren.
Zurück aus der Lieferung führt weiterhin zur Übersicht.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:31:09 +02:00
553d3ef354 fix(delivery): unbeladene Lieferungen nicht in Auslieferung zeigen
Nach dem Anzeige-/Zuordnungs-Fix erschien eine neu gesyncte, noch NICHT
beladene Lieferung sofort in der Auslieferung — obwohl im Standardlager
nichts geladen wurde. Sie gehört aber noch in die Beladen-Phase.

Auslieferung zeigt aktive Lieferungen jetzt nur, wenn ihre Standardlager-
Beladung fertig ist (standardWarehouseLoadingDone). Pausiert/fertig/
abgebrochen (post-Beladung) bleiben unverändert sichtbar; unbeladene
erscheinen weiter in Beladen.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 23:15:42 +02:00
30fdde1109 fix(delivery): Auslieferung zeigt Single-Car-Lieferungen wie Beladen
Die Auslieferungs-Übersicht filterte immer nach assignedCarId==selectedCarId,
während die Beladen-Übersicht bei Single-Car-Teams ALLE Lieferungen zeigt.
Folge: eine neu importierte, noch nicht zugeordnete Lieferung
(assignedCarId == null) erschien in Beladen (und ließ sich scannen), aber
nach dem Scannen NICHT in der Auslieferung.

Auslieferung nutzt jetzt dieselbe multiCarTeam-Logik (CarsBloc,
cars.length >= 2): Single-Car → alle Lieferungen, Multi-Car → nach
assignedCarId filtern.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 22:49:23 +02:00
a9bf8ecdd1 Final commit. 2026-06-01 17:12:28 +02:00
3ecbc82885 Phase C+D-1: Cars-Domain auf Rust-Backend umgestellt
Clean-Arch-Schichten für Cars:
- lib/domain/entity/car.dart: UUID-id, accountId (Personalnummer),
  plate, active. Pendant zum Backend-Schema.
- lib/domain/repository/cars_repository.dart: Port — listMine,
  create, update. Keine teamId/personalnummer-Parameter, der
  Account fließt serverseitig aus dem JWT.
- lib/data/mapper/car_mapper.dart: API-DTO (built_value) → Domain.
- lib/data/repository/cars_repository_impl.dart: konkrete Impl via
  generierter CarsApi (dio), mit DioException → CarsRepositoryException-
  Übersetzung.

Feature-Cars-Refactoring:
- CarsBloc nimmt jetzt die Domain-Repository-Schnittstelle. Events:
  CarLoad/CarAdd/CarEdit/CarDeactivate (statt CarDelete). Keine
  teamId-Parameter mehr. Kein authBloc-Bezug, Session-Expiry läuft
  über den globalen Provider-Stream.
- CarsState sealed mit CarsInitial/Loading/LoadingFailed/Loaded.
- Pages: car_management_page, car_management, car_card, car_fail_page,
  car_selection_page komplett auf die neue Entity und Event-Signaturen.
- Alte lib/feature/cars/service/cars_service.dart und
  lib/feature/cars/repository/cars_repository.dart gelöscht.

CarSelectBloc + Storage:
- CarSelection.selectedCarId von int? auf String? umgestellt.
- CarSelectionRepository persistiert die UUID jetzt als String;
  defensive Migration für noch vorhandene int-Werte (alte
  Pre-Migration-Installations) verwirft den Wert leise und
  erzwingt Neuauswahl.

Konsequenz-Cleanup im Tour-Code (Phase-D-Vorbereitung):
- Delivery.carId String? statt int?.
- Tour.hasUndeliveredLoadedArticles / getFinishedDeliveries auf
  String carId.
- _selectedCarId / int? carId / int selectedCarId in DeliveryOverview,
  LoadingCustomerPage/OverviewPage, Home, DeliverySelection/SortPage,
  DeliveryInfo/List, CustomSortDialog, SortableDeliveryList auf
  String umgestellt.
- TourRepository ersetzt int.parse(carId)/int.tryParse-Zuweisungen
  direkt durch String.
- lib/model/car.dart wird zum Re-Export der neuen Domain-Entity,
  damit Legacy-Imports während Phase-D-Übergang weiter compilieren.

DI:
- app.dart: CarsBloc bekommt CarsRepositoryImpl(locator<HolzleitnerApi>())
  statt der alten CarsRepository(service: CarService()).

Build (flutter build apk --debug) durch, flutter analyze ohne
errors.
2026-05-15 11:55:24 +02:00
ac6b03227d Added components to article 2026-05-11 17:12:05 +02:00
2470299a10 BIG FAT 2026-04-28 13:03:09 +02:00
366a3560dc Implemented new custom sort and separated the sorted view for each car 2026-01-27 00:21:23 +01:00
1d6c62a392 Removed unused imports and moved tour bloc to delivery to be shared by overview and detailed view 2026-01-09 12:24:31 +01:00
ecf8745762 Finalized sorting in delivery overview 2026-01-09 12:16:52 +01:00
622967e5c1 Finished custom sorting of deliveries 2026-01-07 15:19:34 +01:00
edb8676f5a Added custom tour ordering 2025-12-20 21:00:33 +01:00
7ea9108f62 Implemented settings, new scan, enhanced UI/UX 2025-11-04 16:52:39 +01:00
b19a6e1cd4 Initial draft 2025-09-20 16:14:06 +02:00