public function testUpdate()
 {
     //Datensatz anlegen
     $studienordnung = new studienordnung();
     $studienordnung->studiengang_kz = 0;
     $studienordnung->version = 'V1.9';
     $studienordnung->bezeichnung = 'UnitTestStudienordnungUPD';
     $studienordnung->ects = '3.2';
     $studienordnung->gueltigvon = 'WS2012';
     $studienordnung->gueltigbis = 'SS2014';
     $studienordnung->studiengangbezeichnung = 'Unit Test';
     $studienordnung->studiengangbezeichnung_englisch = 'Unit Test English';
     $studienordnung->studiengangkurzbzlang = 'UTLang';
     $studienordnung->akadgrad_id = 0;
     $studienordnung->max_semester = 6;
     $studienordnung->insertvon = 'unittest';
     $studienordnung->save();
     $studienordnung_id = $studienordnung->studienordnung_id;
     //Aktualisieren
     $studienordnung = new studienordnung();
     $studienordnung->loadStudienordnung($studienordnung_id);
     $studienordnung->bezeichnung = 'UnitTestStudienordnungäöü\'"éè$"!';
     $studienordnung->updatevon = 'unittest';
     $studienordnung->save();
     //Ergebnis vergleichen
     $this->assertEquals('UnitTestStudienordnungäöü\'"éè$"!', $studienordnung->bezeichnung);
     $this->assertEquals('unittest', $studienordnung->updatevon);
 }
 $student_studienjahr = round($ausbildungssemester / 2);
 $jahr1 = mb_substr($studiensemester_kurzbz, 2);
 $jahr2 = mb_substr($studiensemester_kurzbz2, 2);
 $studienjahr = $jahr1 > $jahr2 ? $jahr2 . '/' . $jahr1 : $jahr1 . '/' . $jahr2;
 $studiengang = new studiengang();
 $studiengang->load($student->studiengang_kz);
 $prestudent = new prestudent();
 $prestudent->getLastStatus($student->prestudent_id, $studiensemester_kurzbz);
 if ($prestudent->studienplan_id == '') {
     die('keine Studienplan Zuordnung fuer ' . $student->nachname);
 }
 $studienplan = new studienplan();
 if (!$studienplan->loadStudienplan($prestudent->studienplan_id)) {
     die('Studienplan ungueltig');
 }
 $studienordnung = new studienordnung();
 if (!$studienordnung->loadStudienordnung($studienplan->studienordnung_id)) {
     die('Studienordnung ungueltig');
 }
 $xml .= "\n\t<zeugnis>";
 $xml .= "\n\t\t<semester>" . $ausbildungssemester . "</semester>";
 $xml .= "\n\t\t<studienjahr>" . $studienjahr . "</studienjahr>";
 $xml .= "\n\t\t<student_studienjahr>" . $student_studienjahr . "</student_studienjahr>";
 $xml .= "\n\t\t<studiengang>" . $studienordnung->studiengangbezeichnung . "</studiengang>";
 $xml .= "\n\t\t<studiengang_englisch>" . $studienordnung->studiengangbezeichnung_englisch . "</studiengang_englisch>";
 $xml .= "\n\t\t<studiengang_typ>" . $studiengang->typ . "</studiengang_typ>";
 $xml .= "\n\t\t<studiengang_kz>" . sprintf('%04s', abs($studiengang->studiengang_kz)) . "</studiengang_kz>";
 $xml .= "\n\t\t<anrede>" . $student->anrede . "</anrede>";
 $xml .= "\n\t\t<vorname>" . $student->vorname . "</vorname>";
 $xml .= "\n\t\t<nachname>" . $student->nachname . "</nachname>";
 $xml .= "\n\t\t<name>" . trim($student->titelpre . ' ' . trim($student->vorname . ' ' . $student->vornamen) . ' ' . mb_strtoupper($student->nachname) . ($student->titelpost != '' ? ', ' . $student->titelpost : '')) . "</name>";
        $qry .= " AND lehrveranstaltung_id NOT IN (SELECT lehrveranstaltung_id\n\t\tFROM\n\t\t\tlehre.tbl_lehrveranstaltung\n\t\t\tJOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id)\n\t\t\tJOIN lehre.tbl_studienplan USING(studienplan_id)\n\t\t\tJOIN lehre.tbl_studienordnung USING(studienordnung_id)\n\t\t\tJOIN lehre.tbl_studienordnung_semester USING(studienordnung_id)\n\t\tWHERE\n\t\t\ttbl_lehrveranstaltung.oe_kurzbz=(Select oe_kurzbz from public.tbl_fachbereich where fachbereich_kurzbz=" . $db->db_add_param($fachbereich_kurzbz) . ")\n\t\t\tAND tbl_studienordnung_semester.studiensemester_kurzbz=" . $db->db_add_param($semester_aktuell) . ")";
    }
} elseif ($oe_kurzbz != '') {
    $qry = "\n\t\tSELECT\n\t\t\tdistinct on (lehrveranstaltung_id)\n\t\t\ttbl_lehrveranstaltung.studiengang_kz as lv_studiengang_kz, tbl_lehrveranstaltung.semester as lv_semester,\n\t\t\ttbl_lehrveranstaltung.kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, tbl_lehrveranstaltung.ects as lv_ects,\n\t\t\ttbl_lehrveranstaltung.lehreverzeichnis as lv_lehreverzeichnis, tbl_lehrveranstaltung.planfaktor as lv_planfaktor,\n\t\t\ttbl_lehrveranstaltung.planlektoren as lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten as lv_planpersonalkosten,\n\t\t\ttbl_lehrveranstaltung.plankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz as lv_orgform_kurzbz,\n\t\t\ttbl_lehrveranstaltung.lehrveranstaltung_id,\n\t\t\ttbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz, \n\t\t\ttbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz,\n\t\t\ttbl_lehrveranstaltung.bezeichnung_english as lv_bezeichnung_english,\n\t\t\ttbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.anmerkung, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.semesterstunden,\n\t\t\ttbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv, \n\t\t\t'' as studienplan_id, '' as studienplan_bezeichnung, tbl_lehrveranstaltung.lehrtyp_kurzbz\n\t\tFROM\n\t\t\tlehre.tbl_lehrveranstaltung\n\t\tWHERE\n\t\t\ttbl_lehrveranstaltung.oe_kurzbz=" . $db->db_add_param($oe_kurzbz) . "\n\t\t\tAND tbl_lehrveranstaltung.aktiv\n\t\t";
    if (isset($sem) && $sem != '') {
        $qry .= " AND tbl_lehrveranstaltung.semester=" . $db->db_add_param($sem);
    }
} else {
    if ($sem == '') {
        $sem = null;
    }
    if ($orgform == '') {
        $orgform = null;
    }
    $stp_ids = array();
    $sto_obj = new studienordnung();
    if ($sto_obj->loadStudienordnungSTG($stg_kz, $semester_aktuell, $sem)) {
        foreach ($sto_obj->result as $row_sto) {
            $stp_obj = new studienplan();
            if ($stp_obj->loadStudienplanSTO($row_sto->studienordnung_id, $orgform)) {
                foreach ($stp_obj->result as $row_stp) {
                    $stp_ids[] = $row_stp->studienplan_id;
                }
            }
        }
    } else {
        echo "FAILED:" . $sto_obj->errormsg;
    }
    $qry = '';
    if (count($stp_ids) > 0) {
        // Alle Lehrveranstaltungen die lt Studienplan zugeordnet sind
 public function testLoadStudienordnungStudiengang()
 {
     //Datensatz anlegen
     $studienordnung = new studienordnung();
     $this->assertTrue($studienordnung->loadStudienordnungSTG(0));
 }
     $studiensemester_kurzbz = $_REQUEST['studiensemester_kurzbz'];
     $ausbildungssemester = $_REQUEST['ausbildungssemester'];
     $studienordnung = new studienordnung();
     $studienordnung->loadStudienordnung($studienordnung_id);
     if ($result = $studienordnung->saveSemesterZuordnung($studienordnung_id, $studiensemester_kurzbz, $ausbildungssemester)) {
         $data['result'] = $result;
         $data['error'] = 'false';
         $data['errormsg'] = '';
     } else {
         $data['error'] = 'true';
         $data['errormsg'] = $studienordnung->errormsg;
     }
     break;
 case 'copyStudienordnung':
     $studienordnung_id = $_REQUEST['studienordnung_id'];
     $studienordnung = new studienordnung();
     if ($studienordnung->loadStudienordnung($studienordnung_id)) {
         // Studienordnung anlegen
         $studienordnung->new = true;
         $studienordnung->bezeichnung .= ' Kopie 1';
         $studienordnung->insertamum = date('Y-m-d H:i:s');
         $studienordnung->insertvon = $uid;
         if ($studienordnung->save()) {
             $studienordnung_id_neu = $studienordnung->studienordnung_id;
             // Studienplaene kopieren
             $studienplan = new studienplan();
             if ($studienplan->loadStudienplanSTO($studienordnung_id)) {
                 foreach ($studienplan->result as $studienplan_obj) {
                     $stpllv_ID_Array = array();
                     $lvregel_ID_Array = array();
                     $studienplan_obj->studienordnung_id = $studienordnung_id_neu;
        $obj->insertamum = date('Y-m-d H:i:s');
    }
    if (!$error) {
        // Attribute zuweisen zum Speichern
        foreach ($savedata as $key => $value) {
            $obj->{$key} = $value;
        }
    }
} elseif (mb_stristr($method, 'delete')) {
    if (!$rechte->isBerechtigt("lehre/studienordnung")) {
        if (!$rechte->isBerechtigt("lehre/studienordnungInaktiv")) {
            die('Sie haben keine Berechtigung fuer diesen Vorgang. Recht: lehre/studienordnung');
        } else {
            $studienplan = new studienplan();
            $studienplan->loadStudienplanLehrveranstaltung($_REQUEST['parameter_0']);
            $studienordnung = new studienordnung();
            $studienordnung->getStudienordnungFromStudienplan($studienplan->studienplan_id);
            if ($studienordnung->isAktiv($studienordnung->studienordnung_id)) {
                die('Sie haben keine Berechtigung fuer diesen Vorgang. Studienordnung ist aktiv.');
            }
        }
    }
}
$return = '';
if (!$error && ($return = call_user_func_array(array($obj, $method), $parameter))) {
    $data['result'] = $obj->cleanResult();
    $data['return'] = $return;
    $data['error'] = 'false';
    $data['errormsg'] = '';
} else {
    $data['result'] = '';