diff --git a/soap/stip.class.php b/soap/stip.class.php index c85880174..0d9888ab9 100644 --- a/soap/stip.class.php +++ b/soap/stip.class.php @@ -22,6 +22,7 @@ require_once('../config/vilesci.config.inc.php'); require_once('../include/basis_db.class.php'); require_once('../include/studiensemester.class.php'); require_once('../include/zeugnisnote.class.php'); +require_once('../include/prestudent.class.php'); class stip extends basis_db { @@ -268,27 +269,68 @@ class stip extends basis_db * @param $studentUID * @param $studSemester */ - function getOrgFormTeilCode($studentUID, $studSemester) + function getOrgFormTeilCode($studentUID, $studSemester, $prestudentID) { - $qry = "select orgform.code, studiengang.orgform_kurzbz as studorgkz, student.student_uid, student.studiengang_kz studiengang + + // hole mischform von studenten + $qry_mischform = "select studiengang.mischform from public.tbl_studiengang studiengang join public.tbl_student student using(studiengang_kz) join public.tbl_prestudent prestudent using(prestudent_id) - join public.tbl_prestudentstatus status using(prestudent_id) - join bis.tbl_orgform orgform on(orgform.orgform_kurzbz = studiengang.orgform_kurzbz) where student_uid='$studentUID' - and status.studiensemester_kurzbz ='$studSemester';"; - - if($this->db_query($qry)) + where student_uid='$studentUID'"; + + if($this->db_query($qry_mischform)) { - if($row = $this->db_fetch_object()) + if($row= $this->db_fetch_object()) { - $this->OrgFormTeilCode = $row->code; + $mischform = ($row->mischform=='t'?true:false); + + } + } + + // hole OrgFormTeilCode aus studiengang + if($mischform == false) + { + + $qry = "select orgform.code, studiengang.orgform_kurzbz as studorgkz, student.student_uid, student.studiengang_kz studiengang + from public.tbl_studiengang studiengang + join public.tbl_student student using(studiengang_kz) + join public.tbl_prestudent prestudent using(prestudent_id) + join public.tbl_prestudentstatus status using(prestudent_id) + join bis.tbl_orgform orgform on(orgform.orgform_kurzbz = studiengang.orgform_kurzbz) where student_uid='$studentUID' + and status.studiensemester_kurzbz ='$studSemester';"; + + // Wenn kein Status gefunden wurde -> null + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->OrgFormTeilCode = $row->code; + return true; + } + $this->OrgFormTeilCode = null; + return false; + } + else + return false; + } + else // hole OrgFormTeilCode aus letztem Status + { + + $prestudentStatus = new prestudent(); + // wenn status vorhanden übernehme OrgForm + if($prestudentStatus->getLastStatus($prestudentID,$studSemester)) + { + $statusOrgForm = $prestudentStatus->orgform_kurzbz; + $this->OrgFormTeilCode = $this->getOrgFormCodeFromKurzbz($statusOrgForm); return true; } - return false; + else + $this->OrgFormTeilCode = null; + + } - else - return false; + $this->OrgFormTeilCode = null; } diff --git a/soap/stip.soap.php b/soap/stip.soap.php index 40f6c9180..6aa8a22e6 100644 --- a/soap/stip.soap.php +++ b/soap/stip.soap.php @@ -110,32 +110,27 @@ function GetStipendienbezieherStip($parameters) $studentUID = $student->getUID($prestudentID); $student->load($studentUID); - + $studiengang_kz = $student->studiengang_kz; + $konto = new konto(); - $studGebuehr = $konto->getStudiengebuehrGesamt($studentUID, $studSemester); + $studGebuehr = $konto->getStudiengebuehrGesamt($studentUID, $studSemester, $studiengang_kz); // , als Dezimaltrennzeichen $studGebuehr = str_replace('.', ',', $studGebuehr); // wenn nicht bezahlt if($studGebuehr == "") $studGebuehr = "0,00"; - + + if(!$prestudentStatus->getLastStatus($prestudentID,$studSemester)) + $StipBezieher->Inskribiert = 'n'; + else + $StipBezieher->Inskribiert = 'j'; + if($BezieherStip->Typ == "as" || $BezieherStip->Typ == "AS") { - $StipBezieher->getOrgFormTeilCode($studentUID, $studSemester); - - // Wenn Studium ist VBB -> in Status vom Studenten schauen - if($StipBezieher->OrgFormTeilCode == 3) - { - // lade letzten status vom gesuchten semester - $prestudentStatus->getLastStatus($prestudentID,$studSemester); - $statusOrgForm = $prestudentStatus->orgform_kurzbz; - $StipBezieher->OrgFormTeilCode = $StipBezieher->getOrgFormCodeFromKurzbz($statusOrgForm); - - } - + $StipBezieher->getOrgFormTeilCode($studentUID, $studSemester, $prestudentID); + $StipBezieher->Studienbeitrag = $studGebuehr; - $StipBezieher->Inskribiert ="j"; $StipBezieher->Ausbildungssemester = $StipBezieher->getSemester($prestudentID, $studSemester); $StipBezieher->StudStatusCode = $StipBezieher->getStudStatusCode($prestudentID, $studSemester); if($StipBezieher->StudStatusCode==3 || $StipBezieher->StudStatusCode==4) @@ -144,6 +139,7 @@ function GetStipendienbezieherStip($parameters) $StipBezieher->BeendigungsDatum = null; $StipBezieher->Erfolg = $StipBezieher->getErfolg($prestudentID, $studSemester); + } elseif($Bezieher->Typ ="ag" || $Bezieher->Typ == "AG") { @@ -151,7 +147,6 @@ function GetStipendienbezieherStip($parameters) $StipBezieher->StudStatusCode = null; $StipBezieher->BeendigungsDatum = null; $StipBezieher->Studienbeitrag = null; - $StipBezieher->Inskribiert ="j"; $StipBezieher->OrgFormTeilCode = null; }