/**
  * Prüft ob das Modul für den Studierenden abgeschlossen ist
  * @param $uid UID des Studierenden
  * @param $studienplan_lehrveranstaltung_id ID der Lehrveranstaltungszuordnung
  */
 public function isAbgeschlossen($uid, $studienplan_lehrveranstaltung_id)
 {
     $this->debug('Teste Abschluss für ' . $uid, 2);
     $ects = 0;
     $retval = true;
     if ($result = $this->getLVRegelTree($studienplan_lehrveranstaltung_id)) {
         list($retval, $ects) = $this->TestRegeln($uid, $result, null);
     } else {
         // Keine Regeln vorhanden
         return true;
     }
     $stpllv = new studienplan();
     $stpllv->loadStudienplanLehrveranstaltung($studienplan_lehrveranstaltung_id);
     $lv = new lehrveranstaltung();
     $lv->load($stpllv->lehrveranstaltung_id);
     $this->debug('Abgeschlossen:' . $retval . ' ECTS:' . $ects, 1);
     if ($ects >= $lv->ects) {
         return true;
     } else {
         return false;
     }
 }
                 $lvregel_id_alt = $regel_obj->lvregel_id;
                 if ($regel_obj->save()) {
                     // Alte und neue ID Speichern damit danach die Parents gesetzt werden koennen
                     $lvregel_ID_Array[$lvregel_id_alt] = $regel_obj->lvregel_id;
                 }
             }
         }
     }
 }
 // Damit die Parent Eintraege korrekt gesetzt werden koennen, muessen zuerst die uebergeordneten
 // Eintraege in der Datenbank vorhanden sein. Deshalb werden zuerst alle Eintraege angelegt
 // und danach die Parent Keys korrekt gesetzt.
 // Alle neuen LVZuordnungen nochmals durchlaufen und die parents korrekt setzen
 foreach ($stpllv_ID_Array as $studienplan_lehrveranstaltung_id) {
     $stpllv_obj = new studienplan();
     if ($stpllv_obj->loadStudienplanLehrveranstaltung($studienplan_lehrveranstaltung_id)) {
         if ($stpllv_obj->studienplan_lehrveranstaltung_id_parent != '') {
             $stpllv_obj->studienplan_lehrveranstaltung_id_parent = $stpllv_ID_Array[$stpllv_obj->studienplan_lehrveranstaltung_id_parent];
             $stpllv_obj->saveStudienplanLehrveranstaltung();
         }
     }
 }
 // Alle neuen LVRegeln nochmals durchlaufen und die parents korrekt setzen
 foreach ($lvregel_ID_Array as $lvregel_id) {
     $lvregel_obj = new lvregel();
     if ($lvregel_obj->load($lvregel_id)) {
         if ($lvregel_obj->lvregel_id_parent != '') {
             $lvregel_obj->lvregel_id_parent = $lvregel_ID_Array[$lvregel_obj->lvregel_id_parent];
             $lvregel_obj->save();
         }
     }
 $oRdf->obj[$i]->setAttribut('studienplan_bezeichnung', $row_lva->studienplan_bezeichnung);
 $oRdf->obj[$i]->setAttribut('lehrtyp_kurzbz', $row_lva->lehrtyp_kurzbz);
 $oRdf->obj[$i]->setAttribut('lehreinheit_id', '');
 $oRdf->obj[$i]->setAttribut('lehrform_kurzbz', $row_lva->lv_lehrform_kurzbz);
 $oRdf->obj[$i]->setAttribut('stundenblockung', '');
 $oRdf->obj[$i]->setAttribut('wochenrythmus', '');
 $oRdf->obj[$i]->setAttribut('startkw', '');
 $oRdf->obj[$i]->setAttribut('raumtyp', '');
 $oRdf->obj[$i]->setAttribut('raumtypalternativ', '');
 $oRdf->obj[$i]->setAttribut('gruppen', '');
 $oRdf->obj[$i]->setAttribut('lektoren', $fbk);
 $oRdf->obj[$i]->setAttribut('fachbereich', '');
 if (isset($row_lva->studienplan_lehrveranstaltung_id_parent) && $row_lva->studienplan_lehrveranstaltung_id_parent != '') {
     // Wenn ein Parent vorhanden ist, wird er diesem untergeordnet
     $stpllv = new studienplan();
     if ($stpllv->loadStudienplanLehrveranstaltung($row_lva->studienplan_lehrveranstaltung_id_parent)) {
         $oRdf->addSequence($row_lva->lehrveranstaltung_id, $stpllv->lehrveranstaltung_id);
     }
 } else {
     $oRdf->addSequence($row_lva->lehrveranstaltung_id);
 }
 //zugehoerige LE holen
 $le = new lehreinheit();
 if (!$le->load_lehreinheiten($row_lva->lehrveranstaltung_id, $semester_aktuell, $uid, $fachbereich_kurzbz)) {
     echo "Fehler: {$le->errormsg}";
 }
 foreach ($le->lehreinheiten as $row_le) {
     //Lehrfach holen
     $qry = "SELECT kurzbz, bezeichnung FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id='{$row_le->lehrfach_id}'";
     $result_lf = $db->db_query($qry);
     $row_lf = $db->db_fetch_object($result_lf);
        $obj->insertvon = $uid;
        $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 {