<?php
  /* class kind */
  class kind
  {
      var $id;
      var $userId;
      var $vorname;
      var $geburtsdatum;
      var $erstellungsdatum;
      var $aenderungsdatum;
      var $ersteller;
      # Wenn das Kind eine eigene Versnummer hat
      var $versnummer;
      var $rechtskreis;

      function __construct($id = 0) {
          if ($id != 0) {
              $query = "SELECT * FROM kinder WHERE id = '$id'";
              $result = dbQuery($query)
                  or error ("Konnte Kind nicht aus der Datenbank lesen: " . dbError());
              $numRows = dbNumRows($result);
              if ($numRows != 0 )
              {
                  $row = dbFetchRow($result);
                  $this->id = unescape($row['id']);
                  $this->userId = unescape($row['userId']);
                  $this->vorname = unescape($row['vorname']);
                  $this->geburtsdatum = unescape($row['geburtsdatum']);
                  $this->erstellungsdatum = unescape($row['erstellungsdatum']);
                  $this->aenderungsdatum = unescape($row['aenderungsdatum']);
                  $this->ersteller = unescape($row['ersteller']);
                  $this->versnummer = unescape($row['versnummer']);
                  $this->rechtskreis = unescape($row['rechtskreis']);
              }
              dbFreeResult($result);
          }
          return $this;
      }

      function update() {
          /* userid ausgelassen: Kinder können ihre Eltern nicht
             mehr wechseln, nachdem sie angelegt wurden :) */
          $this->aenderungsdatum = date("Y-m-d" ,time());
          $table = "kinder";
          $query = "UPDATE $table SET ".
            "vorname = '". $this->vorname . "',".
            "geburtsdatum = '". $this->geburtsdatum . "',".
            "aenderungsdatum = '" . $this->aenderungsdatum . "'," .
            "versnummer = '" . $this->versnummer . "'," .
            "rechtskreis = '" . $this->rechtskreis . "'" .
            " WHERE id = " . $this->id;
          $result = dbQuery($query)
            or error ("Konnte Änderungen nicht in der Datenbank speichern: ($query)" . dbError());

          dbFreeResult($result);
      }

      function insert($log=false)
      {
          $this->erstellungsdatum = date("Y-m-d", time());
          $this->aenderungsdatum = date("Y-m-d", time());
          $query = "INSERT INTO kinder SET ".
            "userId = '". $this->userId . "',".
            "vorname = '". $this->vorname . "',".
            "geburtsdatum = '". $this->geburtsdatum . "',".
            "erstellungsdatum = '" . $this->erstellungsdatum . "'," .
            "aenderungsdatum = '" . $this->aenderungsdatum . "'," .
            "versnummer = '" . $this->versnummer . "'," .
            "rechtskreis = '" . $this->rechtskreis . "'," .
            "ersteller = " . $this->ersteller;
          if (!$result = dbQuery($query))
          {
              error ("Konnte Kind nicht in die Datenbank einfügen: " . dbError(). "<br>\n".
                      "Query: $query");
              return false;
          }
          $this->id= dbInsertId();
          if ($log) { 
            $this->log('Kind "' . $this->vorname . '" angelegt',$this->userId); 
          }
          dbFreeResult($result);
      }

      function log($action, $object) {
          if (! isset($this->ip)) {
            $this->ip = '0.0.0.0';
          }
          $query = "INSERT INTO userlogs VALUES (" .
                $this->userId . ", " . 
                "'client', " .
                "'$action', " .
                "'$object', " .
                "'" . $this->ip . "', ".
                time() . 
                ")";
          $result = dbQuery($query) or 
                error ("Kann log nicht eintragen: " . dbError());
          dbFreeResult($result);
      }
  }
