#!/usr/bin/perl

#
#  umbau.pl
#
#  Wandelt als CSV-formatierte WinSV-Daten (NRW-Version)
#  in Format für OSS um.
#
#  Besonderheit für AGB Löhne
#  * Die Klassenbezeichnungen (ahu, ahm, aho, aiu, aim, aio) 
#    müssen zuvor umgesetzt werden (z.B. ahu -> ah5 im Jahr 2005)
#    Muss nur einmal für die Schullaufbahn gemacht werden
#  * Loginbezeichnung:
#               <Klasse>.<Name>.<2Buchstaben des Vornamens>
#    z.B. Max Mustermann aus der AH-Unterstufe (2005)
#         =>  ah511.mustermann.ma
#
#  * Keine Sicherheitsabfragen
#
#  angepasst von H.Biber (agb.bib@agb.hf.nw.schule.de)



open(DATEI, "<$ARGV[0]") || die "Datei konnte nicht gelesen werden\n";
@passwd =<DATEI>;
close(DATEI);
#
foreach $zeile(@passwd)
        {
		# Umlaute ersetzen
		$zeile =~ s/ü/ue/g;
        	$zeile =~ s/ö/oe/g;
        	$zeile =~ s/ä/ae/g;
		$zeile =~ s/ß/ss/g;
		# Ersetze ahm durch ah3, ahu durch ah4, aim durch ai3 
		# und aiu durch ai4
		$zeile =~ s/aho/ah2/g;
		$zeile =~ s/ahm/ah3/g;
		$zeile =~ s/ahu/ah4/g;
		$zeile =~ s/aio/ai2/g;
		$zeile =~ s/aim/ai3/g;
		$zeile =~ s/aiu/ai4/g;
	if ($zeile =~ m/(^.*);(.*);(.*);(.*)$/)
                {
                $date = $3;
                $kurs = $4;
                $vorname = $2;
		$vornamekurz1 = substr($vorname,0,1);
		$vornamekurz2 = substr($vorname,0,2);
                $nachname = $1;
		$nachnamekurz6 = substr($nachname,0,6);
                $login ="$4.$1.$vornamekurz2";
                $pass= "$vornamekurz1\_$nachnamekurz6";
                $zeile = "$date:$nachname:$vorname:$kurs:$login:$pass\n";
                push @studs, $zeile;
                push @kurse, $kurs;
		}
	}
# Schreiben der Daten in Datei zum importieren in Schoolserver
open(IMPFILE, ">impfile.txt") || die "Die Datei konnte nicht beschrieben werden\n";
print IMPFILE "GEBURTSTAG:NACHNAME:VORNAME:KLASSE:LOGIN:PASSWORT\n";
#$i=0;
foreach $stud(@studs)
        {
        chomp $stud;
        print IMPFILE "$stud\n";
        }
close(IMPFILE);
#
#duplikate aus der Kursliste entfernen
%seen = ();
@unique = ();
foreach $item(@kurse)
        {
        $item = uc $item;
        unless ($seen{$item})
                {
                # Wenn wir hier ankommen haben wir das Element noch nicht gesehen
                $seen{$item} = 1 ;
                push (@unique, $item);
                }
        }
#
# Schreiben der Datei zur Kursmenge und anlegen der Verzeichnissstruktur
open(KURSE, ">kurse.txt") || die "Die Datei konnte nicht beschrieben werden\n";
foreach $ekurs(@unique)
        {
        chomp $ekurs;
#       mkdir $ekurs;
        print KURSE "$ekurs\n";
        }
close(KURSE);
