diff --git a/vilesci/bis/checkverwendung.php b/vilesci/bis/checkverwendung.php
index 7ce005ad6..69d676cfc 100644
--- a/vilesci/bis/checkverwendung.php
+++ b/vilesci/bis/checkverwendung.php
@@ -20,21 +20,16 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
+/**
+ * Überprüfung der Verwendungsdatensaetze im FASonline
+ *
+ */
+require_once('../../config/vilesci.config.inc.php');
+require_once('../../include/basis_db.class.php');
+require('../../include/studiensemester.class.php');
-
-//*
-//* Überprüfung der Verwendungsdatensaetze im FASonline
-//*
-//*
-
- require_once('../../config/vilesci.config.inc.php');
- require_once('../../include/basis_db.class.php');
- if (!$db = new basis_db())
- die('Es konnte keine Verbindung zum Server aufgebaut werden.');
-
-
- require('../../include/studiensemester.class.php');
-
+if (!$db = new basis_db())
+ die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$error_log='';
$fehler=0;
@@ -56,15 +51,16 @@ function myaddslashes($var)
}
?>
+
-
- BIS-Meldung - Überprüfung von Verwendungen
-
-
-
+
+ BIS-Meldung - Überprüfung von Verwendungen
+
+
+
-BIS-Verwendungen werden überprüft
-
+ BIS-Verwendungen werden überprüft
+
db_query($qry))
@@ -369,6 +365,21 @@ if($resultall = $db->db_query($qryall))
echo "(ba1code: $rowall->ba1code, ba2code: $rowall->ba2code)";
}
}
+echo '
';
+//9 - inaktive mitarbeiter und bismelden ohne verwendung
+$qryall='SELECT uid,nachname,vorname, count(bisverwendung_id)
+ FROM campus.vw_mitarbeiter LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
+ WHERE bismelden
+ GROUP BY uid,nachname,vorname HAVING count(bisverwendung_id)=0 ORDER by nachname,vorname;';
+if($resultall = $db->db_query($qryall))
+{
+ $num_rows_all=$db->db_num_rows($resultall);
+ echo "Bei $num_rows_all Mitarbeitern sind keine Verwendungen vorhanden - diese werden nicht BIS gemeldet
";
+ while($rowall=$db->db_fetch_object($resultall))
+ {
+ echo '
'.$rowall->nachname.' '.$rowall->vorname."($rowall->uid)";
+ }
+}
?>
\ No newline at end of file
diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php
index 6afe7c845..6c01da5bf 100644
--- a/vilesci/bis/personalmeldung.php
+++ b/vilesci/bis/personalmeldung.php
@@ -38,9 +38,11 @@ $erhalter='';
$zaehl=0;
$eteam=array();
$studiensemester=new studiensemester();
-$ssem=$studiensemester->getaktorNext(); //aktuelles Semester
-$psem=$studiensemester->getPrevious(); //voriges Semester
-$bsem=$studiensemester->getBeforePrevious(); //vorjähriges Semester
+if(isset($_GET['stsem']))
+ $stsem = $_GET['stsem'];
+else
+ $stsem=$studiensemester->getaktorNext(1); //aktuelles Semester
+
$datei='';
$mitarbeiterzahl=0;
$echt=0;
@@ -50,19 +52,16 @@ $nichtmelden = array(11,91,92,94,999,203,145,204, 308, 182, 222);
$datumobj=new datum();
-if(mb_strstr($ssem,"WS"))
+if(mb_strstr($stsem,"WS"))
{
- $bisdatum=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y")));
- $bisprevious=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y")));
+ $studiensemester->load($stsem);
+ $jahr = $datumobj->formatDatum($studiensemester->start, 'Y');
+ $bisdatum=date("Y-m-d", mktime(0, 0, 0, 11, 15, $jahr));
+ $bisprevious=date("Y-m-d", mktime(0, 0, 0, 11, 15, $jahr-1));
}
-/*elseif(mb_strstr($ssem,"SS"))
-{
- $bisdatum=date("Y-m-d", mktime(0, 0, 0, 04, 15, date("Y")));
- $bisprevious=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y")-1));
-}*/
else
{
- echo "Ungültiges Semester!";
+ echo "Fehler: Studiensemester muss ein Wintersemester sein";
exit;
}
@@ -71,35 +70,24 @@ if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
- if(strlen(trim($row->erhalter_kz))==1)
- {
- $erhalter='00'.trim($row->erhalter_kz);
- }
- elseif(strlen(trim($row->erhalter_kz))==2)
- {
- $erhalter='0'.trim($row->erhalter_kz);
- }
- else
- {
- $erhalter=$row->erhalter_kz;
- }
+ $erhalter = sprintf("%04s",trim($row->erhalter_kz));
}
}
-$qry="SELECT DISTINCT ON (UID) * FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
- JOIN public.tbl_person USING(person_id)
- WHERE tbl_benutzer.aktiv AND bismelden AND personalnummer>1 AND mitarbeiter_uid!='_DummyLektor'
+$qry="
+ SELECT DISTINCT ON (UID) *
+ FROM
+ public.tbl_mitarbeiter
+ JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
+ JOIN public.tbl_person USING(person_id)
+ JOIN bis.tbl_bisverwendung USING(mitarbeiter_uid)
+ WHERE
+ bismelden
+ AND personalnummer>0
+ AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende>'$bisprevious')
ORDER BY uid, nachname,vorname
";
-/*
- AND (ende>now() OR ende IS NULL)
- bis.tbl_bisverwendung USING (mitarbeiter_uid)
- bis.tbl_bisfunktion USING(bisverwendung_id)
- bis.tbl_entwicklungsteam USING(mitarbeiter_uid)
- public.tbl_benutzerfunktion
-*/
-
if($result = $db->db_query($qry))
{
@@ -140,7 +128,7 @@ if($result = $db->db_query($qry))
".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))."
".strtoupper($row->geschlecht)."
".$row->ausbildungcode."";
- $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".$row->mitarbeiter_uid."' AND habilitation=true;";
+ $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".addslashes($row->mitarbeiter_uid)."' AND habilitation=true;";
if($resultvw=$db->db_query($qryvw))
{
if($db->db_num_rows($resultvw)>0)
@@ -154,7 +142,7 @@ if($result = $db->db_query($qry))
N";
}
}
- $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".$row->mitarbeiter_uid."' AND (ende is null OR ende>'$bisprevious') AND beginn<'$bisdatum';";
+ $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".addslashes($row->mitarbeiter_uid)."' AND (ende is null OR ende>'$bisprevious') AND (beginn<'$bisdatum' OR beginn is null);";
if($resultvw=$db->db_query($qryvw))
{
if($db->db_num_rows($resultvw)>0)
@@ -189,7 +177,7 @@ if($result = $db->db_query($qry))
{
$frei++;
}
- $mitarbeiterzahl++;
+
$person_content.="
".$rowvw->ba1code."
@@ -197,7 +185,15 @@ if($result = $db->db_query($qry))
".$rowvw->beschausmasscode."
".$rowvw->verwendung_code."";
//Studiengangsleiter
- $qryslt="SELECT tbl_benutzerfunktion.*, tbl_studiengang.studiengang_kz FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz) WHERE uid='".$row->mitarbeiter_uid."' AND funktion_kurzbz='Leitung' AND studiengang_kz<10000;";
+ $qryslt="SELECT
+ tbl_benutzerfunktion.*, tbl_studiengang.studiengang_kz
+ FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz)
+ WHERE
+ uid='".addslashes($row->mitarbeiter_uid)."'
+ AND funktion_kurzbz='Leitung'
+ AND (datum_von<'$bisdatum' OR datum_von is null)
+ AND (datum_bis>'$bisprevious' OR datum_bis is NULL)
+ AND studiengang_kz<10000;";
if($resultslt=$db->db_query($qryslt))
{
while($rowslt=$db->db_fetch_object($resultslt))
@@ -285,6 +281,7 @@ if($result = $db->db_query($qry))
$error_person = true;
}
}
+ $mitarbeiterzahl++;
$person_content.="
";
if($error_log!='' || $error_log1!='')
@@ -313,16 +310,17 @@ echo ' BIS - Meldung Mitarbeiter
';
-echo "BIS - Mitarbeiterdaten werden überprüft!
";
-echo "Anzahl Mitarbeiter: Gesamt: ".$mitarbeiterzahl." / echter Dienstvertrag: ".$echt." / freier Dienstvertrag: ".$frei."
";
-echo "Nicht plausible BIS-Daten (für Meldung ".$ssem."):
";
+echo "BIS - Mitarbeiterdaten werden überprüft (für Meldung ".$stsem." / $bisprevious - $bisdatum)
";
+echo "Anzahl Mitarbeiter: Gesamt: ".$mitarbeiterzahl." / echter Dienstvertrag: ".$echt." / freier Dienstvertrag: ".$frei."
";
+echo "Nicht plausible BIS-Daten
";
echo nl2br($v."
");
//Tabelle mit Ergebnissen ausgeben
$ddd='bisdaten/bismeldung_mitarbeiter.xml';
- $dateiausgabe=fopen($ddd,'w');
- fwrite($dateiausgabe,$datei);
- fclose($dateiausgabe);
+$dateiausgabe=fopen($ddd,'w');
+fwrite($dateiausgabe,$datei);
+fclose($dateiausgabe);
+
echo "XML-Datei für Mitarbeiter-BIS-Meldung
";
?>
\ No newline at end of file