Пример #1
0
 /**
  * Toteuttaa nimenmukaisen toiminnon. 
  * @return Palauteolio $palauteolio
  */
 public function toteuta_nayta_havainto_ja_kuva_siirtolomake()
 {
     $lajiluokkaolio = new Lajiluokka($this->tietokantaolio, $this->parametriolio->id_lj);
     $sisaret = array();
     // Muut lajiluokat.
     $this->parametriolio->kieli_id = Kielet::$SUOMI;
     // Haetaan suomenkielinen nimi, tai latina, ellei suomeksi löydy.
     // Tarkistetaan ensin, että lajiluokkaolio kunnossa:
     if ($lajiluokkaolio->olio_loytyi_tietokannasta) {
         $kuvaus = $lajiluokkaolio->hae_kuvaus(Kielet::$SUOMI);
         if ($kuvaus === Lajiluokka::$MUUTTUJAA_EI_MAARITELTY) {
             $this->parametriolio->nimi_kuv = $lajiluokkaolio->get_nimi_latina();
         } else {
             $this->parametriolio->nimi_kuv = $kuvaus->get_nimi();
         }
         // Haetaan sisarlajit lajivalikkoa varten. Itseä ei mukaan!
         $kieli_id = $this->parametriolio->kieli_id;
         $itse_mukana = FALSE;
         $sisaret = $lajiluokkaolio->hae_sisarlajiluokat($kieli_id, $itse_mukana);
     } else {
         $this->parametriolio->nimi_kuv = "tuntematon";
     }
     $oletus_id_lj = $lajiluokkaolio->get_id();
     $sisarlajiluokat = $sisaret;
     $otsikko = "";
     $kieli_id = $this->parametriolio->kieli_id;
     $name_arvo = Bongausasetuksia::$havaintokuvasiirtolomakevalikko_name;
     $lajivalikko = Nakymat_lj::nayta_lajivalikko($oletus_id_lj, $sisarlajiluokat, $otsikko, $kieli_id, $name_arvo);
     $this->palauteolio->set_sisalto(Nakymat_lj::nayta_havaintojen_ja_kuvien_siirtolomake($this->parametriolio, $lajivalikko));
     return $this->palauteolio;
 }
Пример #2
0
 /**
  * Palauttaa lajiluokan nimen halutulla kielellä tai arvon
  * Bongaustekstit::$tuntematon.
  * @param type $id_lj
  * @param type $tietokantaolio
  * @param type $kieli_id 
  */
 public static function hae_lajiluokan_nimi($id_lj, $tietokantaolio, $kieli_id)
 {
     $nimi = Bongaustekstit::$tuntematon;
     $lajiluokka = new Lajiluokka($tietokantaolio, $id_lj);
     if ($lajiluokka->olio_loytyi_tietokannasta) {
         $kuvaus = $lajiluokka->hae_kuvaus($kieli_id);
         if ($kuvaus->olio_loytyi_tietokannasta) {
             $nimi = $kuvaus->get_nimi();
         }
     }
     return $nimi;
 }
