From 5c4aa9f4fc7b97875db25274af580f573992bab9 Mon Sep 17 00:00:00 2001 From: Nikolaus Krondraf Date: Tue, 18 Aug 2015 10:53:17 +0200 Subject: [PATCH] =?UTF-8?q?Je=20nach=20Anwesenheit=20werden=20Pr=C3=BCfung?= =?UTF-8?q?stermine=20beim=20Eintragen=20von=20Noten=20angelegt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/global.config-default.inc.php | 3 + content/student/studentDBDML.php | 86 ++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 180d22fe8..461d2f02a 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -61,6 +61,9 @@ define('FAS_GESAMTNOTE_PRUEFUNGSHONORAR',false); define('FAS_ANWESENHEIT_ROT', 70); define('FAS_ANWESENHEIT_GELB', 90); +// Legt einen Prüfungstermin an wenn eine neue Note erfasst wird +define('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN',false); + // Anzeigeoptionen für LV-Plan Menü define('CIS_LVPLAN_EXPORT_ANZEIGEN',true); define('CIS_LVPLAN_PERSONENAUSWAHL_ANZEIGEN',true); diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 02997fe35..bffcbe716 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -64,6 +64,7 @@ require_once('../../include/dms.class.php'); require_once('../../include/notenschluessel.class.php'); require_once('../../include/anrechnung.class.php'); require_once('../../include/lehrveranstaltung.class.php'); +require_once('../../include/anwesenheit.class.php'); $user = get_uid(); $db = new basis_db(); @@ -2553,6 +2554,91 @@ if(!$error) $errormsg = $noten->errormsg; $return = false; } + + 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"); + + if($anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT) + { + // 1. Termin mit "nicht angetreten" 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; + } + } + } + } } } }