Files
Brancheneinstufung2/TASKS.md
2026-02-18 11:55:55 +00:00

2.1 KiB

TASKS.md - Offene Entwicklungs-Aufgaben

Dieses Dokument dient als zentrale Quelle für klar definierte Entwicklungs-Tasks.


1. Task: Excel-Import für CRM-Bestandsdaten

Ziel: Importieren einer Excel-Liste mit SuperOffice-Bestandsdaten in die Company Explorer Datenbank.

Status: [TODO]

Dateien:

  • Neu erstellen: company-explorer/backend/scripts/ingest_superoffice_excel.py

Anforderungen & Logik:

  1. Abhängigkeiten: Das Skript muss pandas und openpyxl verwenden, um die Excel-Datei zu lesen.
  2. Dateipfad: Das Skript soll einen Dateipfad als Kommandozeilen-Argument akzeptieren (z.B. python ... ingest.py /pfad/zur/datei.xlsx).
  3. Datenbank-Verbindung: Das Skript muss eine Verbindung zur companies_v3_fixed_2.db herstellen (die SQLAlchemy-Modelle aus backend/database.py nutzen).
  4. Spalten-Mapping: Die Excel-Datei wird folgende Spalten haben (oder ähnlich):
    • Account ID -> crm_id
    • Name -> crm_name
    • Website -> crm_website
    • Straße, PLZ, Stadt -> crm_address (als formatierter String)
    • Ust ID -> crm_vat
    • Branche -> industry_crm
  5. Import-Logik (pro Zeile):
    • Prüfe auf Dubletten: Suche in der companies Tabelle, ob eine Firma mit der gleichen website (falls vorhanden) oder name und city bereits existiert.
    • Fall 1: Firma existiert (Match):
      • Aktualisiere den bestehenden Datensatz: Trage die crm_id, crm_name, crm_address etc. in die crm_* Felder ein.
      • Setze den status auf TO_ENRICH (falls er NEW war).
    • Fall 2: Firma ist neu:
      • Lege einen neuen Datensatz in der companies Tabelle an.
      • Befülle die crm_* Felder mit den Daten aus der Excel-Zeile.
      • Setze den name und website (die "Golden Record"-Felder) initial ebenfalls auf die CRM-Werte.
      • Setze den status auf TO_ENRICH.

Akzeptanzkriterien:

  • Nach Ausführung des Skripts sind die Firmen aus der Excel-Datei in der companies_v3_fixed_2.db sichtbar.
  • Bestehende Firmen werden mit CRM-Daten angereichert, neue Firmen werden angelegt.