mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-03 13:19:28 +00:00
231 lines
11 KiB
PHP
231 lines
11 KiB
PHP
<?php
|
|
/**
|
|
* Erstellt ein XML File fuer die BIS-Meldung
|
|
* Personal
|
|
*/
|
|
include('../vilesci/config.inc.php');
|
|
header("content-type text/xml");
|
|
if(!$conn=pg_connect(CONN_STRING_FAS))
|
|
die("Connection Problem");
|
|
$error='<table><tr><th>Vorname</th><th>Nachname</th><th>PersNr</th><th>Fehlermeldung</th></tr>';
|
|
$funktionen='';
|
|
$stgleitung='';
|
|
$myausmass='<table><tr><th>Vorname</th><th>Nachname</th><th>Ausmass</th></tr>';
|
|
$stsem1=9;
|
|
$stsem2=8;
|
|
$jahr='2005-09-01';
|
|
$stsemwhere = "(funktion.studiensemester_fk=$stsem1 OR funktion.studiensemester_fk=$stsem2)";
|
|
if(isset($_GET['printerror']) && $_GET['printerror']=='false')
|
|
$printerror=false;
|
|
else
|
|
$printerror=true;
|
|
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
|
|
?>
|
|
<Erhalter>
|
|
<ErhKz>005</ErhKz>
|
|
<MeldeDatum>1511<?php echo date('Y');?></MeldeDatum>
|
|
<PersonalMeldung>
|
|
<?php
|
|
//$qry = "Select mitarbeiter_pk, vorname, familienname, persnr, gebdat, geschlecht, ausbildung, habilitation,funktion.besonderequalifikation, funktion.beschart1, funktion.beschart2, funktion.ausmass, funktion.verwendung,(select kennzahl from studiengang where studiengang_pk=studiengang_fk) as kennzahl, funktion.sws, funktion.hauptberuflich, funktion.hauptberuf, funktion.entwicklungsteam, funktion.funktion, (Select kennzahl from studiengang where studiengang_pk=funktion.studiengang_fk) as stgkz from person, mitarbeiter, funktion where person_pk=person_fk and mitarbeiter_pk=mitarbeiter_fk AND (studiensemester_fk=9 OR studiensemester_fk=8) AND ausgeschieden='N' and familienname!='Dummy' order by persnr ASC, beschart1 DESC";
|
|
//$qry = "Select * from vw_bis_personal";
|
|
$qry = "SET CLIENT_ENCODING TO 'UNICODE';SELECT distinct person_pk, mitarbeiter_pk, persnr, vorname, familienname, gebdat, geschlecht, ausbildung, habilitation FROM person, funktion, mitarbeiter where bismelden='J' AND person.person_pk=mitarbeiter.person_fk AND mitarbeiter.mitarbeiter_pk=funktion.mitarbeiter_fk AND $stsemwhere AND familienname!='Dummy' AND (beendigungsdatum>'$jahr' OR beendigungsdatum is null) ORDER BY persnr ASC";
|
|
if(!$result=pg_query($conn,$qry))
|
|
die("Fehler beim auslesen der Datenbank".$qry);
|
|
$aktpers=0;
|
|
while($row=pg_fetch_object($result))
|
|
{
|
|
//Neue Person
|
|
//Verwendungsblock hinausschreiben
|
|
$aktpers=$row->persnr;
|
|
$funktionen='';
|
|
$stgleitung='';
|
|
echo " <Person>\n";
|
|
echo " <PersonalNummer>".sprintf("%015d",$row->persnr)."</PersonalNummer>\n";
|
|
//Geburtsdatum
|
|
list($y,$m,$d) = explode("-",$row->gebdat);
|
|
if(date('Y')-$y<10)
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Person muss aelter als 10 Jahre sein</td></tr>';
|
|
echo " <GeburtsDatum>".$d.$m.$y."</GeburtsDatum>\n";
|
|
//Geschlecht
|
|
if(!in_array($row->geschlecht,array('M','m','W','w')))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Geschlecht ist ungueltig</td></tr>';
|
|
echo " <Geschlecht>".$row->geschlecht."</Geschlecht>\n";
|
|
//Hoechste abgeschlossene Ausbildung
|
|
if(!in_array($row->ausbildung,array(1,2,3,4,5,6,7,8,9,10,11)))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>HoechsteAbgeschlosseneAusbildung ist ungueltig</td></tr>';
|
|
echo " <HoechsteAbgeschlosseneAusbildung>".$row->ausbildung."</HoechsteAbgeschlosseneAusbildung>\n";
|
|
//Habilitation
|
|
if(!in_array($row->habilitation,array('J','j','N','n')))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Habilitation ist ungueltig</td></tr>';
|
|
echo " <Habilitation>".$row->habilitation."</Habilitation>\n";
|
|
|
|
//VERWENDUNG
|
|
echo " <Verwendung>\n";
|
|
|
|
//Beschaeftigungsart1
|
|
$qry1 = "Select beschart1 from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and beschart1 in(1,2,3,4,5,6) AND $stsemwhere";
|
|
if(!$result1 = pg_query($conn,$qry1))
|
|
$error.= "<br>qry failed: $qry1";
|
|
else
|
|
if(!$row1 = pg_fetch_object($result1))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>BeschaeftigungsArt1 ist ungueltig</td></tr>';
|
|
else
|
|
$beschart1 = $row1->beschart1;
|
|
|
|
echo " <BeschaeftigungsArt1>".$beschart1."</BeschaeftigungsArt1>\n";
|
|
|
|
//Beschaeftingungsart2
|
|
$qry1 = "Select beschart2 from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and beschart2 in(1,2) AND $stsemwhere";
|
|
if(!$result1 = pg_query($conn,$qry1))
|
|
$error.= "<tr><td>qry failed: $qry1</td></tr>";
|
|
else
|
|
if(!$row1 = pg_fetch_object($result1))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>BeschaeftigungsArt2 ist ungueltig</td></tr>';
|
|
else
|
|
$beschart2 = $row1->beschart2;
|
|
|
|
echo " <BeschaeftigungsArt2>".$beschart2."</BeschaeftigungsArt2>\n";
|
|
|
|
//Beschaeftigungsausmass
|
|
$qry1 = "Select ausmass from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and ausmass in(1,2,3,4,5) AND $stsemwhere";
|
|
if(!$result1 = pg_query($conn,$qry1))
|
|
$error.= "<br>qry failed: $qry1";
|
|
else
|
|
if(!$row1 = pg_fetch_object($result1))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Ausmass ist ungueltig</td></tr>';
|
|
else
|
|
$ausmass = $row1->ausmass;
|
|
|
|
echo " <BeschaeftigungsAusmass>".$ausmass."</BeschaeftigungsAusmass>\n";
|
|
$myausmass .= "<tr><td>$row->vorname</td><td>$row->familienname</td><td>$ausmass</td></tr>";
|
|
//Verwendung
|
|
$qry1 = "Select verwendung from funktion where mitarbeiter_fk='$row->mitarbeiter_pk' and verwendung in(1,2,3,4,5,6,7,8,9) AND $stsemwhere";
|
|
if(!$result1 = pg_query($conn,$qry1))
|
|
$error.= "<tr><td>qry failed: $qry1</td></tr>";
|
|
else
|
|
if(!$row1 = pg_fetch_object($result1))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Verwendung ist ungueltig</td></tr>';
|
|
else
|
|
$verwendung = $row1->verwendung;
|
|
|
|
echo " <VerwendungsCode>".$verwendung."</VerwendungsCode>\n";
|
|
|
|
//Hauptberuflich / Hauptberuf
|
|
$qry1 = "Select hauptberuflich, hauptberuf from funktion where mitarbeiter_fk = '$row->mitarbeiter_pk' and hauptberuflich!='' AND $stsemwhere";
|
|
if(!$result1=pg_query($conn,$qry1))
|
|
$error.= "<tr><td>qry failed: $qry1</td></tr>";
|
|
else
|
|
if(!$row1 = pg_fetch_object($result1))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>hauptberuflich/hauptberuf ist ungueltig</td></tr>';
|
|
else
|
|
{
|
|
$hauptberuf = $row1->hauptberuf;
|
|
$hauptberuflich = $row1->hauptberuflich;
|
|
}
|
|
|
|
if(($hauptberuflich=='N' || $hauptberuflich=='n') && !in_array($hauptberuf, array(0,1,2,3,4,5,6,7,8,9,10,11,12)))
|
|
{
|
|
$qry1 = "Select hauptberuf from funktion where mitarbeiter_fk = '$row->mitarbeiter_pk' and hauptberuf in (0,1,2,3,4,5,6,7,8,9,10,11,12) AND $stsemwhere AND hauptberuf is not null limit 1";
|
|
if(!$result1 = pg_query($conn,$qry1))
|
|
$error.="<tr><td>qry failed: $qry1</td></tr>";
|
|
else
|
|
if(!$row1=pg_fetch_object($result1))
|
|
$error.='<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>hauptberuf ist ungueltig</td></tr>';
|
|
else
|
|
$hauptberuf = $row1->hauptberuf;
|
|
|
|
}
|
|
|
|
|
|
//Studiengangsleiter Funktionen zusammenbauen
|
|
$qry1 = "Select distinct kennzahl FROM studiengang where studiengang_pk in(Select studiengang_fk from funktion where funktion.funktion=5 AND $stsemwhere AND mitarbeiter_fk='$row->mitarbeiter_pk')";
|
|
if(!$result1 = pg_query($conn,$qry1))
|
|
$error.= "<tr><td>qry failed: $qry1</td></tr>";
|
|
while($row1 = pg_fetch_object($result1))
|
|
{
|
|
$x = sprintf("%04d",$row1->kennzahl);
|
|
$stgleitung.=" <StgLeitung>\n";
|
|
$stgleitung.=" <StgKz>".$x."</StgKz>\n";
|
|
$stgleitung.=" </StgLeitung>\n";
|
|
}
|
|
|
|
|
|
//FUNKTIONEN
|
|
$qry1 = "SELECT studiengang_pk, kennzahl, entwicklungsteam, besonderequalifikation FROM funktion, studiengang WHERE mitarbeiter_fk='$row->mitarbeiter_pk' AND $stsemwhere AND studiengang_fk=studiengang_pk";
|
|
|
|
if($result1 = pg_query($conn,$qry1))
|
|
{
|
|
$stg = array();
|
|
while($row1 = pg_fetch_object($result1))
|
|
{
|
|
//Wenn noch kein Funktionseintrag fuer diesen Studiengang vorhanden ist
|
|
if(!in_array($row1->studiengang_pk,$stg))
|
|
{
|
|
$stg[] = $row1->studiengang_pk;
|
|
$funktion='';
|
|
$valid=true;
|
|
$x = sprintf("%04d",$row1->kennzahl);
|
|
$funktion.= " <Funktion>\n";
|
|
$funktion.= " <StgKz>".$x."</StgKz>\n";
|
|
|
|
//$qry2 = "Select sum(sws) as sws from lehreinheit, mitarbeiterlehreinheit where lehreinheit_pk = lehreinheit_fk and (lehreinheit.studiensemester_fk=$stsem1 or lehreinheit.studiensemester_fk=$stsem2) and mitarbeiter_fk='$row->mitarbeiter_pk'";
|
|
$qry2 = "Select sum(semesterwochenstunden) as sws from lehreinheit, mitarbeiter_lehreinheit where studiengang_fk='$row1->studiengang_pk' AND lehreinheit_pk = mitarbeiter_lehreinheit.lehreinheit_fk and (lehreinheit.studiensemester_fk=$stsem1 or lehreinheit.studiensemester_fk=$stsem2) and mitarbeiter_fk='$row->mitarbeiter_pk'";
|
|
if(!$row2 = pg_fetch_object(pg_query($conn,$qry2)))
|
|
$error.="<br>qry failed: $qry2";
|
|
|
|
//Semesterwochenstunden
|
|
if($row2->sws > 80 || $row2->sws < 0)
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>SWS ist ungueltig:'.$row2->sws.'</td></tr>';
|
|
if($row2->sws==0)
|
|
$valid=false;
|
|
$funktion.= " <SWS>".sprintf("%.2f",$row2->sws)."</SWS>\n";
|
|
//Hauptberuflich
|
|
if(!in_array($hauptberuflich,array('j','J','n','N')))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>Hauptberuflich ist ungueltig</td></tr>';
|
|
$funktion.= " <Hauptberuflich>".$hauptberuflich."</Hauptberuflich>\n";
|
|
//Hauptberuf
|
|
if($hauptberuflich=='n' || $hauptberuflich=='N')
|
|
{
|
|
if(!in_array($hauptberuf, array(0,1,2,3,4,5,6,7,8,9,10,11,12)))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.' HauptberufCode ist ungueltig</td></tr>';
|
|
$funktion.= " <HauptberufCode>".$hauptberuf."</HauptberufCode>\n";
|
|
}
|
|
//Mitglied im Entwicklungsteam
|
|
if(!in_array($row1->entwicklungsteam, array('J','j','n','N')))
|
|
$funktion.= " <Entwicklungsteam>N</Entwicklungsteam>\n";
|
|
else
|
|
$funktion.= " <Entwicklungsteam>".$row1->entwicklungsteam."</Entwicklungsteam>\n";
|
|
|
|
//Besondere Qualifikation
|
|
if($row1->entwicklungsteam=='J' || $row1->entwicklungsteam=='j')
|
|
{
|
|
if(!in_array($row1->besonderequalifikation,array(0,1,2,3)))
|
|
$error.= '<tr><td>'.$row->vorname.'</td><td>'.$row->familienname.'</td><td>'.$row->persnr.'</td><td>BesondereQualifikationCode ist ungueltig</td></tr>';
|
|
$funktion.= " <BesondereQualifikationCode>".$row1->besonderequalifikation."</BesondereQualifikationCode>\n";
|
|
}
|
|
$funktion.= " </Funktion>\n";
|
|
if($valid)
|
|
$funktionen .= $funktion;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
$error.="<tr><td>qry failed: $qry1</td></tr>";
|
|
|
|
if($aktpers!=0) //Ende einer Person erreicht
|
|
{
|
|
echo $stgleitung;
|
|
echo $funktionen;
|
|
echo " </Verwendung>\n";
|
|
echo " </Person>\n";
|
|
}
|
|
}
|
|
|
|
if($printerror)
|
|
{
|
|
echo $error.'</table>';
|
|
echo $myausmass.'</table>';
|
|
}
|
|
?>
|
|
</PersonalMeldung>
|
|
</Erhalter>
|