Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PEOPLE: Import 5_additional_memberships umstellen auf CSV-Report und CSV-Source #771

Closed
15 tasks
Tracked by #290
openscript opened this issue Jul 30, 2024 · 3 comments
Closed
15 tasks
Tracked by #290

Comments

@openscript
Copy link
Contributor

openscript commented Jul 30, 2024

Seit #750 gibt es SacImports::CsvReport für einen Import-Report sowie SacImports::CsvSourceFile um Exporte aus Navision einzulesen. Neu wechseln wir von xlsx-Dateien Source zu csv-Dateien.

Der Import 5_additional_memberships existiert bereits und wird mit diesem Ticket angepasst:

  • Es wird neu ein CSV Report während dem Import generiert der dem SAC zugestellt werden kann. So sieht der SAC welche Personen nicht importiert werden konnten.
  • Als Basis für diesen Import dient neu eine csv-Datei (NAV2).
  • Alle mit Rolle: Mitglied (Zusatzsektion) * sind zu berücksichtigen.

Siehe dazu auch die Dokumentation import.md.

User Stories:

  • Als Systemintegrator möchte ich einmalig alle Mitgliedschaften von einer aus Navision exportierten csv-Datei einmalig importieren können, damit die Daten aus dem Vorgängersystem migriert werden können.
  • Als Systemintegrator möchte ich vom Importvorgang einen Bericht (Report) erhalten, damit die Daten bereinigt werden können.

Tech-Spec

Die angehängten Beispieldaten sollen als Fixture eingefügt werden. Mit den Spaltennamen und dem bestehenden Modell, soll das Attribut-Mapping NAV2 erstellt werden. Anschliessend soll in membership.rb das Mapping der Inhalte kontrolliert und ggf. angepasst werden. Es soll ein Rake Task für 4_memberships erstellt werden. Schlussendlich sollen die zugehörigen Tests angepasst werden:

  • spec/domain/sac_imports/csv_source_file_spec.rb
  • spec/domain/sac_imports/csv_report_spec.rb
  • spec/domain/sac_imports/sektion/additional_membership_spec.rb
  • spec/domain/sac_imports/sektion/additional_membership_importer_spec.rb
  • spec/domain/sac_imports/sektion/additional_membership_importer_integration_spec.rb

Attribut-Mapping

Der folgende Hash beschreibt das Attribut-Mapping, wobei der key das Modell-Attribut und die value die CSV-Spalte beschreibt:

{
        navision_id: "Mitgliedernummer", # Früher Mitgliedernummer
        group_navision_id: "Sektioncode",  # Früher Sektion ???
        beitragskategorie: "Beitragskategorie",  # Alle Zeilen die mit Mitglied (Zusatzsektion) beginnen filtern und Beitragskategorie übernehmen
        valid_from: "GültigAb", # Neu Muss wie oberhalb beschrieben angepasst (Role#created_at)
        valid_until: "GültigBis", # Neu Muss wie oberhalb beschrieben angepasst (Role#delete_on)
        joining_date: "Eintrittsdatum" # Entfernen
}

csv-Report

Vom Import soll ein csv-Report mit folgenden Spalten und Inhalten erstellt werden, wobei pro importierter Zeile einen Eintrag erstellt wird, der bei Fehlern in der errors Spalte eine Beschreibung des Fehlers enthält:

  • membership_number: navision_id
  • person_name: name
  • errors: ActiveRecord::RecordInvalid mit Custom Message

ToDo

  • Als Fixture als spec/fixtures/files/sac_imports_src/NAV2_memberships_2024-01-04.csv verwenden
  • NAV2 Attribut-Mapping in SacImports::CsvSourceFile umsetzen/anpassen
  • FILE param im Rake task entfernen
  • Personeneinträge importieren (Inhalts-Mapping) in app/domain/sac_imports/sektion/additional_membership.rb anpassen
  • csv-Report umsetzen
  • Rake Task in lib/tasks/sac_imports.rake hinzufügen/anpassen
  • Rake Task mit Fixture ausprobieren
  • Rake Task mit REIMPORT_ALL und Fixture ausprobieren
  • import.md aktualisieren
  • Specs anpassen
@openscript openscript changed the title PEOPLE: Import 5_additional_memberships umstellen auf CSV-Report und CSV-Source PEOPLE: Import 5_additional_memberships umstellen auf CSV-Report und CSV-Source Jul 30, 2024
@openscript openscript self-assigned this Aug 5, 2024
@ThomasEllenberger
Copy link

Löst dieses Issue das Issue #138 ab?
Kann #138 entsprechend geschlossen werden?

@openscript
Copy link
Contributor Author

Importieren von Daten wurde früher schon auf Basis von .xlsx-Dateien implementiert. #138 und vielleicht weitere stammen davon ab. Dieser Issue beschreibt die Migration auf .csv-Dateien, sowie Anpassungen des Imports. Meiner Meinung nach ist #138 obsolet.

@daniel-illi
Copy link
Contributor

Die Zusatzmitgliedschaften werden bereits mit #770 importiert, es wird kein separater Import mehr benötigt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants