<?
include('../functions.php');

$sql = "SELECT * FROM kinder WHERE 1";
$result = mysql_query($sql) or error ("Cannot select from Kinder");
$anzahlgesamt = mysql_num_rows($result);
$anzahlkeineeltern = 0;
$anzahlbereitseingetragen = 0;
$anzahlfamieintrag = 0;
$anzahlkeinezuordnung = 0;
$anzahlnichtkk = 0;
while ($row = mysql_fetch_array($result)) {
    $id = $row['id'];
    $parentUserId = $row['userId'];
    $vorname = $row['vorname'];
    $geburtsdatum = $row['geburtsdatum'];
    $erstellungsdatum = isodatetotimestamp($row['erstellungsdatum']);
    $aenderungsdatum = isodatetotimestamp($row['aenderungsdatum']);
    $versnummer = $row['versnummer'];
    $rechtskreis = $row['rechtskreis'];
    $ersteller = $row['ersteller'];
    $child = new kind($id);
    /* Versuche, Eltern zu finden */
    $user = new user(0,$parentUserId);
    if (!$user->name) {
        $anzahlkeineeltern++;
        print "Keine Eltern gefunden: ";
        print "$parentUserId - $vorname\n";
        /* Hier müsste das Kind eigentlich geloescht werden,
           weil Eltern geloescht wurden */
        continue;
    } 

    $name = $user->name;
    $ort = $user->ort;
    /* Versuche herauszufinden, ob Kind bereits eingetragen wurde */
    $query = "SELECT * FROM users
        WHERE name = '$name' 
        AND   vorname = '$vorname'";
    $subresult = mysql_query($query) or error ("Cannot select from Users");
    if (mysql_num_rows($subresult) > 1) {
        /* 
           Mehrere Ergebnisse: 
           Kann nicht entscheiden, ob Kind bereits als User eingetragen wurde */
        $anzahlkeinezuordnung++;
        print "Keine eindeutige Zuordnung: $parentUserId - $vorname $name\n";
        continue;
    }
    if (mysql_num_rows($subresult) < 1) {
        /* Noch nicht eingetragen, suche im Abgleich */
        /* print "Kein Usereintrag gefunden: $userId - $vorname $name $ort\n"; */
        /* Versucher, Versnummer aus Abgleich herauszubekommen */
        $abgleichquery = "SELECT * FROM abgleich WHERE
            name = '$name'
            AND vorname = '$vorname' 
            AND ort = '$ort'";
        $abgleichresult = mysql_query($abgleichquery) or error("Abgleich");
        if (mysql_num_rows($abgleichresult) >= 1) {
            print "In Abgleich gefunden. Trage ein...\n";
            if (mysql_num_rows($abgleichresult) > 1) {
                print "Mehr als ein Ergebnis... $vorname, $name, $ort";
            }
            $abgleichrow = mysql_fetch_array($abgleichresult, MYSQL_ASSOC);
            $versnummer = $abgleichrow['versnummer'];
            $versnummerneu = $abgleichrow['versnummerneu'];
            if (!$versnummer) {
                print "Kann Versicherungsnummer nicht aus abgleich lesen (Neueintrag). Giving up\n";
                exit;
            }
            $anrede = $abgleichrow['anrede'];
            $strasse = $abgleichrow['strasse'];
            $ort = $abgleichrow['ort'];
            $plz = $abgleichrow['plz'];
            $titel = $abgleichrow['titel'];
            $email = $abgleichrow['email'];
            $rechtskreis = $abgleichrow['rechtskreis'];
            $kind = new user();
            $kind->anrede = $anrede;
            $kind->titel = $titel;
            $kind->name = $name;
            $kind->vorname = $vorname;
            $kind->strasse = $strasse;
            $kind->hausnummer = '';
            $kind->plz = $plz;
            $kind->ort = $ort;
            $kind->land = $user->land;
            $kind->email = $email;
            $kind->versnummer = $versnummer;
            $kind->versnummerneu = $versnummerneu;
            $kind->geburtsdatum = $geburtsdatum;
            $kind->mitgliedseit = '';
            $kind->telefonnummer = '';
            $kind->mobilnummer = '';
            $kind->passwort = $versnummer;
            $kind->erstellungsdatum = $erstellungsdatum;
            $kind->aenderungsdatum = $aenderungsdatum;
            $kind->status = 1;;
            $kind->ersteller = $ersteller;
            $kind->rechtskreis = $rechtskreis;
            $kind->versstatus = 0;
            $kind->auszugperemail = 0;
            $kind->schluessel = '';
            $kind->freigeschaltet = 1;
            $kind->insertUserData();
            $kindneu = new user($versnummer, 0 , $rechtskreis); 
            $userId = $kindneu->userId;

            /* Familienversicherung eintragen */
            $fami = new familienversicherte();
            $fami->userId = $userId;
            $fami->parentId = $parentUserId;
            $fami->versnummer = $versnummer;
            $fami->rechtskreis = $rechtskreis;
            $fami->typ = 0;
            print "Trage in Fami ein: UserId: $userId, ParentId: $parentUserId, Versnummer: $versnummer, Rechtskreis: $rechtskreis\n"; 
            $fami->insert();
            $anzahlfamieintrag++;
        } else {
            print "Kann Kind nicht uebertragen. Nicht im KK-Bestand: $vorname, $name, $ort!\n";
            $anzahlnichtkk++;
        }

    } else {
        /* bereits eingetragen */
        $anzahlbereitseingetragen++;
        $userrow = mysql_fetch_array($subresult, MYSQL_ASSOC);
        $userId = $userrow['userId'];
        $versnummer = $userrow['versnummer'];
        if (!$versnummer) {
            print "Kann Versicherungsnummer nicht aus abgleich lesen (Nur Fami). Giving up\n";
            print "Query: $query\n";
            print_r($userrow);
            exit;
        }
        $rechtskreis = $userrow['rechtskreis'];
        print "Kind ist bereits in Users eingetragen: ParentUserId: $parentUserId, UserId: $userId - $vorname, Rechtskreis: $rechtskreis, Versnummer: $versnummer\n";
        /* Nachsehen, ob bereits in Famis eingetragen, wenn nicht: hole das nach */
        if (! familienversicherte::getByUserId($userId)) {
            print "Noch nicht als Fami eingetragen: UserId: $userId, ParentId: $parentUserId, Versnummer: $versnummer, Rechtskreis: $rechtskreis\n";
            $fami = new familienversicherte();
            $fami->userId = $userId;
            $fami->parentId = $parentUserId;
            $fami->versnummer = $versnummer;
            $fami->rechtskreis = $rechtskreis;
            $fami->typ = 0;
            $fami->insert();
            $anzahlfamieintrag++;
        }
    }
    if ($versnummer && $rechtskreis) {
        $child->versnummer = $versnummer;
        $child->rechtskreis = $rechtskreis;
        $child->update();
    }
}
print "Keine Eltern mehr: $anzahlkeineeltern\n";
print "Bereits als User eingetragen: $anzahlbereitseingetragen\n";
print "Neueintrag in Users und Fami: $anzahlfamieintrag\n";
print "Doppelte Ergebnisse in Users: $anzahlkeinezuordnung\n";
print "Nicht eingetragen (kein KK-Eintrag): $anzahlnichtkk\n";
print "Gesamte Faelle: $anzahlgesamt\n";
/* TODO: Hole alle User, die jünger als 18 und Familienversichert sind,
   trage sie in Kinder ein, wenn noch nicht geschehen */
 
