/** * Luo uuden lajiluokan annetuilla arvoilla, tallentaa sen tietokantaan * ja palauttaa tallennetun id:n tai arvon * Lajiluokka::$MUUTTUJAA_EI_MAARITELTY, jos jokin menee vikaan. * * @param type $ylaluokka_id * @param type $nimi_latina * @return type */ public function luo_ja_tallenna_lajiluokka($ylaluokka_id, $nimi_latina) { $tallennetun_id = Lajiluokka::$MUUTTUJAA_EI_MAARITELTY; $id = Lajiluokka::$PARAMETRI_EI_KAYTOSSA; $lajiluokka = new Lajiluokka($this->tietokantaolio, $id); $this->lisaa_testikommentti("Uusi tyhja lajiluokka luotu!", false); // Ei pitäisi olla tallennuskelpoinen: if ($lajiluokka->on_tallennuskelpoinen(true)) { $this->lisaa_virheilmoitus("Ei pitaisi olla tallennuskelpoinen!"); } else { /*$this->lisaa_testikommentti("Muuttujia ei ole asetettu, joten". " saatiin aivan oikein seuraava palaute: ". $lajiluokka->tulosta_virheilmoitukset(),false);*/ } /*$this->lisaa_testikommentti("Asetetaan lajiluokan ylaluokka_id, ja nimi_latina. Testataan uudelleen, onko nyt tallennuskelpoinen:",false);*/ $lajiluokka->set_ylaluokka_id($ylaluokka_id); $lajiluokka->set_nimi_latina($nimi_latina); // Tässä vaiheessa ongelmaksi voi tulla myös se, että nimi_latina on // jo olemassa. Siitä annetaan erillinen ilmoitus. if ($lajiluokka->on_tallennuskelpoinen(true)) { $this->lisaa_testikommentti("Lajiluokka on tallennuskelpoinen", false); $onnistuminen = $lajiluokka->tallenna_uusi(); if ($onnistuminen === Lajiluokka::$OPERAATIO_ONNISTUI) { $tallennetun_id = mysql_insert_id(); $this->lisaa_testikommentti("Lajiluokan tallennus onnistui!", false); } else { $this->lisaa_testikommentti($onnistuminen . " Virhe tallennuksessa (luo_\n ja_tallenna_lajiluokka())!" . " Arvot: ylaluokka_id=" . $lajiluokka->get_ylaluokka_id() . ", nimi_latina=" . $lajiluokka->get_nimi_latina(), true); } } else { // Tämä ei aina ole vastoin toivomuksia! $this->lisaa_testikommentti($lajiluokka->tulosta_virheilmoitukset(), false); } return $tallennetun_id; }
/** * Uuden lajiluokan tallennus! * @return Palaute */ public function toteuta_tallenna_uusi() { $pal = $this->palauteolio; $uusi = new Lajiluokka($this->tietokantaolio, Lajiluokka::$PARAMETRI_EI_KAYTOSSA); // Lajiluokka: $ylaluokka_id = $this->parametriolio->ylaluokka_id_lj; $nimi_latina = $this->parametriolio->nimi_latina_lj; // Kuvaus: // Nykyään kieli on tuossa aina suomi. Voi muuttaa tarvittaessa. $kieli_kuv = Kielet::$SUOMI; $kuv_kuv = $this->parametriolio->kuv_kuv; $nimi_kuv = $this->parametriolio->nimi_kuv; // Asetetaan arvot kohdalleen: $uusi->set_ylaluokka_id($ylaluokka_id); $uusi->set_nimi_latina($nimi_latina); // Kokeillaan tallentaa: $tallennus = $uusi->tallenna_uusi(); // Jos kaikki hyvin, tallennetaan myös kuvaus lajiluokalle: if ($tallennus === Lajiluokka::$OPERAATIO_ONNISTUI) { // tallennetaan aktiivisuus: paivita_aktiivisuus($this->parametriolio->omaid, $this->tietokantaolio, time(), Aktiivisuus::$LAJILUOKKA_UUDEN_TALLENNUS); $uusi_kuv = new Kuvaus($this->tietokantaolio, Kuvaus::$PARAMETRI_EI_KAYTOSSA); // Asetetaan arvot: $uusi_kuv->set_kieli($kieli_kuv); $uusi_kuv->set_kuvaus($kuv_kuv); $uusi_kuv->set_lajiluokka($uusi->get_id()); $uusi_kuv->set_nimi($nimi_kuv); // Kokeillaan tallentaa: $tallennus_kuv = $uusi_kuv->tallenna_uusi(); // Jos kaikki hyvin: if ($tallennus_kuv === Kuvaus::$OPERAATIO_ONNISTUI) { // tallennetaan aktiivisuus: paivita_aktiivisuus($this->parametriolio->omaid, $this->tietokantaolio, time(), Aktiivisuus::$LAJILUOKKAKUVAUS_UUDEN_TALLENNUS); $pal->set_operaatio_onnistui(true); $pal->set_ilmoitus(Bongaustekstit::$lajiluokka_ja_kuvaus_tallennus_ok); // Asetetaan kuitenkin palautusolioon luodun lajiluokan id: $pal->set_muokatun_id($uusi->get_id()); $pal->set_sisalto($this->nayta_havainnot()); } else { $pal->set_operaatio_onnistui(false); $pal->set_ilmoitus(Bongaustekstit::$kuvaus_virheilm_tallennus_eiok . Html::luo_br() . $uusi_kuv->tulosta_virheilmoitukset()); $pal->set_sisalto($this->toteuta_nayta_lajiluokkalomake()->get_sisalto()); } } else { $pal->set_operaatio_onnistui(false); $pal->set_ilmoitus(Bongaustekstit::$lajiluokka_virheilm_tallennus_eiok . Html::luo_br() . $uusi->tulosta_virheilmoitukset()); $pal->set_sisalto($this->toteuta_nayta_lajiluokkalomake()->get_sisalto()); } return $pal; }