Skip to content

Commit

Permalink
Wip ...
Browse files Browse the repository at this point in the history
  • Loading branch information
mtnstar committed Jul 24, 2024
1 parent f507caf commit cc63b65
Show file tree
Hide file tree
Showing 7 changed files with 72 additions and 71 deletions.
1 change: 1 addition & 0 deletions app/domain/sac_imports/csv_source_file.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class SacImports::CsvSourceFile
navision_id: "Mitgliedernummer",
household_key: "Familien-Nr.",
group_navision_id: "Sektion",
person_name: "Name",
navision_membership_years: "Vereinsmitgliederjahre" },
NAV3: {},
WSO21: {},
Expand Down
20 changes: 10 additions & 10 deletions app/domain/sac_imports/membership_years_report.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@

module SacImports
class MembershipYearsReport
HEADERS = {
navision_id: "Mitgliedernummer",
household_key: "Familien-Nr.",
group_navision_id: "Sektion",
navision_membership_years: "Vereinsmitgliederjahre"
}.freeze
REPORT_HEADERS = [
:membership_number, :person_name, :navision_membership_years, :hitobito_membership_years, :diff
].freeze

def initialize(output: $stdout)
@output = output
@source_file = SourceFile.new(:NAV2).path
@source_file = CsvSourceFile.new(:NAV2)
@csv_report = CsvReport.new(:membership_years_report, REPORT_HEADERS)
end

def create
without_query_logging do
Import::XlsxReader.read(@source_file, "aktive_mitglieder", headers: HEADERS) do |row|
#without_query_logging do
data = @source_file.rows
data.each do |row|
@csv_report.add_row({ navision_membership_years: row[:mitgliedernummer] })
end
end
#end
end
end
end
49 changes: 0 additions & 49 deletions lib/tasks/import.rake

This file was deleted.

54 changes: 54 additions & 0 deletions lib/tasks/sac_imports.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# frozen_string_literal: true

# Copyright (c) 2023, Schweizer Alpen-Club. This file is part of
# hitobito_sac_cas and licensed under the Affero General Public License version 3
# or later. See the COPYING file at the top-level directory or at
# https://github.com/hitobito/hitobito_sac_cas.

namespace :sac_imports do
#desc "Import sections from a navision export (tmp/xlsx/sektionen.xlsx)"
#task sektionen: [:environment] do
#import_file_path = "tmp/xlsx/sektionen.xlsx"
#sektionen_excel = Rails.root.join(import_file_path)
#Import::SektionenImporter.new(sektionen_excel).import!
#end

#desc "Import huts from a navision export"
#task huts: [:environment] do
#import_file_path = "tmp/xlsx/huetten_beziehungen.xlsx"
#hut_relations_excel = Rails.root.join(import_file_path)
#Import::HutsImporter.new(hut_relations_excel).import!
#end

#desc "Import all people from a navision export xlsx" \
#" (options: FILE=tmp/xlsx/personen.xlsx REIMPORT_ALL=true)"
#task people: [:environment] do
#Import::PeopleImporter.new(
#Pathname(ENV["FILE"].to_s),
#skip_existing: !["1", "true"].include?(ENV["REIMPORT_ALL"].to_s.downcase)
#).import!
#end

#desc "Import memberships from a navision export xlsx" \
#" (options: FILE=tmp/xlsx/mitglieder_aktive.xlsx REIMPORT_ALL=true)"
#task memberships: [:environment] do
#Import::Sektion::MembershipsImporter.new(
#Pathname(ENV["FILE"].to_s),
#skip_existing: !["1", "true"].include?(ENV["REIMPORT_ALL"].to_s.downcase)
#).import!
#end

#desc "Import additional memberships from a navision export xlsx" \
#" (options: FILE=tmp/xlsx/zusatzmitgliedschaften.xlsx REIMPORT_ALL=true)"
#task additonal_memberships: [:environment] do
#Import::Sektion::AdditionalMembershipsImporter.new(
#Pathname(ENV["FILE"].to_s),
#skip_existing: !["1", "true"].include?(ENV["REIMPORT_ALL"].to_s.downcase)
#).import!
#end

