/**
  * Toteuttaa monen uuden havainnon tallennuksen.
  * @return \Palaute
  */
 public function toteuta_tallenna_monta_uutta()
 {
     $tietokantaolio = $this->get_tietokantaolio();
     $palauteolio = $this->get_palauteolio();
     // Sisältää valittujen lajiluokkien id:t.
     $valinnat = $this->get_parametriolio()->lajivalinnat_hav;
     $laskuri = 0;
     $tallennusten_lkm = 0;
     $virheiden_lkm = 0;
     $tallennetut_lajit = "";
     // Nimet kerätään tähän.
     foreach ($valinnat as $id_lj) {
         $uusi = new Havainto($this->tietokantaolio(), Havainto::$PARAMETRI_EI_KAYTOSSA);
         $uusi->set_henkilo_id($this->get_parametriolio()->omaid);
         $uusi->set_lajiluokka_id($id_lj);
         $uusi->set_paiva($this->get_parametriolio()->paiva_hav);
         $uusi->set_kk($this->get_parametriolio()->kk_hav);
         $uusi->set_vuosi($this->get_parametriolio()->vuosi_hav);
         $uusi->set_paikka($this->get_parametriolio()->paikka_hav);
         $uusi->set_kommentti($this->get_parametriolio()->kommentti_hav);
         $uusi->set_maa($this->get_parametriolio()->maa_hav);
         $uusi->set_varmuus($this->get_parametriolio()->varmuus_hav);
         if ($uusi->tallenna_uusi() === Havainto::$OPERAATIO_ONNISTUI) {
             $tallennusten_lkm++;
             // Haetaan nimi tallennetulle:
             $nimi = Bongaustekstit::$nimi_tuntematon;
             $lajiluokka = new Lajiluokka($tietokantaolio, $id_lj);
             if ($lajiluokka->olio_loytyi_tietokannasta) {
                 $kuvaus = $lajiluokka->hae_kuvaus($this->get_parametriolio()->kieli_id);
                 if ($kuvaus instanceof Kuvaus) {
                     if ($laskuri == 0) {
                         $nimi = $kuvaus->get_nimi();
                     } else {
                         $nimi = ", " . $kuvaus->get_nimi();
                     }
                 }
             }
             $tallennetut_lajit .= $nimi;
         } else {
             $virheiden_lkm++;
         }
         $laskuri++;
     }
     // Aktiivisuusmerkintä (vain kerran):
     $viimeksi_aktiivi = time();
     $aktiivisuuslaji = Aktiivisuus::$HAVAINTO_UUDEN_TALLENNUS;
     paivita_aktiivisuus($this->get_parametriolio()->omaid, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji);
     // Palautteet:
     if ($tallennusten_lkm == sizeof($valinnat)) {
         $kommentti = $tallennusten_lkm . " " . Bongaustekstit::$ilm_havaintojen_lisays_ok . " (" . $tallennetut_lajit . ")";
     } else {
         $kommentti = $virheiden_lkm . " " . Bongaustekstit::$ilm_havaintojen_lisays_eiok;
     }
     $palauteolio->set_ilmoitus($kommentti);
     // Avataan havainnot.
     $palauteolio->set_sisalto($this->toteuta_nayta()->get_sisalto());
     return $palauteolio;
 }
 /**
  * Tallentaa havainnon ja palauttaa olion, jonka tiedot haettu tietokannasta.
  * Virheen sattuessa palauttaa arvon Malliluokkapohja::VIRHE. 
  * @param <type> $henkilo_id
  * @param <type> $lajiluokka_id
  * @param <type> $vuosi
  * @param <type> $kk
  * @param <type> $paiva
  * @param <type> $paikka
  * @param <type> $kommentti
  * @param <type> $maa
  * @param <type> $varmuus
  */
 public function luo_ja_tallenna_havainto($henkilo_id, $lajiluokka_id, $vuosi, $kk, $paiva, $paikka, $kommentti, $maa, $varmuus)
 {
     $id = Havainto::$PARAMETRI_EI_KAYTOSSA;
     $hav = new Havainto($this->tietokantaolio, $id);
     $hav->set_henkilo_id($henkilo_id);
     $hav->set_lajiluokka_id($lajiluokka_id);
     $hav->set_vuosi($vuosi);
     $hav->set_kk($kk);
     $hav->set_paiva($paiva);
     $hav->set_paikka($paikka);
     $hav->set_kommentti($kommentti);
     $hav->set_maa($maa);
     $hav->set_varmuus($varmuus);
     $palaute = $hav->tallenna_uusi();
     // Haetaan tiedot:
     if ($palaute === Havainto::$OPERAATIO_ONNISTUI) {
         return new Havainto($this->tietokantaolio, $hav->get_id());
     } else {
         // Otetaan virheilmoitukset talteen ja nollataan olio:
         $this->lisaa_virheilmoitus($hav->tulosta_virheilmoitukset());
         $hav->nollaa_muuttujat();
         return Malliluokkapohja::$VIRHE;
     }
 }