mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-26 09:04:28 +00:00
moved credit points check from cours registration to exam registration
This commit is contained in:
@@ -80,7 +80,6 @@ switch($method)
|
|||||||
$data['errormsg']='Studenten UID fehlt.';
|
$data['errormsg']='Studenten UID fehlt.';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = saveAnmeldung($aktStudiensemester, $uid);
|
$data = saveAnmeldung($aktStudiensemester, $uid);
|
||||||
break;
|
break;
|
||||||
case 'getAllPruefungen':
|
case 'getAllPruefungen':
|
||||||
@@ -442,6 +441,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
|||||||
// Defaulteinstellung für Prüfungstypen - schauen, ob bereits aus KTU-Addon geladen
|
// Defaulteinstellung für Prüfungstypen - schauen, ob bereits aus KTU-Addon geladen
|
||||||
if(!isset($pruefungstyp_kurzbzArray))
|
if(!isset($pruefungstyp_kurzbzArray))
|
||||||
$pruefungstyp_kurzbzArray = array("Termin1","Termin2","kommPruef");
|
$pruefungstyp_kurzbzArray = array("Termin1","Termin2","kommPruef");
|
||||||
|
|
||||||
if(isset($pruefungstyp_kurzbzArray))
|
if(isset($pruefungstyp_kurzbzArray))
|
||||||
{
|
{
|
||||||
if($anzahlPruefungen < count($pruefungstyp_kurzbzArray))
|
if($anzahlPruefungen < count($pruefungstyp_kurzbzArray))
|
||||||
@@ -501,23 +501,30 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
|||||||
$anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
|
$anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
|
||||||
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
|
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
|
||||||
|
|
||||||
$konto = new konto();
|
// $konto = new konto();
|
||||||
$creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester);
|
// $creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester);
|
||||||
|
//
|
||||||
|
// if($creditpoints !== false)
|
||||||
|
// {
|
||||||
|
// if($creditpoints <= $lehrveranstaltung->ects)
|
||||||
|
// {
|
||||||
|
// $data['error'] = 'true';
|
||||||
|
// $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints');
|
||||||
|
// return $data;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
if($creditpoints !== false)
|
//Kollisionsprüfung und Prüfung auf ausreichen Creditpoints
|
||||||
{
|
|
||||||
if($creditpoints < $lehrveranstaltung->ects)
|
|
||||||
{
|
|
||||||
$data['error'] = 'true';
|
|
||||||
$data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints');
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Kollisionsprüfung
|
|
||||||
$anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester);
|
$anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester);
|
||||||
|
|
||||||
|
if($anmeldungen !== false)
|
||||||
|
{
|
||||||
|
$ects = 0;
|
||||||
foreach($anmeldungen as $temp)
|
foreach($anmeldungen as $temp)
|
||||||
{
|
{
|
||||||
|
$lehrveranstaltung = new lehrveranstaltung($temp->lehrveranstaltung_id);
|
||||||
|
$ects += $lehrveranstaltung->ects;
|
||||||
|
|
||||||
$datum = new datum();
|
$datum = new datum();
|
||||||
if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis)))
|
if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis)))
|
||||||
{
|
{
|
||||||
@@ -526,12 +533,29 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
|||||||
$data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung');
|
$data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$konto = new konto();
|
||||||
|
$creditPoints = $konto->getCreditPointsOfStudiensemester($uid, $aktStudiensemester);
|
||||||
|
if(($creditPoints != false) && ($ects >= ($creditPoints - $ects)))
|
||||||
|
{
|
||||||
|
$data['error'] = 'true';
|
||||||
|
$data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints');
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
if(isset($data['error']) && $data['error'] = 'true')
|
if(isset($data['error']) && $data['error'] = 'true')
|
||||||
{
|
{
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
$data['error'] = 'true';
|
||||||
|
$data['errormsg'] = $anmeldung->errormsg;
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$data['error']='true';
|
$data['error']='true';
|
||||||
$data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden');
|
$data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden');
|
||||||
|
|||||||
@@ -102,14 +102,7 @@ if(isset($_GET['getAnmeldung']))
|
|||||||
if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem))
|
if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem))
|
||||||
{
|
{
|
||||||
// User ist noch nicht angemeldet
|
// User ist noch nicht angemeldet
|
||||||
//Pruefen ob genug Credit Points zur Verfuegung stehen zur Anmeldung
|
|
||||||
|
|
||||||
$konto = new konto();
|
|
||||||
$cp = $konto->getCreditPoints($uid, $stsem);
|
|
||||||
if($cp===false || $cp>=$lv->ects)
|
|
||||||
echo '<br><input type="radio" value="'.$lvid.'" name="lv"/>'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')';
|
echo '<br><input type="radio" value="'.$lvid.'" name="lv"/>'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')';
|
||||||
else
|
|
||||||
echo '<br><input type="radio" disabled="true" value="'.$lvid.'" name="lv" /><span style="color:gray;">'.$lv->bezeichnung.'</span><img src="../../../skin/images/information.png" title="'.$p->t('studienplan/zuWenigCP').'" />';
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -200,12 +193,6 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung')
|
|||||||
$bngruppe = new benutzergruppe();
|
$bngruppe = new benutzergruppe();
|
||||||
|
|
||||||
if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem))
|
if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem))
|
||||||
{
|
|
||||||
|
|
||||||
// Pruefen ob genug CP zur Verfuegung stehen falls diese reduziert sind
|
|
||||||
$konto = new konto();
|
|
||||||
$cp = $konto->getCreditPoints($uid, $stsem);
|
|
||||||
if($cp===false || $cp>=$lv->ects)
|
|
||||||
{
|
{
|
||||||
$bngruppe->uid = $uid;
|
$bngruppe->uid = $uid;
|
||||||
$bngruppe->gruppe_kurzbz = $lvangebot->result[0]->gruppe_kurzbz;
|
$bngruppe->gruppe_kurzbz = $lvangebot->result[0]->gruppe_kurzbz;
|
||||||
@@ -218,9 +205,6 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung')
|
|||||||
echo '<script>window.parent.menu.location.reload();</script>';
|
echo '<script>window.parent.menu.location.reload();</script>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
echo '<span class="error">'.$p->t('studienplan/zuWenigCP').'</span>';
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
echo '<span class="error">'.$p->t('studienplan/bereitsAngemeldet').'</span>';
|
echo '<span class="error">'.$p->t('studienplan/bereitsAngemeldet').'</span>';
|
||||||
|
|||||||
@@ -801,6 +801,51 @@ class konto extends basis_db
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liefert die CreditPoints die ein Studierender für ein Studiensemester zur Verfügung hat
|
||||||
|
* falls dieser einschraenkungen eingetragen hat. Wenn keine Einschraenkung vorhanden ist,
|
||||||
|
* wird false zurueckgeliefert. Es werden die Creditpoint der Belastungen herangezogen.
|
||||||
|
* Die Gegenbuchung wird nicht beruecksichtigt.
|
||||||
|
* @return Anzahl der gekauften CreditPoints oder false falls unbeschraenkt
|
||||||
|
*/
|
||||||
|
public function getCreditPointsOfStudiensemester($uid, $studiensemester_kurzbz)
|
||||||
|
{
|
||||||
|
$qry = "SELECT sum(credit_points) as cp
|
||||||
|
FROM
|
||||||
|
public.tbl_konto
|
||||||
|
JOIN public.tbl_benutzer USING(person_id)
|
||||||
|
WHERE
|
||||||
|
uid=".$this->db_add_param($uid)."
|
||||||
|
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||||
|
AND buchungsnr_verweis is null
|
||||||
|
AND credit_points is not null";
|
||||||
|
|
||||||
|
if($result = $this->db_query($qry))
|
||||||
|
{
|
||||||
|
if($row = $this->db_fetch_object($result))
|
||||||
|
{
|
||||||
|
$creditpoints = $row->cp;
|
||||||
|
|
||||||
|
if($creditpoints!='')
|
||||||
|
{
|
||||||
|
return $creditpoints;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// keine Einschraenkung vorhanden
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fügt zur erstellten Buchung eine Zahlungsreferenz hinzu
|
* Fügt zur erstellten Buchung eine Zahlungsreferenz hinzu
|
||||||
* @param $buchungsnr Die ID der erstellten Buchung in der Datenbank
|
* @param $buchungsnr Die ID der erstellten Buchung in der Datenbank
|
||||||
|
|||||||
Reference in New Issue
Block a user