kartenverlängerungsautomat sucht sich den zu letzt bezahlten Studienbeitrag und druckt dieses datum

This commit is contained in:
Karl Burkhart
2013-05-16 07:46:01 +00:00
parent 5a598c0254
commit f27cfc87d8
2 changed files with 70 additions and 4 deletions
+57
View File
@@ -514,6 +514,63 @@ class konto extends basis_db
return false;
}
}
/**
* ueberprueft, ob studiengebuehr gebucht ist fuer
* student_uid und studiensemester
* gibt true/false zurueck und setzt bei true das buchungsdatum $this->buchungsdatum
*/
public function getLastStudienbeitrag($uid)
{
$subqry = "SELECT tbl_konto.buchungsnr, tbl_konto.buchungsdatum, tbl_konto.buchungsnr_verweis, tbl_konto.studiensemester_kurzbz FROM public.tbl_konto, public.tbl_benutzer, public.tbl_student
WHERE
tbl_benutzer.uid = '".addslashes($uid)."'
AND tbl_benutzer.uid = tbl_student.student_uid
AND tbl_benutzer.person_id = tbl_konto.person_id
AND tbl_konto.studiengang_kz=tbl_student.studiengang_kz
AND tbl_konto.buchungstyp_kurzbz = 'Studiengebuehr' ORDER BY buchungsnr DESC";
if($result = $this->db_query($subqry))
{
if ($this->db_num_rows($result)==0)
return false;
else
{
while ($subrow = $this->db_fetch_object($result))
{
if($subrow->buchungsnr_verweis != '')
{
$qry = "SELECT sum(betrag) as differenz FROM public.tbl_konto
WHERE buchungsnr=".$this->db_add_param($subrow->buchungsnr_verweis, FHC_INTEGER)." OR buchungsnr_verweis=".$this->db_add_param($subrow->buchungsnr_verweis, FHC_INTEGER).";";
if($result_test = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result_test))
{
if ($row->differenz == 0)
{
return $subrow->studiensemester_kurzbz;
}
}
}
else
{
$this->errormsg = 'Fehler beim Ermitteln der Differenz';
return false;
}
}
}
}
}
else
{
$this->errormsg = 'Fehler bei einer Abfrage';
return false;
}
}
/**
*
+13 -4
View File
@@ -57,7 +57,7 @@ function getNumber($cardNr)
$objArray = array('datum'=>'', 'errorMessage'=>'Die Person kann nicht geladen werden. Bitte wenden Sie sich an den Service Desk.');
return $objArray;
}
/*
// lädt das aktuelle semester und nach 75 Tagen nach Anfang des Semesters das nächste
$studSemester = new studiensemester();
if(!$aktSemester= $studSemester->getNextOrAktSemester('75'))
@@ -65,15 +65,24 @@ function getNumber($cardNr)
$objArray = array('datum'=>'', 'errorMessage'=>'Konnte Semester nicht laden. Bitte wenden Sie sich an den Service Desk.');
return $objArray;
}
// überprüft ob Studienbeitrag bezahlt wurde
*/
// hole Semester des letzten eingezahlten Studienbeitrages
$konto = new konto();
if(!$aktSemester= $konto->getLastStudienbeitrag($cardPerson->uid))
{
$objArray = array('datum'=>'', 'errorMessage'=>'Fehler beim Auslesen des Studienganges. Bitte wenden Sie sich an den Service Desk.');
return $objArray;
}
/*
// überprüft ob Studienbeitrag bezahlt wurde
if(!$konto->checkStudienbeitrag($cardPerson->uid, $aktSemester))
{
$objArray = array('datum'=>'', 'errorMessage'=>'Studienbeitrag noch nicht gezahlt.');
return $objArray;
}
*/
$studSemester = new studiensemester();
$studSemester->load($aktSemester);
$datum = new datum();