예제 #1
0
/**
 * 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;
}
예제 #2
0
 /**
  * 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);
 }