Пример #3
0
 /**
  * Toteuttaa monen uuden havainnon tallennuksen.
  * @return \Palaute
  */
 public function toteuta_tallenna_monta_uutta()
 {
     $tietokantaolio = $this->get_tietokantaolio();
     $palauteolio = $this->get_palauteolio();
     // Sisältää valittujen lajiluokkien id:t.
     $valinnat = $this->get_parametriolio()->lajivalinnat_hav;
     $laskuri = 0;
     $tallennusten_lkm = 0;
     $virheiden_lkm = 0;
     $tallennetut_lajit = "";
     // Nimet kerätään tähän.
     foreach ($valinnat as $id_lj) {
         $uusi = new Havainto($this->tietokantaolio(), Havainto::$PARAMETRI_EI_KAYTOSSA);
         $uusi->set_henkilo_id($this->get_parametriolio()->omaid);
         $uusi->set_lajiluokka_id($id_lj);
         $uusi->set_paiva($this->get_parametriolio()->paiva_hav);
         $uusi->set_kk($this->get_parametriolio()->kk_hav);
         $uusi->set_vuosi($this->get_parametriolio()->vuosi_hav);
         $uusi->set_paikka($this->get_parametriolio()->paikka_hav);
         $uusi->set_kommentti($this->get_parametriolio()->kommentti_hav);
         $uusi->set_maa($this->get_parametriolio()->maa_hav);
         $uusi->set_varmuus($this->get_parametriolio()->varmuus_hav);
         if ($uusi->tallenna_uusi() === Havainto::$OPERAATIO_ONNISTUI) {
             $tallennusten_lkm++;
             // Haetaan nimi tallennetulle:
             $nimi = Bongaustekstit::$nimi_tuntematon;
             $lajiluokka = new Lajiluokka($tietokantaolio, $id_lj);
             if ($lajiluokka->olio_loytyi_tietokannasta) {
                 $kuvaus = $lajiluokka->hae_kuvaus($this->get_parametriolio()->kieli_id);
                 if ($kuvaus instanceof Kuvaus) {
                     if ($laskuri == 0) {
                         $nimi = $kuvaus->get_nimi();
                     } else {
                         $nimi = ", " . $kuvaus->get_nimi();
                     }
                 }
             }
             $tallennetut_lajit .= $nimi;
         } else {
             $virheiden_lkm++;
         }
         $laskuri++;
     }
     // Aktiivisuusmerkintä (vain kerran):
     $viimeksi_aktiivi = time();
     $aktiivisuuslaji = Aktiivisuus::$HAVAINTO_UUDEN_TALLENNUS;
     paivita_aktiivisuus($this->get_parametriolio()->omaid, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji);
     // Palautteet:
     if ($tallennusten_lkm == sizeof($valinnat)) {
         $kommentti = $tallennusten_lkm . " " . Bongaustekstit::$ilm_havaintojen_lisays_ok . " (" . $tallennetut_lajit . ")";
     } else {
         $kommentti = $virheiden_lkm . " " . Bongaustekstit::$ilm_havaintojen_lisays_eiok;
     }
     $palauteolio->set_ilmoitus($kommentti);
     // Avataan havainnot.
     $palauteolio->set_sisalto($this->toteuta_nayta()->get_sisalto());
     return $palauteolio;
 }
