/**
  * Lisää havainnot, joiden kaikkien tiedot on kopioitu valituista. 
  * Kopioida saa kaikkien havaintoja, myös omia, jos siihen näkee tarvetta. 
  * 
  * <p>Antaa ilmoitukset ja ilmoituksen onnistumisesta $palauteolion kautta.
  * Palauttaa käyttäjän havaintojen näyttötilaan.</p>
  * 
  * @return \Palaute Palauttaa Palaute-luokan olion.
  */
 public function toteuta_kopioi_itselle()
 {
     $valitut = $this->valittujen_idt;
     $omaid = $this->get_parametriolio()->omaid;
     $tallennetut = array();
     $palauteolio = $this->get_palauteolio();
     $virheilmot = array();
     if (empty($valitut)) {
         $palauteolio->set_ilmoitus(Bongaustekstit::$ilm_ei_valintoja);
         $palauteolio->set_operaatio_onnistui(true);
     } else {
         foreach ($valitut as $id) {
             $kopioitava = new Havainto($this->get_tietokantaolio(), $id);
             if ($kopioitava->olio_loytyi_tietokannasta) {
                 $uusi = new Havainto($this->get_tietokantaolio(), Havainto::$PARAMETRI_EI_KAYTOSSA);
                 $uusi->set_lajiluokka_id($kopioitava->get_lajiluokka_id());
                 $uusi->set_henkilo_id($omaid);
                 $uusi->set_kk($kopioitava->get_kk());
                 $uusi->set_paiva($kopioitava->get_paiva());
                 $uusi->set_vuosi($kopioitava->get_vuosi());
                 $uusi->set_maa($kopioitava->get_maa());
                 $uusi->set_paikka($kopioitava->get_paikka());
                 $uusi->set_varmuus($kopioitava->get_varmuus());
                 $uusi->set_kommentti("");
                 // Kommentiksi tyhjä.
                 if ($uusi->tallenna_uusi() === Havainto::$OPERAATIO_ONNISTUI) {
                     array_push($tallennetut, $uusi);
                 } else {
                     // tallennetaan virheilmoitukset
                     array_push($virheilmot, $uusi->tulosta_virheilmoitukset());
                 }
             }
         }
         if (sizeof($tallennetut) == sizeof($valitut)) {
             $palauteolio->set_ilmoitus(sizeof($tallennetut) . " " . Bongaustekstit::$ilm_havaintojen_lisays_ok);
             $palauteolio->set_operaatio_onnistui(true);
         } else {
             $viestit = sizeof($valitut) - sizeof($tallennetut) . " " . Bongaustekstit::$ilm_havaintojen_lisays_eiok;
             foreach ($virheilmot as $ilm) {
                 $viestit .= $ilm . Html::luo_br();
             }
             $palauteolio->set_ilmoitus($viestit);
             $palauteolio->set_operaatio_onnistui(false);
         }
     }
     // Näytetään havainnot:
     $palauteolio->set_sisalto($this->toteuta_nayta()->get_sisalto());
     return $palauteolio;
 }