diff --git a/soap/stip.class.php b/soap/stip.class.php index e0f8b6034..334e59e73 100644 --- a/soap/stip.class.php +++ b/soap/stip.class.php @@ -53,26 +53,26 @@ class stip extends basis_db if($Bezieher->PersKz != null && strlen($Bezieher->PersKz) != 10) { $this->errormsg = "Kein gültiger Wert für PersKz"; - return false; + // return false; } if(mb_strlen($Bezieher->SVNR) != 10 || !is_numeric($Bezieher->SVNR)) { $this->errormsg = "Kein gültiger Wert für SVNR"; - return false; + // return false; } // preg_match funktioniert noch nicht || preg_match_all('[^0-9]*',$Bezieher->Familienname)>0 if(mb_strlen($Bezieher->Familienname) > 255 || $Bezieher->Familienname == null || mb_strlen($Bezieher->Familienname)<2) { $this->errormsg = "Kein gültiger Wert für Familienname"; - return false; + //return false; } if(mb_strlen($Bezieher->Vorname) > 255 || $Bezieher->Vorname == null || mb_strlen($Bezieher->Vorname) <2) { $this->errormsg = "Kein gültiger Wert für Vorname"; - return false; + // return false; } if(mb_strlen($Bezieher->Typ) != 2 || ($Bezieher->Typ != "ag" && $Bezieher->Typ != "as" && $Bezieher->Typ != "AG" && $Bezieher->Typ != "AS")) diff --git a/soap/stip.soap.php b/soap/stip.soap.php index 127a295a1..2527caf8c 100644 --- a/soap/stip.soap.php +++ b/soap/stip.soap.php @@ -15,9 +15,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Karl Burkhart . + * Authors: Karl Burkhart . */ require_once('../config/vilesci.config.inc.php'); @@ -26,90 +24,145 @@ require_once('../include/prestudent.class.php'); require_once('../include/student.class.php'); require_once('../include/konto.class.php'); require_once('../include/datum.class.php'); +require_once('../include/benutzer.class.php'); +require_once('../include/webservicelog.class.php'); require_once('stip.class.php'); -$SOAPServer = new SoapServer("stip.soap.wsdl"); -$SOAPServer->addFunction(array("getStipDaten", "getErrorCode")); +ini_set("soap.wsdl_cache_enabled", "0"); + +$SOAPServer = new SoapServer(APP_ROOT."/soap/stip.wsdl.php?".microtime()); +//$SOAPServer = new SoapServer("http://localhost/fhcomplete/trunk/soap/stip.wsdl.php?".microtime()); +$SOAPServer->addFunction("GetStipendienbezieherStip"); $SOAPServer->handle(); - -function getStipDaten($ErhKz, $AnfragedatenID, $Bezieher) +function GetStipendienbezieherStip($parameters) { - $prestudentID; - $studentUID; - $studSemester; - $StipBezieher = new stip(); - $datum_obj = new datum(); + $anfrageDaten = $parameters->anfrageDaten; + $Stipendiumsbezieher = $anfrageDaten->Stipendiumsbezieher; - if($StipBezieher->validateStipDaten($ErhKz, $AnfragedatenID, $Bezieher)) + $ErhalterKz = $anfrageDaten->ErhKz; + $AnfrageDatenID = $anfrageDaten->AnfragedatenID; + + + // Eintrag in der LogTabelle anlegen + $log = new webservicelog(); + $log->request_data = file_get_contents('php://input'); + $log->webservicetyp_kurzbz = 'stip'; + $log->request_id = $AnfrageDatenID; + $log->beschreibung = "Anfrage von Stip"; + $log->save(true); + + $StipBezieherAntwort = array(); + + //return new SoapFault("Server", "asdf".print_r($Stipendiumsbezieher->StipendiumsbezieherAnfrage, true)); + $i=0; + if(!is_array($Stipendiumsbezieher->StipendiumsbezieherAnfrage)) + $Stipendiumsbezieher->StipendiumsbezieherAnfrage = array($Stipendiumsbezieher->StipendiumsbezieherAnfrage); + + foreach($Stipendiumsbezieher->StipendiumsbezieherAnfrage as $BezieherStip) { - $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; - - // Studiensemester_kurzbz auslesen - if($Bezieher->Semester == "WS" || $Bezieher->Semester == "ws") + //$test= print_r($BezieherStip, true); + //return new SoapFault("Server", "asdf".$BezieherStip->Semester); + $prestudentID; + $studentUID; + $studSemester; + $StipBezieher = new stip(); + $datum_obj = new datum(); + + if($StipBezieher->validateStipDaten($anfrageDaten->ErhKz, $anfrageDaten->AnfragedatenID, $BezieherStip)) { - $year = mb_substr($Bezieher->Studienjahr, 0,4); - $studSemester = "WS".$year; - }elseif ($Bezieher->Semester == "SS" || $Bezieher->Semester == "ss") - { - $year = mb_substr($Bezieher->Studienjahr, 0,4); - $studSemester = "SS".$year; - } - - 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(); - $studGebuehr = $konto->getStudiengebuehrGesamt($studentUID, $studSemester); - - // Student wurde gefunden - if($StipBezieher->AntwortStatusCode == 1) - { - if($Bezieher->Typ == "as" || $Bezieher->Typ == "AS") - { - $StipBezieher->getOrgFormTeilCode($studentUID, $studSemester); - $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) - $StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($prestudent->datum,'dmY'); - - $StipBezieher->Erfolg = $StipBezieher->getErfolg($prestudentID, $studSemester); - } - elseif($Bezieher->Typ ="ag" || $Bezieher->Typ == "AG") - { - - } - } - - $Erhalter = sprintf("%03d",$StipBezieher->getErhalterKz()); + $StipBezieher->Semester = $BezieherStip->Semester; + $StipBezieher->Studienjahr = $BezieherStip->Studienjahr; + $StipBezieher->PersKz = $BezieherStip->PersKz; + $StipBezieher->SVNR = $BezieherStip->SVNR; + $StipBezieher->Familienname = $BezieherStip->Familienname; + $StipBezieher->Vorname = $BezieherStip->Vorname; + $StipBezieher->Typ = $BezieherStip->Typ; - $new = array($Erhalter,$AnfragedatenID, $StipBezieher); - return $new; - }else - return new SoapFault("Server", $StipBezieher->errormsg); + // Studiensemester_kurzbz auslesen + if($BezieherStip->Semester == "WS" || $BezieherStip->Semester == "ws") + { + $year = mb_substr($BezieherStip->Studienjahr, 0,4); + $studSemester = "WS".$year; + }elseif ($BezieherStip->Semester == "SS" || $BezieherStip->Semester == "ss") + { + $year = mb_substr($BezieherStip->Studienjahr, 0,4); + $studSemester = "SS".$year; + } + + if(!$prestudentID = $StipBezieher->searchPersonKz($BezieherStip->PersKz)) + if(!$prestudentID = $StipBezieher->searchSvnr($BezieherStip->SVNR)) + $prestudentID = $StipBezieher->searchVorNachname($BezieherStip->Vorname, $BezieherStip->Familienname); + + // Student wurde gefunden + if($StipBezieher->AntwortStatusCode == 1) + { + $prestudent = new prestudent(); + $prestudent->load($prestudentID); + $prestudent->getLastStatus($prestudentID); + + $student = new student(); + $studentUID = $student->getUID($prestudentID); + + $student->load($studentUID); + + $konto = new konto(); + $studGebuehr = $konto->getStudiengebuehrGesamt($studentUID, $studSemester); + + if($BezieherStip->Typ == "as" || $BezieherStip->Typ == "AS") + { + $StipBezieher->getOrgFormTeilCode($studentUID, $studSemester); + $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) + $StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($prestudent->datum,'dmY'); + else + $StipBezieher->BeendigungsDatum = null; + + $StipBezieher->Erfolg = $StipBezieher->getErfolg($prestudentID, $studSemester); + } + elseif($Bezieher->Typ ="ag" || $Bezieher->Typ == "AG") + { + $StipBezieher->Ausbildungssemester = null; + $StipBezieher->StudStatusCode = null; + $StipBezieher->BeendigungsDatum = null; + $StipBezieher->Studienbeitrag = null; + } + + $StipBezieherAntwort[$i] = $StipBezieher; + $i++; + + }else if($StipBezieher->AntwortStatusCode == 2) + { + // Student wurde nicht gefunden + $StipBezieher->PersKz_Antwort = null; + $StipBezieher->SVNR_Antwort = null; + $StipBezieher->Familienname_Antwort = null; + $StipBezieher->Vorname_Antwort = null; + $StipBezieher->Ausbildungssemester = null; + $StipBezieher->StudStatusCode = null; + $StipBezieher->BeendigungsDatum = null; + $StipBezieher->VonNachPersKz = null; + $StipBezieher->Studienbeitrag = null; + $StipBezieher->Inskribiert = null; + $StipBezieher->Erfolg = null; + $StipBezieher->OrgFormTeilCode = null; + $StipBezieherAntwort[$i] = $StipBezieher; + $i++; + } + + }else + return new SoapFault("Server", $StipBezieher->errormsg); + } + $ret = array("ErhKz"=>$ErhalterKz,"AnfragedatenID"=>$AnfrageDatenID, "Stipendiumsbezieher"=>$StipBezieherAntwort); + //return new SoapFault("Server", print_r($ret,true)); + return $ret; } - - -function getErrorCode($ErhKz, $StateCode, $StateMessage, $ErrorStatusCode, $JobId, $ErrorContent) +function SendStipendienbezieherStipError($ErhKz, $StateCode, $StateMessage, $ErrorStatusCode, $JobId, $ErrorContent) { return "$ErhKz, $StateCode"; }