Pruefungen werden nun auch angelegt wenn Noten Uebernommen oder importiert werden

This commit is contained in:
oesi
2015-10-05 11:06:09 +02:00
parent f812fce994
commit 61533035ed
+124 -180
View File
@@ -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);
}
}
}
}
}