- Gesamtpunkte berechnen bei Aufnahmeterminen summiert nur noch die Punkte des Studiengangs des Prestudenten

- Gesamtpunkte berechnen bei Aufnahmeterminen zieht nur die Reihungstests des jüngsten Studiensemesters der zugeordneten Reihungstests zur Berechnung der Gesamtpunkte mit ein
This commit is contained in:
oesi
2017-03-08 17:51:07 +01:00
parent c8fa540840
commit faed608435
2 changed files with 91 additions and 11 deletions
+47 -6
View File
@@ -73,6 +73,7 @@ require_once('../../include/adresse.class.php');
require_once('../../include/reihungstest.class.php');
require_once('../../include/studienplan.class.php');
require_once('../../include/mobilitaet.class.php');
require_once('../../include/studienordnung.class.php');
$user = get_uid();
$db = new basis_db();
@@ -4101,17 +4102,57 @@ if(!$error)
}
else
{
$gesamtpunkte=0;
$gesamtpunkte_arr = array();
$reihungstest = new reihungstest();
if($reihungstest->getReihungstestPerson($prestudent->person_id))
{
foreach($reihungstest->result as $row)
$gesamtpunkte += $row->punkte;
{
$studienplan = new studienplan();
if($studienplan->loadStudienplan($row->studienplan_id))
{
$studienordnung = new studienordnung();
if($studienordnung->loadStudienordnung($studienplan->studienordnung_id))
{
if($studienordnung->studiengang_kz == $prestudent->studiengang_kz)
{
$rt_obj = new reihungstest();
$rt_obj->load($row->reihungstest_id);
if(!isset($gesamtpunkte_arr[$rt_obj->studiensemester_kurzbz]))
$gesamtpunkte_arr[$rt_obj->studiensemester_kurzbz]=0;
$gesamtpunkte_arr[$rt_obj->studiensemester_kurzbz] += $row->punkte;
}
}
else
{
$return = false;
$errormsg = $studienordnung->errormsg;
$error = true;
}
}
else
{
$return = false;
$errormsg = $studienplan->errormsg;
$error = true;
}
}
$return = true;
$error = false;
$data = $gesamtpunkte;
$errormsg = 'Erfolgreich gespeichert';
if(!$error)
{
if(count(array_keys($gesamtpunkte_arr))>0)
{
$studiensemester = new studiensemester();
$stsem = $studiensemester->getYoungestFromArray(array_keys($gesamtpunkte_arr));
$gesamtpunkte = $gesamtpunkte_arr[$stsem];
}
else
$gesamtpunkte = '0';
$return = true;
$error = false;
$data = $gesamtpunkte;
$errormsg = 'Erfolgreich gespeichert';
}
}
else
{
+44 -5
View File
@@ -662,7 +662,7 @@ class studiensemester extends basis_db
public function getFinished($limit = null)
{
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <= NOW() ORDER BY ende DESC";
if(!is_null($limit) && is_numeric($limit))
$qry.=' LIMIT '.$limit;
@@ -768,22 +768,22 @@ class studiensemester extends basis_db
{
if (!isset($this->begin))
$this->begin = new stdclass();
$this->begin->start = mktime(0, 0, 0,
mb_substr($row->start, 5, 2),
mb_substr($row->start, 8, 2),
mb_substr($row->start, 0, 4)
);
if (!isset($this->end))
$this->ende = new stdclass();
$this->ende->ende = mktime(0, 0, 0,
mb_substr($row->ende, 5, 2),
mb_substr($row->ende, 8, 2),
mb_substr($row->ende, 0, 4)
);
return true;
}
else
@@ -976,5 +976,44 @@ class studiensemester extends basis_db
return false;
}
}
/**
* Liefert aus einer Liste von Studiensemester das neueste Studiensemester zurueck
* @param $studiensemester_arr Array mit Studiensemester_kurzbz
* @return Studiensemester aus dem Array das zuletzt startet
*/
public function getYoungestFromArray($studiensemester_arr)
{
$qry = "SELECT
*
FROM
public.tbl_studiensemester
WHERE
studiensemester_kurzbz IN(".$this->db_implode4SQL($studiensemester_arr).")
ORDER BY
start desc
LIMIT 1";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
return $row->studiensemester_kurzbz;
}
else
{
$this->errormsg = 'Es wurde kein Studiensemester gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Ermitteln des Studiensemesters';
return false;
}
}
}
?>