desc "Analyse imported and calculated membership years and create report"
task membership_years_report: [:environment] do
SacImports::MembershipYearsReport.new.create
end
end
5 changes: 2 additions & 3 deletions spec/domain/sac_imports/csv_source_file_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
expect do
source_file
end.to raise_error("Invalid source name: NAV42\navailable sources: #{SacImports::CsvSourceFile::AVAILABLE_SOURCES.map(&:to_s).join(', ')}")

end

it "throws error if requested source file does not exist" do
Expand All @@ -42,7 +41,7 @@

rows = source_file.rows
expect(rows.count).to eq(2)
expect(rows.first).to eq({ navision_id: "1000", household_key: nil, group_navision_id: "1500", navision_membership_years: "44" })
expect(rows.second).to eq({ navision_id: "600001", household_key: nil, group_navision_id: "1650", navision_membership_years: "9" })
expect(rows.first).to eq({ person_name: "Montana Andreas", navision_id: "1000", household_key: nil, group_navision_id: "1500", navision_membership_years: "44" })
expect(rows.second).to eq({ person_name: "Hillary Edmund", navision_id: "600001", household_key: nil, group_navision_id: "1650", navision_membership_years: "9" })
end
end
12 changes: 4 additions & 8 deletions spec/domain/sac_imports/membership_years_report_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,11 @@

describe SacImports::MembershipYearsReport do
let(:report) { described_class.new }
let(:report_file) { Rails.root.join("log", "sac_imports", "membership_years_report_#{Time.zone.now.strftime("%Y-%m-%d-%H:%M")}.csv") }

it "exits with error if NAV2 source file not available" do
expect do
report
end.to raise_error("No source file NAV2_*.xlsx found in RAILS_CORE_ROOT/tmp/xlsx/.")
end
let(:report_file) { Rails.root.join("log", "sac_imports", "membership_years_report_2024-01-23-10:42.csv") }

it "creates report for members in source file" do
travel_to DateTime.new(2024, 1, 23, 10, 42)

