diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 6a7a927f8..0045c6927 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -396,7 +396,8 @@ function drawTree($tree, $depth) $abgeschlossen=false; $lvregel = new lvregel(); - if($lvregel->exists($row_tree->studienplan_lehrveranstaltung_id)) + $lvregelExists = $lvregel->exists($row_tree->studienplan_lehrveranstaltung_id); + if($lvregelExists) { if($lvregel->isAbgeschlossen($uid, $row_tree->studienplan_lehrveranstaltung_id)) $abgeschlossen=true; @@ -436,7 +437,7 @@ function drawTree($tree, $depth) $lv_kompatibel = new lehrveranstaltung(); $kompatibleLVs = $lv_kompatibel->loadLVkompatibel($row_tree->lehrveranstaltung_id); - + if(isset($noten_arr[$row_tree->lehrveranstaltung_id])) { // Positive Note fuer diese LV vorhanden? @@ -447,82 +448,97 @@ function drawTree($tree, $depth) $positiv=true; } - if($positiv) - echo ''.$p->t('studienplan/abgeschlossen').''; - else + if(!$positiv) + { echo ''.$p->t('studienplan/negativ').''; + } + elseif($lvregelExists) + { + if($abgeschlossen && $positiv) + { + echo ''.$p->t('studienplan/abgeschlossen').''; + } + else + { + echo ''.$p->t('studienplan/offen').''; + } + } + elseif($positiv) + { + echo ''.$p->t('studienplan/abgeschlossen').''; + } + else + { + echo ''.$p->t('studienplan/offen').''; + } } //check if compatible course has grade elseif(count($kompatibleLVs) > 0) { - $positiv = false; - $found = false; - $i = 0; - while(!$found && $i < count($kompatibleLVs)) - { - foreach($kompatibleLVs as $komp) - { - - $anrechnung = new anrechnung(); - $anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp); - - if(count($anrechnung->result) == 1) - { - $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; - if(isset($noten_arr[$lv])) - { - $positiv=false; - foreach($noten_arr[$lv] as $note) - { - if($note_pruef_arr[$note]->positiv) - $positiv=true; - } + $positiv = false; + $found = false; + $i = 0; + while(!$found && $i < count($kompatibleLVs)) + { + foreach($kompatibleLVs as $komp) + { - $found = true; - } - else - { - /* wenn zu mehreren kompatiblen lvs eine Anrechnung existiert - * darf found nicht auf false gesetzt werden wenn es zuvor bereits auf true gesetzt wurde - */ - if(!$found) - $found = false; - } - } - $i++; - } - } - - if($found) - { - if($positiv) + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($student->prestudent_id, $row_tree->lehrveranstaltung_id, $komp); + + if(count($anrechnung->result) == 1) + { + $lv = $anrechnung->result[0]->lehrveranstaltung_id_kompatibel; + if(isset($noten_arr[$lv])) { - echo ''.$p->t('studienplan/abgeschlossen').''; - } - else - { - echo ''.$p->t('studienplan/negativ').''; - } - } - elseif(!$found) - { - if(!$row_tree->stpllv_pflicht) - { - echo ''.$p->t('studienplan/optional').''; + $positiv=false; + foreach($noten_arr[$lv] as $note) + { + if($note_pruef_arr[$note]->positiv) + $positiv=true; + } + + $found = true; } else { - echo ''.$p->t('studienplan/offen').''; + /* wenn zu mehreren kompatiblen lvs eine Anrechnung existiert + * darf found nicht auf false gesetzt werden wenn es zuvor bereits auf true gesetzt wurde + */ + if(!$found) + $found = false; } - } + } + $i++; + } + } + + if($found) + { + if($positiv) + { + echo ''.$p->t('studienplan/abgeschlossen').''; + } + else + { + echo ''.$p->t('studienplan/negativ').''; + } + } + elseif(!$found) + { + if(!$row_tree->stpllv_pflicht) + { + echo ''.$p->t('studienplan/optional').''; + } + else + { + echo ''.$p->t('studienplan/offen').''; + } + } } else { - if($abgeschlossen) - { - echo ''.$p->t('studienplan/regelabgeschlossen'),''; - } - elseif(!$row_tree->stpllv_pflicht) + if(!$row_tree->stpllv_pflicht) { echo ''.$p->t('studienplan/optional').''; } diff --git a/include/lvregel.class.php b/include/lvregel.class.php index bf3de11fa..97e3a68fe 100644 --- a/include/lvregel.class.php +++ b/include/lvregel.class.php @@ -602,7 +602,33 @@ class lvregel extends basis_db } } $ausbildungssemester = $this->cache[$uid][$studiensemester_kurzbz]; + + $qry = "SELECT + tbl_lehrveranstaltung.ects + FROM + lehre.tbl_lehrveranstaltung + JOIN lehre.tbl_studienplan_lehrveranstaltung sl USING(lehrveranstaltung_id) + WHERE + studienplan_lehrveranstaltung_id=".$this->db_add_param($regel->studienplan_lehrveranstaltung_id); + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $ects = $row->ects; + } + else + { + $ects = 0; + } + } + else + { + $this->debug('Fehler bei Abfrage',1); + $this->errormsg = 'Fehler bei Abfrage'; + $retval = false; + } + // Vergleichen des Ausbildungssemesters mit dem RegelParameter if($ausbildungssemester>=$regel->parameter) {