/** * Luo testiratkaisun ja palauttaa Palauteolio-luokan olion. * * @param type $parametriolio */ private function luo_testiratkaisu() { /************** UUDEN RATKAISUN TALLENNUS *********************************/ $palaute = new Palaute(); if ($this->kokon1 instanceof Kokonaisuusolio && $this->teht1 instanceof Tehtava) { $id_kokon = $this->kokon1->get_id(); $id_teht = $this->teht1->getId(); $id_ratk = -1; $this->parametriolio->vastaus_ratk = "Vastaus"; $this->parametriolio->ratkaisu_ratk = "Ratkaisu"; $this->ratkaisukontrolleri->toteuta_tallenna_uusi($palaute); } else { $this->lisaa_virheilmoitus("Virhe: kokon1 tai teht1 ei ole oikea olio!"); $palaute->set_virhekoodi(Palaute::$VIRHEKOODI_YLEINEN); } return $palaute; }
$palauteolio = toteuta_nayta_kuvalomake($parametriolio); } else { if ($tehtavatoiminto == Painikkeet::$palaa_tehtaviin_value) { $tehtavakontrolleri->toteuta_nayta_tehtavat($palauteolio); } else { if ($tehtavatoiminto == Painikkeet::$ratkaisu_nayta_ratkaisut_value) { $ratkaisukontrolleri->toteuta_nayta($palauteolio); } else { if ($tehtavatoiminto == Painikkeet::$ratkaisu_uusi_value) { $ratkaisukontrolleri->toteuta_ratkaisulomakkeen_naytto($palauteolio); } else { if ($tehtavatoiminto == Painikkeet::$ratkaisu_muokkaa_value) { $ratkaisukontrolleri->toteuta_ratkaisulomakkeen_naytto($palauteolio); } else { if ($tehtavatoiminto == Painikkeet::$ratkaisu_tallenna_uusi_value) { $ratkaisukontrolleri->toteuta_tallenna_uusi($palauteolio); } else { if ($tehtavatoiminto == Painikkeet::$ratkaisu_tallenna_muokkaus_value) { $ratkaisukontrolleri->toteuta_tallenna_muokkaus($palauteolio); } else { if ($tehtavatoiminto == Painikkeet::$ratkaisu_poistovahvistus_value) { $ratkaisukontrolleri->toteuta_poista($palauteolio); } else { if ($tehtavatoiminto == Painikkeet::$ratkaisu_poista_value) { $ratkaisukontrolleri->toteuta_nayta_poistovarmistus($palauteolio); } else { if ($tehtavatoiminto == Painikkeet::$ratkaisu_peruminen_value) { $ratkaisukontrolleri->toteuta_peru_ratkaisun_muokkaus($palauteolio); } else { if ($tehtavatoiminto == Painikkeet::$ratkaisu_peru_uuden_tallennus_value) { $ratkaisukontrolleri->toteuta_uuden_ratkaisun_peruutus($palauteolio);
/** * Luo testiratkaisun ja palauttaa Ratkaisu-luokan olion, tai arvon * Pohja::$VIRHE. * * create table ratkaisut ( id mediumint auto_increment not null, tehtava_id mediumint not null, henkilo_id smallint not null, luomishetki_sek int not null, ed_muutos_sek int not null, vastaus varchar(1000), ratkaisu varchar(10000) not null, primary key (id), index(tehtava_id), FOREIGN KEY (tehtava_id) REFERENCES tehtavat (id) ON DELETE CASCADE ) ENGINE=INNODB; * * @param type $parametriolio */ private function luo_testiratkaisu() { $jatkolupa = false; $palaute = Pohja::$VIRHE; $ratkaisukontrolleri = new Ratkaisukontrolleri($this->tietokantaolio, $this->parametriolio); // Luodaan ensin testikokonaisuus: $this->parametriolio->set_omaid($this->testihenkilo->get_id()); $palauteolio_kokon = $this->kok_teht_ratk_testiolio->luo_testikokonaisuus("Otsikko", "Testikokonaisuus", -1); if (!$palauteolio_kokon->operaatio_onnistui()) { $this->lisaa_virheilmoitus("Testikokonaisuuden luominen epäonnistui!" . " <br/>" . $palauteolio_kokon->get_ilmoitus()); } else { $this->testikokonaisuus = new Kokonaisuusolio($palauteolio_kokon->get_muokatun_id(), $this->tietokantaolio); if ($this->testikokonaisuus->olio_loytyi_tietokannasta) { $this->lisaa_kommentti("Testikokonaisuuden luominen ok "); // Luodaan testitehtava: $palauteolio_teht = $this->kok_teht_ratk_testiolio->luo_testitehtava($palauteolio_kokon->get_muokatun_id(), "TEstitehtava on tama kiva!"); if (!$palauteolio_teht->operaatio_onnistui()) { $this->lisaa_virheilmoitus("Testitehtavan luominen epäonnistui!" . " Ilmoitukset: " . $palauteolio_teht->get_ilmoitus()); } else { $this->lisaa_kommentti("Testitehtavän luominen ok"); $jatkolupa = true; } } else { $this->lisaa_virheilmoitus("Kokon_oliota ei löytynyt tietokannasta!"); } } /************** UUDEN RATKAISUN TALLENNUS *********************************/ if ($jatkolupa) { $parametriolio = $this->parametriolio; $palaute = Pohja::$VIRHE; $id_kokon = -1; // haetaan tietokannasta tehtävä, johon ratkaisu voidaan liittää: $id_teht = $palauteolio_teht->get_muokatun_id(); $osuma = new Tehtava($id_teht, $this->tietokantaolio); if ($osuma->olio_loytyi_tietokannasta) { $this->lisaa_kommentti("Luodaan sitten testiratkaisu."); $parametriolio->id_teht = $id_teht; $parametriolio->vastaus_ratk = "Vastaus"; $parametriolio->ratkaisu_ratk = Kayttajatestaus::$testi_ratkaisu; // Laitetaan ratkaisun luojaksi testiomistaja $parametriolio->set_omaid($this->testiomistaja->get_id()); // Satunnainen id. $palauteolio = new Palaute(); $ratkaisukontrolleri->toteuta_tallenna_uusi($palauteolio); $tallennettu = new Ratkaisu($palauteolio->get_muokatun_id(), $this->tietokantaolio); if ($tallennettu->olio_loytyi_tietokannasta) { $this->lisaa_kommentti("Ratkaisun tallennus ok (omistaja testiomistaja)!! Ratkaisu = " . $tallennettu->getRatkaisu()); } else { $this->lisaa_virheilmoitus("Ratkaisun tallennus ei ok!!"); } // Tarkistetaan onnistuiko: if (!$palauteolio->operaatio_onnistui()) { $this->lisaa_virheilmoitus("<div class='virhe'>Virhe uuden ratkaisun" . " tallennuksessa (Kayttajatestaus-" . "toteuta_uuden_ratkaisun_tallennus) </div>" . $ratkaisukontrolleri->tulosta_virheilmoitukset() . $palauteolio->get_ilmoitus()); } else { // haetaan tietokannasta: $id = $palauteolio->get_muokatun_id(); $ratk = new Ratkaisu($id, $this->tietokantaolio); if ($ratk->olio_loytyi_tietokannasta) { $palaute = $ratk; } else { $this->lisaa_virheilmoitus("Testiratkaisua ei löytynyt tietokannasta!"); } } } else { $this->lisaa_virheilmoitus("Yhtään tehtävää ei löytynyt! Luo yksi ensin!"); } } return $palaute; }