Beispiel #1
0
 /**
  * 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;
 }
Beispiel #3
0
 /**
  * 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;
 }