/**
 * 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 lukua eli lajitarkennusindeksiä vastaavan
  * lajitarkennuskuvauksen, tai
  * tekstin "Tuntematon", jos parametri on sopimaton.
  * @param <type> $arvo
  * @return <type>
  */
 public static function hae_lajitarkennuksen_kuvaus($arvo)
 {
     $kuvaus = "Tuntematon";
     // Jos parametri on ok, haetaan lajitarkennuksen nimi. Jos huomataan
     // jotakin outoa, palautetaan virheviesti.
     if (is_numeric($arvo)) {
         try {
             $kuvaukset = Lajitarkennukset::hae_lajitarkennuskuvaukset();
             $arvot = Lajitarkennukset::hae_lajitarkennusarvot();
             $i = 0;
             // Laskuri
             foreach ($arvot as $testiarvo) {
                 if ($arvo == $testiarvo) {
                     $kuvaus = $kuvaukset[$i];
                     break;
                 }
                 $i++;
             }
         } catch (Exception $poikkeus) {
             $kuvaus = $poikkeus->getMessage();
         }
     }
     return $kuvaus;
 }