Пример #4
0
 /**
  * Palauttaa yhden olion tiedot taulukkoriviin pakattuna (tr-elementti).
  * Huomaa huolehtia muista taulukkotageista!
  * @param \Havainto $hav
  * @param int $rivinro Taulukon rivin juokseva nro alkaen yhdestä.
  * @param bool $erikoisvarustelu TRUE -> sopii poistovahvistukseen jne.
  * @return type
  */
 public function luo_taulukkorivi($hav, $rivinro, $erikoisvarustelu)
 {
     $rivi_class = "";
     if ($rivinro % 2 == 0) {
         $rivi_class = Bongausasetuksia::$havaintotaulu_parillinenrivi_class;
     }
     $rivi_id = "havainto" . $hav->get_id();
     // Haetaan sitten lajiluokan nimi (kieli saadaan parametrioliosta:
     $lj = new Lajiluokka($this->tietokantaolio, $hav->get_lajiluokka_id());
     $kuvaus = $lj->hae_kuvaus($this->parametriolio->kieli_id);
     if ($kuvaus === Lajiluokka::$MUUTTUJAA_EI_MAARITELTY) {
         $nimi = $lj->get_nimi_latina();
     } else {
         $nimi = $kuvaus->get_nimi();
     }
     $bongaajan_nimi = hae_henkilon_nimi($hav->get_henkilo_id(), true, $this->tietokantaolio);
     //========================== PIkakommentit =========================
     // Toiminnot on tässä vaiheessa valintaruutu. Hakasulut pitää lisätä!
     $maar_array_valinnat = array(Maarite::name(Bongausasetuksia::$havaintovalinta_id_taulukko_name . "[]"), Maarite::value($hav->get_id()));
     $toimintasolu = Html::luo_tablesolu(Html::luo_checkbox($maar_array_valinnat), array());
     // Esim. poistovahvistuksessa valinta oletuksena päällä (koska nämä
     // on valittu):
     if ($erikoisvarustelu) {
         Maarite::lisaa_maarite(Maarite::checked(), $maar_array_valinnat);
         $toimintasolu = Html::luo_tablesolu(Html::luo_checkbox($maar_array_valinnat), array());
     }
     //========================== PIkakommentit =========================
     $pikakommenttisolu = "";
     $kommenttien_lkm = 0;
     $on_uusia_pk = false;
     $pikakommentit = Pikakommentti::hae_pikakommentit($this->parametriolio->omaid, Pikakommentti::$KOHDE_BONGAUS, $hav->get_id(), $this->tietokantaolio);
     // Jos viimeistä katseluaikaa ei ole asetettu, asetetaan 0:
     if (!isset($_SESSION['edellinen_uloskirjausaika_sek'])) {
         $_SESSION['edellinen_uloskirjausaika_sek'] = 0;
     }
     // Korostetaan solu, jos uusin on riittävän uusi eikä oma:
     if (!empty($pikakommentit)) {
         $kommenttien_lkm = sizeof($pikakommentit);
         if ($pikakommentit[0]->get_tallennushetki_sek() > $_SESSION['edellinen_uloskirjausaika_sek'] && $pikakommentit[0]->get_henkilo_id() != $this->parametriolio->omaid) {
             $on_uusia_pk = true;
         }
     }
     // Taulukon solun muotoilu:
     $onclick = Maarite::onclick("hae_pikakommentit", array(Pikakommentti::$KOHDE_BONGAUS, $hav->get_id()));
     $pk_class = "";
     if ($on_uusia_pk) {
         $pk_class = "on_uusia";
     }
     $pikakommenttisolu = Html::luo_tablesolu(Html::luo_span($kommenttien_lkm, array(Maarite::id("id" . $hav->get_id()))), array(Maarite::classs($pk_class), Maarite::title(Bongaustekstit::$ilm_pikakommentit_nakyviin), Maarite::onclick("hae_pikakommentit", array(Pikakommentti::$KOHDE_BONGAUS, $hav->get_id()))));
     //============= PIkakommentit loppu ================================
     // Muokataan varmuus- ja maamerkinnät:
     // Maa merkitään, ellei Suomi:
     if ($hav->get_maa() == Maat::$suomi) {
         $maa = "";
     } else {
         $maa = " (" . Maat::hae_maan_kuvaus($hav->get_maa()) . ")";
     }
     // Vain epävarmuus näytetään
     $varmuus = "";
     if ($hav->get_varmuus() == Varmuus::$epavarma) {
         $varmuus = " (?)";
     }
     // Haetaan kuva_id ja koodi:
     $kuvaolio = $hav->hae_kuva();
     if ($kuvaolio instanceof Kuva) {
         $kuvakoodi = $kuvaolio->nayta_pelkka_kuva($this->parametriolio->kuvien_kansio_osoite);
         $kuva_id = $kuvaolio->getId();
     } else {
         $kuvakoodi = "";
         $kuva_id = -1;
     }
     // Mahdollistetaan kuvan näyttö klikkaamalla:
     // Kuvaa klikkaamalla saadaan se isoksi:
     $klikkaus = "";
     // Tyhjä, ellei kuvakoodi ok.
     $title = "";
     if ($kuvakoodi != "") {
         $klikkaus = Maarite::onclick("hae_kuva_ja_tiedot", array($hav->get_lajiluokka_id(), $kuva_id, Kuva::$KUVAT_BONGAUS));
         $title = Bongaustekstit::$havtaulkuvan_klikkausohje;
     }
     return Html::luo_tablerivi(Html::luo_tablesolu($rivinro, array()) . Html::luo_tablesolu($nimi . $varmuus, array(Maarite::classs("huomio"), Maarite::title(Bongauspainikkeet::$HAVAINNOT_NAYTA_LAJIHAVAINNOT_TITLE), Maarite::onclick("hae_lajihavainnot", array($hav->get_lajiluokka_id())))) . Html::luo_tablesolu($hav->hae_pvm(), array()) . Html::luo_tablesolu($hav->get_paikka() . $maa, array()) . Html::luo_tablesolu(Html::luo_table(Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_span($hav->get_kommentti(), array(Maarite::classs(Bongausasetuksia::$havaintokuvakommentti_class))), array(Maarite::classs("rajaton"))) . Html::luo_tablesolu($kuvakoodi, array(Maarite::classs("rajaton"), $klikkaus, Maarite::title($title))), array()), array()), array(Maarite::name(Bongausasetuksia::$havaintotaulukon_kommenttisolun_name_arvo))) . Html::luo_tablesolu($bongaajan_nimi, array(Maarite::classs("huomio"), Maarite::title(Bongauspainikkeet::$HAVAINNOT_NAYTA_HENKILON_HAVAINNOT_TITLE), Maarite::onclick("hae_henkilon_havainnot", array($hav->get_henkilo_id(), $hav->get_lajiluokka_id())))) . $toimintasolu . $pikakommenttisolu, array(Maarite::classs($rivi_class), Maarite::id($rivi_id)));
 }