This commit is contained in:
Karl Burkhart
2011-11-23 10:04:08 +00:00
parent 5a074b3388
commit 8580c7a4f4
2 changed files with 132 additions and 79 deletions
+4 -4
View File
@@ -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"))
+128 -75
View File
@@ -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 <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Karl Burkhart <burkhart@technikum-wien.at>.
* Authors: Karl Burkhart <burkhart@technikum-wien.at>.
*/
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";
}