From 61533035ede1d24982a970d215e5e567d9293560 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 5 Oct 2015 11:06:09 +0200 Subject: [PATCH 01/20] Pruefungen werden nun auch angelegt wenn Noten Uebernommen oder importiert werden --- content/student/studentDBDML.php | 304 +++++++++++++------------------ 1 file changed, 124 insertions(+), 180 deletions(-) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index b52c54bc5..730b4cc6f 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -151,6 +151,114 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) } } +/** + * Wenn die Anwesenheit und einen bestimmten Prozentsatz faellt, wird ein Pruefungstermin abgezogen + * @param $studiensemester_kurzbz + * @param $student_uid + * @param $lehrveranstaltung_id + * @param $note + * @return null, error wird direkt in globale Variable geschrieben + */ +function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $note) +{ + global $return, $error, $errormsg; + + $db = new basis_db(); + $anwesenheit = new anwesenheit(); + $anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id); + + // Lehreinheit ermitteln + $error = false; + $qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung " + . "WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)." " + . "ORDER BY lehreinheit_id ASC " + . "LIMIT 1"; + + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $lehreinheit_id = $row->lehreinheit_id; + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; + } + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; + } + + if(!$error) + { + $pruefung = new pruefung; + $pruefung->new = true; + $pruefung->student_uid = $student_uid; + $pruefung->lehreinheit_id = $lehreinheit_id; + $pruefung->datum = date("Y-m-d"); + + $stsem_obj = new studiensemester(); + $stsem_obj->load($studiensemester_kurzbz); + + // In Benutzerfunktion nachsehen ob eine Anwesenheitsbefreiung eingetragen ist + $benutzerfunktion = new benutzerfunktion(); + $benutzerfunktion->getBenutzerFunktionByUid($student_uid, 'awbefreit', $stsem_obj->start, $stsem_obj->ende); + + $anwesenheitsbefreit=false; + if(count($benutzerfunktion->result)>0) + $anwesenheitsbefreit=true; + + // Wenn nicht Anwesenheitsbefreit und Anwesenheit unter einem bestimmten Prozentsatz faellt dann wird ein + // Pruefungsantritt abgezogen + if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT && !$anwesenheitsbefreit) + { + // 1. Termin mit "nicht beurteilt" erstellen + $pruefung->pruefungstyp_kurzbz = "Termin1"; + $pruefung->note = 7; + if($pruefung->save()) + { + // 2. Termin mit Note erstellen + $pruefung->pruefungstyp_kurzbz = "Termin2"; + $pruefung->note = $note; + if($pruefung->save()) + { + $return = true; + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } + } + else + { + // 1. Termin mit Note erstellen + $pruefung->pruefungstyp_kurzbz = "Termin1"; + $pruefung->note = $note; + + if($pruefung->save()) + { + $return = true; + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } + } + } +} if(!$error) { @@ -2588,101 +2696,8 @@ if(!$error) if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true) { - $anwesenheit = new anwesenheit(); - $anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id); - - // Lehreinheit ermitteln - $error = false; - $qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung " - . "WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)." " - . "ORDER BY lehreinheit_id ASC " - . "LIMIT 1"; - - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - $lehreinheit_id = $row->lehreinheit_id; - } - else - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; - } - } - else - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; - } - - if(!$error) - { - $pruefung = new pruefung; - $pruefung->new = true; - $pruefung->student_uid = $student_uid; - $pruefung->lehreinheit_id = $lehreinheit_id; - $pruefung->datum = date("Y-m-d"); - - $stsem_obj = new studiensemester(); - $stsem_obj->load($studiensemester_kurzbz); - - // In Benutzerfunktion nachsehen ob eine Anwesenheitsbefreiung eingetragen ist - $benutzerfunktion = new benutzerfunktion(); - $benutzerfunktion->getBenutzerFunktionByUid($student_uid, 'awbefreit', $stsem_obj->start, $stsem_obj->ende); - - $anwesenheitsbefreit=false; - if(count($benutzerfunktion->result)>0) - $anwesenheitsbefreit=true; - - // Wenn nicht Anwesenheitsbefreit und Anwesenheit unter einem bestimmten Prozentsatz faellt dann wird ein - // Pruefungsantritt abgezogen - if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT && !$anwesenheitsbefreit) - { - // 1. Termin mit "nicht beurteilt" erstellen - $pruefung->pruefungstyp_kurzbz = "Termin1"; - $pruefung->note = 7; - if($pruefung->save()) - { - // 2. Termin mit Note erstellen - $pruefung->pruefungstyp_kurzbz = "Termin2"; - $pruefung->note = $noten->note; - if($pruefung->save()) - { - $return = true; - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - else - { - // 1. Termin mit Note erstellen - $pruefung->pruefungstyp_kurzbz = "Termin1"; - $pruefung->note = $noten->note; - - if($pruefung->save()) - { - $return = true; - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - } - } + NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note); + } } } } @@ -2792,6 +2807,13 @@ if(!$error) { $errormsg .= "\n".$zeugnisnote->errormsg; } + else + { + if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true) + { + NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note); + } + } } else { @@ -2944,91 +2966,13 @@ if(!$error) { $errormsg .= "\n".$zeugnisnote->errormsg; } - - if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $errormsg == '' && $zeugnisnote->new == true) - { - $anwesenheit = new anwesenheit(); - $anwesenheit->loadAnwesenheitStudiensemester($semester_aktuell, $uid, $_POST['lehrveranstaltung_id']); - - // Lehreinheit ermitteln - $error = false; - $qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung " - . "WHERE uid=".$db->db_add_param($uid)." AND lehrveranstaltung_id=".$db->db_add_param($_POST['lehrveranstaltung_id'])." " - . "ORDER BY lehreinheit_id ASC " - . "LIMIT 1"; - - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - $lehreinheit_id = $row->lehreinheit_id; - } - else - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; - } - } - else - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; - } - - if(!$error) - { - $pruefung = new pruefung; - $pruefung->new = true; - $pruefung->student_uid = $uid; - $pruefung->lehreinheit_id = $lehreinheit_id; - $pruefung->datum = date("Y-m-d"); - - if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT) - { - // 1. Termin mit "nicht beurteilt" erstellen - $pruefung->pruefungstyp_kurzbz = "Termin1"; - $pruefung->note = 7; - if($pruefung->save()) - { - // 2. Termin mit Note erstellen - $pruefung->pruefungstyp_kurzbz = "Termin2"; - $pruefung->note = $zeugnisnote->note; - if($pruefung->save()) - { - $return = true; - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - else - { - // 1. Termin mit Note erstellen - $pruefung->pruefungstyp_kurzbz = "Termin1"; - $pruefung->note = $zeugnisnote->note; - - if($pruefung->save()) - { - $return = true; - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - } - } + else + { + if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true) + { + NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note); + } + } } } } From ceb8c55751bcb95d75ea68dd4af3058cccd6e8a8 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 5 Oct 2015 11:32:39 +0200 Subject: [PATCH 02/20] =?UTF-8?q?Anmerkung=20kann=20nun=20beim=20Anlegen?= =?UTF-8?q?=20von=20Pr=C3=BCfungsvertr=C3=A4gen=20editiert=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lehrveranstaltungnotenoverlay.xul.php | 80 ++++++++++--------- .../lvplanung/lehrveranstaltungoverlay.js.php | 5 +- 2 files changed, 47 insertions(+), 38 deletions(-) diff --git a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php index 3fd86810f..02d1dfc55 100644 --- a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php +++ b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php @@ -271,43 +271,49 @@ if(defined('FAS_GESAMTNOTE_PRUEFUNGSHONORAR') && FAS_GESAMTNOTE_PRUEFUNGSHONORAR - -