This commit is contained in:
kindlm
2016-06-15 15:40:08 +02:00
18 changed files with 1337 additions and 1053 deletions
+4
View File
@@ -10,6 +10,8 @@
- **[CIS]** LVPlan Export für Excel
- **[FAS]** Termine Karteireiter im FAS zeigt die Anmerkung aus dem LVPlan an
- **[CIS]** Onlinebewerbungstool greift auf mehrsprachige Statusbezeichnungen zu.
- **[CIS]** Config-Einträge für die Tabellenspalten beim Eintragen der Gesamtnote hinzugefügt.
- **[CIS]** Prüfungsverwaltung: Config-Eintrag hinzugefügt um die Accordion-Elemente ein- und auszublenden.
### Changed
- **[FAS]** Dokumente Menü im FAS neu sortiert um den Lebenszyklus des Studierenden abzubilden
@@ -18,6 +20,8 @@
- **[CIS]** LVPlan Begrenzung der 4er Blockung aufgehoben.
- **[CIS]** Im Menü 'Zeitsperren' Link zu Resturlaubsübersicht entfernt. Falls benötigt Verlinkung über CMS möglich.
- **[CORE]** Removed NOT NULL constraint on 'verfasser\_uid' from public.tbl\_notiz
- **[CIS]** Studienplanansicht: Wenn eine LV nicht benotet ist, aber eine kompatible LV mit vorhandener Anrechnung benotet ist wird diese Note angezeigt.
- **[FAS]** Die RDF-Schnittstelle für das Zeugnis prüft bei Anrechnungen ob, die ECTS-Punkte übereinstimmen und wählt bei ungleichen Werten jene der angerechneten LV.
### Updateinfo
- **[FAS]** Für Lehraufträge muss eine Unoconv-Vorlage erstellt werden, da der für xsl-fo notwendige Seitenumbruch-Tag aus dem RDF entfernt wurde.
@@ -840,9 +840,15 @@ echo "
<th></th>
<th>".$p->t('global/uid')."</th>
<th>".$p->t('global/nachname')."</th>
<th>".$p->t('global/vorname')."</th>
<th>".($grade_from_moodle?''.$p->t('benotungstool/moodleNote').'':''.$p->t('benotungstool/leNoten').' (LE-ID)')."</th>
<th>".$p->t('benotungstool/punkte').' / '.$p->t('benotungstool/note')."</th>
<th>".$p->t('global/vorname')."</th>";
if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE)
{
echo "<th>".($grade_from_moodle?''.$p->t('benotungstool/moodleNote').'':''.$p->t('benotungstool/leNoten').' (LE-ID)')."</th>";
}
echo "<th>".$p->t('benotungstool/punkte').' / '.$p->t('benotungstool/note')."</th>
<th rowspan=2>".$p->t('benotungstool/lvNote')."<br>
<input type='button' onclick='GradeImport()' value='".$p->t('benotungstool/importieren')."'>
</th>
@@ -853,26 +859,38 @@ echo "
<br><input type='submit' name='frei' value='Freigabe'>
</form>
</th>
<th>".$p->t('benotungstool/zeugnisnote')."</th>
<th colspan='2'>".$p->t('benotungstool/nachpruefung')."</th>";
<th>".$p->t('benotungstool/zeugnisnote')."</th>";
if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
echo "<th colspan='2'>".$p->t('benotungstool/nachpruefung')."</th>";
}
if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
echo "<th colspan='2' nowrap>".$p->t('benotungstool/nachpruefung2')."</th>";
}
if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF)
{
echo "<th colspan='2'>".$p->t('benotungstool/kommissionellePruefung')."</th>";
}
echo "
<th colspan='2'>".$p->t('benotungstool/kommissionellePruefung')."</th>
</tr>
<tr>
<th colspan='9'>&nbsp;</th>
<th colspan='2'>
<table>
<tr>
<td class='td_datum'>".$p->t('global/datum')."</td>
<td class='td_note'>".$p->t('benotungstool/note')."</td>
<td></td>
</tr>
</table>
</th>";
<th colspan='9'>&nbsp;</th>";
if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
echo "<th colspan='2'>
<table>
<tr>
<td class='td_datum'>".$p->t('global/datum')."</td>
<td class='td_note'>".$p->t('benotungstool/note')."</td>
<td></td>
</tr>
</table>
</th>";
}
if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
echo "<th colspan='2'>
@@ -885,66 +903,73 @@ echo "
</table>
</th>";
}
echo "
<th colspan='2'>
<table>
<tr>
<td class='td_datum'>".$p->t('global/datum')."</td>
<td class='td_note'>".$p->t('benotungstool/note')."</td>
<td></td>
</tr>
</table>
</th>
if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF)
{
echo "
<th colspan='2'>
<table>
<tr>
<td class='td_datum'>".$p->t('global/datum')."</td>
<td class='td_note'>".$p->t('benotungstool/note')."</td>
<td></td>
</tr>
</table>
</th>";
}
echo "
</tr>
";
if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE)
{
if($grade_from_moodle)
{
flush();
ob_flush();
if($grade_from_moodle)
{
flush();
ob_flush();
$moodle24 = new moodle24_course();
$moodle24->loadNoten($lvid, $stsem);
$moodle24 = new moodle24_course();
$moodle24->loadNoten($lvid, $stsem);
$moodle24_course_bezeichnung=array();
$moodle24_course_bezeichnung=array();
if(count($moodle24->result)>0)
{
// Bezeichnungen der Moodlekurse laden
foreach($moodle24->result as $obj)
{
if(!isset($moodle24_course_bezeichnung[$obj->mdl_course_id]))
{
$moodle24course = new moodle24_course();
$moodle24course->load($obj->mdl_course_id);
if(count($moodle24->result)>0)
{
// Bezeichnungen der Moodlekurse laden
foreach($moodle24->result as $obj)
{
if(!isset($moodle24_course_bezeichnung[$obj->mdl_course_id]))
{
$moodle24course = new moodle24_course();
$moodle24course->load($obj->mdl_course_id);
$moodle24_course_bezeichnung[$obj->mdl_course_id]=$moodle24course->mdl_shortname;
}
$moodle24_course_bezeichnung[$obj->mdl_course_id]=$moodle24course->mdl_shortname;
}
if(!isset($moodle24_course_gewicht[$obj->mdl_course_id]))
{
$mdl_obj = new moodle24_course();
$mdl_lehreinheiten=$mdl_obj->getLeFromCourse($obj->mdl_course_id);
if(!isset($moodle24_course_gewicht[$obj->mdl_course_id]))
{
$mdl_obj = new moodle24_course();
$mdl_lehreinheiten=$mdl_obj->getLeFromCourse($obj->mdl_course_id);
foreach($mdl_lehreinheiten as $row_mdl_lehreinheit)
{
if($row_mdl_lehreinheit!='')
{
$lehreinheit_gewicht_obj = new lehreinheit();
$lehreinheit_gewicht_obj->load($row_mdl_lehreinheit);
foreach($mdl_lehreinheiten as $row_mdl_lehreinheit)
{
if($row_mdl_lehreinheit!='')
{
$lehreinheit_gewicht_obj = new lehreinheit();
$lehreinheit_gewicht_obj->load($row_mdl_lehreinheit);
if($lehreinheit_gewicht_obj->gewicht!='')
{
$moodle24_course_gewicht[$obj->mdl_course_id]=$lehreinheit_gewicht_obj->gewicht;
break;
}
}
}
}
}
}
}
if($lehreinheit_gewicht_obj->gewicht!='')
{
$moodle24_course_gewicht[$obj->mdl_course_id]=$lehreinheit_gewicht_obj->gewicht;
break;
}
}
}
}
}
}
}
}
// studentenquery
$qry_stud = "SELECT
@@ -978,165 +1003,168 @@ echo "
$note_le_gewichtet=0;
$gewichtsumme=0;
$note=0;
if($grade_from_moodle)
{
//Moodle 1.9
if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE)
{
if($grade_from_moodle)
{
//Moodle 1.9
// Alle Moodlekursdaten zu Lehreinheit und Semester lesen wenn noch nicht belegt.
if (is_null($mdldaten) && defined('CONN_STRING_MOODLE'))
{
//Noten aus Moodle
if (!isset($moodle_course))
$moodle_course = new moodle19_course();
// Alle Moodlekursdaten zu Lehreinheit und Semester lesen wenn noch nicht belegt.
if (is_null($mdldaten) && defined('CONN_STRING_MOODLE'))
{
//Noten aus Moodle
if (!isset($moodle_course))
$moodle_course = new moodle19_course();
if (!$mdldaten = $moodle_course->loadNoten($lvid, $stsem, '', true,$debg))
$mdldaten='';
}
// Verarbeitet die Kursdaten
if (!is_null($mdldaten) && is_array($mdldaten))
{
reset($mdldaten);
$title="";
$mdl_shortname='';
for ($imdldaten=0;$imdldaten<count($mdldaten) ;$imdldaten++)
{
if (!$mdldaten = $moodle_course->loadNoten($lvid, $stsem, '', true,$debg))
$mdldaten='';
}
// Verarbeitet die Kursdaten
if (!is_null($mdldaten) && is_array($mdldaten))
{
reset($mdldaten);
$title="";
$mdl_shortname='';
for ($imdldaten=0;$imdldaten<count($mdldaten) ;$imdldaten++)
{
$mdldata=$mdldaten[$imdldaten]->result;
$kursArr=(isset($mdldata[2])?$mdldata[2]:array());
$kursasObj=(isset($mdldata[3])?$mdldata[3]:array());
$kursname=(isset($mdldata[7])?$mdldata[7]:'');
$shortname=(isset($mdldata[8])?$mdldata[8]:'');
$mdldata=$mdldaten[$imdldaten]->result;
$kursArr=(isset($mdldata[2])?$mdldata[2]:array());
$kursasObj=(isset($mdldata[3])?$mdldata[3]:array());
$kursname=(isset($mdldata[7])?$mdldata[7]:'');
$shortname=(isset($mdldata[8])?$mdldata[8]:'');
$note=0;
$userGef=false;
$note=0;
$userGef=false;
reset($kursArr);
for ($iKurs=0;$iKurs<count($kursArr) ;$iKurs++)
{
if (isset($kursArr[$iKurs]) && isset($kursArr[$iKurs][2]) && isset($kursArr[$iKurs][6]) && strtolower(trim($row_stud->uid))==strtolower(trim($kursArr[$iKurs][2])) )
{
$note=trim($kursArr[$iKurs][6]);
$userGef=true;
reset($kursArr);
for ($iKurs=0;$iKurs<count($kursArr) ;$iKurs++)
{
if (isset($kursArr[$iKurs]) && isset($kursArr[$iKurs][2]) && isset($kursArr[$iKurs][6]) && strtolower(trim($row_stud->uid))==strtolower(trim($kursArr[$iKurs][2])) )
{
$note=trim($kursArr[$iKurs][6]);
$userGef=true;
if (is_numeric($note) || $debg)
{
if (is_numeric($note))
{
$note_le += $note;
$note_le_gewichtet +=$note*$gewichtung;
$gewichtsumme+=$gewichtung;
$le_anz += 1;
}
if ($note == 5)
$leneg = " style='color:red; font-weight:bold'";
else
$leneg = " style='font-weight:bold'";
if (is_numeric($note) || $debg)
{
if (is_numeric($note))
{
$note_le += $note;
$note_le_gewichtet +=$note*$gewichtung;
$gewichtsumme+=$gewichtung;
$le_anz += 1;
}
if ($note == 5)
$leneg = " style='color:red; font-weight:bold'";
else
$leneg = " style='font-weight:bold'";
$mdl_shortname=$mdldaten[$imdldaten]->mdl_shortname;
$title="\r\nMoodle 1.9 KursID: ".$mdldaten[$imdldaten]->mdl_course_id ."\r\n\r\n".$kursname.', '.$mdl_shortname."\r\n";
foreach ($kursasObj[$iKurs] as $key => $value)
{
$title.=$key."=>".$value."\r\n";
}
$mdl_shortname=$mdldaten[$imdldaten]->mdl_shortname;
$title="\r\nMoodle 1.9 KursID: ".$mdldaten[$imdldaten]->mdl_course_id ."\r\n\r\n".$kursname.', '.$mdl_shortname."\r\n";
foreach ($kursasObj[$iKurs] as $key => $value)
{
$title.=$key."=>".$value."\r\n";
}
$note_les_str .= "<span ".$leneg.">".$note."</span> <span title='".$title."' style='font-size:10px'>(".$mdl_shortname.")</span> ";
}
} // ende If Richtiger User
$note_les_str .= "<span ".$leneg.">".$note."</span> <span title='".$title."' style='font-size:10px'>(".$mdl_shortname.")</span> ";
}
} // ende If Richtiger User
if ($userGef)
{
$iKurs=count($kursArr)+1; // diesen USER for beenden - user wurde gefunden
}
if ($userGef)
{
$iKurs=count($kursArr)+1; // diesen USER for beenden - user wurde gefunden
}
} // ende Kursschleife
} // MoodleKurse abarbeiten
} // ende Kursschleife
} // MoodleKurse abarbeiten
#echo "<p><h1> $title Anzahl Noten gef. $le_anz $note_le </h1></p>";
}
else
{
if(defined('CONN_STRING_MOODLE'))
{
//den Error nur einmal anzeigen und nicht fuer jeden Studenten
$moodle_course->errormsg=trim($moodle_course->errormsg);
if(!$errorshown && !empty($moodle_course->errormsg) )
{
//echo '<br><b>'.$moodle_course->errormsg.'</b><br>';
$errorshown=true;
}
}
}
#echo "<p><h1> $title Anzahl Noten gef. $le_anz $note_le </h1></p>";
}
else
{
if(defined('CONN_STRING_MOODLE'))
{
//den Error nur einmal anzeigen und nicht fuer jeden Studenten
$moodle_course->errormsg=trim($moodle_course->errormsg);
if(!$errorshown && !empty($moodle_course->errormsg) )
{
//echo '<br><b>'.$moodle_course->errormsg.'</b><br>';
$errorshown=true;
}
}
}
// Moodle 2.4
if(isset($moodle24) && count($moodle24->result)>0)
{
foreach($moodle24->result as $moodle24_noten)
{
if($moodle24_noten->uid==$row_stud->uid)
{
$gewichtung=1;
$note_le+=$moodle24_noten->note;
if(isset($moodle24_course_gewicht[$moodle24_noten->mdl_course_id]))
$gewichtung=$moodle24_course_gewicht[$moodle24_noten->mdl_course_id];
// Moodle 2.4
if(isset($moodle24) && count($moodle24->result)>0)
{
foreach($moodle24->result as $moodle24_noten)
{
if($moodle24_noten->uid==$row_stud->uid)
{
$gewichtung=1;
$note_le+=$moodle24_noten->note;
if(isset($moodle24_course_gewicht[$moodle24_noten->mdl_course_id]))
$gewichtung=$moodle24_course_gewicht[$moodle24_noten->mdl_course_id];
if($gewichtung=='')
$gewichtung=1;
$note_le_gewichtet+=$moodle24_noten->note*$gewichtung;
$gewichtsumme+=$gewichtung;
$le_anz+=1;
//if ($moodle24_noten->note == 5)
// $leneg = " style='color:red; font-weight:bold'";
//else
$leneg = ' style="font-weight: bold;"';
$title="Moodle KursID: ".$moodle24_noten->mdl_course_id.
"\nKursbezeichnung: ".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].
"\nUser: ".$moodle24_noten->uid.
"\nNote: ".$moodle24_noten->note;
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
$title.="\nGewichtung: ".$gewichtung;
$note_les_str .= "<br><span".$leneg.">".$moodle24_noten->note."</span><span title='".$title."' style='font-size:10px'> (".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].")</span> ";
if($gewichtung=='')
$gewichtung=1;
$note_le_gewichtet+=$moodle24_noten->note*$gewichtung;
$gewichtsumme+=$gewichtung;
$le_anz+=1;
//if ($moodle24_noten->note == 5)
// $leneg = " style='color:red; font-weight:bold'";
//else
$leneg = ' style="font-weight: bold;"';
$title="Moodle KursID: ".$moodle24_noten->mdl_course_id.
"\nKursbezeichnung: ".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].
"\nUser: ".$moodle24_noten->uid.
"\nNote: ".$moodle24_noten->note;
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
$title.="\nGewichtung: ".$gewichtung;
$note_les_str .= "<br><span".$leneg.">".$moodle24_noten->note."</span><span title='".$title."' style='font-size:10px'> (".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].")</span> ";
}
}
}
}
else
{
//Noten aus Uebungstool
$le = new lehreinheit();
$le->load_lehreinheiten($lvid, $stsem);
foreach($le->lehreinheiten as $l)
{
$legesamtnote = new legesamtnote($l->lehreinheit_id);
}
}
}
}
else
{
//Noten aus Uebungstool
$le = new lehreinheit();
$le->load_lehreinheiten($lvid, $stsem);
foreach($le->lehreinheiten as $l)
{
$legesamtnote = new legesamtnote($l->lehreinheit_id);
if (!$legesamtnote->load($row_stud->uid,$l->lehreinheit_id))
{
//$note_les_str .= "- (".$l->lehreinheit_id.")";
}
else
{
$note_le += $legesamtnote->note;
if (!$legesamtnote->load($row_stud->uid,$l->lehreinheit_id))
{
//$note_les_str .= "- (".$l->lehreinheit_id.")";
}
else
{
$note_le += $legesamtnote->note;
$gewicht = $l->gewicht;
if($l->gewicht=='')
$gewicht = 1;
$note_le_gewichtet+=$legesamtnote->note*$gewicht;
$gewichtsumme+=$gewicht;
$gewicht = $l->gewicht;
if($l->gewicht=='')
$gewicht = 1;
$note_le_gewichtet+=$legesamtnote->note*$gewicht;
$gewichtsumme+=$gewicht;
$le_anz += 1;
if ($legesamtnote->note == 5)
$leneg = " style='color:red; font-weight:bold'";
else
$leneg = "";
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
$title='Gewichtung: '.$l->gewicht;
else
$title='';
$note_les_str .= '<span title="'.$title.'"><span'.$leneg.'>'.$legesamtnote->note.'</span> ('.$l->lehreinheit_id.') </span>';
}
}
}
$le_anz += 1;
if ($legesamtnote->note == 5)
$leneg = " style='color:red; font-weight:bold'";
else
$leneg = "";
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
$title='Gewichtung: '.$l->gewicht;
else
$title='';
$note_les_str .= '<span title="'.$title.'"><span'.$leneg.'>'.$legesamtnote->note.'</span> ('.$l->lehreinheit_id.') </span>';
}
}
}
}
if ($lvgesamtnote = new lvgesamtnote($lvid,$row_stud->uid,$stsem))
{
@@ -1190,8 +1218,10 @@ echo "
else
$znote = null;
echo "<td style='white-space: nowrap;'>".$note_les_str."&nbsp;</td>";
if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE)
{
echo "<td style='white-space: nowrap;'>".$note_les_str."&nbsp;</td>";
}
if (key_exists($row_stud->uid,$studpruef_arr))
$hide = "style='display:none;visibility:hidden;'";
@@ -1275,43 +1305,46 @@ echo "
if(isset($noten_array[$znote]) && $noten_array[$znote]['positiv']==false)
$summe_ng++;
// Pruefung 2. Termin
if (key_exists($row_stud->uid, $studpruef_arr))
if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
echo "<td colspan='2'>";
echo "<span id='span_Termin2_".$row_stud->uid."'>";
echo "<table>";
$le_id_arr = array();
$le_id_arr = array_keys($studpruef_arr[$row_stud->uid]);
foreach ($le_id_arr as $le_id_stud)
{
$pr_note = $studpruef_arr[$row_stud->uid][$le_id_stud]["note"];
$pr_punkte = $studpruef_arr[$row_stud->uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_arr[$row_stud->uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud;
// Pruefung 2. Termin
if (key_exists($row_stud->uid, $studpruef_arr))
{
echo "<td colspan='2'>";
echo "<span id='span_Termin2_".$row_stud->uid."'>";
echo "<table>";
$le_id_arr = array();
$le_id_arr = array_keys($studpruef_arr[$row_stud->uid]);
foreach ($le_id_arr as $le_id_stud)
{
$pr_note = $studpruef_arr[$row_stud->uid][$le_id_stud]["note"];
$pr_punkte = $studpruef_arr[$row_stud->uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_arr[$row_stud->uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud;
if($pr_punkte!='')
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')';
else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'];
if($pr_punkte!='')
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')';
else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'];
echo '<tr>
<td class="td_datum">'.$pr_datum.'</td>
<td class="td_note">'.$pr_notenbezeichnung.'</td>
<td><input type="button" name="anlegen" value="'.$p->t('global/aendern').'" onclick="pruefungAnlegen(\''.$row_stud->uid.'\',\''.$pr_datum.'\',\''.$pr_note.'\',\''.$pr_le_id.'\',\''.$pr_punkte.'\')"><td>
</tr>';
}
echo "</table>";
echo "</span>";
echo "</td>";
}
else
{
if (!is_null($note_lv) || !is_null($znote))
echo "<td colspan='2'><span id='span_Termin2_".$row_stud->uid."'><input type='button' name='anlegen' value='".$p->t('benotungstool/anlegen')."' onclick='pruefungAnlegen(\"".$row_stud->uid."\",\"\",\"\",\"\",\"\")'></span></td>";
else
echo "<td colspan='2'></td>";
}
echo '<tr>
<td class="td_datum">'.$pr_datum.'</td>
<td class="td_note">'.$pr_notenbezeichnung.'</td>
<td><input type="button" name="anlegen" value="'.$p->t('global/aendern').'" onclick="pruefungAnlegen(\''.$row_stud->uid.'\',\''.$pr_datum.'\',\''.$pr_note.'\',\''.$pr_le_id.'\',\''.$pr_punkte.'\')"><td>
</tr>';
}
echo "</table>";
echo "</span>";
echo "</td>";
}
else
{
if (!is_null($note_lv) || !is_null($znote))
echo "<td colspan='2'><span id='span_Termin2_".$row_stud->uid."'><input type='button' name='anlegen' value='".$p->t('benotungstool/anlegen')."' onclick='pruefungAnlegen(\"".$row_stud->uid."\",\"\",\"\",\"\",\"\")'></span></td>";
else
echo "<td colspan='2'></td>";
}
}
if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
@@ -1354,39 +1387,42 @@ echo "
}
}
// komm Pruefung
if (key_exists($row_stud->uid,$studpruef_komm))
if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF)
{
echo "<td colspan='2'>";
echo "<span id='span_".$row_stud->uid."'>";
echo "<table>";
$le_id_arr = array();
$le_id_arr = array_keys($studpruef_komm[$row_stud->uid]);
foreach ($le_id_arr as $le_id_stud)
{
$pr_note = $studpruef_komm[$row_stud->uid][$le_id_stud]["note"];
$pr_punkte = $studpruef_komm[$row_stud->uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_komm[$row_stud->uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud;
// komm Pruefung
if (key_exists($row_stud->uid,$studpruef_komm))
{
echo "<td colspan='2'>";
echo "<span id='span_".$row_stud->uid."'>";
echo "<table>";
$le_id_arr = array();
$le_id_arr = array_keys($studpruef_komm[$row_stud->uid]);
foreach ($le_id_arr as $le_id_stud)
{
$pr_note = $studpruef_komm[$row_stud->uid][$le_id_stud]["note"];
$pr_punkte = $studpruef_komm[$row_stud->uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_komm[$row_stud->uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud;
if($pr_punkte!='')
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')';
else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'];
if($pr_punkte!='')
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')';
else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'];
echo '<tr>
<td class="td_datum">'.$pr_datum.'</td>
<td class="td_note">'.$pr_notenbezeichnung.'</td>
</tr>';
}
echo "</table>";
echo "</span>";
echo "</td>";
}
else
{
echo "<td colspan='2'></td>";
}
echo '<tr>
<td class="td_datum">'.$pr_datum.'</td>
<td class="td_note">'.$pr_notenbezeichnung.'</td>
</tr>';
}
echo "</table>";
echo "</span>";
echo "</td>";
}
else
{
echo "<td colspan='2'></td>";
}
}
echo "</tr>";
$i++;
@@ -1397,12 +1433,27 @@ echo "
echo "
<tr style='font-weight:bold;' align='center'>
<th style='font-weight:bold;'>&Sigma;</th>
<th style='font-weight:bold;' title='".$p->t('benotungstool/anzahlDerStudenten')."'>$summe_stud</th>
<th colspan='6'></td>
<th style='color:red; font-weight:bold;' title='".$p->t('benotungstool/anzahlNegativerBeurteilungen')."'>$summe_ng</th>
<th style='font-weight:bold;' colspan='2' title='".$p->t('benotungstool/anzahlNachpruefungen')."'>$summe_t2</th>
<th style='font-weight:bold;' colspan='2' title='".$p->t('benotungstool/anzahlNachpruefungen')."'>$summe_t3</th>
<th style='font-weight:bold;' colspan='2' title='".$p->t('benotungstool/anzahlKommisionellePruefungen')."'>$summe_komm</th>
<th style='font-weight:bold;' title='".$p->t('benotungstool/anzahlDerStudenten')."'>$summe_stud</th>";
if(defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && (!CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE))
{
echo "<th colspan='5'></td>";
}
else
{
echo "<th colspan='6'></td>";
}
echo "<th style='color:red; font-weight:bold;' title='".$p->t('benotungstool/anzahlNegativerBeurteilungen')."'>$summe_ng</th>";
if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2): ?>
<th style='font-weight:bold;' colspan='2' title='"<?php echo $p->t('benotungstool/anzahlNachpruefungen'); ?>"'>$summe_t2</th>;
<?php endif;
if(defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3): ?>
<th style='font-weight:bold;' colspan='2' title='"<?php echo $p->t('benotungstool/anzahlNachpruefungen'); ?>"'>$summe_t3</th>";
<?php endif;
if(defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF): ?>
<th style='font-weight:bold;' colspan='2' title='"<?php echo $p->t('benotungstool/anzahlKommisionellePruefungen'); ?>"'>$summe_komm</th>
<?php endif;
echo "
</tr>
</table>
</td></tr>
+3 -1
View File
@@ -589,6 +589,8 @@ function resetForm()
*/
function setTablesorter(tableId)
{
if($("#"+tableId).length != 0)
{
if($("#"+tableId)[0].hasInitialized !== true)
{
$("#"+tableId).tablesorter({
@@ -602,6 +604,7 @@ function setTablesorter(tableId)
var sorting = [[1,0],[0,0]];
$("#"+tableId).trigger("sorton",[sorting]);
}
}
}
/**
@@ -688,7 +691,6 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id)
function writeAnmeldungen(data)
{
console.log(data);
if(data.error === 'false')
{
var terminId = data.result.anmeldungen[0].pruefungstermin_id;
+16 -14
View File
@@ -633,19 +633,22 @@ function resetForm()
*/
function setTablesorter(tableId)
{
if($("#"+tableId)[0].hasInitialized !== true)
{
$("#"+tableId).tablesorter({
widgets: ["zebra"],
sortList: [[1,0]]
});
}
else
{
$("#"+tableId).trigger("updateAll");
var sorting = [[1,0],[0,0]];
$("#"+tableId).trigger("sorton",[sorting]);
}
if($("#"+tableId).length != 0)
{
if($("#"+tableId)[0].hasInitialized !== true)
{
$("#"+tableId).tablesorter({
widgets: ["zebra"],
sortList: [[1,0]]
});
}
else
{
$("#"+tableId).trigger("updateAll");
var sorting = [[1,0],[0,0]];
$("#"+tableId).trigger("sorton",[sorting]);
}
}
}
/**
@@ -732,7 +735,6 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id)
function writeAnmeldungen(data)
{
console.log(data);
if(data.error === 'false')
{
var terminId = data.result.anmeldungen[0].pruefungstermin_id;
@@ -486,8 +486,8 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
{
if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL)
{
$pruefung = new pruefungCis();
$reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]);
$pruefung = new pruefungCis();
$reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]);
$anmeldung = new pruefungsanmeldung();
$anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"];
$anmeldung->pruefungstermin_id = $_REQUEST["termin_id"];
@@ -500,6 +500,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$konto = new konto();
$creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester);
if($creditpoints !== false)
{
if($creditpoints < $lehrveranstaltung->ects)
@@ -547,6 +548,10 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$person->getPersonFromBenutzer($uid);
$prestudent = new prestudent();
$prestudent->getPrestudenten($person->person_id);
$studiensemester = new studiensemester();
$stdsem = $studiensemester->getaktorNext();
if ($aktStudiensemester)
$stdsem = $aktStudiensemester;
if(count($prestudent->result) > 0)
{
@@ -563,58 +568,65 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
}
if($prestudent_id != "")
{
$anrechungSaveResult = false;
if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true)
{
$anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id;
$anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id;
$anrechnung->prestudent_id = $prestudent_id;
$anrechnung->begruendung_id = "2";
$anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER;
$anrechnung->new = true;
$anrechungSaveResult = $anrechnung->save();
}
else
{
$anrechungSaveResult = true;
}
$anrechungSaveResult = false;
if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true)
{
if($lv_komp->lehrveranstaltung_id != null && ($lv_komp->lehrveranstaltung_id != $lehrveranstaltung->lehrveranstaltung_id))
{
$anrechnung->lehrveranstaltung_id = $lv_komp->lehrveranstaltung_id;
$anrechnung->lehrveranstaltung_id_kompatibel = $lehrveranstaltung->lehrveranstaltung_id;
$anrechnung->prestudent_id = $prestudent_id;
$anrechnung->begruendung_id = "2";
$anrechnung->genehmigt_von = CIS_PRUEFUNGSANMELDUNG_USER;
$anrechnung->new = true;
$anrechungSaveResult = $anrechnung->save();
}
else
{
$anrechungSaveResult = true;
}
}
else
{
$anrechungSaveResult = true;
}
if($anrechungSaveResult)
{
if($anrechnung->anrechnung_id == "")
$anmeldung->anrechnung_id = null;
else
$anmeldung->anrechnung_id = $anrechnung->anrechnung_id;
if($anmeldung->save(true))
{
$pruefung = new pruefungCis($termin->pruefung_id);
if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== ""))
$to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN;
if($anrechnung->anrechnung_id == "")
$anmeldung->anrechnung_id = null;
else
$to = $pruefung->mitarbeiter_uid."@".DOMAIN;
$from = "noreply@".DOMAIN;
$subject = $p->t('pruefung/emailLektorSubjectAnmeldung');
$mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht'));
$anmeldung->anrechnung_id = $anrechnung->anrechnung_id;
$student = new student($uid);
$datum = new datum();
if($anmeldung->save(true))
{
$pruefung = new pruefungCis($termin->pruefung_id);
if(defined('CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG') && (CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG !== ""))
$to = CIS_PRUEFUNG_MAIL_EMPFAENGER_ANMEDLUNG."@".DOMAIN;
else
$to = $pruefung->mitarbeiter_uid."@".DOMAIN;
$from = "noreply@".DOMAIN;
$subject = $p->t('pruefung/emailLektorSubjectAnmeldung');
$mail = new mail($to, $from, $subject, $p->t('pruefung/emailBodyBitteHtmlSicht'));
$lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id);
$student = new student($uid);
$datum = new datum();
$html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "m.d.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"h:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"h:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet');
$mail->setHTMLContent($html);
$mail->send();
$lv = new lehrveranstaltung($anmeldung->lehrveranstaltung_id);
$data['result'] = $p->t('pruefung/anmeldungErfolgreich');
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['error']='true';
$data['errormsg']=$anmeldung->errormsg;
}
$html = $p->t('pruefung/emailLektorStudentIn')." ".$student->vorname." ".$student->nachname." ".$p->t('pruefung/emailLektorHatSichZurPruefung')." ".$lv->bezeichnung." ".$p->t('pruefung/emailLektorAm')." ".$datum->formatDatum($termin->von, "m.d.Y")." ".$p->t('pruefung/emailLektorVon')." ".$datum->formatDatum($termin->von,"h:i")." ".$p->t('pruefung/emailLektorUhrBis')." ".$datum->formatDatum($termin->bis,"h:i")." ".$p->t('pruefung/emailLektorUhrAngemeldet');
$mail->setHTMLContent($html);
$mail->send();
$data['result'] = $p->t('pruefung/anmeldungErfolgreich');
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['error']='true';
$data['errormsg']=$anmeldung->errormsg;
}
}
else
{
@@ -230,6 +230,7 @@ $studiensemester->getAll();
</tbody>
</table>
</div>
<?php if(!defined('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG') || CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG == true): ?>
<h2><?php echo $p->t('pruefung/lvVonStudiengang'); ?></h2>
<div>
<table id="table2" class="tablesorter">
@@ -246,6 +247,7 @@ $studiensemester->getAll();
</tbody>
</table>
</div>
<?php endif; ?>
<h2><?php echo $p->t('pruefung/lvAlle'); ?></h2>
<div>
<table id="table3" class="tablesorter">
@@ -66,7 +66,7 @@ $rechte->getBerechtigungen($uid);
min-height: 297mm;
padding: 20mm;
margin: 10mm auto;
border: 1px #D3D3D3 solid;
border: 1px #ffffff solid;
border-radius: 5px;
background: white;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
@@ -75,7 +75,7 @@ $rechte->getBerechtigungen($uid);
#subpage {
padding: 10mm;
border: 1px black solid;
border: 1px white solid;
height: 256mm;
outline: 20mm
}
+2 -1
View File
@@ -231,7 +231,8 @@ if(!isset($begin) || !isset($ende))
}
}
if($ende-$begin>31536000)
if($ende-$begin>34560000) // = 400 Tage
{
die($p->t('lvplan/datumsbereichZuGross')."!");
}
File diff suppressed because it is too large Load Diff
+3
View File
@@ -215,6 +215,9 @@ define('CIS_PRUEFUNGSANMELDUNG_USER','p.pruefungsanmeldung');
// Soll für die Prüfungsanmeldungen eine Anrechnung erstellt werden
define('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG', true);
//Gibt an, ob der Bereich zur Anmeldung zu Pruefungen des gesamten Studiengangs angezeigt werden soll
define('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG', true);
//Gibt an, wie viele Semester aus der Vergangenheit unter Meine LV angezeigt werden
define('CIS_MEINELV_ANZAHL_SEMESTER_PAST', 3);
+11
View File
@@ -59,9 +59,20 @@ define('CIS_GESAMTNOTE_UEBERSCHREIBEN',true);
// Gewichtung der Lehreinheiten bei Noteneintragung true|false
define('CIS_GESAMTNOTE_GEWICHTUNG', true);
// Bei Gesamtnote eine zusaetzliche Spalte fuer den 2. Termin anzeigen
define('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2',true);
// Bei Gesamtnote eine zusaetzliche Spalte fuer den 3. Termin anzeigen
define('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3',true);
// Bei Gesamtnote eine zusaetzliche Spalte fuer die kommissionelle Pruefung anlegen
define('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF', true);
// Bei Gesamtnote eine zusaetzliche Spalte fuer die kommissionelle Pruefung anlegen
define('CIS_GESAMTNOTE_PRUEFUNG_MOODLE_NOTE', true);
// Bei Gesamtnote die Spalte fuer die Quelle der Noten anzeigen (Moodle oder LE)
define('CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE', true);
// Gibt an ob im FAS bei den Lehrveranstaltungsnoten ein zusaetzliches Formular angezeigt wird um
// Vertraege fuer Pruefungshonorare anzulegen
+11
View File
@@ -291,6 +291,9 @@ class dokument_export
if($download)
{
if(headers_sent())
exit('Header wurden bereits gesendet -> Abbruch');
switch($this->outputformat)
{
case 'pdf':
@@ -310,6 +313,8 @@ class dokument_export
header('Content-Disposition: attachment; filename="'.$this->filename.'.odt"');
header('Content-Length: '.$fsize);
break;
default:
exit('Outputformat is not defined');
}
while (!feof($handle))
@@ -389,5 +394,11 @@ class dokument_export
}
return $_xml_data->asXML();
}
public function getXML()
{
$this->xml_data->formatOutput=true;
return $this->xml_data->saveXML();
}
}
?>
+6 -2
View File
@@ -1761,7 +1761,9 @@ class prestudent extends person
if($stg_obj->typ=='m')
{
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus,
(Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber') as anmerkung
FROM
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
@@ -1787,7 +1789,9 @@ class prestudent extends person
}
else
{
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus,
(Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber') as anmerkung
FROM
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
+2 -2
View File
@@ -46,7 +46,7 @@ $this->phrasen['pruefung/anmeldenMoeglichBis'] = 'Possibilità di iscrizione ent
$this->phrasen['pruefung/stornoNichtMehrMoeglich'] = 'Non è più possibile annullare liscrizione.';
$this->phrasen['pruefung/zurLvAnmeldung'] = 'iscriversi al corso';
$this->phrasen['pruefung/zuerstPruefungAuswaehlen'] = 'Scegliere prima lesame.';
$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'inserito da docente';
$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'iscrizione da segreteria';
$this->phrasen['pruefung/bestaetigen'] = 'Confermare';
$this->phrasen['pruefung/anmerkungDesStudenten'] = 'Osservazioni dello studente:</br>';
$this->phrasen['pruefung/bestaetigt'] = 'confermato';
@@ -102,7 +102,7 @@ $this->phrasen['pruefung/keineLvAngegeben'] = 'Nessun corso definito.';
$this->phrasen['pruefung/kollisionMitAnderemTermin'] = 'Date sovrapposte.';
$this->phrasen['pruefung/terminNichtInDerVergangenheit'] = 'La data dellappello non è nel passato.';
$this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Nessun corso disponibile.';
$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Nessuna registrazione disponibile.';
$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Nessuna studente iscritto.';
// anmeldungen Verwalten
$this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Gestione delle prenotazioni degli appelli';
+15 -1
View File
@@ -300,6 +300,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$stg = new studiengang();
$stg->load($lvstg);
$xml .= " <stg_studiengang_bezeichnung>".$stg_oe_obj->bezeichnung."</stg_studiengang_bezeichnung>";
$xml .= " <lv_studiengang_bezeichnung>".$stg->bezeichnung."</lv_studiengang_bezeichnung>";
$xml .= " <lv_studiengang_typ>".$stg->typ."</lv_studiengang_typ>";
$xml .= " <lv_studiengang_kennzahl>".sprintf('%04s',$lvstg)."</lv_studiengang_kennzahl>";
@@ -315,7 +317,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= " <lehrform_kurzbz>".$lehrform_kurzbz."</lehrform_kurzbz>";
$xml .= " <lehrform_bezeichnung>".$lehrform_bezeichnung."</lehrform_bezeichnung>";
$xml .= " <sws>".($sws==0?'':number_format(sprintf('%.1F',$sws),1))."</sws>";
$xml .= " <ects>".number_format($ects,1)."</ects>";
$xml .= " <lvleiter>".$leiter_titel." ".$leiter_vorname." ".$leiter_nachname.($leiter_titelpost!=''?', '.$leiter_titelpost:'')."</lvleiter>";
$xml .= " <lehrinhalte><![CDATA[".clearHtmlTags($lehrinhalte)."]]></lehrinhalte>";
$xml .= " <kompatible_lvs>";
@@ -327,6 +329,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
$xml .= " </kompatible_lvs>";
$anrechnung = new anrechnung();
$anrechnung->getAnrechnungPrestudent($student->prestudent_id, null, $lehrveranstaltung_id);
@@ -339,6 +342,17 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= $anrechnung->result[0]->lehrveranstaltung_bez;
}
$xml .= "</studienverpflichtung>";
if($lehrveranstaltung_id_kompatibel != "")
{
$lv = new lehrveranstaltung($lehrveranstaltung_id_kompatibel);
if(($lv->ects !== $ects) && ($lv->ects != "") && ($lv->ects != null))
{
$ects = $lv->ects;
}
}
$xml .= " <ects>".number_format($ects,1)."</ects>";
$lehrveranstaltung->loadLehrveranstaltungStudienplan($studienplan_id);
+17 -2
View File
@@ -33,6 +33,7 @@ require_once('../include/datum.class.php');
require_once('../include/note.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/anrechnung.class.php');
$datum = new datum();
$db = new basis_db();
@@ -241,6 +242,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid_arr[$i], $studiensemester_kurzbz);
$ects_gesamt = 0;
$prestudent_id = $row->prestudent_id;
foreach ($obj->result as $row)
{
if($row->zeugnis)
@@ -368,7 +370,20 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= " <note>".$note2."</note>";
$xml .= " <sws>".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1))."</sws>";
$ectspunkte='';
$anrechnung = new anrechnung();
$anrechnung->getAnrechnungPrestudent($prestudent_id, null, $row->lehrveranstaltung_id);
if($anrechnung->result != null)
{
$lv = new lehrveranstaltung($anrechnung->result[0]->lehrveranstaltung_id);
if(($lv->ects !== $row->ects) && ($lv->ects != "") && ($lv->ects != null))
{
$row->ects = $lv->ects;
}
}
if($row->ects==0 || $row->ects=='')
$ectspunkte='';
else
@@ -379,7 +394,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
else
$ectspunkte=number_format($row->ects,2);
}
$ects_gesamt+=$ectspunkte;
$ects_gesamt+=$ectspunkte;
$xml .= " <ects>".$ectspunkte."</ects>";
$xml .= " <lv_lehrform_kurzbz>".$row->lv_lehrform_kurzbz."</lv_lehrform_kurzbz>";
+36
View File
@@ -1702,6 +1702,42 @@ $error_msg='';
$error_msg.=$db->db_last_error().' '.$sql_querys;
}
$sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')";
if(!($result_oe = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error().' '.$sql_query;
// Personen holen die nicht im Verteiler sind
while($row_oe = $db->db_fetch_object($result_oe))
{
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')";
if(!$db->db_query($sql_query))
{
$error_msg.=$db->db_last_error().$sql_query;
}
}
// **************************************************************
// Alle MA mit Funktion Leitung oder stvLeitung oder gfLtg
$mlist_name='TW_LEITUNG';
$grp = new gruppe();
setGeneriert($mlist_name);
// Personen holen die nicht mehr in den Verteiler gehoeren
echo '<br>'.$mlist_name.' wird abgeglichen!';
flush();
$sql_query = "SELECT DISTINCT uid FROM tbl_person JOIN tbl_benutzer
USING (person_id) JOIN tbl_benutzerfunktion USING (uid)
WHERE funktion_kurzbz in('Leitung','stvLtg','gLtg')
AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null)
AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)";
$sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)";
if(!$db->db_query($sql_querys))
{
$error_msg.=$db->db_last_error().' '.$sql_querys;
}
$sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')";
if(!($result_oe = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error().' '.$sql_query;
+91 -14
View File
@@ -74,6 +74,7 @@
aqr.studiengaenge = [];
aqr.studiensemester = [];
aqr.studienplaetze = [];
aqr.zgvElems = [];
aqr.actualSequence = 1;
SERVICE_TARGET = "aliquote_reduktion.json.php";
@@ -112,6 +113,12 @@
if(!confirm("Es wurden zu viel Studenten gewählt!"))
return;
}
else
{
if(!confirm("Sind Sie sicher, dass Sie die ausgewählten Personen aufnehmen wollen?"))
return;
}
var prestudent_ids = [];
aqr.studenten.forEach(function(i)
@@ -190,7 +197,7 @@
aqr.studenten=res;
aqr.studenten.forEach(function(i)
{
if(i.laststatus=='Wartender'||i.laststatus=='Bewerber')
if((i.laststatus=='Wartender'||i.laststatus=='Bewerber') && i.rt_gesamtpunkte !== null && i.rt_gesamtpunkte > 0)
i.applicant = true;
else if(i.laststatus=='Student'||i.laststatus=='Aufgenommener')
i.selected=true;
@@ -212,12 +219,12 @@
return ret;
}
aqr.getAcceptedCount = function()
aqr.getAcceptedCount = function(zgvGruppe)
{
var ret = 0;
aqr.studenten.forEach(function(i)
{
if(i.laststatus=='Student'||i.laststatus=='Aufgenommener')
if((i.laststatus=='Student'||i.laststatus=='Aufgenommener') && (zgvGruppe === undefined || zgvGruppe === i.bezeichnung))
ret++;
});
return ret;
@@ -225,24 +232,60 @@
aqr.doPreselection = function()
{
if(parseInt(aqr.selectedStudienplatz.apz) >= 0)
aqr.zgvElems = [];
if(parseInt(aqr.selectedStudienplatz.apz) >= 0) // we only preselect, if we have an APZ
{
aqr.studenten.sort(sortStudentenRTP);
var zgvs = aqr.getZGVArray();
var neededStudentsCount = aqr.selectedStudienplatz.apz - aqr.getAcceptedCount();
var perZGV = parseInt(neededStudentsCount / zgvs.length);
var perZGV = aqr.studenten.length;
var zgvElems = [];
var allApplicants = [];
aqr.studenten.forEach(function(j)
{
if(j.applicant)
allApplicants.push(j);
});
var applicantCount = aqr.selectedStudienplatz.apz;
if(applicantCount > allApplicants.length)
applicantCount = allApplicants.length;
zgvs.forEach(function(i)
{
zgvElems.push({name:i,needed:perZGV});
var applicantsFromZGV = [];
aqr.studenten.forEach(function(j)
{
if(j.applicant && j.bezeichnung === i)
applicantsFromZGV.push(j);
});
// calculate the aliquote reduction for every ZGV
var percent = applicantsFromZGV.length / allApplicants.length * 100;
var neededFromZGV = (applicantCount / 100 * percent) - aqr.getAcceptedCount(i);
if(neededFromZGV < 0)
neededFromZGV = 0;
zgvElems.push({name:i, needed:neededFromZGV, percent:percent, accepted: aqr.getAcceptedCount(i), neededSum: (applicantCount / 100 * percent)});
});
var residual = perZGV * zgvs.length;
aqr.zgvElems = JSON.parse(JSON.stringify(zgvElems));
// calculate the already distributed students
var residual = 0;
zgvElems.forEach(function(i)
{
residual += i.needed;
});
// calculate the difference from needed to already distributed
var resDiff = neededStudentsCount - residual;
// distribute the remaining places on the present ZGVs
while(resDiff > 0)
while(resDiff > 0 && zgvElems.length > 0/*if there are no zgvs(to prevent a deadlock)*/)
{
zgvElems.forEach(function(i)
{
@@ -276,7 +319,7 @@
{
var beginNeeded = needed;
//distribute the remainig applicants to the present ZGVs
//distribute the applicants to the present ZGVs
for(var i=0; i < zgvElems.length; i++)
{
for(var j in aqr.studenten)
@@ -284,9 +327,11 @@
if(
aqr.studenten[j].laststatus!='Abgewiesener'
&& aqr.studenten[j].laststatus!='Abbrecher'
&& zgvElems[i].needed > 0
&& parseInt(zgvElems[i].needed) > 0
&& aqr.studenten[j].bezeichnung == zgvElems[i].name
&& !aqr.studenten[j].seqPlace)
&& !aqr.studenten[j].seqPlace
&& !aqr.studenten[j].selected
&& aqr.studenten[j].applicant)
{
aqr.setSequence(aqr.studenten[j]);
zgvElems[i].needed --;
@@ -303,7 +348,7 @@
//distribute the rest of the applicants, WITH a ZGV group
for(var j in aqr.studenten)
{
if(!aqr.studenten[j].selected && aqr.studenten[j].bezeichnung)
if(!aqr.studenten[j].selected && aqr.studenten[j].bezeichnung && aqr.studenten[j].applicant)
{
aqr.setSequence(aqr.studenten[j]);
if(needed > 0 && (aqr.studenten[j].laststatus=='Wartender'||aqr.studenten[j].laststatus=='Bewerber'))
@@ -316,7 +361,7 @@
//distribute the rest of the applicants, WITHOUT a ZGV group
for(var j in aqr.studenten)
{
if(!aqr.studenten[j].selected && !aqr.studenten[j].bezeichnung)
if(!aqr.studenten[j].selected && !aqr.studenten[j].bezeichnung && aqr.studenten[j].applicant)
{
aqr.setSequence(aqr.studenten[j]);
if(needed > 0 && (aqr.studenten[j].laststatus=='Wartender'||aqr.studenten[j].laststatus=='Bewerber'))
@@ -403,6 +448,7 @@
<th ts-criteria="seqPlace|parseInt" ts-default="ascending">Reihung</th>
<th ts-criteria="rt_gesamtpunkte|parseFloat" ts-default="ascending">RT Gesamt</th>
<th ts-criteria="interviewbogen">Interviewbogen</th>
<th ts-criteria="anmerkung">Anmerkung/Prio</th>
<th ts-criteria="laststatus">Status</th>
<th ng-if="aqr.selectedStudienplatz.apz">{{aqr.choosenStuds}}/{{aqr.selectedStudienplatz.apz}}</th>
<th ng-if="!aqr.selectedStudienplatz.apz">{{aqr.choosenStuds}}/Keine APZ</th>
@@ -418,6 +464,7 @@
<td>{{stud.seqPlace}}</td>
<td>{{stud.rt_gesamtpunkte}}</td>
<td>{{stud.interviewbogen?'vorhanden':'nicht vorhanden'}}</td>
<td>{{stud.anmerkung}}</td>
<td>{{stud.laststatus}}</td>
<td>
<input ng-if="stud.applicant" type="checkbox" ng-model="stud.selected"/>
@@ -429,8 +476,36 @@
<input style="float:right;" type="button" value="Annehmen" ng-click="aqr.submit()"/>
<input style="float:right;" type="button" value="Download" ng-click="aqr.download()"/>
<h3>ZGV Informationen</h3>
<table ts-wrapper>
<thead>
<tr>
<th ts-criteria="name" ts-default="ascending">Name</th>
<th ts-criteria="percent">Prozent</th>
<th ts-criteria="neededSum">Insgesamt benötigt</th>
<th ts-criteria="accepted">Bereits aufgenommen</th>
<th ts-criteria="needed">Noch benötigte Personen</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="zgv in aqr.zgvElems" ts-repeat ts-hide-no-data>
<td>{{zgv.name}}</td>
<td>{{zgv.percent | number: 2}}%</td>
<td>{{zgv.neededSum | parseInt}}</td>
<td>{{zgv.accepted}}</td>
<td>{{zgv.needed | parseInt}}</td>
</tr>
<tr>
<th>Gesamt</th>
<th></th>
<th>{{aqr.selectedStudienplatz.apz}}</th>
<th>{{aqr.getAcceptedCount()}}</th>
<th>{{aqr.selectedStudienplatz.apz - aqr.getAcceptedCount()}}</th>
</tr>
</tbody>
</table>
<h3>Bereits aufgenommene</h3>
<h3>Restliche Studenten</h3>
<table ts-wrapper>
<thead>
<tr>
@@ -441,6 +516,7 @@
<th ts-criteria="seqPlace|parseInt" ts-default="ascending">Reihung</th>
<th ts-criteria="rt_gesamtpunkte|parseFloat">RT Gesamt</th>
<th ts-criteria="interviewbogen">Interviewbogen</th>
<th ts-criteria="anmerkung">Anmerkung/Prio</th>
<th ts-criteria="laststatus">Status</th>
<th></th>
</tr>
@@ -455,6 +531,7 @@
<td>{{stud.seqPlace}}</td>
<td>{{stud.rt_gesamtpunkte}}</td>
<td>{{stud.interviewbogen?'vorhanden':'nicht vorhanden'}}</td>
<td>{{stud.anmerkung}}</td>
<td>{{stud.laststatus}}</td>
<td>
<input ng-if="stud.applicant" type="checkbox" ng-model="stud.selected"/>