diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index a3e4a60b3..461d2f02a 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -57,6 +57,13 @@ define('CIS_GESAMTNOTE_UEBERSCHREIBEN',true); // Vertraege fuer Pruefungshonorare anzulegen define('FAS_GESAMTNOTE_PRUEFUNGSHONORAR',false); +// Grenzwerte für Anwesenheit +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; + } + } + } + } } } } diff --git a/include/anwesenheit.class.php b/include/anwesenheit.class.php index 12baa7d3d..6ae193dc6 100644 --- a/include/anwesenheit.class.php +++ b/include/anwesenheit.class.php @@ -21,6 +21,7 @@ * Klasse zur Verwaltung der Anwesenheiten der Studierenden */ require_once(dirname(__FILE__).'/basis_db.class.php'); +require_once(dirname(__FILE__).'/../config/global.config.inc.php'); class anwesenheit extends basis_db { @@ -384,11 +385,11 @@ class anwesenheit extends basis_db public function getAmpel($anwesenheit_relativ) { - if($anwesenheit_relativ < 70) + if($anwesenheit_relativ < FAS_ANWESENHEIT_ROT) { return 'red'; } - elseif($anwesenheit_relativ < 90) + elseif($anwesenheit_relativ < FAS_ANWESENHEIT_GELB) { return 'yellow'; }