Files
votianng/MIGRATION_BACKLOG.md
2026-03-29 10:34:57 +02:00

22 KiB

Votian NG Migration Backlog

Ziel

Die PHP-Anwendung wird schrittweise in services und vaadin ueberfuehrt. Dieser Backlog bildet die noch fehlenden Fachbereiche als umsetzbare Vertikalschnitte ab.

Bereits vorhanden

  • Authentifizierung inkl. TOTP
  • Dashboard
  • Stammdaten fuer Kunden, Kuriere, Mitarbeiter, Niederlassungen, Kostenstellen
  • Basis-Auftragsverwaltung
  • Preisverwaltung fuer Leistungen und Leistungstypen
  • Statistik- und Rechnungskennzahlen
  • Parameter-Fallback-Logik als Java-Backend

In diesem Schritt umgesetzt

  • Mitarbeiterrechte als HQ-bezogene Rechtevergabe
  • Kurierfahrzeuge in der Vaadin-Maske
  • Kurieradressdaten in Create/Update-Payload und Backend-Persistenz
  • Rechnungsarbeitsbereich mit Kundenliste, Kostenstellenfilter und Auftragsdetails
  • Auftragsdetail mit Rechnungstext, Dokumentenupload, Dokumentenloeschung und Fotoanzeige
  • Artikelpflege fuer bestehende Auftraege jetzt auch persistent ueber das Detail-Update
  • Kundenservice-Konfiguration mit Leistungszuordnung sowie Pflege von Zonen, PLZ-Zuordnungen und Radiusbereichen
  • Kostenstellenrechte fuer Mitarbeiter ueber employeecostcenter inkl. Vaadin-Pflege im Mitarbeiterdetail
  • Kundenbenutzer als eigener Mitarbeitertyp mit Haupt-Kostenstelle und zusaetzlichen Kostenstellenfreigaben
  • Rollenabhaengige Navigation und Routenguards fuer HQ-, Kunden- und Kurier-Benutzer
  • Kunden-Scopes fuer Joblisten, Rechnungen, Statistik und Kostenstellen ueber die Sessionrechte
  • Kurierhistorie als eigener Arbeitsbereich fuer Kurier-Benutzer mit Laufend/Erledigt-Filter und Detailansicht
  • PDF-/CSV-Ausgabe fuer Rechnungsdetails und Kurierhistorie inkl. Markierung exportierter Auftraege
  • HQ-Dispositionsarbeitsbereich mit Tagesboard, Fahrzeugliste und Auftragszuordnung
  • Locating-Sicht fuer Tourstationen eines Tages mit Stationsdetails und Karten-/Routenlinks
  • Erweiterte Auftragsliste mit fachlichen Filtern fuer Status, Kostenstelle, Kurier und Exportstatus
  • Listenerfassung als Mehrfachanlage fuer abgeschlossene Listenbuchungen mit Kunden-/Kostenstellenbezug
  • Kundenservice-Pflege fuer Abliefergruende mit vier mobilen Listen inklusive Legacy-kompatibler GDC-Ablage
  • Kundenservice-Pflege fuer servicebezogene Abnahmeprotokolle mit Fragen, Mail-Status und Textbausteinen
  • Jobcalculator-Arbeitsbereich im Auftragsdetail mit jobprice-Positionen, Kategorieauflösung, Bemerkung und Referenz
  • Legacy-Preisberechnung im Jobcalculator fuer Fixpreis-, Servicepreis-, Kundenrabatt- und Selbsterfasser-Schnitt inkl. Vorschau-Endpunkt
  • Ableitung und Synchronisierung der Legacy-jobprice-Positionen fuer Auftragsmarkup, Kurier-Zwischensumme, Provisionssatz und Selbsterfasser-Rabatt
  • Persistente Job-Felder fuer jb_subtotalprice, jb_serviceprice und jb_cr_subprice jetzt in Backend und Vaadin-Detailmaske nutzbar
  • Globale Rollen- und Rechteauswertung aus employee.emp_rights jetzt durchgaengig in Login-Session, Backend-Guards und Vaadin-Navigation
  • Zentrale Access-Control fuer Kunden-, Kurier-, Mitarbeiter-, Auftrags-, Rechnungs-, Dispositions- und Preisendpunkte
  • Feinere Rechtepruefungen auf Menue-, Route- und Button-Ebene fuer die migrierten Vaadin-Arbeitsbereiche
  • Mitarbeiterdetail jetzt mit Pflege der globalen Legacy-Rechte fuer HQ- und Kundenbenutzer sowie Lagertyp usr_type = 4
  • Kundenbenutzer koennen Mitarbeiterlisten jetzt rollenabhaengig wieder sehen und in ihrem Scope pflegen
  • Lagernutzer ist im Java-System jetzt als eigener Benutzertyp mit eigenem Arbeitsbereich und Routenschutz verankert
  • Neuer Lagerarbeitsbereich mit Hauptlagerauswahl, Lagerbaum, Bestandsliste, Seriennummernansicht und Lagerjournal
  • Lagerbuchungen aktualisieren jetzt stockarticle, articleitem und stockmove fachlich konsistent im Java-Backend
  • Lagerzugriffe nutzen bestehende Legacy-Parameter fuer Hauptlager, Unterlager, Readonly-Modus und Artikelzugriff
  • HQ-Benutzer mit Legacy-Lagerrecht emp_rights[14] sehen das Lagermodul jetzt ebenfalls in Navigation und Routenschutz
  • HQ-Globalrechte nutzen im Mitarbeiterdetail jetzt den vollstaendigen Legacy-Rechtekatalog aus rights statt nur eines Teilmengen-Mappings
  • Kunden-Globalrechte decken jetzt alle 16 PHP-Bits inklusive Adressen, Intervall, Termine und Scan-Objektmanagement ab
  • Kundenbenutzer ohne Mitarbeiterverwaltungsrecht sehen Mitarbeiter weiter im Legacy-Sinne, aber nur den eigenen Datensatz editierbar gemaess Benutzerkonten aendern und GLOBAL_CUSTOMER_READONLY_DISABLED
  • Longhaul-Arbeitsbereich fuer HQ-Benutzer mit Legacy-Recht emp_rights[10], Kennzahlen und drei Boards fuer zu vermittelnde, angenommene und laufende Ruecktouren
  • Longhaul-Backend mit jb_longhaul-/jb_taketime-Persistenz, parametergetriebener Vermittlungslogik ueber LONGHAUL_ACTIVE und Distanz-Sichtmodus ueber LONGHAUL_KM
  • Rueckgabe automatisch markierter Ferntouren an die Niederlassung jetzt als eigener Java-Endpunkt und Vaadin-Aktion verfuegbar
  • CSV-Export fuer die gefilterte Auftragsliste inkl. Legacy-Rechtepruefung (emp_rights[42] bzw. Kunden-Exportbit) und Vaadin-Downloadlink umgesetzt
  • Mitarbeiterdetail jetzt mit Lager-Reiter fuer Lagernutzer inkl. Hauptlagerfreigaben, Standardlager, Readonly-/Artikelverwaltung und Unterlager-Matrix
  • Auftragsdetail jetzt mit jb_service-Pflege, Protokoll-Reiter, Signaturanzeige und PDF-Ausgabe fuer die servicebezogenen Abnahmeprotokolldaten
  • Draft-Jobcalculator nutzt jetzt die Tourkette fuer cs_invmode > 0 und berechnet Grundpreis, PLZ-/Area-Matrix, COSTCENTER_INV_MODE_*, Fahrzeugtyp-Mapping und globalen getCr_price_global()-Fallback direkt im NG-Backend
  • Exact-Address-Area-Aufloesung aus getAreaIdFromAddress() sowie negative kundenbezogene Preis-/Rabattkorrekturen aus den Servicehistorien sind im NG-Jobcalculator angekommen
  • Treibstoffzuschlaege aus getFuelMarkup()/getFuelMarkupCr() inkl. cs_markup_prov-Historie und MASK_NO_MARKUP_ON_VEHICLE_PRICE-Ausnahme fuer den Grundpreis sind jetzt im NG-Jobcalculator verdrahtet
  • Routenbasierte JB_CR_PROV-Ableitung zieht jetzt optional den Legacy-Service Globaler<br>Fuhrlohnabschlag [%], statt nur aus Kunden-/Kurier-Zwischensummen rueckzurechnen
  • Kunden-Kurier-Agio aus servicepricehistory (cscr_prov) greift jetzt im aktiven MASK_CR_PRICE_MODE ab MASK_CR_PRICE_MODE_DATE, schreibt JB_CR_AGIO/JB_CR_SERVICE_PROV und justiert Kurier-Zwischen-/Servicepreise im NG-Jobcalculator nach
  • MASK_CR_PRICE_MODE_DATE steuert im NG-Jobcalculator jetzt auch, ob jb_cr_serviceprice bereits in Kurier-Endpreis und abgeleitetes JB_CR_SUBTOTAL einfliesst oder noch als separater Legacy-Posten stehen bleibt
  • Manuelle Legacy-jb_cr_serviceprice-Werte laufen im NG-Jobcalculator jetzt kompatibel ueber jobprice.mt_sort = 3 samt genericdatacontainer-Roundtrip, statt nur mt_sort = 4 zu beruecksichtigen
  • Manuelle Legacy-Kurierfixpreise aus jobprice.mt_sort = 2 uebersteuern im NG-Jobcalculator jetzt die automatische Fixpreis-/Routen-Ableitung inkl. Selbsterfasser-Abschlag, ohne dabei kuenstlich JB_CR_PROV zurueckzurechnen
  • Manuell geaenderte Kurier-Endpreise aus der NG-Maske koennen den Draft-Jobcalculator jetzt explizit uebersteuern; die Rueckrechnung in Kurier-Zwischensumme respektiert dabei MASK_CR_PRICE_MODE_DATE fuer den Serviceanteil und vermeidet ebenfalls eine kuenstliche JB_CR_PROV-Ableitung
  • Manuelle Kurier-Fixpreise und explizite Kurier-Servicepreise bleiben im Draft-Jobcalculator jetzt auch gegen alte JB_CR_PROV-/JB_CR_AGIO-/JB_CR_SERVICE_PROV-Altlasten stabil, statt durch spaetere Agio-Nachrechnung wieder ueberschrieben zu werden
  • Gespeicherte Auftraege synchronisieren nach Preis-Aenderungen jetzt auch im Backend die Kurierseite erneut ueber den portierten Java-Jobcalculator; damit greifen die portierten Preisregeln nicht nur im Draft, sondern auch im Persistenz-Nachlauf fuer save/replace/delete von jobprice
  • Abgeleitete Kurier-Servicepreise aus jobprice.mt_sort = 4 bleiben im NG-Jobcalculator jetzt auch im Agio-/Rate-Nachlauf neu berechenbar, waehrend nur manuelle Legacy-Werte aus mt_sort = 3 eingefroren bleiben
  • Der Persistenz-Nachlauf fuer gespeicherte Kurierpreise zieht jetzt auch eingebettete Frachtverguetung: ... EUR-Texte in tour.tr_remark fuer die erste Tour mit dem neu berechneten Kurier-Endpreis nach, analog zu recalc_jb_cr_price()
  • Der Persistenz-Nachlauf schreibt jetzt auch kundenrelevante Preisfelder (jb_markup, jb_subtotalprice, jb_totalprice) aus dem portierten Java-Jobcalculator zurueck und markiert bei echten Abweichungen jb_invtext_dirty, analog zum Legacy-recalc_jb_price()
  • Der Persistenz-Nachlauf zieht jetzt auch bestehende tourservice.trs_price-Zeilen nach Markup-Aenderungen weiter, ausser bei Servicepreis und der Legacy-Ausnahme MASK_NO_MARKUP_ON_VEHICLE_PRICE fuer Grundpreis, analog zum letzten offenen Teil von recalc_jb_price()
  • Das Auftragsdetail zeigt persistierte tourservice-Zeilen jetzt read-only im Jobcalculator-Reiter inklusive Kostenstelle, Station, Rabatt und effektivem Betrag, damit die bereits gespeicherten Legacy-Servicekosten im NG sichtbar sind
  • Die NG-Rechnungsuebersicht und Rechnungsexporte ziehen den Kundenumsatz jetzt bevorzugt aus persistierten tourservice-Betragswerten pro Job/Kostenstelle und fallen nur ohne passende Persistenzdaten auf job.jb_totalprice zurueck
  • Die NG-Auftragsliste und ihr CSV-Export respektieren jetzt ebenfalls MASK_JOBLIST_TOTALPRICE und summieren bei aktivem Legacy-Schalter persistierte tourservice-Betraege pro Auftrag statt blind job.jb_totalprice zu zeigen
  • Neu angelegte NG-Auftraege und Listenbuchungen erzeugen jetzt auch persistente tourservice-Grundzeilen fuer Fixpreis und optional Servicepreis, damit neue Datensaetze in den portierten Umsatz-/Detailpfaden nicht mehr auf Fallbacks angewiesen sind
  • Der Persistenz-Nachlauf des NG-Jobcalculators synchronisiert diese verwalteten tourservice-Grundzeilen jetzt auch bei spaeteren Preis-/Rabattaenderungen auf Fixpreis, Servicepreis und trs_discount, ohne importierte oder detailreiche Legacy-tourservice-Saetze zu verbiegen
  • Die Kunden-Rechnungsdetails und Rechnungsexporte zeigen persistierte tourservice-Leistungen jetzt bei aktivem Legacy-Schalter MASK_INVOICE_SHOW_SERVICES_<customerId> pro Auftrag an und nutzen dafuer die zur Kostenstelle passenden bzw. globalen Zeilen
  • Die Rechnungs-Leistungsanzeige fuer persistierte tourservice-Zeilen respektiert jetzt auch die Legacy-Druckparameter INV_PRINT_METATYPE_SERVICE, INV_PRINT_DISCOUNT und INV_PRINT_SRVPRICE fuer Typ-, Rabatt- und Preiszusatz in Detailansicht und Export
  • Neue Auftraege koennen ihren initialen jobprice-Satz jetzt direkt im Create-Call mitsenden; damit laeuft der portierte Jobcalculator schon beim Anlegen atomar durch und die erste Persistenz landet ohne separaten Nachlauf-Request in konsistenten Job-/tourservice-Feldern
  • Neu angelegte NG-Auftraege ohne initiale jobprice-Zeilen initialisieren persistierte tourservice-Grundzeilen fuer explizite Fixpreis-/Servicepreis-Eingaben jetzt ebenfalls ueber den portierten Jobcalculator; damit greifen Legacy-Semantiken aus job_options.php fuer trs_discount und den manuellen Fixpreis-Pfad nicht mehr nur im spaeteren Recalc, sondern schon im ersten Create-Write
  • Routenbasierte NG-Preise schreiben ihre NG-verwalteten persistierten tourservice-Zeilen jetzt ebenfalls detailliert als Grundpreis plus PLZ-/Area-Etappen statt nur als pauschalen Fixpreis; der Persistenz-Sync aktualisiert solche NG-Routezeilen auch weiter, solange keine importierten oder sonstigen Fremdsaetze im Weg stehen
  • Die NG-Readmodelle fuer persistierte tourservice-Daten blenden jetzt auch Legacy-Platzhalterzeilen trs_srvt_name = 'z' mit trs_price = 0 aus, damit Detailansicht und Rechnungs-Leistungsanzeige keine internen saveServiceCosts()-Marker als echte Leistung darstellen
  • Persistierte NG-tourservice-Zeilen bevorzugen jetzt auch im Write-/Sync-Pfad csc_id_payer_cash, sobald dieser gesetzt ist; damit folgt die Kostenstellenwahl fuer Barzahler wieder der Legacy-Semantik aus saveServiceCosts() statt versehentlich am regulaeren Zahler haengen zu bleiben
  • Katalogbasierte NG-tourservice-Zeilen persistieren jetzt auch wieder ihre Legacy-srv_id-/srvt_id-Referenzen, soweit sich Service und Servicetyp ueber HQ- bzw. Global-Katalog eindeutig aufloesen lassen; damit bleiben Grundpreis-Zeilen nicht mehr pauschal auf 0/0, waehrend freie Spezial-/Routezeilen weiter bewusst offen bleiben
  • Persistierte NG-tourservice-Bezeichnungen normalisieren jetzt auch das Legacy-<br>-Markup beim Lesen, damit Jobdetails und Rechnungs-Leistungsanzeige dieselben Klartextlabels wie getJobCosts() statt roher HTML-Fragmente zeigen
  • Die letzte offene Legacy-Servicepreis-Sonderregel MASK_SERVICE_PRICE_STREET aus check_jb_serviceprice() ist jetzt ebenfalls portiert: NG berechnet den automatischen Strassenaufschlag im Draft fuer neue Auftraege, persistiert ihn einmalig beim Create ueber genericdatacontainer, haelt ihn bei spaeteren Recalcs kundenseitig stabil aus dem Kurier-Servicepreis heraus und schreibt die resultierende Servicepreis-Zeile netto in persistierte tourservice
  • Persistierte tourservice-Import-/Spezial-Splits sind jetzt auch im Rechnungsfluss modelliert: Invoice-Summary, Kunden-Rechnungssummen und Rechnungsdetails summieren mehrfache csc_id-Anteile eines Auftrags sauber ueber alle relevanten Split-Kostenstellen, waehrend eine explizit gewaehlte Unterkostenstelle gezielt nur ihren Anteil samt passender Leistungszeilen zieht; kundenweite Rechnungsdetails gruppieren solche Split-Leistungen jetzt sichtbar je Kostenstelle statt sie weiter in eine einzelne Default-KST zu druecken
  • Der Longhaul-Arbeitsbereich zeigt jetzt auch eine NG-Kartenansicht auf Basis der PLZ-Geokoordinaten: Backend und Dashboard-DTO liefern Luftlinie sowie Start-/Zielkoordinaten fuer geocodierte Touren, die Vaadin-Maske rendert daraus eine statusfarbige schematische Deutschland-Karte und haelt manuelle FT-Auftraege ohne Geocodes weiter nur in Liste und Detail sichtbar
  • Manuelle FT ist jetzt auch im Auftragsdetail modelliert: HQ-Benutzer mit Longhaul-Recht koennen jb_longhaul = 3 direkt am Auftrag setzen oder wieder entfernen, die Detailmaske zeigt dabei den aktuellen FT-Status samt Speicherwirkung an, und das Backend akzeptiert in Create-/Update-Pfaden nur noch die manuell legitimen Werte 0 und 3, waehrend automatische Longhaul-Zustaende weiter systemgefuehrt bleiben
  • Der Longhaul-Remote-DB-Sonderfall ist jetzt im NG-Dashboard portiert: berechtigte HQ-Benutzer koennen zwischen lokaler DB und der per LONGHAUL_REMOTE_DB_ACCESSDATA konfigurierten Fremdinstanz umschalten, das Backend liest dabei Jobs, Touren, Adressen, PLZ-Geodaten, Kostenstellen, Kunden, Fahrzeugdispositionen und das Remote-LONGHAUL_ACTIVE_REMOTE_DB direkt aus der zweiten MariaDB, und Rueckgabe an HQ funktioniert in diesem Modus ebenfalls gegen die Fremddatenbank; der normale NG-Auftragsdialog wird fuer Remote-Datensaetze bewusst gesperrt, damit keine lokalen Fehl-Drilldowns entstehen
  • Der Longhaul-Remote-DB-Detail-/Locatingfluss ist jetzt ebenfalls portiert: ein neuer NG-Detail-Readpfad liefert fuer lokale wie Remote-Ferntouren read-only Auftragsdetails inklusive kompletter Start-/Zielkontaktangaben und letztem Kurierstandort aus courier.cr_gps_*; in Vaadin schaltet der Aktionsbutton fuer Fremddaten oder Benutzer ohne allgemeines Jobrecht jetzt auf einen eigenen Detaildialog statt auf den lokalen Jobeditor, sodass Remote-Datensaetze samt letzter Ortung direkt im Ferntouren-Workspace einsehbar bleiben
  • Feiertage sind jetzt als eigener HQ-Stammdatenschnitt portiert: NG verwaltet die Legacy-Tabelle publicholiday jahresbezogen ueber Backend, API und Vaadin-Maske inklusive Jahresauswahl, Vorjahresuebernahme, Editierschutz fuer vergangene Tage und Legacy-kompatibler Persistenz pro Niederlassung
  • Gruppen- und Filteradministration ist jetzt als eigener HQ-Stammdatenarbeitsbereich portiert: NG verwaltet die Legacy-Kataloge groups und courierfilter inklusive CRUD, Readonly-/Mandantenlogik, Legacy-Cleanup beim Loeschen und Nutzungsauswertung; zusaetzlich nutzen Kunden-, Kurier- und Mitarbeiterdetail die Kataloge jetzt wieder ueber echte Mehrfachauswahlfelder statt rohe Kommastrings
  • Die Legacy-Service-XMLs laufen jetzt als geschlossener nativer NG-Integrationsblock im Java-Backend: /service/costcenter_request.php, /service/zone_request.php, /service/price_request.php, customer_request.php, metaobject_request.php, order_request.php, station_request.php sowie order_data_request.php inklusive Read-, Status-SET- und breiteren selektiven Job-/Stations-Write-Pfaden sind portiert; zusaetzlich deckt die XML-Authentifizierung jetzt auch die verbleibenden Contractor-/Kunden-Spezialpfade fuer diese Service-Endpunkte ab
  • Tracking ist jetzt als geschlossener Bewegungs-/Statusblock portiert: ein neuer NG-Trackingarbeitsbereich zeigt fuer HQ- und freigeschaltete Kundenbenutzer Tagestracking, Kartenansicht, Job-/Kurierlisten und die letzten Kurierpositionen auf Basis von courier.cr_gps_* bzw. cr_locationzipcode, das Backend liefert dafuer einen eigenen /tracking/dashboard-Readpfad mit Kunden-/Rechtescope und geocodierten Stopps, und Kunden-/Kurierdetail pflegen bzw. zeigen die relevanten Legacy-Felder cs_tracking sowie cr_mobile_pda plus Live-Ortungsmetadaten jetzt ebenfalls in Vaadin
  • Importprozesse sind jetzt als eigener NG-Arbeitsbereich portiert: HQ-Benutzer mit Legacy-Import-/Transferrechten sehen eine zentrale Importmaske mit Prozesskatalog, Dateistaging, Download/Loeschung und nativer Ausfuehrung fuer standardisierte ZONE- und RADIUSZONE-CSV-Uebernahmen; die uebrigen Legacy-Sonderimporte aus html/import/* laufen darin bewusst als strukturierte Datenuebernahme-/Spezialfall-Koerbe statt ueber verstreute PHP-Einzelseiten
  • Der Importarbeitsbereich ist jetzt auch fuer die restlichen Legacy-Pfade fachlich abgeschlossen: ZONEAGIO und ZIPCODE_NEIGHBOURS laufen natuerlich im NG, die verbliebenen Formate aus html/import/* sind mit Prioritaet, Legacy-Quellen, NG-Nachfolger und bewusster Archivierungsentscheidung im Workspace dokumentiert statt weiter implizit in Sammelkoerben zu verschwinden
  • Der Vertriebs-/Groupware-Block ist jetzt als zusammenhaengender NG-Workspace portiert: ein neuer Vaadin-Bereich deckt Tages-, Wochen-, Monats- und Aufgabenansicht fuer Legacy-Termine aus groupware/appointment.php, groupware/calendar.php und groupware/task.php ab, das Backend liefert dafuer Optionen, Kalenderabfragen und CRUD-/Aktionsendpunkte fuer Terminverwaltung, Wiedervorlagen, Teilnehmerbestaetigung, Abschlusslogik mit Berichtszwang desselben Tages sowie optionalen Mailversand, und Rechte/Navigation folgen dem Legacy-HQ-Rechtebit 11
  • Die Formular-/Metafeld-Administration ist jetzt als eigener HQ-Stammdatenarbeitsbereich portiert: NG verwaltet metafieldcategory, metafieldkey, metafieldtemplate und metafieldcategorykey inklusive Kategorien, Template-Zuordnung, globaler Felddefinitionen, Template-Inhalt, Formularfeld-Zuordnungen und Sortierung direkt legacy-kompatibel ueber REST und Vaadin
  • Der generische Berichtsarbeitsbereich ist jetzt als eigener HQ-Workspace portiert: NG deckt Kunden-, Transporteur- und Interessentenberichte aus groupware/report.php mit Objekt-Suche, Berichtstypen, Historie, Vertraulichkeit, Statistik, CSV-Export sowie Legacy-kompatiblem CRUD auf phoenix_group.report_process ab; Rechte und Sichtbarkeit folgen dabei wieder dem Legacy-Reportbit 16 plus vertraulicher Sonderfreigabe
  • Der generische Datenexport ist jetzt als eigener NG-Workspace portiert: NG konsolidiert export/export.php fuer HQ- und Kundenbenutzer ueber einen zentralen Exportbereich mit Legacy-Kategorien aus exportcategory, Profilpflege auf exportparameters, nativer Dateigenerierung mit Profil-Metadaten, Dateiarchiv auf exportfiles sowie Download-/Loeschpfaden fuer die ueblichen Stamm- und Bewegungsdatenexporte
  • Der Kommunikationsblock ist jetzt als eigener HQ-Workspace portiert: NG konsolidiert admin/newsticker.php, admin/courier_msggrp.php, admin/mf_history.php und die zugehoerigen Legacy-Nebenpfade in einem Bereich fuer Mitteilungen auf phoenix_group.tickerforum, Nachrichtengruppen und Kurierzuordnungen auf messagegroup/courier.cr_msggrp sowie Endgeraetehistorie und Versand-/Antwortlogik auf phoenix_log.messageforum
  • Die verbliebenen Newsletter-/Legacy-Nebenpfade sind jetzt fachlich abgeschlossen: NG pflegt Newsletter-Opt-in und DSGVO-Status fuer Kunden- und Kurierfirmen direkt im Kommunikationsworkspace auf company.cmp_newsletter/company.cmp_dsgvo, waehrend nicht mehr belastbar referenzierte Sonderpfade wie sysadmin/newsletter/*.php, tools/auto_response*.php und generische admin/metafield_special_cron.php-Einmalpfade bewusst als Legacy-Archiv dokumentiert statt weiter stillschweigend als offene NG-Workspaces mitzulaufen; die Bewertungsbasis steht in LEGACY_SIDEPATH_AUDIT.md
  • Der HQ-Operationsblock fuer Karten, Adressen und Suche ist jetzt als eigener NG-Workspace portiert: NG konsolidiert locating/map.php, admin/ad_admin.php, admin/nearBySearch.php und admin/traveltime.php in einer Route fuer globale Kartenuebersicht mit HQ-/Kurierpunkten, direkte Pflege von address und phoenix_special.street, fuzzy Aehnlichkeitssuche fuer Kunden und Kuriere sowie Legacy-kompatible Pflege der serviceplz-/serviceplztraveltime-Anfahrtszeiten; Rechte und Sichtbarkeit folgen dabei wieder den Legacy-Bits 19, 2, 0 und 1

Noch offen

  • Keine weiteren grossen fachlichen Legacy-Arbeitsbereiche mehr offen; verbleibend sind nur technische Betriebsentscheidungen fuer Alt-Crons, Einmalintegrationen und Archivpfade ausserhalb der produktiven NG-UI.

Nächste empfohlene Vertikalschnitte

  1. Verbleibende technische Alt-Crons und Einmalintegrationen ausserhalb der NG-UI betrieblich entscheiden: separat weiterfuehren, in dedizierte Integrationsservices ueberfuehren oder final abschalten.
  2. Danach Legacy-PHP-Seiten ohne produktiven Zugriffspfad sichtbar als Archiv kennzeichnen und aus Support-/Betriebsdokumentation bereinigen.