mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Pruefungen werden nun auch angelegt wenn Noten Uebernommen oder importiert werden
This commit is contained in:
+124
-180
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user