$timestamp18yearsago = strtotime("18 years ago", strtotime("today"));
List($year,$month,$day) = explode ('-', date('Y-m-d', $timestamp18yearsago));
$query = "SELECT rechtskreis, versnummer, 
    users.userId AS userId, users.vorname AS vorname,
    users.geburtsdatum AS geburtsdatum
    FROM users, familienversicherte 
    WHERE geburtsdatum > '$year-$month-$day' 
    AND familienversicherte.userId = users.userId";
    print $query . "\n";
$result = mysql_query($query) or die ("Cannot select $query: " . mysql_error());
print "Gesamte Famis, die untersucht werden: " . mysql_num_rows($result) .  "\n";
$now = date("Y-m-d", time());
while ($row = mysql_fetch_array($result)) {
  $userId = $row['userId'];
  $vorname = $row['vorname'];
  $geburtsdatum = $row['geburtsdatum'];
  $versnummer = $row['versnummer'];
  $rechtskreis = $row['rechtskreis'];
  $subquery = "SELECT * FROM kinder WHERE versnummer = '$versnummer' 
      AND rechtskreis = '$rechtskreis'";
  $subresult = mysql_query($subquery);
  /* Noch nicht eingetragen: Eintragen in Kinder-Tabelle */
  if (mysql_num_rows($subresult) < 1) {
    $kind = new kind();  
    $kind->userId = $userId;
    $kind->vorname = $vorname;
    $kind->geburtsdatum = $geburtsdatum;
    $kind->erstellungsdatum = $now;
    $kind->aenderungsdatum = $now;
    $kind->versnummer = $versnummer;
    $kind->rechtskreis = $rechtskreis;
    $kind->ersteller = 0;
    print_r($kind);
  } else {
      print "$vorname, $versnummer, $rechtskreis Bereits eingetragen\n";
  }
}

?>
