This commit is contained in:
Andreas Österreicher
2011-04-13 11:36:37 +00:00
parent abf6558369
commit 6b5e2c41b9
3 changed files with 169 additions and 8 deletions
+150 -1
View File
@@ -1,6 +1,7 @@
<?php
require_once('../config/vilesci.config.inc.php');
require_once('../include/basis_db.class.php');
require_once('../include/studiensemester.class.php');
class stip extends basis_db
{
@@ -97,7 +98,7 @@ class stip extends basis_db
}
/**
/**
*
* Enter description here ...
* @param unknown_type $Svnr
@@ -155,6 +156,154 @@ class stip extends basis_db
else
return false;
}
/**
*
* Ermittelt den StutStatusCode
*/
public function getStudStatusCode($prestudent_id, $studiensemester_kurzbz, $bisdatum=null)
{
$qrystatus="
SELECT
*
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id='$prestudent_id'
AND studiensemester_kurzbz='$studiensemester_kurzbz'";
if(!is_null($bisdatum))
$qrystatus.=" AND (tbl_prestudentstatus.datum<'$bisdatum')";
$qrystatus.=" ORDER BY datum desc, insertamum desc, ext_id desc;";
if($resultstatus = $this->db_query($qrystatus))
{
if($this->db_num_rows($resultstatus)==0)
{
$stsem = new studiensemester();
$psem = $stsem->getPreviousFrom($studiensemester_kurzbz);
$qrystatus="
SELECT *
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id='$prestudent_id'
AND studiensemester_kurzbz='$psem'";
if(!is_null($bisdatum))
$qrystatus.=" AND (tbl_prestudentstatus.datum<'$bisdatum') ";
$qrystatus.=" ORDER BY datum desc, insertamum desc, ext_id desc;";
if(!$resultstatus = $this->db_query($qrystatus))
{
$this->errormsg='Fehler beim Laden der Daten';
return false;
}
}
}
if($rowstatus = $this->db_fetch_object($resultstatus))
{
switch($rowstatus->status_kurzbz)
{
case 'Student':
case 'Incoming':
case 'Outgoing':
case 'Praktikant':
case 'Diplomand':
$status=1;
break;
case 'Unterbrecher':
$status=2;
break;
case 'Absolvent':
$status=3;
break;
case 'Abbrecher':
$status=4;
break;
default:
$this->errormsg='Fehlerhafter Status';
break;
}
}
return $status;
}
/**
*
* Ermittelt den SemesterCode
*/
public function getSemester($prestudent_id, $studiensemester_kurzbz, $bisdatum=null)
{
$qrystatus="
SELECT
*
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id='$prestudent_id'
AND studiensemester_kurzbz='$studiensemester_kurzbz'";
if(!is_null($bisdatum))
$qrystatus.=" AND (tbl_prestudentstatus.datum<'$bisdatum')";
$qrystatus.=" ORDER BY datum desc, insertamum desc, ext_id desc;";
if($resultstatus = $this->db_query($qrystatus))
{
if($this->db_num_rows($resultstatus)==0)
{
$stsem = new studiensemester();
$psem = $stsem->getPreviousFrom($studiensemester_kurzbz);
$qrystatus="
SELECT *
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id='$prestudent_id'
AND studiensemester_kurzbz='$psem'";
if(!is_null($bisdatum))
$qrystatus.=" AND (tbl_prestudentstatus.datum<'$bisdatum') ";
$qrystatus.=" ORDER BY datum desc, insertamum desc, ext_id desc;";
if(!$resultstatus = $this->db_query($qrystatus))
{
$this->errormsg='Fehler beim Laden der Daten';
return false;
}
}
if($rowstatus = $this->db_fetch_object($resultstatus))
{
$qry1="
SELECT count(*) AS dipl FROM public.tbl_prestudentstatus
WHERE
prestudent_id='$prestudent_id'
AND status_kurzbz='Diplomand'";
if(!is_null($bisdatum))
$qry1.=" AND (tbl_prestudentstatus.datum<'$bisdatum') ";
if($result1 = $this->db_query($qry1))
{
if($row1 = $this->db_fetch_object($result1))
{
$sem=$rowstatus->ausbildungssemester;
if($row1->dipl>1)
{
$sem=50;
}
if($row1->dipl>3)
{
$sem=60;
}
}
}
}
}
return $sem;
}
}
class error
+9 -3
View File
@@ -25,6 +25,7 @@ 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('../include/datum.class.php');
require_once('stip.class.php');
$SOAPServer = new SoapServer("stip.soap.wsdl");
@@ -36,7 +37,8 @@ function getStipDaten($ErhKz, $AnfragedatenID, $Bezieher)
{
$prestudentID;
$studentUID;
$StipBezieher = new stip();
$StipBezieher = new stip();
$datum_obj = new datum();
if(validateStipDaten($ErhKz, $AnfragedatenID, $Bezieher))
{
@@ -69,8 +71,12 @@ function getStipDaten($ErhKz, $AnfragedatenID, $Bezieher)
if($Bezieher->Typ == "as" || $Bezieher->Typ == "AS")
{
$StipBezieher->Inskribiert ="j";
$StipBezieher->Ausbildungssemester = $prestudent->ausbildungssemester;
$StipBezieher->StudStatusCode = $prestudent->status_kurzbz;
$StipBezieher->Ausbildungssemester = $StipBezieher->getSemester($prestudentID, 'SS2009');
//return new SoapFault("Server", "Some error message");
$StipBezieher->StudStatusCode = $StipBezieher->getStudStatusCode($prestudentID, 'SS2009');
if($StipBezieher->StudStatusCode==3 || $StipBezieher->StudStatusCode==4)
$StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($prestudent->datum,'dmY');
if($konto->checkStudienbeitrag($studentUID, 'SS2009'))
$StipBezieher->Studienbeitrag = 300;
}
+10 -4
View File
@@ -74,9 +74,15 @@ if(isset($_REQUEST['submit']))
$bezieher->Familienname= $_REQUEST['Familienname'];
$bezieher->Vorname= $_REQUEST['Vorname'];
$bezieher->Typ = $_REQUEST['Typ'];
$response = $client->getStipDaten($ErhKz, $AnfragedatenID, $bezieher);
echo var_dump($response);
try
{
$response = $client->getStipDaten($ErhKz, $AnfragedatenID, $bezieher);
echo var_dump($response);
}
catch(SoapFault $fault)
{
echo "SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR;
}
}
?>