From 24f69c43336d52ac8a2ac07248973322cb1e8d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 3 Dec 2019 08:37:00 +0100 Subject: [PATCH] =?UTF-8?q?Anpassung=20STIP=20Schnittstelle=20an=20Version?= =?UTF-8?q?=203.0=20=20-=20Neue=20Abfrage=20f=C3=BCr=20Matrikelnummer=20un?= =?UTF-8?q?d=20StudiengangKz=20hinzugef=C3=BCgt=20=20-=20Antwort=20von=20M?= =?UTF-8?q?atrikelnummer=20und=20StudiengangKz=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soap/stip.class.php | 81 ++++++++++-- soap/stip.soap.php | 54 +++++--- soap/stip.wsdl.php | 308 ++++++++++++++++++++++--------------------- soap/stip_client.php | 123 +++++++++-------- 4 files changed, 330 insertions(+), 236 deletions(-) diff --git a/soap/stip.class.php b/soap/stip.class.php index 434444cc9..1ce7efc84 100644 --- a/soap/stip.class.php +++ b/soap/stip.class.php @@ -29,11 +29,15 @@ class stip extends basis_db public $Semester; public $Studienjahr; public $PersKz; + public $Matrikelnummer; + public $StgKz; public $SVNR; public $Familienname; public $Vorname; public $Typ; public $PersKz_Antwort; + public $Matrikelnummer_Antwort; + public $StgKz_Antwort; public $SVNR_Antwort; public $Familienname_Antwort; public $Vorname_Antwort; @@ -47,7 +51,6 @@ class stip extends basis_db public $OrgFormTeilCode; public $AntwortStatusCode; - /** * * Überprüft die Daten @@ -82,6 +85,20 @@ class stip extends basis_db //return false; } + // kein Mussfeld + if($Bezieher->Matrikelnummer != null && strlen($Bezieher->Matrikelnummer) != 8) + { + $this->errormsg = "Kein gültiger Wert für Matrikelnummer"; + return false; + } + + // kein Mussfeld + if($Bezieher->StgKz != null && strlen($Bezieher->StgKz) != 4) + { + $this->errormsg = "Kein gültiger Wert für StgKz"; + return false; + } + if(mb_strlen($Bezieher->SVNR) != 10 || !is_numeric($Bezieher->SVNR)) { $this->errormsg = "Kein gültiger Wert für SVNR"; @@ -119,7 +136,7 @@ class stip extends basis_db function searchPersonKz($PersonKz) { $qry = "SELECT - prestudent_id, vorname, nachname, svnr, matrikelnr + prestudent_id, vorname, nachname, svnr, matrikelnr, student.studiengang_kz, person.matr_nr FROM public.tbl_student student JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid) @@ -134,12 +151,56 @@ class stip extends basis_db $this->Familienname_Antwort = $row->nachname; $this->SVNR_Antwort = $row->svnr; $this->PersKz_Antwort = trim($row->matrikelnr); + $this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); + $this->Matrikelnummer = $row->matr_nr; $this->AntwortStatusCode = 1; return $row->prestudent_id; } else { - $this->AntwortStatusCode =2; + $this->AntwortStatusCode = 2; + return false; + } + } + else + { + return false; + } + + } + /** + * + * Suche Studenten anhand PersonKz + * @param $PersonKz + */ + function searchMatrikelnummerStg($Matrikelnummer, $StgKz) + { + $qry = "SELECT + prestudent_id, vorname, nachname, svnr, matrikelnr, student.studiengang_kz, person.matr_nr + FROM + public.tbl_student student + JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid) + JOIN public.tbl_person person using(person_id) + WHERE + person.matr_nr = ".$this->db_add_param($Matrikelnummer)." + AND student.studiengang_kz=".$this->db_add_param(ltrim($StgKz,0)).";"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->Vorname_Antwort = $row->vorname; + $this->Familienname_Antwort = $row->nachname; + $this->SVNR_Antwort = $row->svnr; + $this->PersKz_Antwort = trim($row->matrikelnr); + $this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); + $this->Matrikelnummer = $row->matr_nr; + $this->AntwortStatusCode = 1; + return $row->prestudent_id; + } + else + { + $this->AntwortStatusCode = 2; return false; } } @@ -157,7 +218,7 @@ class stip extends basis_db function searchSvnr($Svnr) { $qry = "SELECT - prestudent_id, vorname, nachname, svnr, matrikelnr + prestudent_id, vorname, nachname, svnr, matrikelnr, student.studiengang_kz, person.matr_nr FROM public.tbl_student student JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid) @@ -175,12 +236,14 @@ class stip extends basis_db $this->Familienname_Antwort = $row->nachname; $this->SVNR_Antwort = $row->svnr; $this->PersKz_Antwort = trim($row->matrikelnr); + $this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); + $this->Matrikelnummer = $row->matr_nr; $this->AntwortStatusCode = 1; return $row->prestudent_id; } else { - $this->AntwortStatusCode =2; + $this->AntwortStatusCode = 2; return false; } } @@ -206,7 +269,7 @@ class stip extends basis_db function searchVorNachname($Vorname, $Nachname) { $qry = "SELECT - prestudent_id, vorname, nachname, svnr, matrikelnr + prestudent_id, vorname, nachname, svnr, matrikelnr, student.studiengang_kz, person.matr_nr FROM public.tbl_student student JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid) @@ -226,12 +289,14 @@ class stip extends basis_db $this->Familienname_Antwort = $row->nachname; $this->SVNR_Antwort = $row->svnr; $this->PersKz_Antwort = trim($row->matrikelnr); + $this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT); + $this->Matrikelnummer = $row->matr_nr; $this->AntwortStatusCode = 1; return $row->prestudent_id; } else { - $this->AntwortStatusCode =2; + $this->AntwortStatusCode = 2; return false; } } @@ -446,7 +511,7 @@ class stip extends basis_db public function getSemester($prestudent_id, $studiensemester_kurzbz, $bisdatum=null) { $sem = ''; - + $qrystatus=" SELECT * diff --git a/soap/stip.soap.php b/soap/stip.soap.php index f6074a877..c2ae5eeea 100644 --- a/soap/stip.soap.php +++ b/soap/stip.soap.php @@ -96,25 +96,35 @@ function GetStipendienbezieherStip($parameters) $StipBezieher->Semester = $BezieherStip->Semester; $StipBezieher->Studienjahr = $BezieherStip->Studienjahr; $StipBezieher->PersKz = $BezieherStip->PersKz; + $StipBezieher->Matrikelnummer = $BezieherStip->Matrikelnummer; + $StipBezieher->StgKz = $BezieherStip->StgKz; $StipBezieher->SVNR = $BezieherStip->SVNR; $StipBezieher->Familienname = $BezieherStip->Familienname; $StipBezieher->Vorname = $BezieherStip->Vorname; $StipBezieher->Typ = $BezieherStip->Typ; // Studiensemester_kurzbz auslesen - if($BezieherStip->Semester == "WS" || $BezieherStip->Semester == "ws") + if ($BezieherStip->Semester == "WS" || $BezieherStip->Semester == "ws") { $year = mb_substr($BezieherStip->Studienjahr, 0,4); $studSemester = "WS".$year; - }elseif ($BezieherStip->Semester == "SS" || $BezieherStip->Semester == "ss") + } + elseif ($BezieherStip->Semester == "SS" || $BezieherStip->Semester == "ss") { $year = mb_substr($BezieherStip->Studienjahr, 0,2).mb_substr($BezieherStip->Studienjahr, 5,7); $studSemester = "SS".$year; } if(!$prestudentID = $StipBezieher->searchPersonKz($BezieherStip->PersKz)) - if(!$prestudentID = $StipBezieher->searchSvnr($BezieherStip->SVNR)) - $prestudentID = $StipBezieher->searchVorNachname($BezieherStip->Vorname, $BezieherStip->Familienname); + { + if(!$prestudentID = $StipBezieher->searchMatrikelnummerStg($BezieherStip->Matrikelnummer, $BezieherStip->StgKz)) + { + if(!$prestudentID = $StipBezieher->searchSvnr($BezieherStip->SVNR)) + { + $prestudentID = $StipBezieher->searchVorNachname($BezieherStip->Vorname, $BezieherStip->Familienname); + } + } + } // Student wurde gefunden if($StipBezieher->AntwortStatusCode == 1) @@ -127,8 +137,8 @@ function GetStipendienbezieherStip($parameters) $student = new student(); $studentUID = $student->getUID($prestudentID); - $abschlusspruefung = new abschlusspruefung(); - $abschlusspruefung->getLastAbschlusspruefung($studentUID); + $abschlusspruefung = new abschlusspruefung(); + $abschlusspruefung->getLastAbschlusspruefung($studentUID); $student->load($studentUID); $studiengang_kz = $student->studiengang_kz; @@ -145,33 +155,33 @@ function GetStipendienbezieherStip($parameters) if(!$prestudentStatus->getLastStatus($prestudentID,$studSemester)) $StipBezieher->Inskribiert = 'n'; else - { - // wenn nur Interessent letzer Status ist -> nicht inskribiert - if($prestudentStatus->status_kurzbz == 'Interessent') - $StipBezieher->Inskribiert = 'n'; - else - $StipBezieher->Inskribiert = 'j'; - } + { + // wenn nur Interessent letzer Status ist -> nicht inskribiert + if($prestudentStatus->status_kurzbz == 'Interessent') + $StipBezieher->Inskribiert = 'n'; + else + $StipBezieher->Inskribiert = 'j'; + } if($BezieherStip->Typ == "as" || $BezieherStip->Typ == "AS") { $StipBezieher->getOrgFormTeilCode($studentUID, $studSemester, $prestudentID); $StipBezieher->Studienbeitrag = $studGebuehr; - // Wenn letzter Status von Semester Interessent ist -> Semester = null - if($prestudentStatus->status_kurzbz != 'Interessent') - $StipBezieher->Ausbildungssemester = $StipBezieher->getSemester($prestudentID, $studSemester); + // Wenn letzter Status von Semester Interessent ist -> Semester = null + if($prestudentStatus->status_kurzbz != 'Interessent') + $StipBezieher->Ausbildungssemester = $StipBezieher->getSemester($prestudentID, $studSemester); else - $StipBezieher->Ausbildungssemester = null; + $StipBezieher->Ausbildungssemester = null; - $StipBezieher->StudStatusCode = $StipBezieher->getStudStatusCode($prestudentID, $studSemester); + $StipBezieher->StudStatusCode = $StipBezieher->getStudStatusCode($prestudentID, $studSemester); - // Ausgeschieden ohne Abschluss + // Ausgeschieden ohne Abschluss if($StipBezieher->StudStatusCode==4) $StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($prestudent->datum,'dmY'); else if($StipBezieher->StudStatusCode==3) // Absolvent -> letzte Prüfung nehmen - $StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($abschlusspruefung->datum,'dmY'); - else + $StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($abschlusspruefung->datum,'dmY'); + else $StipBezieher->BeendigungsDatum = null; $StipBezieher->Erfolg = $StipBezieher->getErfolg($prestudentID, $studSemester); @@ -193,6 +203,8 @@ function GetStipendienbezieherStip($parameters) { // Student wurde nicht gefunden $StipBezieher->PersKz_Antwort = null; + $StipBezieher->Matrikelnummer_Antwort = null; + $StipBezieher->StgKz_Antwort = null; $StipBezieher->SVNR_Antwort = null; $StipBezieher->Familienname_Antwort = null; $StipBezieher->Vorname_Antwort = null; diff --git a/soap/stip.wsdl.php b/soap/stip.wsdl.php index c24caed69..fb3bcf264 100644 --- a/soap/stip.wsdl.php +++ b/soap/stip.wsdl.php @@ -1,174 +1,178 @@ -"; ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - "/> - + + "/> + diff --git a/soap/stip_client.php b/soap/stip_client.php index db98c400b..bc735bfb3 100644 --- a/soap/stip_client.php +++ b/soap/stip_client.php @@ -30,11 +30,11 @@ $db = new basis_db(); - - - - - + + + + + STIP-Client @@ -43,57 +43,65 @@ $db = new basis_db(); Error Tester

- +
- - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Username:">
Username:">
Passwort:
ErhKz:">
AnfragedatenID:">
Semester:"> WS | SS
Studienjahr:">
PersKz:">
SVNR:">
Familienname:">
Vorname:">
Typ:"> AS | AG
- -
Passwort:
ErhKz:">
AnfragedatenID:">
Semester:"> WS | SS
Studienjahr:">
PersKz:">
Matrikelnummer:">
StgKz:">
SVNR:">
Familienname:">
Vorname:">
Typ:"> AS | AG
+ +
@@ -114,6 +122,8 @@ if(isset($_REQUEST['submit'])) $bezieher->Semester = $_REQUEST['Semester']; $bezieher->Studienjahr = $_REQUEST['Studienjahr']; $bezieher->PersKz= $_REQUEST['PersKz']; + $bezieher->Matrikelnummer= $_REQUEST['Matrikelnummer']; + $bezieher->StgKz= $_REQUEST['StgKz']; $bezieher->SVNR= $_REQUEST['Svnr']; $bezieher->Familienname= $_REQUEST['Familienname']; $bezieher->Vorname= $_REQUEST['Vorname']; @@ -122,6 +132,8 @@ if(isset($_REQUEST['submit'])) $bezieher1->Semester = $_REQUEST['Semester']; $bezieher1->Studienjahr = $_REQUEST['Studienjahr']; $bezieher1->PersKz= $_REQUEST['PersKz']; + $bezieher1->Matrikelnummer= $_REQUEST['Matrikelnummer']; + $bezieher1->StgKz= $_REQUEST['StgKz']; $bezieher1->SVNR= $_REQUEST['Svnr']; $bezieher1->Familienname= $_REQUEST['Familienname']; $bezieher1->Vorname= $_REQUEST['Vorname']; @@ -138,7 +150,7 @@ if(isset($_REQUEST['submit'])) } catch(SoapFault $fault) { - echo "SOAP Fault: (faultcode: ".$fault->faultcode.", faultstring: ".$fault->faultstring.")", E_USER_ERROR; + echo "SOAP Fault: (faultcode: ".$fault->faultcode.", faultstring: ".$fault->faultstring.")", E_USER_ERROR; } } @@ -147,5 +159,6 @@ if(isset($_REQUEST['submit'])) Legende:
Antwortstatuscode: 1=gefunden; 2=nicht gefunden
StudStatusCode: 1=aktiver Student; 2=Unterbrecher; 3=Absolvent; 4=Abbrecher
+Typ: AS = Antragsteller, AG = Angehöriger