Пример #1
0
/**
 * Palauttaa yhdestä lajista tehdyt havainnot taulukkoon muotoiltuna.
 * @param Parametrit $parametriolio
 * @return <type> 
 */
function hae_lajiluokan_havainnot($parametriolio)
{
    $tietokantaolio = $parametriolio->tietokantaolio;
    $henkilo_id = $parametriolio->henkilo_id;
    // Painikkeita:
    $muokkausnappi = "";
    // Määritellään myöhemmin
    $poistonappi = "";
    // Määritellään myöhemmin
    $sulkemisnappi = "<button type='button' onclick='sulje_ruutu(\"" . Bongausasetuksia::$havaintotietotaulun_id . "\")'>" . Bongauspainikkeet::$HAVAINNOT_SULJE_HENKILON_HAVAINNOT_VALUE . "</button>";
    $tulos = "";
    // Tässäpä lausetta kerrakseen.
    $hakulause = "SELECT \n                        bhavainnot.id AS hav_id,\n                        henkilot.etunimi AS nimi,\n                        henkilot.id AS henk_id,\n                        henkilot.valtuudet AS henk_valtuudet,\n                        bkuvaukset.nimi AS laji,\n                        bhavainnot.paikka AS paikka,\n                        bhavainnot.kommentti AS kommentti,\n                        bhavainnot.vuosi AS vuosi,\n                        bhavainnot.kk AS kk,\n                        bhavainnot.paiva AS paiva,\n                        bhavainnot.maa AS maa,\n                        bhavainnot.varmuus AS varmuus\n                FROM blajiluokat\n                JOIN bkuvaukset\n                ON bkuvaukset.lajiluokka_id = blajiluokat.id\n                JOIN bhavainnot\n                ON bhavainnot.lajiluokka_id = blajiluokat.id\n                JOIN henkilot\n                ON bhavainnot.henkilo_id = henkilot.id\n                WHERE (bkuvaukset.kieli= " . $parametriolio->kieli_kuv . " AND blajiluokat.id = " . $parametriolio->id_lj . ")\n                ORDER by vuosi DESC, kk DESC, paiva DESC, laji;\n               ";
    $havaintohaku = $tietokantaolio->tee_OMAhaku($hakulause);
    $havaintotaulu = $tietokantaolio->hae_osumarivit_olioina($havaintohaku);
    if (empty($havaintotaulu)) {
        $tulos = "<div class=" . Bongausasetuksia::$tietotauluotsikko_class . ">" . $sulkemisnappi . "</div>";
        $tulos .= "<table class = " . Bongausasetuksia::$tietotaulun_class . ">\n                <tr>\n                <th>" . Bongaustekstit::$ilm_ei_havaintoja . "</th></tr></table>";
    } else {
        // Muotoillaan tiedot nätisti:
        $tulos = "<div class=" . Bongausasetuksia::$tietotauluotsikko_class . ">" . "Havainnot (" . $havaintotaulu[0]->laji . ")" . $sulkemisnappi . "</div>";
        $omaid = $parametriolio->omaid;
        $tulos .= "<table class = " . Bongausasetuksia::$tietotaulun_class . ">\n            <tr>\n                <th>Nro</th>\n                <th>Havaitsija</th>\n                <th>Aika</th>\n                <th>Paikka</th>\n                <th>Tunnistus</th>\n                <th>Toiminnot</th>\n            </tr>";
        $laskuri = 1;
        // Auttaa joka toisen rivin eri v&auml;riseksi.
        foreach ($havaintotaulu as $havainto) {
            // Määritellään omille havainnoille muokkaus- ja poistopainikkeet:
            // painike, josta saa näkyviin havaintolomakkeen:
            $muokkausnappi = "";
            // Nollataan, ettei kummittele!
            $poistonappi = "";
            $toimintopainikkeet = "<td></td>";
            // Omistajalle ja hallitsijalle ei-tyhjä.
            // Omiin havaintoihin ja hallitsijan oikeuksilla saa muokata ja
            // poistaa
            if ($havainto->henk_id == $omaid || $omaid == Valtuudet::$HALLINTA) {
                $class = "rinnakkain";
                $id = "";
                $action = "index.php?id_hav=" . $havainto->hav_id . "&id_lj=" . $parametriolio->id_lj;
                $name = Bongaustoimintonimet::$havaintotoiminto;
                $value = Bongauspainikkeet::$MUOKKAA_HAVAINTO_VALUE;
                $muokkausnappi = Html::luo_painikelomake($class, $id, $action, $name, $value);
                $name = Bongaustoimintonimet::$havaintotoiminto;
                $value = Bongauspainikkeet::$POISTA_HAVAINTO_VALUE;
                $poistonappi = Html::luo_painikelomake($class, $id, $action, $name, $value);
                $toimintopainikkeet = "<td>" . $muokkausnappi . $poistonappi . "</td>";
            }
            // Maa :
            $maa = " (" . Maat::hae_maan_kuvaus($havainto->maa) . ")";
            // Vain epävarmuus näytetään
            $varmuus = "Ok";
            if ($havainto->varmuus == Varmuus::$epavarma) {
                $varmuus = "?";
            }
            // Muokataan aika:
            $aika = anna_viikonp_suomeksi($havainto->paiva, $havainto->kk, $havainto->vuosi, true) . " " . $havainto->paiva . "." . $havainto->kk . "." . $havainto->vuosi;
            $henk_tiedot = $havainto->nimi;
            if ($laskuri % 2 == 0) {
                $tulos .= "<tr class =" . Bongausasetuksia::$tietotaulu_parillinenrivi_class . ">";
            } else {
                $tulos .= "<tr>";
            }
            $tulos .= "<td>" . $laskuri . "</td>";
            $tulos .= "<td>" . $havainto->nimi . "</td>";
            $tulos .= "<td>" . $aika . "</td>";
            $tulos .= "<td>" . $havainto->paikka . $maa . "</td>";
            $tulos .= "<td>" . $varmuus . "</td>";
            $tulos .= $toimintopainikkeet;
            $tulos .= "</tr>";
            $laskuri++;
        }
        $tulos .= "</table>";
    }
    return $tulos;
}
Пример #2
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)));
 }