/** * Varmistetaan ennen tallennusta, ettei vastaavaa lisävaltuutta tai * yleistä lisävaltuutta ole olemassa kyseiselle henkilölle. * * <p>Palauttaa onnistumisen mukaan joko Malliluokkapohja::$OPERAATIO_ONNISTUI * tai Malliluokkapohja::$VIRHE.</p> * * Virhetilanteessa lähetetään oliolle virheilmoitus, jonka voi kutsuja * hyödyntää. */ public function tallenna_uusi() { // Uusi lisätään vain, jos arvot kunnossa ja tietokannassa ei vanhoja. if ($this->on_tallennuskelpoinen()) { return parent::tallenna_uusi(); } else { return Lisavaltuudet::$VIRHE; } }
/** * Metodi, joka tallentaa uuden kokonaisuuden tiedot tietokantaan. * Palauttaa arvon Malliluokkapohja::$VIRHE, jos tallennus epäonnistuu, * muuten arvon Malliluokkapohja::$OPERAATIO_ONNISTUI. * * Ajaa Malliluokkapohjan vastaavan metodin yli. * * Seuraavat arvot asetetaan täällä automaattisesti, joten niistä ei * tarvitse muualla huolehtia: * * luomishetki_sek * ed_muutos_sek * jarjestysnro * on_lapsia * lukitus * nakyvyys * * Huolehtii myös mahdollisen isikokonaisuuden on_lapsia-arvon päivittämisestä. * * @return int Palauttaa normaalit virhe / operaatio_onnistui -arvot. * */ function tallenna_uusi() { // Asetetaan arvot, jotka kaikille uusille samoja: $this->set_arvo(-1, Kokonaisuusolio::$sarakenimi_ed_muutos_sek); $this->set_arvo(time(), Kokonaisuusolio::$sarakenimi_luomishetki_sek); $this->set_arvo(-1, Kokonaisuusolio::$sarakenimi_jarjestysnro); // Ei lapsia tällä. $this->set_arvo(0, Kokonaisuusolio::$sarakenimi_on_lapsia); // Lukitus ei ole uudella päällä: $this->set_arvo(Kokonaisuusolio::$LUKITUS_OFF, Kokonaisuusolio::$sarakenimi_lukitus); $onnistuminen = parent::tallenna_uusi(); if ($onnistuminen == Malliluokkapohja::$OPERAATIO_ONNISTUI) { // Päivitetään on_lapsia, jos kokonaisuus on linkitetty johonkin muuhun. // Toisin sanoen yläkokonaisuudella on tämän jälkeen ainakin 1 lapsi. $ylakok_id = $this->get_arvo(Kokonaisuusolio::$sarakenimi_ylakokonaisuuden_id); if ($ylakok_id > 0) { $ylakok = new Kokonaisuusolio($ylakok_id, $this->tietokantaolio); if ($ylakok->olio_loytyi_tietokannasta) { $on_lapsia = 1; $onnistuminen = $ylakok->tallenna_on_lapsia_muutos_kokon($on_lapsia); } else { $this->lisaa_virheilmoitus(Tekstit::$ilm_kokon_ei_loytynyt); } } } return $onnistuminen; }
/** * Lisää tarkistuksia esimerkiksi liittyen tunnuksiin. Palauttaa samat * arvot kuin Malliluokkapohjan metodikin. Virheen sattuessa ilmoitukset * virheilmoituksissa. * * Huomaa, että salasanan koodaus tehdään vasta tarkistuksen jälkeen, jotta * tarkistus on mahdollinen. */ public function tallenna_uusi() { // Tarkistetaan ennen tallennuksen yrittämistä (salasana selkomuodossa). $uusi_olio = true; if ($this->on_tallennuskelpoinen($uusi_olio)) { // Jos kaikki kunnossa, koodataan salasana ja tallennetaan: $koodattu = md5($this->get_arvo(Henkilo::$sarakenimi_salasana)); $this->set_arvo($koodattu, Henkilo::$sarakenimi_salasana); $tallennuspalaute = parent::tallenna_uusi(); } else { $tallennuspalaute = Malliluokkapohja::$VIRHE; // Virheen sattuessakin koodataan salasana (ks tallenna_muutokset()): $koodattu = md5($this->get_arvo(Henkilo::$sarakenimi_salasana)); $this->set_arvo($koodattu, Henkilo::$sarakenimi_salasana); } return $tallennuspalaute; }