<?php
$client = new user('',$userId);
$client->konto = new konto($client->userId);
$numBewegungen = count($client->konto->kontoBewegungen);

/* Lies Kinder und Partner für die Familienpraemie ein */
$tmpkinder = $client->getChildren(true);
$tmppartners = $client->getPartners();
$kinder = array();

if ($tmpkinder) {
    foreach ($tmpkinder as $kind)
    {
        if ($kind->userId)
        {
            $konto = new konto($kind->userId);
//            if ($konto->hasminbestellpunkte())
//            {
                array_push($kinder,$kind);
//            } 
        }
    }
}
$partners = array();
if ($tmppartners) {
    foreach ($tmppartners as $partner)
    {
        if ($partner->userId)
        {
            $konto = new konto($partner->userId);
            if ($konto->hasminbestellpunkte())
            {
                array_push($partners,$partner);
            }
        }
    }
}
$client->writeaddress($loggedIn->windowslogin,$loggedIn->name, $loggedIn->email);

if (!empty($submitted) && $points != '' && !empty($description))
{
    $errormsg = '';
    if ($praemienid) {
        $praemie = new praemie($praemienid);
        if (!$praemie->id)
        {
        /* Context: praemienid (form) = praemienhmid (db) */
            $praemie = $praemie->getPraemieByHmNr($praemienid);
            if ($praemie->id)
            {
                $praemienhmnr = $praemienid;
                $praemienid = $praemie->id;
            }
        }
    }
    if ($praemie->familienpraemie) {
        if ((!$valuekind) ||(!$valuepartner)) {
            $errormsg = 'Kein Kind angegeben\n';
        } else {
            $eligible = true;
            // Berechtigung pruefen. Genuegend Punkte? Bereits Geldpraemie bestellt?
            foreach($valuekind as $kindid => $value) {
                if ($value <= 0) {
                    continue;
                }
                $kinduser = new user(0,$kindid);
                $konto = new konto($kinduser->userId);
                if (($konto->praemienlimit($praemienid) || ($konto->geldpraemienlimit($praemienid)))) {
                    $errormsg = 'Das Kind <b>' . $kinduser->vorname . '</b> hat bereits eine Geldpraemie in diesem Jahr bestellt.';
                    $eligible = false;
                    break;
                } else {
                }
            }

            foreach($valuepartner as $parentid => $value) {
                if ($errormsg) {
                    break;
                }
                if ($value <= 0) {
                    continue;
                }
                $parentuser = new user(0,$parentid);
                $konto = new konto($parentuser->userId);
                if ($konto->getsaldo() < $value) {
                    $errormsg = 'Das Elternteil <b>' . $parentuser->vorname . '</b> hat nicht gen&uuml;gend Punkte';
                    $eligible = false;
                    break;
                } elseif (($konto->praemienlimit($praemienid) || ($konto->geldpraemienlimit($praemienid)))) {
                    $errormsg = 'Das Elternteil <b>' . $parentuser->vorname . '</b> hat bereits eine Geldpraemie in diesem Jahr bestellt.';
                    $eligible = false;
                    break;
                }
            }

            if ($eligible) {
                /* Kinder */
                foreach($valuekind as $kindid => $value) {
                    if ($value <= 0) {
                        continue;
                    }
                    $kinduser = new user(0,$kindid);
                    $konto = new konto($kinduser->userId);
                    // Buche ab
                    $row = array();
                    $row['userId'] = $kinduser->userId;
                    $row['datum'] = dateToTimestamp($datum);
                    $row['datumerwerb'] = convertdate($datum);
                    $row['beschreibung'] = $description;
                    $row['wert'] = 0-$value;
                    if ($praemienid) {
                        $row['praemienid'] = $praemienid;
                    }
                    $kinduser->konto = $konto;
                    $kontoBewegung = new kontobewegung($row);
                    $kinduser->konto->addKontobewegung($kontoBewegung);
                    $loggedIn->log($description , $kinduser->userId);
                    // Lese Kontostand neu ein, damit neue Bewegung richtig einsortiert wird
                    $kinduser->konto = new konto($kinduser->userId);
                }

                /* Eltern */
                foreach($valuepartner as $parentid => $value) {
                    if ($errormsg) {
                        break;
                    }
                    if ($value <= 0) {
                        continue;
                    }
                    $parentuser = new user(0,$parentid);
                    $konto = new konto($parentuser->userId);
                    // Buche ab
                    $row = array();
                    $row['userId'] = $parentuser->userId;
                    $row['datum'] = dateToTimestamp($datum);
                    $row['datumerwerb'] = convertdate($datum);
                    $row['beschreibung'] = $description;
                    $row['wert'] = 0-$value;
                    if ($praemienid) {
                        $row['praemienid'] = $praemienid;
                    }
                    $parentuser->konto = $konto;
                    $kontoBewegung = new kontobewegung($row);
                    $parentuser->konto->addKontobewegung($kontoBewegung);
                    $loggedIn->log($description , $parentuser->userId);
                    // Lese Kontostand neu ein, damit neue Bewegung richtig einsortiert wird
                    $parentuser->konto = new konto($parentuser->userId);
                }
            }

            if (!$errormsg) {
                print "<h2>Pr&auml;mie wurde gebucht</h2>\n";
            }
        }
    } else { /* keine Familienpraemie: */
            if (count($praemie->zusaetze) == 1)
            {
                $praemienhmid = $praemie->zusaetze[0]->hmnr;
            } else {
                /* FIXME */
                $praemienhmid = 0;
            }
            if ($praemienhmnr) $praemienhmid = $praemienhmnr;
            $description = dbEscapeString($description);
            $row = array();
            $row['userId'] = $client->userId;
            $row['datum'] = dateToTimestamp($datum);
            $row['datumerwerb'] = convertdate($datum);
            $row['beschreibung'] = $description;
            $row['wert'] = 0-$points;
            if ($praemienid) {
                $row['praemienid'] = $praemienid;
            }
            if ($praemienhmid) {
                $row['praemienhmid'] = $praemienhmid;
            }

            $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);
            print "<h2>Pr&auml;mie wurde gebucht</h2>\n";
    } 

    if ($errormsg != '') {
        print "<h2>$errormsg</h2>\n";
    }
}

if (!$client->checklegalage()) {
    $liste = new Praemienliste(U18PRAEMIEN);
    $praemien = $liste->getPraemienSorted();
    $liste = new Praemienliste(UPRAEMIEN);
    $praemien = array_merge($praemien , $liste->getPraemienSorted());
} else {
    $liste = new Praemienliste(O18PRAEMIEN);
    $praemien = $liste->getPraemienSorted();
    $liste = new Praemienliste(U18PRAEMIEN);
    $praemien = array_merge($praemien , $liste->getPraemienSorted());
    $liste = new Praemienliste(UPRAEMIEN);
    $praemien = array_merge($praemien , $liste->getPraemienSorted());
}
include("views/$module/addbonus.php");
?>
