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 @@
-";
?>
-