Пример #1
0
 /**
  * Tallentaa muokatut tiedot ja palauttaa arvon
  * Havainto::OPERAATIO_ONNISTUI, jos onnistuu.
  */
 public function tallenna_muutokset()
 {
     $palaute = "";
     // Varmistetaan, että jokin on muuttunut vertaamalla tietokannassa
     // olevaan olioon:
     $muutoksia_havaittu = false;
     $alkup = Havainto::etsi($this->get_id(), $this->tietokantaolio);
     if ($alkup->olio_loytyi_tietokannasta) {
         if ($this->lajiluokka_id === $alkup->get_lajiluokka_id() && $this->vuosi === $alkup->get_vuosi() && $this->kk === $alkup->get_kk() && $this->paiva === $alkup->get_paiva() && $this->paikka === $alkup->get_paikka() && $this->kommentti === $alkup->get_kommentti() && $this->maa === $alkup->get_maa() && $this->varmuus === $alkup->get_varmuus()) {
             $muutoksia_havaittu = false;
         } else {
             $muutoksia_havaittu = true;
         }
     }
     if ($muutoksia_havaittu) {
         // Tarkistetaan vielä, että arvot ok:
         if ($this->on_tallennuskelpoinen(false)) {
             $taulu = Tietokannan_taulunimet::$bhavainnot;
             $muutossarakkeet = array(Havainto::$SARAKENIMI_LAJILUOKKA_ID, Havainto::$SARAKENIMI_VUOSI, Havainto::$SARAKENIMI_KK, Havainto::$SARAKENIMI_PAIVA, Havainto::$SARAKENIMI_PAIKKA, Havainto::$SARAKENIMI_KOMMENTTI, Havainto::$SARAKENIMI_MAA, Havainto::$SARAKENIMI_VARMUUS);
             $muutosarvot = array($this->lajiluokka_id, $this->vuosi, $this->kk, $this->paiva, $this->paikka, $this->kommentti, $this->maa, $this->varmuus);
             $ehtosarake = Havainto::$SARAKENIMI_ID;
             $ehtoarvo = $this->get_id();
             $max_muutosrivilkm = 1;
             // Muutetaan max yhtä riviä.
             $muokattujen_lkm = $this->tietokantaolio->tee_UPDATEhaku($taulu, $muutossarakkeet, $muutosarvot, $ehtosarake, $ehtoarvo, $max_muutosrivilkm);
             if ($muokattujen_lkm === 1) {
                 $palaute = Havainto::$OPERAATIO_ONNISTUI;
             } else {
                 $palaute = Havainto::$VIRHE;
                 $this->lisaa_virheilmoitus(Bongaustekstit::$ilm_havainnon_muokkaustallennus_eiok);
             }
         }
         // Ellei ole tallennuskelpoinen, tulee siitä ilmoitus listalle.
     } else {
         // Ellei muutoksia havaittu:
         $ilmoitus = Bongaustekstit::$ilm_havainnon_muutoksia_ei_havaittu;
         $this->lisaa_ilmoitus($ilmoitus, Ilmoitus::$TYYPPI_ILMOITUS);
     }
     return $palaute;
 }