From 4b7133e985f48a67bb91a72e448e52762803ac6f Mon Sep 17 00:00:00 2001 From: Karl Burkhart Date: Wed, 13 Apr 2011 07:22:47 +0000 Subject: [PATCH] --- soap/stip.class.php | 170 +++++++++++++++++++++++++++++++++++++++++++ soap/stip.soap.php | 129 ++++++++++++++++++++++++++++++++ soap/stip.soap.wsdl | 137 ++++++++++++++++++++++++++++++++++ soap/stip_client.php | 81 +++++++++++++++++++++ 4 files changed, 517 insertions(+) create mode 100644 soap/stip.class.php create mode 100644 soap/stip.soap.php create mode 100644 soap/stip.soap.wsdl create mode 100644 soap/stip_client.php diff --git a/soap/stip.class.php b/soap/stip.class.php new file mode 100644 index 000000000..a8d11bd85 --- /dev/null +++ b/soap/stip.class.php @@ -0,0 +1,170 @@ +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 = $row->matrikelnr; + $this->AntwortStatusCode = 1; + return $row->prestudent_id; + } + else + { + $this->AntwortStatusCode =2; + return false; + } + } + else + { + return false; + } + + } + /** + * + * Enter description here ... + * @param unknown_type $Svnr + */ + function searchSvnr($Svnr) + { + $qry = "Select prestudent_id, vorname, nachname, svnr, matrikelnr 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.svnr = '".addslashes($Svnr)."';"; + + 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 = $row->matrikelnr; + $this->AntwortStatusCode = 1; + return $row->prestudent_id; + } + else + { + $this->AntwortStatusCode =2; + return false; + } + } + else + { + return false; + } + return true; + + } + +/** + * + * Enter description here ... + * @param unknown_type $Svnr + */ + function searchVorNachname($Vorname, $Nachname) + { + $qry = "Select prestudent_id, vorname, nachname, svnr, matrikelnr 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.vorname = '".addslashes($Vorname)."' + and person.nachname = '".addslashes($Nachname)."';"; + + 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 = $row->matrikelnr; + $this->AntwortStatusCode = 1; + return $row->prestudent_id; + } + else + { + $this->AntwortStatusCode =2; + return false; + } + } + else + { + return false; + } + return true; + + } + + /** + * + * Enter description here ... + */ + function getErhalterKz() + { + $qry = "Select erhalter_kz from public.tbl_erhalter where kurzbz = 'TW';"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + return $row->erhalter_kz; + } + else + return false; + } + else + return false; + } +} + +class error +{ + public $ErrorNumbe; + public $KeyAttribute; + public $KeyValues; + public $CheckAttribute; + public $CheckValue; + public $ErrorText; +} + +?> \ No newline at end of file diff --git a/soap/stip.soap.php b/soap/stip.soap.php new file mode 100644 index 000000000..0eea7d429 --- /dev/null +++ b/soap/stip.soap.php @@ -0,0 +1,129 @@ +, + * Andreas Oesterreicher and + * Karl Burkhart . + */ + +require_once('../config/vilesci.config.inc.php'); +require_once('../include/basis_db.class.php'); +require_once('../include/prestudent.class.php'); +require_once('../include/student.class.php'); +require_once('../include/konto.class.php'); +require_once('stip.class.php'); + +$SOAPServer = new SoapServer("stip.soap.wsdl"); +$SOAPServer->addFunction(array("getStipDaten", "getErrorCode")); +$SOAPServer->handle(); + + +function getStipDaten($ErhKz, $AnfragedatenID, $Bezieher) +{ + $prestudentID; + $studentUID; + $StipBezieher = new stip(); + + if(validateStipDaten($ErhKz, $AnfragedatenID, $Bezieher)) + { + $StipBezieher->Semester = $Bezieher->Semester; + $StipBezieher->Studienjahr = $Bezieher->Studienjahr; + $StipBezieher->PersKz = $Bezieher->PersKz; + $StipBezieher->SVNR = $Bezieher->SVNR; + $StipBezieher->Familienname = $Bezieher->Familienname; + $StipBezieher->Vorname = $Bezieher->Vorname; + $StipBezieher->Typ = $Bezieher->Typ; + + + if(!$prestudentID = $StipBezieher->searchPersonKz($Bezieher->PersKz)) + if(!$prestudentID = $StipBezieher->searchSvnr($Bezieher->SVNR)) + $prestudentID = $StipBezieher->searchVorNachname($Bezieher->Vorname, $Bezieher->Familienname); + + $prestudent = new prestudent(); + $prestudent->load($prestudentID); + $prestudent->getLastStatus($prestudentID); + + $student = new student(); + $studentUID = $student->getUID($prestudentID); + $student->load($studentUID); + + $konto = new konto(); + + // Student wurde gefunden + if($StipBezieher->AntwortStatusCode == 1) + { + if($Bezieher->Typ == "as" || $Bezieher->Typ == "AS") + { + $StipBezieher->Inskribiert ="j"; + $StipBezieher->Ausbildungssemester = $prestudent->ausbildungssemester; + $StipBezieher->StudStatusCode = $prestudent->status_kurzbz; + if($konto->checkStudienbeitrag($studentUID, 'SS2009')) + $StipBezieher->Studienbeitrag = 300; + } + elseif($Bezieher->Typ ="ag" || $Bezieher->Typ == "AG") + { + + } + } + + $Erhalter = sprintf("%03d",$StipBezieher->getErhalterKz()); + + $new = array($Erhalter,$AnfragedatenID, $StipBezieher); + return $new; + } + +} + +function validateStipDaten($ErhKz, $Anfragedaten, $Bezieher) +{ + if(strlen($ErhKz)!=3 || !is_numeric($ErhKz)) + return false; + + if(strlen($Bezieher->Semester)!=2 || ($Bezieher->Semester != "ws" && $Bezieher->Semester != "ss" && $Bezieher->Semster != "WS" && $Bezieher->Semester != "SS")) + return false; + + if(strlen($Bezieher->Studienjahr) != 7) + return false; + + // kein Mussfeld + if($Bezieher->PersKz != null && strlen($Bezieher->PersKz) != 10) + return false; + + if(mb_strlen($Bezieher->SVNR) != 10 || !is_numeric($Bezieher->SVNR)) + return false; + + // preg_match funktioniert noch nicht + if(mb_strlen($Bezieher->Familienname) > 255 || preg_match_all('[^0-9]*',$Bezieher->Familienname)>0 || $Bezieher->Familienname == null || mb_strlen($Bezieher->Familienname)<2) + return false; + + if(mb_strlen($Bezieher->Vorname) > 255 || $Bezieher->Familienname == null || mb_strlen($Bezieher->Vorname) <2) + return false; + + if(mb_strlen($Bezieher->Typ) != 2 || ($Bezieher->Typ != "ag" && $Bezieher->Typ != "as" && $Bezieher->Typ != "AG" && $Bezieher->Typ != "AS")) + return false; + + return true; +} + +function getErrorCode($ErhKz, $StateCode, $StateMessage, $ErrorStatusCode, $JobId, $ErrorContent) +{ + return "$ErhKz, $StateCode"; +} + +?> + + diff --git a/soap/stip.soap.wsdl b/soap/stip.soap.wsdl new file mode 100644 index 000000000..a61bc90a1 --- /dev/null +++ b/soap/stip.soap.wsdl @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/soap/stip_client.php b/soap/stip_client.php new file mode 100644 index 000000000..2510df3cd --- /dev/null +++ b/soap/stip_client.php @@ -0,0 +1,81 @@ + + + + STIP-Client + + + +
+ + + + + + + + + + + + + + +
ErhKz:AnfragedatenID:Semester:Studienjahr:PersKz:SVNR:Familienname:Vorname:Typ: + +
+
+ + +Semester = $_REQUEST['Semester']; + $bezieher->Studienjahr = $_REQUEST['Studienjahr']; + $bezieher->PersKz= $_REQUEST['PersKz']; + $bezieher->SVNR= $_REQUEST['Svnr']; + $bezieher->Familienname= $_REQUEST['Familienname']; + $bezieher->Vorname= $_REQUEST['Vorname']; + $bezieher->Typ = $_REQUEST['Typ']; + + $response = $client->getStipDaten($ErhKz, $AnfragedatenID, $bezieher); + + echo var_dump($response); +} +?> \ No newline at end of file