mirror of
https://github.com/itsdave-de/msp.git
synced 2026-09-28 04:02:42 -03:00
211b68bbb82b7cb602757daa66ded15cdf78ced1
Fundament für den geplanten Multi-Format-Import-Assistenten. Die bestehende Parser/Builder-Infrastruktur bleibt unverändert — die neue Handler-Schicht ist eine dünne Hülle darüber, die zusätzlich ZIP-Entpacken und Sniff-basierte Auto-Erkennung erledigt. Neue Bausteine: - msp.importers.handlers.base.BaseFileHandler mit sniff() / preview() / execute() und Dataclasses PreviewResult / ExecuteResult. - msp.importers.handlers.registry mit detect_best_handler() (Scoring aller registrierten Handler gegen Dateiinhalt + Name, Cutoff bei confidence >= 0.5). - msp.importers.zip_unpack: entpackt ZIPs mit genau einer CSV in ein Temp- Verzeichnis (wie ADN sie monatlich liefert). - msp.importers.handlers.adn_monthly_csv_handler: erster Handler, wrappt den bestehenden ADN-Parser und Orchestrator. Sniff erkennt ADN-Header mit 100% Confidence, ZIP-Dateien mit ADN-Namensmuster mit 85% Confidence. HTTP-Endpoints für die Dropzone-UI (msp.importers.assistant): - list_handlers(): Metadaten aller Handler — für manuelle Format-Auswahl in der UI, wenn Auto-Erkennung fehlschlägt. - analyze_file(file_url): Detection + DB-freie Vorschau — liefert line_count, customer_count, product_count, period_label, format_drift, credit_note_lines, suggested_profile. - process_file(file_url, handler_key, config): führt den Import aus, gibt Zusammenfassung + Supplier-Import-Run-Name zurück. Frappe-Page „Lieferanten-Import" (/app/import-dropzone): - Drag-&-Drop-Zone für CSV und ZIP, Multi-Upload. - Pro Datei eine reaktive Karte mit Lifecycle (uploading → analyzing → matched/unmatched/error), die ihre Backend-Calls selbst steuert (XHR-Upload mit Progress-Bar, anschließend msp.importers.assistant.analyze_file). - Bei Auto-Erkennung: Stats + „Assistent öffnen"-Button. Routet aktuell noch auf die bestehende Supplier-Import-Run-Form mit vorbelegten Parametern — wird in Phase 4 durch einen eigenen Wizard abgelöst. - Bei Unmatched: Dropdown mit allen verfügbaren Handlern zur manuellen Zuordnung. End-to-End im Browser validiert: CSV-Upload → Karte mit 100%-Confidence- Erkennung → 116 Zeilen, 57 Kunden, 11 Produkte, Zeitraum 02.2026–02.2027. ZIP-Upload funktioniert analog (getestet via Smoke-Skript).
MSP
App for Managed Service Providers
License
GPLv3# msp
Languages
Python
65.7%
JavaScript
30.5%
PowerShell
3.8%