<?php
    $kinderbonusmassnahmen = array (
            array('name' => 'Mutterschaftsvorsorge', 'anzahl' => 1),
            array('name' => 'Blutdruckmessung', 'anzahl' => 2),
            array('name' => 'Blutzuckermessung', 'anzahl' => 1),
            array('name' => 'Geburtsvorbereitungskurs', 'anzahl' => 1),
            array('name' => 'Hörtest bei Neugeborenen', 'anzahl' => 1),
            array('name' => 'Kindervorsorgeuntersuchung U1', 'anzahl' => 1),
            array('name' => 'Kindervorsorgeuntersuchung U2', 'anzahl' => 1),
            array('name' => 'Kindervorsorgeuntersuchung U3', 'anzahl' => 1),
            array('name' => 'Kindervorsorgeuntersuchung U4', 'anzahl' => 1)
    );
 
    $client = new user('',$userId);
    $client->konto = new konto($client->userId);
    $numBewegungen = count($client->konto->kontoBewegungen);
    $client->writeaddress($loggedIn->windowslogin,$loggedIn->name, $loggedIn->email);
    $kinder = $client->getChildren();
    $fullfilledmassnahmen = Array();
    if ($state == 'insert') {
        if (!empty($datumerwerb) && (!empty($vorname) || $kindId > 0)) {
            $geburtsdatum = $datumerwerb;
# Neues Kind? Abspeichern
            if (!empty($vorname)) {
                $child = $client->createChild($vorname, convertdate($geburtsdatum), $loggedIn->userId,$versnummer, $rechtskreis);
                if (!$child) {
                    error("Konnte neues Kind '$vorname' - '$geburtsdatum' nicht eintragen");
                }
                $kindId = $child->id;
            } else {
                $child = new Kind($kindId);
            }
            $geburtsdatum = $datumerwerb;
            $vor9monaten = date("Y-m-d" , strtotime("9 months ago",strtotime(convertdate($geburtsdatum))));
            $in4monaten = date("Y-m-d" , strtotime("4 months",strtotime(convertdate($geburtsdatum))));
            foreach ($client->konto->kontoBewegungen as $kontobewegung) {
                if ($kontobewegung->unterkategorie != 0) {
                    $unterkategorie = unterkategorie::getUnterkategorieById($kontobewegung->unterkategorie);
                    if ($kontobewegung->datumerwerb >= $vor9monaten && $kontobewegung->datumerwerb <= $in4monaten) { 

                        foreach ($kinderbonusmassnahmen as $requiredmassnahme) {
                            if ($requiredmassnahme['name'] == $unterkategorie->name) {
                                if (!isset($fullfilledmassnahmen[$unterkategorie->name])) {
                                    $fullfilledmassnahmen[$unterkategorie->name] = 0;
                                }
                                $fullfilledmassnahmen[$unterkategorie->name] += 1;
                            }
                        }

                    }
                }
            }
            $registeredpoints=0;
            foreach ($kinderbonusmassnahmen as $requiredmassnahme) {
                if (isset($fullfilledmassnahmen[$requiredmassnahme['name']]) &&
                        $fullfilledmassnahmen[$requiredmassnahme['name']] >= $requiredmassnahme['anzahl']) {
                    $registeredpoints+=$requiredmassnahme['punkte'];
                }
            }

            /* Prüfe ob bereits Kinderbonus-Maßnahmen vergeben wurden */
            /* Trage die übrigen ein */
            /* Ziehe 800 Punkte ab (Prämie Kinderbonus). Falls Minus-Punkte, ziehe nur x Punkte ab */
            foreach ($kinderbonusmassnahmen as $requiredmassnahme) {
                $unterkategorie = unterkategorie::getUnterkategorieByName($requiredmassnahme['name']);
                $missing = $requiredmassnahme['anzahl'];
                if (!empty($fullfilledmassnahmen[$unterkategorie->name])) {
                    $anzahl = $fullfilledmassnahmen[$unterkategorie->name];
                    $missing -= $anzahl;
                }
                if ($missing) {
                    for ($i=0; $i < $missing; $i++) {
                        $row = array();
                        $row['userId'] = $client->userId;
                        $row['kategorie'] = $unterkategorie->kategorie;
                        $row['unterkategorie'] = $unterkategorie->id;
                        $row['beschreibung'] = $unterkategorie->beschreibung . " - " . $child->vorname;
                        $row['kommentar'] = "Automatisch eingetragen für Vergabe 'Kinderbonus'. Kind:  " . $child->vorname . " - " . $kommentar;
                        $row['datum'] = time();
                        $row['wert'] = $unterkategorie->punkte;
                        $row['datumerwerb'] = convertdate($datumerwerb);
                        $kontoBewegung = new kontobewegung($row);
                        $client->konto->addKontobewegung($kontoBewegung,$kindId);
                        $numBewegungen++;
                        $loggedIn->log('addpoints', $client->userId);
                    }
                }
            }
            // Lese Kontostand neu ein, damit neue Bewegung richtig einsortiert wird
            $client->konto = new konto($client->userId);
            $praemie = praemie::getPraemieByName('Kinderbonus');
            if (!$praemie) {
                print "Fehler: Praemie 'Kinderbonus nicht gefunden!<br/>\n";
            }

#        $client->konto = new konto($client->userId);
            if ($praemie->punkte > $client->konto->getSaldo()) {
                $praemie->punkte = $client->konto->getSaldo();
            }

            $description = dbEscapeString("Bestellung der Prämie: " . $praemie->beschreibung);

            $row = array();
            $row['userId'] = $client->userId;
            $row['datum'] = time();
            $row['beschreibung'] = $description;
            $row['wert'] = 0-$praemie->punkte;
            $kontoBewegung = new kontobewegung($row);
            $client->konto->addKontobewegung($kontoBewegung);
            $numBewegungen++;
            $loggedIn->log($description, $client->userId);
# Lese Kontostand neu ein, damit neue Bewegung richtig einsortiert wird
            $client->konto = new konto($client->userId);
            //        $client->arztbescheinigung = $datumbescheinigung;
            $message = "Die Daten wurden eingetragen. Die Prämie 'Kinderbonus' wurde abgebucht.";
        }
   }
   $state = 'insert';
?>
    <strong>Punktevergabe Kinderbonus <? if (isset($message)) { print "<br/>$message"; } ?></strong><br><br>
<?php include('views/' . $module . '/addpoints.php'); 
