Merge branch 'feature-5920/Personalmeldung_Berechnung_VZAE_JVZAE' of https://github.com/FH-Complete/FHC-Core into feature-5920/Personalmeldung_Berechnung_VZAE_JVZAE

This commit is contained in:
hainberg
2020-03-12 15:45:26 +01:00
7 changed files with 153 additions and 52 deletions
@@ -179,7 +179,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</hbox>
<groupbox id="mitarbeiter-detail-groupbox-funktion">
<groupbox id="mitarbeiter-detail-groupbox-funktion" hidden="true">
<caption label="Funktion" />
<hbox>
<tree id="mitarbeiter-tree-funktion" seltype="single" hidecolumnpicker="false" flex="1"
@@ -392,4 +392,4 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</hbox>
</groupbox>
</vbox>
</overlay>
</overlay>
@@ -87,12 +87,12 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
var predicateNS = "http://www.technikum-wien.at/mitarbeiter/rdf";
fixangestellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#fixangestellt" ));
//neuer Datensatz wird angelegt
MitarbeiterVerwendungDetailNeu='true';
//Defaultwerte
ba1code=3; //fixer Dienstvertrag
ba1code=103; //fixer Dienstvertrag
ba2code=1; //unbefristet
beschausmasscode=1; //Vollzeit
verwendung_code=1; //Lehr- und Forschungspersonal
+2 -2
View File
@@ -43,7 +43,7 @@ echo '
<RDF:Seq about="'.$rdf_url.'/liste">
';
$qry = "SELECT * FROM bis.tbl_beschaeftigungsart1 ORDER BY ba1code";
$qry = "SELECT * FROM bis.tbl_beschaeftigungsart1 ORDER BY ba1kurzbz";
$db = new basis_db();
if($db->db_query($qry))
@@ -62,4 +62,4 @@ if($db->db_query($qry))
}
?>
</RDF:Seq>
</RDF:RDF>
</RDF:RDF>
+103 -1
View File
@@ -3525,6 +3525,108 @@ if($result = $db->db_query("SELECT * FROM pg_proc WHERE proname = 'transform_ges
echo '<br>Function transform_geschlecht hinzugefügt.';
}
}
/**
* Anpassungen fuer BIS Personalmeldung 6.8
*/
if (!$result = @$db->db_query("SELECT ba1code_bis FROM bis.tbl_beschaeftigungsart1 LIMIT 1"))
{
/*
Beschaeftigungsausmass Kodextabelle aktualisieren
BA1Code alt 1 => BA1Code neu 1
BA1Code alt 2 => BA1Code neu 2
BA1Code alt 3 => BA1Code neu 3 (Echter DV)
BA1Code alt 4 => BA1Code neu 5 (Freier DV -> Sonstiges)
BA1Code alt 5 => BA1Code neu 4
BA1Code alt 6 => BA1Code neu 5 (Werkvertrag -> Sonstiges)
BA1Code ist nicht mehr der Code der gemeldet wird.
BA1code wird um 100 erhöht damit klar ist, dass es sich um einen anderen Code handelt.
*/
$qry = "
ALTER TABLE bis.tbl_beschaeftigungsart1 ADD COLUMN ba1code_bis smallint;
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=1, ba1code=101 WHERE ba1code=1;
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=2, ba1code=102 WHERE ba1code=2;
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=3, ba1code=103 WHERE ba1code=3;
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=5, ba1code=105 WHERE ba1code=4;
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=4, ba1code=104 WHERE ba1code=5;
UPDATE bis.tbl_beschaeftigungsart1 SET ba1code_bis=6, ba1code=106 WHERE ba1code=6;
";
/*
Für Werkvertraege wird eine eigene Beschaeftigungsart erstellt.
Die alten Eintraege für "Sonstiges (Werkvertrag)" werden auf diese neue Beschaeftigungsart umgehaengt
da diese bei uns alles Werkvertraege sind.
Fuer Studentische Hilfskraefte wird ebenfalls eine eigene Beschaeftigungsart erstellt.
Diese werden als Echter DV gemeldet aber getrennt verwaltet.
Alle Personen mit einer Funktion als Hilfskraft werden auf diese Beschaeftigungsart geaendert.
*/
$qry .= "
INSERT INTO bis.tbl_beschaeftigungsart1(ba1code, ba1bez, ba1kurzbz, ba1code_bis) VALUES(107,'Werkvertrag (Sonstiges)','Werkvertrag (Sonstiges)', 5);
INSERT INTO bis.tbl_beschaeftigungsart1(ba1code, ba1bez, ba1kurzbz, ba1code_bis) VALUES(108,'Studentische Hilfskraft (Echter DV)','Stud. Hilfskraft (Echter DV)', 3);
UPDATE bis.tbl_bisverwendung SET ba1code=107 WHERE ba1code=106;
UPDATE bis.tbl_bisverwendung SET ba1code=108 WHERE ba1code=103 AND EXISTS(
SELECT 1 FROM public.tbl_benutzerfunktion
WHERE uid=tbl_bisverwendung.mitarbeiter_uid AND funktion_kurzbz='hilfskraft' AND
(
datum_von BETWEEN tbl_bisverwendung.beginn AND tbl_bisverwendung.ende
OR
datum_bis BETWEEN tbl_bisverwendung.beginn AND tbl_bisverwendung.ende
)
);
";
$qry .= "
UPDATE bis.tbl_beschaeftigungsart1 SET ba1bez='Dienstverhältnis zur postsekundären Bildungseinrichtung oder deren Träger' WHERE ba1code=103;
UPDATE bis.tbl_beschaeftigungsart1 SET ba1kurzbz='Lehr- oder Ausbildungsverhältnis', ba1bez='Lehr- oder Ausbildungsverhältnis' WHERE ba1code=104;
UPDATE bis.tbl_beschaeftigungsart1 SET ba1kurzbz='Freier Dienstvertrag (Sonstiges)', ba1bez='Sonstiges Beschäftigungsverhältnis' WHERE ba1code=105;
UPDATE bis.tbl_beschaeftigungsart1 SET ba1kurzbz='Andere Bildungseinrichtung', ba1bez='Dienstverhältnis zu einer anderen Bildungseinrichtung oder einem anderen Träger' WHERE ba1code=106;
";
/*
Verwendungs Kodextabelle aktualisieren
VerwendungCode alt 1 => VerwendungsCode neu 1
VerwendungCode alt 2 => VerwendungsCode neu 2
VerwendungCode alt 3 => VerwendungsCode neu 3
VerwendungCode alt 4 => VerwendungsCode neu 4
VerwendungCode alt 5 => VerwendungsCode neu 5
VerwendungCode alt 6 => VerwendungsCode neu 5
VerwendungCode alt 7 => VerwendungsCode neu 5
VerwendungCode alt 8 => VerwendungsCode neu 6
VerwendungCode alt 9 => VerwendungsCode neu 7
*/
$qry .= "
UPDATE bis.tbl_bisverwendung SET verwendung_code=5 WHERE verwendung_code=6;
UPDATE bis.tbl_bisverwendung SET verwendung_code=5 WHERE verwendung_code=7;
UPDATE bis.tbl_bisverwendung SET verwendung_code=6 WHERE verwendung_code=8;
UPDATE bis.tbl_bisverwendung SET verwendung_code=7 WHERE verwendung_code=9;
UPDATE bis.tbl_verwendung SET verwendungbez='wissenschaftliche Lehre und Forschung' WHERE verwendung_code=1;
UPDATE bis.tbl_verwendung SET verwendungbez='wissenschaftliche Mitarbeit in Lehre und Forschung' WHERE verwendung_code=2;
UPDATE bis.tbl_verwendung SET verwendungbez='professionelle Unterstützung der Studierenden in akademischen Belangen' WHERE verwendung_code=3;
UPDATE bis.tbl_verwendung SET verwendungbez='professionelle Unterstützung der Studierenden in Gesundheits- und Sozialbelangen' WHERE verwendung_code=4;
UPDATE bis.tbl_verwendung SET verwendungbez='Management' WHERE verwendung_code=5;
UPDATE bis.tbl_verwendung SET verwendungbez='Verwaltung' WHERE verwendung_code=6;
UPDATE bis.tbl_verwendung SET verwendungbez='Wartung und Betrieb' WHERE verwendung_code=7;
DELETE FROM bis.tbl_verwendung WHERE verwendung_code=8;
DELETE FROM bis.tbl_verwendung WHERE verwendung_code=9;
";
$qry.="
INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('vertrBefugter','Vertretungsbefugte/r des Erhalters',true,false,false);
INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('kollegium_Ltg','Leiter/in des Kollegiums',true,false,false);
INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('kollegium_stvLtg','Stellv. Leiter/in des Kollegiums',true,false,false);
";
if(!$db->db_query($qry))
echo '<strong>bis.tbl_verwendung und bis.tbl_beschaeftigungsart: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Verwendung und Beschaeftigungsart für BIS Version 6.8 aktualisiert.';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -3535,7 +3637,7 @@ $tabellen=array(
"bis.tbl_bisio_aufenthaltfoerderung" => array("bisio_id","aufenthaltfoerderung_code"),
"bis.tbl_ausbildung" => array("ausbildungcode","ausbildungbez","ausbildungbeschreibung"),
"bis.tbl_berufstaetigkeit" => array("berufstaetigkeit_code","berufstaetigkeit_bez","berufstaetigkeit_kurzbz"),
"bis.tbl_beschaeftigungsart1" => array("ba1code","ba1bez","ba1kurzbz"),
"bis.tbl_beschaeftigungsart1" => array("ba1code","ba1bez","ba1kurzbz","ba1code_bis"),
"bis.tbl_beschaeftigungsart2" => array("ba2code","ba2bez"),
"bis.tbl_beschaeftigungsausmass" => array("beschausmasscode","beschausmassbez","min","max"),
"bis.tbl_besqual" => array("besqualcode","besqualbez"),
+43 -40
View File
@@ -40,19 +40,19 @@ $rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('mitarbeiter/stammdaten', null,'suid'))
die('Sie haben keine Berechtigung für diese Seite');
$error_log='';
$fehler=0;
$error_log = '';
$fehler = 0;
$text = '';
$anzahl_quelle=0;
$anzahl_eingefuegt=0;
$anzahl_update=0;
$anzahl_fehler=0;
$ausgabe='';
$error_log_fas='';
$update=false;
$bismeldedatum=date("Y-m-d", mktime(0, 0, 0, 9, 1, date("Y")));
$bismeldedatumvorjahr=date("Y-m-d", mktime(0, 0, 0, 9, 1, date("Y")-1));
$anzahl_quelle = 0;
$anzahl_eingefuegt = 0;
$anzahl_update = 0;
$anzahl_fehler = 0;
$ausgabe = '';
$error_log_fas = '';
$update = false;
$bismeldedatum_start = date("Y-m-d", mktime(0, 0, 0, 1, 1, date("Y")-1));
$bismeldedatum_ende = date("Y-m-d", mktime(0, 0, 0, 12, 31, date("Y")-1));
$ba1_arr = array();
$qry = "SELECT * FROM bis.tbl_beschaeftigungsart1";
@@ -141,14 +141,14 @@ if($resultall = $db->db_query($qryall))
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
ORDER BY beginn";
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
$num_rows=$db->db_num_rows($result);
if($num_rows>1)
$num_rows = $db->db_num_rows($result);
if ($num_rows > 1)
{
while($row=$db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
if($i==0)
if ($i == 0)
{
echo "
<br>
@@ -165,7 +165,7 @@ if($resultall = $db->db_query($qryall))
$row->beginn." - ".$row->ende."<br>";
}
}
elseif($num_rows==0)
elseif ($num_rows == 0)
echo "<br><u>Aktive(r) Mitarbeiter(in): <b>".$rowall->nachname." ".$rowall->vorname."</b>
hat ".$num_rows." aktuelle Verwendungen:</u><br>";
}
@@ -188,14 +188,14 @@ $qryall = '
)
GROUP BY uid, nachname, vorname
ORDER by nachname, vorname;';
if($resultall = $db->db_query($qryall))
if ($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
$num_rows_all = $db->db_num_rows($resultall);
echo "<br><br><H2>Bei $num_rows_all aktiven Fixangestellten Mitarbeitern sind keine aktuellen Verwendungen eingetragen</H2>";
while($rowall=$db->db_fetch_object($resultall))
while ($rowall = $db->db_fetch_object($resultall))
{
$i=0;
$qry="
$i = 0;
$qry = "
SELECT
*
FROM
@@ -207,12 +207,12 @@ if($resultall = $db->db_query($qryall))
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
ORDER by beginn";
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
$num_rows=$db->db_num_rows($result);
while($row=$db->db_fetch_object($result))
while ($row=$db->db_fetch_object($result))
{
if($i==0)
if ($i == 0)
{
echo "<br>
<u>
@@ -233,7 +233,7 @@ if($resultall = $db->db_query($qryall))
}
//3 - nicht aktive mitarbeiter mitarbeiter mit aktueller verwendung
$qryall='
$qryall = '
SELECT
uid, nachname, vorname
FROM
@@ -246,14 +246,14 @@ $qryall='
GROUP BY uid, nachname, vorname
ORDER by nachname, vorname;';
if($resultall = $db->db_query($qryall))
if ($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
echo "<br><br><H2>Bei $num_rows_all nicht aktiven Mitarbeitern sind die aktuellen Verwendungen nicht plausibel (inaktiv aber aktuelle Verwendung)</H2>";
while($rowall=$db->db_fetch_object($resultall))
while ($rowall = $db->db_fetch_object($resultall))
{
$i=0;
$qry="
$i = 0;
$qry = "
SELECT
*
FROM
@@ -263,12 +263,12 @@ if($resultall = $db->db_query($qryall))
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
ORDER BY beginn";
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
$num_rows=$db->db_num_rows($result);
while($row=$db->db_fetch_object($result))
$num_rows = $db->db_num_rows($result);
while ($row = $db->db_fetch_object($result))
{
if($i==0)
if ($i == 0)
{
echo "<br>
<u>
@@ -287,16 +287,17 @@ if($resultall = $db->db_query($qryall))
}
}
}
//4 - wenn hauptberuf=j dann sollte verwendung=1,5,6 sein - check
$qryall="
//4 - wenn hauptberufcode gesetzt ist, muss die Verwendung 1 sein
$qryall = "
SELECT
uid, nachname, vorname
FROM
campus.vw_mitarbeiter
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE
verwendung_code NOT IN ('1','5','6')
verwendung_code NOT IN ('1')
AND hauptberuflich=true
AND (tbl_bisverwendung.ende>".$db->db_add_param($bismeldedatum_start)." or tbl_bisverwendung.ende is null)
GROUP BY uid, nachname, vorname
ORDER by nachname, vorname, uid;";
@@ -304,8 +305,7 @@ if($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
echo "<br><br><H2>Bei $num_rows_all Mitarbeitern sind die Eintragungen 'hauptberuflich' nicht plausibel</H2>";
echo "hauptberuflich=ja, aber Verwendung nicht ".
$verwendung_arr[1].", ".$verwendung_arr[5]." oder ".$verwendung_arr[6];
echo "hauptberuflich=ja, aber Verwendung nicht ".$verwendung_arr[1];
while($rowall=$db->db_fetch_object($resultall))
{
@@ -316,9 +316,10 @@ if($resultall = $db->db_query($qryall))
FROM
bis.tbl_bisverwendung
WHERE
verwendung_code NOT IN ('1','5','6')
verwendung_code NOT IN ('1')
AND hauptberuflich=true
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
AND (tbl_bisverwendung.ende>".$db->db_add_param($bismeldedatum_start)." or tbl_bisverwendung.ende is null)
ORDER BY beginn";
if($result = $db->db_query($qry))
@@ -342,6 +343,7 @@ if($resultall = $db->db_query($qryall))
}
}
//5 - stimmt beschausmasscode mit vertragsstunden überein?
/* Beschaeftigungsausmass nicht mehr relevant
$qryall="
SELECT
uid, nachname, vorname
@@ -403,6 +405,7 @@ if($resultall = $db->db_query($qryall))
}
}
}
*/
//6 - aktive, freie lektoren auf verwendung 1 oder 2 prüfen
$qryall="
SELECT
@@ -219,7 +219,7 @@ if ($result = $db->db_query($qry))
echo '<br><br>Anzahl:'.$db->db_num_rows($result);
echo '
<div style="float:right" >Beendingungsdatum der Verwendung:
<input class="datepicker_datum" type="text" size="10" value="'.date('Y').'-08-31" id="deaktivierungsdatum"/>
<input class="datepicker_datum" type="text" size="10" value="'.(date('Y')-2).'-12-31" id="deaktivierungsdatum"/>
</div>
<br><br>
<table class="tablesorter" id="t1">
@@ -42,10 +42,6 @@ echo '<!doctype html>
<a href="checkverwendung.php">Plausibilitätsprüfungen Verwendungen</a><br>
Diverse Prüfungen auf inkonsistente Daten<br><br>
</li>
<li>
<a href="checkfunktion.php">Funktionen generieren</a><br>
Funktionen zu den Verwendungen generieren (SWS pro Studiengang)<br><br>
</li>
<li>
<a href="personalmeldung.php">Meldung generieren</a><br>
Abschließende Plausibilitätsprüfungen durchführen und Meldung generieren<br><br>