/** * 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; }
/** * Toteuttaa koosteryhmittelylomakkeen näyttämisen. Tarkoitus on toteuttaa * lomake, jonka avulla voi luoda uuden tai muokata vanhaa elementtiryhmää. * Elementtiryhmään valitaan halutut elementit koosteen elementeistä, joten * sen kauempaa ei valittavia tarvitse hakea. * * HUOM! Valittaviin elementteihin otettavat elementit tarkistetaan * käyttöoikeuksien näkokulmasta, eikä mukaan oteta sellaisia, joihin * käyttäjällä ei ole vähintään katseluoikeutta. * * @param Palaute $palauteolio */ public function toteuta_nayta_ryhmittelylomake(&$palauteolio) { $parametriolio = $this->get_parametriolio(); $parametriolio->naytettava = Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTERYHMITTELYLOMAKE; $palauteolio->set_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTERYHMITTELYLOMAKE); $tietokantaolio = $parametriolio->get_tietokantaolio(); $kooste = $this->get_olio(); $tuloste = ""; if ($kooste instanceof Kooste) { // Haetaan mahdollinen vanha (muokattava) elementtiryhmä: $elemryhma_id = $parametriolio->elemryhma_id; $elemryhma = new Elementtiryhma($elemryhma_id, $tietokantaolio); // Huom! Ei mitään tarkistusta, joten pitää alla tarkistaa! $elementit = $kooste->hae_elementit(); // Tehdään taulukko, johon siirretään ne elementit, joihin // vähintään katseluoikeus: $tarkistetut_elementit = array(); $omaid = $parametriolio->get_omaid(); foreach ($elementit as $kandielem) { $kohdeoikeudet = $kandielem->hae_kayttajan_oikeudet_viittausolioon($omaid) + 0; $minimioikeus = Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA; // Jos vähintään näkeminen sallittu: if ($kohdeoikeudet >= $minimioikeus) { array_push($tarkistetut_elementit, $kandielem); } } $tuloste = $this->koostenakymat->nayta_elemryhmalomake($kooste, $elemryhma, $parametriolio, $tarkistetut_elementit); } // Luodaan paluu-painike: $elem_id = Elementti::$MUUTTUJAA_EI_MAARITELTY; // Tarpeeton. $paluupainike_koosteisiin = $this->koostenakymat->nayta_painike_paluu_koosteeseen($kooste->get_id(), $elem_id); // Tämä palauttaa kokonaisuusnäkymään: $paluupainike = $this->paluupainike; $palauteolio->set_sisalto($tuloste); $palauteolio->set_linkkihtml($paluupainike . $paluupainike_koosteisiin); $palauteolio->set_nayta_kiintolinkit(false); $palauteolio->set_valikkonaytto(false); $palauteolio->set_nayttotapa(Html_koodi::$sisaltoelem_levea); }