report.create
end
end
end
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Adressnummer,Mitgliedernummer,Mitgliederart,PUK-Code,Mitgliederart Statistik,Sektion,Letztes Eintrittsdatum,Letztes Austrittsdatum,Geburtsdatum,Familien-Nr.,Letzter Austrittscode,Letztes Kündigungsdatum,Kategorie,Sonderregelung,Gruppe für Fakturierung,Rabatt-% Mitgliederbeitrag,Anzahl für Fakturierung,Verbandsbeitrag,Beitrag Fakturaelemente,Beitrag PR,Beitrag Fachgruppe,Beitrag Sektion,Kommentar,Code ABC,Nächstes Rechnungsdatum,Rechnungsart,Beitrag Zusatz1,Letztes Rechnungsdatum,Letzte Rechnungsnummer,Letzte Rechnungsart,Beitrag Zusatz2,Name,Adresszusatz,Adresse,Postfach,PLZ,Ort,Länder-/Regionscode,Telefon,Sprachcode,Saldo,Kreditor,AHV Nummer,Sozialversicherungsnr.,Todesdatum,Nationalität,Jahr Abschluss,Heimatort,Geburtsname,Eintrittscode,Eintrittscode Bezeichnung,Statistikcode 1,Statistikcode 2,Statistikcode 3,Statistikcode 4,Statistikcode 5,Statistikcode 6,Statistikcode 7,Statistikcode 8,Statistikcode 9,Statistikcode 10,Nur Abonnent,Rech. an Deb.-Nr.,Im Wizard-Erstellungsprozess,Kanton,Anzahl Option 1,Anzahl Option 2,Anzahl Alle Optionen,Sektionstext,Austrittscodetext,Fakturierungsgruppetext,CodeABC Text,Kategorietext,Anzahl Bereich leer,Tagesfakturen vorhanden,Stornos vorhanden,Erfasst von,Erfasst am,Erfasst um,Aktualisiert von,Aktualisiert am,Aktualisiert um,Bemerkungen,Art,Vorname,Vorname 2,Nachname,Titel,Mobiltelefon,Anredecode,Ehrenmitglied SAC,Ehrenmitglied Sektion,Begünstigter Sektion,Anzahl Mitgliederjahre,Eintrittsjahr,Vereinsmitgliederjahre,Anerkannter Tourenleiter,TL-Portal History vorhanden,Mitglied einer erlaubten Sektion,Sistierter Tourenleiter,Verteiler Aktivstatus,Aktive Sektionen,E-Mail,Contact E-Mail,Contact E-mail Privat,Geplanter Austritt,Mahnstufe,Letzter Sektionswechsel am,Ersteintritt,Letzter Kategoriewechsel am,Letzte Kategorie,Hat Inaktives SKB Element,Briefanrede,Telefon direkt,Telefon Privat,Set Adressaufbereitung,Personentyp,Postleitzahl Id,Aufbereitete Namenzeile,Strasse Id,Gültige Strassen Id,Gültige Post Code Id,Hausnummer,Gültige Hausnummer,Adressfelder tauschen,Strassen Name,Gültige Adresse,Zweitname,Zweitvorname,Anredecode 2,Briefanrede 2,Geschlecht
1000,1000,Aktiv,zM42FmYADP,,1500,25/07/2022,,1/01/1946,,,,EINZEL,Nein,,0,0,Nein,Nein,Nein,Nein,Nein,,,,Normal,Nein,,,Rechnung,Nein,Montana Andreas,,Bergstutz 42,,3920,Zermatt,,,DES,0,Nein,,,,,0,,,,,,,,,,,,,,,Nein,4242,Nein,BE,0,0,0,1500 SAC Bern,,,,Einzelmitglied,0,Nein,Nein,,,,SAC\ADMINISTRATOR,30/11/2023,15:07:00.287,,Hauptadresse,Andreas,,Montana,,,HERR,Nein,Nein,Nein,44,1973,44,Nein,Nein,Ja,Nein,Nein,1,,,,,0,,1/01/1973,25/07/2022,EINZEL,Ja,Sehr geehrter Herr Montana,,,STD,natürlich,2098,,61171,Ja,Ja,42,Ja,Nein,Bergstutz,Ja,,,,,Männlich
600001,600001,Aktiv,,,1650,01/01/2015,,01/01/2000,,,,EINZEL,Nein,,0,0,Nein,Nein,Nein,Nein,Nein,,,,Normal,Nein,,,Rechnung,Nein,Edmund Hillary,,Ophovenerstrasse 79a,,2843,Neu Carlscheid,,,DES,0,Nein,,,,,0,,,,,,,,,,,,,,,Nein,4241,Nein,GE,0,0,0,1650 SAC Blüemlisalp,,,,Einzelmitglied,0,Nein,Nein,,,,SAC\ADMINISTRATOR,3/4/2020,17:07:00.337,,Hauptadresse,Edmund,,Hillary,,,HERR,Nein,Nein,Nein,9,2015,9,Nein,Nein,Ja,Nein,Nein,1,,,,,0,,01/01/15,,,Ja,Sehr geehrter Herr Hillary,,,STD,natürlich,4242,,135323,Ja,Ja,79a,Ja,Nein,Ophovenerstrasse,Ja,,,,,Männlich
600001,600001,Aktiv,,,1650,01/01/2015,,01/01/2000,,,,EINZEL,Nein,,0,0,Nein,Nein,Nein,Nein,Nein,,,,Normal,Nein,,,Rechnung,Nein,Hillary Edmund,,Ophovenerstrasse 79a,,2843,Neu Carlscheid,,,DES,0,Nein,,,,,0,,,,,,,,,,,,,,,Nein,4241,Nein,GE,0,0,0,1650 SAC Blüemlisalp,,,,Einzelmitglied,0,Nein,Nein,,,,SAC\ADMINISTRATOR,3/4/2020,17:07:00.337,,Hauptadresse,Edmund,,Hillary,,,HERR,Nein,Nein,Nein,9,2015,9,Nein,Nein,Ja,Nein,Nein,1,,,,,0,,01/01/15,,,Ja,Sehr geehrter Herr Hillary,,,STD,natürlich,4242,,135323,Ja,Ja,79a,Ja,Nein,Ophovenerstrasse,Ja,,,,,Männlich

0 comments on commit cc63b65

Please sign in to comment.