/** * * Funktion nimmt Anfragen entgegen und bearbeitet diese * @param $parameters -> XML SOAP File */ function GetStipendienbezieherStip($parameters) { $anfrageDaten = $parameters->anfrageDaten; $Stipendiumsbezieher = $anfrageDaten->Stipendiumsbezieher; $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); $username = $parameters->userName; $passwort = $parameters->passWord; if (!($username == STIP_USER_NAME && $passwort == STIP_USER_PASSWORD)) { // Eintrag in der LogTabelle anlegen $log = new webservicelog(); $log->request_data = 'SOAP FAULT - Invalid Credentials'; $log->webservicetyp_kurzbz = 'stip'; $log->request_id = $AnfrageDatenID; $log->beschreibung = "Antwort an Stip"; $log->save(true); return new SoapFault("Server", 'Invalid Credentials'); } $StipBezieherAntwort = array(); $i = 0; if (!is_array($Stipendiumsbezieher->StipendiumsbezieherAnfrage)) { $Stipendiumsbezieher->StipendiumsbezieherAnfrage = array($Stipendiumsbezieher->StipendiumsbezieherAnfrage); } // läuft alle Anfragedaten durch foreach ($Stipendiumsbezieher->StipendiumsbezieherAnfrage as $BezieherStip) { $prestudentID; $studentUID; $studSemester; $StipBezieher = new stip(); $datum_obj = new datum(); if ($StipBezieher->validateStipDaten($anfrageDaten->ErhKz, $anfrageDaten->AnfragedatenID, $BezieherStip)) { $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; // 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, 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); } } // Student wurde gefunden if ($StipBezieher->AntwortStatusCode == 1) { $prestudent = new prestudent(); $prestudent->load($prestudentID); $prestudent->getLastStatus($prestudentID); $prestudentStatus = new prestudent(); $student = new student(); $studentUID = $student->getUID($prestudentID); $abschlusspruefung = new abschlusspruefung(); $abschlusspruefung->getLastAbschlusspruefung($studentUID); $student->load($studentUID); $studiengang_kz = $student->studiengang_kz; $konto = new konto(); $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 { // 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); } else { $StipBezieher->Ausbildungssemester = null; } $StipBezieher->StudStatusCode = $StipBezieher->getStudStatusCode($prestudentID, $studSemester); // 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 = null; } } $StipBezieher->Erfolg = $StipBezieher->getErfolg($prestudentID, $studSemester); } elseif ($BezieherStip->Typ == "ag" || $BezieherStip->Typ == "AG") { $StipBezieher->Ausbildungssemester = null; $StipBezieher->StudStatusCode = null; $StipBezieher->BeendigungsDatum = null; $StipBezieher->Studienbeitrag = null; $StipBezieher->OrgFormTeilCode = 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 { // Eintrag in der LogTabelle anlegen $log = new webservicelog(); $log->request_data = 'SOAP FAULT - ValidationError: ' . $StipBezieher->errormsg; $log->webservicetyp_kurzbz = 'stip'; $log->request_id = $AnfrageDatenID; $log->beschreibung = "Antwort an Stip"; $log->save(true); return new SoapFault("Server", $StipBezieher->errormsg); } } $ret = array("GetStipendienbezieherStipResult" => array("ErhKz" => $ErhalterKz, "AnfragedatenID" => $AnfrageDatenID, "Stipendiumsbezieher" => $StipBezieherAntwort)); // Eintrag in der LogTabelle anlegen $log = new webservicelog(); $log->request_data = print_r($ret, true); $log->webservicetyp_kurzbz = 'stip'; $log->request_id = $AnfrageDatenID; $log->beschreibung = "Antwort an Stip"; $log->save(true); return $ret; }