/** * Palauttaa suoritustilaston taulukkoon muotoiltuna. * @param Parametrit $parametriolio * @return Palaute Palauttaa Palaute-luokan esiintymän. / */ function hae_suoritustilasto($parametriolio) { $tietokantaolio = $parametriolio->tietokantaolio; $omaid = $parametriolio->omaid; $palauteolio = new Palaute(); // Painikkeita: $muokkausnappi = ""; // Määritellään myöhemmin $poistonappi = ""; // Määritellään myöhemmin $paluunappi = ""; // Paluunappi perusnäkymään: $class = "rinnakkain"; $id = "paluunappi"; $action = "muistio.php"; $name = Muistiotoimintonimet::$perustoiminto; $value = Muistiopainikkeet::$paluu_perussuoritusnakymaan; $paluunappi = Html::luo_painikelomake($class, $id, $action, $name, $value); // Paluunappi lajitarkennusnäkymään: $class = "rinnakkain"; $id = "paluunappi"; $action = "muistio.php"; $name = Muistiotoimintonimet::$perustoiminto; $value = Muistiopainikkeet::$paluu_tilastot_lajeittain_nakymaan; $paluunappi2 = Html::luo_painikelomake($class, $id, $action, $name, $value); $otsikko = ""; if ($parametriolio->vain_omat_suoritukset) { $otsikko = $_SESSION['tiedot']->etunimi . " " . $_SESSION['tiedot']->sukunimi . ", "; } $otsikko .= Lajitarkennukset::hae_lajitarkennuksen_kuvaus($parametriolio->lajitarkennus); $otsikko .= $paluunappi2 . $paluunappi; if ($parametriolio->vain_omat_suoritukset) { $mj = "<table id = 'tulostaulu'>\n <tr><td id='kuukm' colspan='4'>{$otsikko}</td></tr>\n <tr>\n <th>Aika</th>\n <th>Kuvaus</th>\n <th>Pvm</th>\n <th>Toiminnot</th>\n </tr>"; } else { $mj = "<table id = 'tulostaulu'>\n <tr><td id='kuukm' colspan='5'>{$otsikko}</td></tr>\n <tr>\n <th>Aika</th>\n <th>Kuvaus</th>\n <th>Pvm</th>\n <th>Nimi</th>\n <th>Toiminnot</th>\n </tr>"; } // Tarkistetaan, haetaanko kaikki vaiko vain omat: if ($parametriolio->vain_omat_suoritukset) { $hakulause = "SELECT * FROM suoritukset\n WHERE (lajitarkennus= " . $parametriolio->lajitarkennus . " AND henkilo_id = " . $omaid . ")\n ORDER by kestotunnit, kestomin, kestosek;"; } else { $hakulause = "SELECT * FROM suoritukset\n WHERE lajitarkennus= '" . $parametriolio->lajitarkennus . "' " . "ORDER by kestotunnit, kestomin, kestosek;"; //ORDER by henkilo_id, kestotunnit, kestomin, kestosek;" } $osumaoliot = $tietokantaolio->tee_OMAhaku_oliotaulukkopalautteella($hakulause); if (empty($osumaoliot)) { $mj .= "<tr><td colspan=5>" . Muistiotekstit::$suorituksia_ei_loytynyt . "</td></tr>"; } else { $laskuri = 0; foreach ($osumaoliot as $suoritus) { // Painikkeet: $class = "rinnakkain"; $id = "muokkausnappi"; $action = "muistio.php?" . URL_muuttujat::$suoritus_id . "=" . $suoritus->id . "&" . URL_muuttujat::$valinnat . "=" . $suoritus->id . "&" . URL_muuttujat::$lajitarkennus . "=" . $suoritus->lajitarkennus . "&" . URL_muuttujat::$paluunakyma . "=" . Muistio_yleisia_arvoja::$nakyma_tulostilasto; $name = Muistiotoimintonimet::$perustoiminto; $value = Muistiopainikkeet::$muokkausnappikomento_lyhyt; $muokkausnappi = Html::luo_painikelomake($class, $id, $action, $name, $value); $id = "poistonappi"; $value = Muistiopainikkeet::$poistonappikomento_lyhyt; $poistonappi = Html::luo_painikelomake($class, $id, $action, $name, $value); // Haetaan henkilön nimi: $nimi = hae_henkilon_nimi($suoritus->henkilo_id, false, $parametriolio->tietokantaolio); // Muotoillaan aika: $aika = muotoile_suorituksen_kesto($suoritus->kestotunnit, $suoritus->kestomin, $suoritus->kestosek, $suoritus->kesto); if ($laskuri % 2 != 0) { $mj .= "<tr class='parillinen_rivi'>"; } else { $mj .= "<tr>"; } // Nämä tulevat kaikkiin: $mj .= "<td>{$aika}</td>" . "<td>{$suoritus->kuvaus}</td>" . "<td class='aikasolu'>" . anna_viikonp_suomeksi($suoritus->paiva, $suoritus->kk, $suoritus->vuosi, true) . " " . $suoritus->paiva . "." . $suoritus->kk . "." . $suoritus->vuosi . "</td>"; // Lisätään nimi, jos näytetään kaikki: if ($parametriolio->vain_omat_suoritukset == false) { $mj .= "<td>{$nimi}</td>"; } // Toiminnot tulevat kaikkiin omiin ja adminille: if ($suoritus->henkilo_id == $parametriolio->omaid || $parametriolio->get_kayttajan_valtuudet() == Valtuudet::$HALLINTA) { $mj .= "<td>" . $muokkausnappi . $poistonappi . "</td>"; } else { $mj .= "<td></td>"; } // Lopuksi suljetaan taulukon rivi: $mj .= "</tr>"; $laskuri++; } } $mj .= "</table>"; $palauteolio->set_sisalto($mj); $palauteolio->set_nayta_kiintolinkit(false); return $palauteolio; }
/** * 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ä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; }
/** * Palauttaa pvm:n ja ajan, jotka saadaan parametrista, joka on * time()-funktion lähetyshetkenä antama arvo sekunteina vuoden 1970 alusta. * @param int $timestamp time()-funktion palauttama arvo (sekuntien määrä). * @return String Palauttaa html-tekstinä viikonpäivänä, päivämäärän ja * kellonajan. */ function anna_pvm_ja_aika($timestamp) { $aikataul = getdate($timestamp); // Viikonpäivä: $tuloshtml = anna_viikonp_suomeksi($aikataul['mday'], $aikataul['mon'], $aikataul['year'], true); //pvm: $tuloshtml .= date(" j.n.Y \\k\\l\\o H:i:s", $timestamp); return $tuloshtml; }