diff --git a/application/config/message.php b/application/config/message.php
index 35d34124b..8232cdfb7 100644
--- a/application/config/message.php
+++ b/application/config/message.php
@@ -18,6 +18,8 @@ $config['ou_receivers'] = array('ass');
$config['ou_receivers_no_notice'] = array('infocenter');
// Organization units that will not send the notice email to the internal account, but to the private one
$config['ou_receivers_private'] = array('eac', 'ewu', 'scs');
+//
+$config['ou_function_whitelist'] = array('ass', 'Leitung', 'fachzuordnung', 'oezuordnung');
$config['message_redirect_url'] = array();
$config['message_redirect_url']['fallback'] = site_url('system/messages/ViewMessage/writeReply');
diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php
index b97ef4bae..fd2051f48 100644
--- a/application/libraries/MessageLib.php
+++ b/application/libraries/MessageLib.php
@@ -15,6 +15,7 @@ class MessageLib
const CFG_OU_RECEIVERS = 'ou_receivers';
const CFG_OU_RECEIVERS_NO_NOTICE = 'ou_receivers_no_notice';
const CFG_OU_RECEIVERS_PRIVATE = 'ou_receivers_private';
+ const CFG_OU_FUNCTION_WHITELIST = 'ou_function_whitelist';
const CFG_REDIRECT_VIEW_MESSAGE_URL = 'redirect_view_message_url';
// Templates names
@@ -229,7 +230,14 @@ class MessageLib
$ouArray = array();
// Copies organisation units in $ouArray array
- foreach (getData($benutzer) as $val) $ouArray[] = $val->oe_kurzbz;
+ foreach (getData($benutzer) as $val)
+ {
+ // If the function is in the white list then get the organisation unit
+ if (in_array($val->funktion_kurzbz, $this->_ci->config->item(self::CFG_OU_FUNCTION_WHITELIST)))
+ {
+ $ouArray[] = $val->oe_kurzbz;
+ }
+ }
return success($ouArray);
}
diff --git a/application/models/organisation/Organisationseinheit_model.php b/application/models/organisation/Organisationseinheit_model.php
index 3efc8472a..6439bc8d6 100644
--- a/application/models/organisation/Organisationseinheit_model.php
+++ b/application/models/organisation/Organisationseinheit_model.php
@@ -125,12 +125,12 @@ class Organisationseinheit_model extends DB_Model
public function getChilds($oe_kurzbz, $includeinactive = false)
{
$query = "
- WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
+ WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
(
- SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
+ SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
WHERE oe_kurzbz=? %s
UNION ALL
- SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
+ SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
WHERE o.oe_parent_kurzbz=oes.oe_kurzbz %s
)
SELECT oe_kurzbz
@@ -150,12 +150,12 @@ class Organisationseinheit_model extends DB_Model
public function getParents($oe_kurzbz, $includeinactive = false)
{
$query=
- "WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
+ "WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
(
- SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
+ SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
WHERE oe_kurzbz=? %s
UNION ALL
- SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
+ SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
WHERE o.oe_kurzbz=oes.oe_parent_kurzbz %s
)
SELECT oe_kurzbz
@@ -177,7 +177,7 @@ class Organisationseinheit_model extends DB_Model
{
$condition = '
oe_kurzbz = (
- SELECT
+ SELECT
oe_parent_kurzbz
FROM
public.tbl_organisationseinheit
diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php
index 3f2575ec1..a4116e8d0 100644
--- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php
+++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php
@@ -69,13 +69,11 @@ $this->load->view(
-
Alle Alle Lehraufträge mit jedem Status
-
Bestellt Nur bestellte UND bestellte Lehraufträge, die in Bearbeitung sind
Erteilt Nur erteilte UND geänderte Lehraufträge, die in Bearbeitung sind
Angenommen Nur von Ihnen angenommene Lehraufträge
@@ -148,9 +146,6 @@ $this->load->view(
-
@@ -196,7 +191,7 @@ $this->load->view(
-
+
diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php
index 2a9cc4245..6ac3abbdc 100644
--- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php
+++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php
@@ -170,7 +170,7 @@ FROM
/* filter active organisationseinheiten */
AND oe.aktiv = TRUE
/* filter vertragsstatus to avoid showing before status is bestellt */
- AND vvs.vertragsstatus_kurzbz IN (\'bestellt\', \'erteilt\', \'akzeptiert\')
+ AND vvs.vertragsstatus_kurzbz IN (\'erteilt\', \'akzeptiert\')
) tmp_lehrauftraege
UNION
@@ -182,8 +182,8 @@ FROM
(SELECT
uid
FROM
- public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
- ON tbl_benutzer.uid = ma.mitarbeiter_uid
+ public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
+ ON tbl_benutzer.uid = ma.mitarbeiter_uid
WHERE
person_id = tmp_projektbetreuung.person_id
ORDER BY aktiv DESC, updateaktivam DESC -- accept inactive as some person_ids have no active, but order them last
@@ -285,8 +285,8 @@ FROM
AND lv.aktiv = TRUE
/* filter active organisationseinheiten */
AND oe.aktiv = TRUE
- /* filter vertragsstatus to avoid showing before status is bestellt */
- AND vvs.vertragsstatus_kurzbz IN (\'bestellt\', \'erteilt\', \'akzeptiert\')
+ /* filter vertragsstatus to avoid showing before status is erteilt */
+ AND vvs.vertragsstatus_kurzbz IN (\'erteilt\', \'akzeptiert\')
) tmp_projektbetreuung
) auftraege
ORDER BY "akzeptiert" NULLS FIRST, "erteilt" NULLS LAST, "bestellt"
diff --git a/application/widgets/Vorlage_widget.php b/application/widgets/Vorlage_widget.php
index 9ec13250f..f1898eb09 100644
--- a/application/widgets/Vorlage_widget.php
+++ b/application/widgets/Vorlage_widget.php
@@ -11,9 +11,9 @@ class Vorlage_widget extends DropdownWidget
$vorlage = null;
// If the user is an admin
- if ($idAdmin === true)
+ if ($idAdmin)
{
- // Get all the vorlage with mimetype = text/html
+ // Get all the vorlage with mimetype = text/html
$vorlage = $this->_getAllHTMLVorlage();
}
else
@@ -39,7 +39,7 @@ class Vorlage_widget extends DropdownWidget
private function _getAllHTMLVorlage()
{
$this->load->model('system/Vorlage_model', 'VorlageModel');
- $this->VorlageModel->addOrder('vorlage_kurzbz');
+ $this->VorlageModel->addOrder('bezeichnung');
$this->addSelectToModel($this->VorlageModel, 'vorlage_kurzbz', 'bezeichnung');
@@ -59,15 +59,31 @@ class Vorlage_widget extends DropdownWidget
$vorlage = success(array()); // Default value
$table = '(
- SELECT v.vorlage_kurzbz, v.bezeichnung, vs.version, vs.oe_kurzbz, vs.aktiv, vs.subject, vs.text, v.mimetype
- FROM tbl_vorlagestudiengang vs INNER JOIN tbl_vorlage v USING(vorlage_kurzbz)
+ SELECT v.vorlage_kurzbz,
+ v.bezeichnung,
+ vs.version,
+ vs.oe_kurzbz,
+ vs.aktiv,
+ vs.subject,
+ vs.text,
+ v.mimetype
+ FROM tbl_vorlagestudiengang vs
+ JOIN tbl_vorlage v USING(vorlage_kurzbz)
) templates';
+
$alias = 'templates';
- $fields = array("templates.vorlage_kurzbz AS id", "templates.bezeichnung AS description");
+
+ $fields = array(
+ 'templates.vorlage_kurzbz AS id',
+ 'templates.bezeichnung || \' (\' || UPPER(templates.oe_kurzbz) || \')\' AS description'
+ );
+
$where = 'templates.aktiv = TRUE
- AND templates.subject IS NOT NULL
- AND templates.text IS NOT NULL
- AND templates.mimetype = \'text/html\'';
+ AND templates.subject IS NOT NULL
+ AND templates.text IS NOT NULL
+ AND templates.mimetype = \'text/html\'
+ GROUP BY 1, 2, 3';
+
$order_by = 'description ASC';
if (!is_array($oe_kurzbz))
@@ -99,30 +115,41 @@ class Vorlage_widget extends DropdownWidget
if (hasData($tmpVorlage))
{
// If it's the first vorlage copy it
- if (count($vorlage->retval) == 0)
+ if (!hasData($vorlage))
{
- for ($j = 0; $j < count($tmpVorlage->retval); $j++)
+ for ($j = 0; $j < count(getData($tmpVorlage)); $j++)
{
- if ($tmpVorlage->retval[$j]->id != '')
+ if (getData($tmpVorlage)[$j]->id != '')
{
- array_push($vorlage->retval, $tmpVorlage->retval[$j]);
+ array_push($vorlage->retval, getData($tmpVorlage)[$j]);
}
}
}
- else // checks for duplicates, if it's not already present push it into the array $vorlage->retval
+ else // checks for duplicates, if it's not already present push it into the array getData($vorlage)
{
- for ($i = 0; $i < count($vorlage->retval); $i++)
+ for ($j = 0; $j < count(getData($tmpVorlage)); $j++)
{
- for ($j = 0; $j < count($tmpVorlage->retval); $j++)
+ $found = false;
+ $currentTmpVorlageData = null;
+
+ for ($i = 0; $i < count(getData($vorlage)); $i++)
{
- if ($tmpVorlage->retval[$j]->id != ''
- && $vorlage->retval[$i]->_pk != $tmpVorlage->retval[$j]->_pk
- && $vorlage->retval[$i]->_ppk != $tmpVorlage->retval[$j]->_ppk
- && $vorlage->retval[$i]->_jtpk != $tmpVorlage->retval[$j]->_jtpk)
+ $currentTmpVorlageData = getData($tmpVorlage)[$j];
+
+ if (getData($vorlage)[$i]->id == getData($tmpVorlage)[$j]->id
+ && getData($vorlage)[$i]->_pk == getData($tmpVorlage)[$j]->_pk
+ && getData($vorlage)[$i]->_ppk == getData($tmpVorlage)[$j]->_ppk
+ && getData($vorlage)[$i]->_jtpk == getData($tmpVorlage)[$j]->_jtpk)
{
- array_push($vorlage->retval, $tmpVorlage->retval[$j]);
+ $found = true;
+ break;
}
}
+
+ if (!$found && $currentTmpVorlageData->id != '')
+ {
+ array_push($vorlage->retval, $currentTmpVorlageData);
+ }
}
}
}
diff --git a/cis/private/lehre/anwesenheitsliste.php b/cis/private/lehre/anwesenheitsliste.php
index 4e328f5f2..bc7d96083 100644
--- a/cis/private/lehre/anwesenheitsliste.php
+++ b/cis/private/lehre/anwesenheitsliste.php
@@ -33,7 +33,7 @@
require_once('../../../include/studiengang.class.php');
require_once('../../../include/lehrveranstaltung.class.php');
require_once('../../../include/phrasen.class.php');
-
+ require_once('../../../include/vertrag.class.php');
$sprache = getSprache();
$p=new phrasen($sprache);
@@ -134,6 +134,17 @@
{
while($row_lkt = $db->db_fetch_object($result_lkt))
{
+ // Lektor wird erst angezeigt wenn der Auftrag erteilt wurde
+ if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
+ && CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
+ {
+ $vertrag = new vertrag();
+ if (!$vertrag->isVertragErteiltLV($lvid, $stsem, $row_lkt->mitarbeiter_uid))
+ {
+ continue;
+ }
+ }
+
if($lektoren!='')
$lektoren.=', ';
$lektoren .= $row_lkt->kurzbz;
diff --git a/cis/private/lehre/lesson.php b/cis/private/lehre/lesson.php
index 6d35e46c7..4d8c872a1 100644
--- a/cis/private/lehre/lesson.php
+++ b/cis/private/lehre/lesson.php
@@ -33,6 +33,7 @@ require_once('../../../include/lvangebot.class.php');
require_once('../../../include/benutzergruppe.class.php');
require_once('../../../include/lehreinheit.class.php');
require_once('../../../include/variable.class.php');
+require_once('../../../include/vertrag.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
@@ -316,6 +317,17 @@ $( document ).ready(function()
$i=0;
while($row_lector = $db->db_fetch_object($result))
{
+ // Lektor wird erst angezeigt wenn der Auftrag erteilt wurde
+ if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
+ && CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
+ {
+ $vertrag = new vertrag();
+ if (!$vertrag->isVertragErteiltLV($lvid, $angezeigtes_stsem, $row_lector->uid))
+ {
+ continue;
+ }
+ }
+
$i++;
if($user==$row_lector->uid)
{
@@ -327,9 +339,11 @@ $( document ).ready(function()
$style='style="font-weight: bold"';
else
$style='';
- echo ''.$row_lector->vorname.' '.$row_lector->nachname.'';
- if($i!=$num_rows_result)
+
+ if ($i != 1)
echo ', ';
+ echo ''.$row_lector->vorname.' '.$row_lector->nachname.'';
+
}
}
}
diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php
index 56fd4a36d..e7e7ae90f 100644
--- a/cis/private/lehre/notenliste.php
+++ b/cis/private/lehre/notenliste.php
@@ -417,10 +417,15 @@ else
$tblFoot .= "";
- $tbl .= $tblHead.$tblFoot.$tblBody;
+ if (!defined('CIS_NOTENLISTE_DURCHSCHNITT_ANZEIGEN') || (defined('CIS_NOTENLISTE_DURCHSCHNITT_ANZEIGEN') && CIS_NOTENLISTE_DURCHSCHNITT_ANZEIGEN))
+ {
+ $tbl .= $tblHead.$tblFoot.$tblBody;
+ $tbl .= "
Bei $num_rows_all aktiven Fixangestellten Mitarbeitern sind keine aktuellen Verwendungen eingetragen
";
- 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 "
@@ -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 "
Bei $num_rows_all nicht aktiven Mitarbeitern sind die aktuellen Verwendungen nicht plausibel (inaktiv aber aktuelle Verwendung)
";
- 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 "
@@ -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 "
Bei $num_rows_all Mitarbeitern sind die Eintragungen 'hauptberuflich' nicht plausibel
";
- 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
diff --git a/vilesci/bis/personal_lektorenohnelehrauftrag.php b/vilesci/bis/personal_lektorenohnelehrauftrag.php
index ab75e6a90..1cc1fbe0f 100644
--- a/vilesci/bis/personal_lektorenohnelehrauftrag.php
+++ b/vilesci/bis/personal_lektorenohnelehrauftrag.php
@@ -219,7 +219,7 @@ if ($result = $db->db_query($qry))
echo '
Anzahl:'.$db->db_num_rows($result);
echo '
Beendingungsdatum der Verwendung:
-
+
diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php
index 534b54ed9..3b2a43411 100644
--- a/vilesci/bis/personalmeldung.php
+++ b/vilesci/bis/personalmeldung.php
@@ -1,5 +1,5 @@
- * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
- * Rudolf Hangl < rudolf.hangl@technikum-wien.at >
- * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
+ * Authors: Cristina Hainberger < cristina.hainberger@technikum-wien.at >
*/
-
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/functions.inc.php');
+require_once('../../include/bisverwendung.class.php');
+require_once('../../include/mitarbeiter.class.php');
require_once('../../include/studiengang.class.php');
+require_once('../../include/lehreinheitmitarbeiter.class.php');
+require_once('../../include/benutzerfunktion.class.php');
+require_once('../../include/organisationseinheit.class.php');
+require_once('../../include/entwicklungsteam.class.php');
+require_once('../../include/erhalter.class.php');
$uid = get_uid();
@@ -39,510 +42,1171 @@ if(!$rechte->isBerechtigt('mitarbeiter/stammdaten',null,'suid'))
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
-$error_log='';
-$error_log1='';
-$error_log_all="";
-$mitarbeiter_data=array();
-$mitarbeiter_gesamt=array();
-$stgart='';
-$fehler='';
-$v='';
-$erhalter='';
-$zaehl=0;
-$eteam=array();
-$studiensemester=new studiensemester();
-if(isset($_GET['stsem']))
- $stsem = $_GET['stsem'];
-else
- $stsem=$studiensemester->getaktorNext(1); //aktuelles Semester
+if (!defined('BIS_VOLLZEIT_ARBEITSSTUNDEN') || empty('BIS_VOLLZEIT_ARBEITSSTUNDEN'))
+{
+ die('config var BIS_VOLLZEIT_ARBEITSSTUNDEN fehlt');
+}
-$datei='';
-$mitarbeiterzahl=0;
-$echt=0;
-$frei=0;
+if (!defined('BIS_VOLLZEIT_SWS_EINZELSTUNDENBASIS') || empty('BIS_VOLLZEIT_SWS_EINZELSTUNDENBASIS'))
+{
+ die('config var BIS_VOLLZEIT_SWS_EINZELSTUNDENBASIS fehlt');
+}
-$nichtmelden = array(11,91,92,94,999,203,145,204,308,182,222);
+if (!defined('BIS_VOLLZEIT_SWS_INKLUDIERTE_LEHRE') || empty('BIS_VOLLZEIT_SWS_INKLUDIERTE_LEHRE'))
+{
+ die('config var BIS_VOLLZEIT_SWS_INKLUDIERTE_LEHRE fehlt');
+}
-$datumobj=new datum();
+if (!defined('BIS_EXCLUDE_STG') || empty('BIS_EXCLUDE_STG'))
+{
+ die('config var BIS_EXCLUDE_STG fehlt');
+}
-if(mb_strstr($stsem,"WS"))
+if (!defined('BIS_HALBJAHRES_GEWICHTUNG_SWS') || empty('BIS_HALBJAHRES_GEWICHTUNG_SWS'))
+{
+ die('config var BIS_HALBJAHRES_GEWICHTUNG_SWS fehlt');
+}
+
+if (!defined('BIS_PAUSCHALE_STUDENTISCHE_HILFSKRAFT') || empty('BIS_PAUSCHALE_STUDENTISCHE_HILFSKRAFT'))
+{
+ die('config var BIS_PAUSCHALE_STUDENTISCHE_HILFSKRAFT fehlt');
+}
+
+if (!defined('BIS_PAUSCHALE_SONSTIGES_DIENSTVERHAELTNIS') || empty('BIS_PAUSCHALE_SONSTIGES_DIENSTVERHAELTNIS'))
+{
+ die('config var BIS_PAUSCHALE_SONSTIGES_DIENSTVERHAELTNIS fehlt');
+}
+
+if (!defined('BIS_FUNKTIONSCODE_1234_ARR') || empty('BIS_FUNKTIONSCODE_1234_ARR'))
+{
+ die('config var BIS_FUNKTIONSCODE_1234_ARR fehlt');
+}
+
+if (!defined('BIS_FUNKTIONSCODE_5_ARR') || empty('BIS_FUNKTIONSCODE_5_ARR'))
+{
+ die('config var BIS_FUNKTIONSCODE_5_ARR fehlt');
+}
+
+if (!defined('BIS_FUNKTIONSCODE_6_ARR') || empty('BIS_FUNKTIONSCODE_6_ARR'))
+{
+ die('config var BIS_FUNKTIONSCODE_6_ARR fehlt');
+}
+
+
+// Prüfe Zeitraum zur Erstellung einer BIS-Meldung
+$studiensemester = new studiensemester();
+$stsem = (isset($_GET['stsem'])) ? $_GET['stsem'] : $studiensemester->getaktorNext(); // aktuelles Studiensemester
+
+$datum_obj = new datum();
+if(mb_strstr($stsem,'SS'))
{
$studiensemester->load($stsem);
- $jahr = $datumobj->formatDatum($studiensemester->start, 'Y');
- $bisdatum=date("Y-m-d", mktime(0, 0, 0, 9, 1, $jahr));
- $bisprevious=date("Y-m-d", mktime(0, 0, 0, 9, 1, $jahr-1));
+ $jahr = $datum_obj->formatDatum($studiensemester->start, 'Y');
+ $stichtag = date("Y-m-d", mktime(0, 0, 0, 12, 31, $jahr - 1)); // 31.12. des vorangehenden Kalenderjahres zur BIS Meldung TODO: oder Abfragetag mitgeben?
}
else
{
- echo "Fehler: Studiensemester muss ein Wintersemester sein";
+ echo "Fehler: Studiensemester muss ein Sommersemester sein";
exit;
}
-$qry="SELECT * FROM public.tbl_erhalter";
-if($result = $db->db_query($qry))
+$beginn_imJahr = new DateTime(($jahr - 1). '-01-01');
+$ende_imJahr = new DateTime(($jahr - 1). '-12-31');
+
+$tage_imJahr = $ende_imJahr->diff($beginn_imJahr)->days + 1;
+$wochen_imJahr = $tage_imJahr / 7;
+
+// Sommer- und Wintersemester im BIS Meldungsjahr
+$ss_kurzbz = $studiensemester->getBeforePrevious();
+$ws_kurzbz = $studiensemester->getStudienjahrStudiensemester($stsem);
+$ss = new studiensemester($ss_kurzbz);
+$ws = new studiensemester($ws_kurzbz);
+
+// Alle gemeldeten Mitarbeiter holen
+$mitarbeiter = new mitarbeiter();
+$mitarbeiter->getMitarbeiterBISMeldung($beginn_imJahr->format('Y-m-d'));
+$mitarbeiter_arr = $mitarbeiter->result;
+
+// *********************************************************************************************************************
+// Container Person generieren
+// *********************************************************************************************************************
+$person_arr = array();
+
+foreach ($mitarbeiter_arr as $mitarbeiter)
{
- if($row = $db->db_fetch_object($result))
+ $person_obj = new StdClass();
+
+ $person_obj->personalnummer = setLeadingZero(intval($mitarbeiter->personalnummer), 15);
+ $person_obj->uid = $mitarbeiter->uid;
+ $person_obj->vorname = $mitarbeiter->vorname;
+ $person_obj->nachname = $mitarbeiter->nachname;
+ $person_obj->geschlecht = $mitarbeiter->geschlecht;
+ $person_obj->geschlechtX = $mitarbeiter->geschlechtX;
+ $person_obj->geburtsjahr = $datum_obj->formatDatum($mitarbeiter->gebdatum, 'Y');
+ $person_obj->staatsangehoerigkeit = $mitarbeiter->staatsbuergerschaft;
+ $person_obj->hoechste_abgeschlossene_ausbildung = $mitarbeiter->ausbildungcode;
+
+ // Habilitation
+ $bisverwendung = new bisverwendung();
+ $person_obj->habilitation = $bisverwendung->isHabilitiert($mitarbeiter->uid) ? 'j' : 'n';
+
+ // Alle im FAS gemeldeten BIS-Verwendungen holen
+ $bisverwendung = new bisverwendung();
+ $bisverwendung->getVerwendungenBISMeldung($mitarbeiter->uid, $stichtag);
+ $bisverwendung_arr = $bisverwendung->result; // alle im FAS gemeldeten BIS Verwendungen
+
+ // BIS Verwendungsdauer und -gewichtung ergaenzen
+ $bisverwendung_arr = _addDauerGewichtung_imBISMeldungsjahr($bisverwendung_arr);
+
+ // Hauptberufcode
+ // -----------------------------------------------------------------------------------------------------------------
+ $is_hauptberuflich = $bisverwendung_arr[count($bisverwendung_arr) - 1]->hauptberuflich;
+
+ // wenn Hauptberuf / Nebenberuf im gleichen Jahr - laengere Dauer melden (Ueberwiegenheitprinzip)
+ if (in_array(true, array_column($bisverwendung_arr, 'hauptberuflich')) && // hauptberuflich UND
+ in_array(false, array_column($bisverwendung_arr, 'hauptberuflich'))) // nebenberuflich
{
- $erhalter = sprintf("%03s",trim($row->erhalter_kz));
+ $is_hauptberuflich = _getUeberwiegendeTaetigkeit_HauptNebenberuf($bisverwendung_arr);
}
-}
-$ba1_arr = array();
-$qry = "SELECT * FROM bis.tbl_beschaeftigungsart1";
-if($result = $db->db_query($qry))
- while($row = $db->db_fetch_object($result))
- $ba1_arr[$row->ba1code]=$row->ba1kurzbz;
+ /**
+ * Hauptberufcode
+ * - hauptberuflich Lehrender: NULL,
+ * - nebenberuflich Lehrender: Hauptberufscode der letzten BIS-Verwendung
+ */
+ $person_obj->hauptberufcode = ($is_hauptberuflich == true)
+ ? NULL
+ : $bisverwendung_arr[count($bisverwendung_arr) - 1]->hauptberufcode;
-$ba2_arr = array();
-$qry = "SELECT * FROM bis.tbl_beschaeftigungsart2";
-if($result = $db->db_query($qry))
- while($row = $db->db_fetch_object($result))
- $ba2_arr[$row->ba2code]=$row->ba2bez;
-$verwendung_arr = array();
-$qry = "SELECT * FROM bis.tbl_verwendung";
-if($result = $db->db_query($qry))
- while($row = $db->db_fetch_object($result))
- $verwendung_arr[$row->verwendung_code]=$row->verwendungbez;
+ // *****************************************************************************************************************
+ // Container Verwendung generieren (mit JVZAE und VZAE)
+ // *****************************************************************************************************************
+ $verwendung_arr = array();
-$ausmass_arr = array();
-$qry = "SELECT * FROM bis.tbl_beschaeftigungsausmass";
-if($result = $db->db_query($qry))
- while($row = $db->db_fetch_object($result))
- $ausmass_arr[$row->beschausmasscode]=$row->beschausmassbez;
+ // Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln
+ // -----------------------------------------------------------------------------------------------------------------
+ $bisverwendung_arr = _add_relativesBA_und_anteiligeJVZAE($person_obj->uid, $bisverwendung_arr);
-$stg_obj = new studiengang();
-$stg_obj->getAll(null,false);
-
-$qry="
- SELECT DISTINCT ON (UID) *, transform_geschlecht(tbl_person.geschlecht, tbl_person.gebdatum) as geschlecht_imputiert
- 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>".$db->db_add_param($bisprevious).")
- ORDER BY uid, nachname,vorname
- ";
-
-if($result = $db->db_query($qry))
-{
-
- $datei.="
-
- ".$erhalter."
- ".date("dmY", mktime(0, 0, 0, 11, 15, $jahr))."
- ";
- while($row = $db->db_fetch_object($result))
+ // JVZAE und VZAE ermitteln und Container Verwendung generieren
+ // -----------------------------------------------------------------------------------------------------------------
+ foreach ($bisverwendung_arr as $bisverwendung)
{
- $mitarbeiter_data=array();
+ if (empty($verwendung_arr) || // wenn erster Durchlauf ODER
+ (!(in_array($bisverwendung->ba1code, array_column($verwendung_arr, 'ba1code')) && // im verwendung_arr Beschaeftigungsart1 UND
+ in_array($bisverwendung->ba2code, array_column($verwendung_arr, 'ba2code')) && // Beschaeftigungsart2 UND
+ in_array($bisverwendung->verwendung_code, array_column($verwendung_arr, 'verwendung_code'))))) // Verwendung_code noch NICHT vorhanden
+ {
- $error_person = false;
- $person_content='';
- $qryet="SELECT * FROM bis.tbl_entwicklungsteam WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid).";";
- if($resultet=$db->db_query($qryet))
- {
- while($rowet=$db->db_fetch_object($resultet))
- {
- $eteam[$rowet->studiengang_kz]=$rowet->besqualcode;
- }
- }
- $error_log='';
+ // Temporaeren array mit Verwendungen mit gleichem Beschaeftigungsverhaeltnis und gleichem Verwendungscode erstellen
+ $verwendung_tmp_arr = array_filter($bisverwendung_arr, function ($obj) use ($bisverwendung) {
+ return
+ $obj->ba1code == $bisverwendung->ba1code &&
+ $obj->ba2code == $bisverwendung->ba2code &&
+ $obj->verwendung_code == $bisverwendung->verwendung_code;
+ });
- if($row->gebdatum=='' || $row->gebdatum==NULL)
- {
- $error_log.=($error_log!=''?', ':'')."Geburtsdatum ('".$row->gebdatum."')";
- }
- if($row->geschlecht=='' || $row->geschlecht==NULL)
- {
- $error_log.=($error_log!=''?', ':'')."Geschlecht ('".$row->geschlecht."')";
- }
- if($row->ausbildungcode=='' || $row->ausbildungcode==NULL)
- {
- $error_log.=($error_log!=''?', ':'')."HoechsteAbgeschlosseneAusbildung ('".$row->ausbildungcode."')";
- }
- $mitarbeiter_data['uid']=$row->uid;
- $mitarbeiter_data['personalnummer']=sprintf("%015s",$row->personalnummer);
- $mitarbeiter_data['vorname']=$row->vorname;
- $mitarbeiter_data['nachname']=$row->nachname;
- $mitarbeiter_data['fixangestellt']=($row->fixangestellt=='t'?true:false);
- $mitarbeiter_data['lektor']=($row->lektor=='t'?true:false);
+ // Neue Verwendung fuer Container Verwendung erstellen
+ $verwendung_obj = new StdClass();
+ $verwendung_obj->ba1code = $bisverwendung->ba1code;
+ $verwendung_obj->ba2code = $bisverwendung->ba2code;
+ $verwendung_obj->verwendung_code = $bisverwendung->verwendung_code;
+ $verwendung_obj->jvzae = 0.00;
+ $verwendung_obj->vzae = -1; // default
- $person_content.="
-
- ".sprintf("%015s",$row->personalnummer)."
- ".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))."
- ".strtoupper($row->geschlecht)."";
- if ($row->geschlecht == 'x')
- $person_content.="
- ".strtoupper($row->geschlecht_imputiert)."";
+ // Loop innerhalb Verwendungen mit selben Beschaeftigungsverhaeltnissen und Verwendung_codes
+ foreach ($verwendung_tmp_arr as $verwendung_tmp)
+ {
- $person_content.="
- ".$row->ausbildungcode."";
- $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)." AND habilitation=true;";
- if($resultvw=$db->db_query($qryvw))
- {
- if($db->db_num_rows($resultvw)>0)
- {
- $person_content.="
- J";
- }
- else
- {
- $person_content.="
- N";
- }
- }
- $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)." AND (ende is null OR ende>".$db->db_add_param($bisprevious).") AND (beginn<".$db->db_add_param($bisdatum)." OR beginn is null);";
- if($resultvw=$db->db_query($qryvw))
- {
- if($db->db_num_rows($resultvw)>0)
- {
- $verwendung_data=array();
- while($rowvw=$db->db_fetch_object($resultvw))
+ // Jahresvollzeitaequivalenz JVZAE ermitteln
+ // ---------------------------------------------------------------------------------------------------------
+ /**
+ * Berechnung:
+ * JVZAE wird aus der Summe aller anteiligen JVZE gebildet.
+ */
+ $verwendung_obj->jvzae += (isset($verwendung_tmp->jvzae_anteilig))
+ ? number_format($verwendung_tmp->jvzae_anteilig * 100, 2)
+ : NULL; // TODO: not null...
+
+
+ // Vollzeitaequivalenz VZAE ermitteln (Beschaeftigungsausmass zum Stichtag 31.12)
+ // ---------------------------------------------------------------------------------------------------------
+ /**
+ * Berechnung:
+ * - Wenn Karenz zum Stichtag 31.12. vorhanden: VZAE = 0.00
+ * - Wenn Beschaeftigung zum Stichtag 31.12. vorhanden: VZAE = Beschaeftigungsausmass relativ zu VZ
+ * - Wenn keine Beschaeftigung zum Stichtag 31.12 vorhanden: VZAE = -1;
+ */
+ $ende_imBISMeldungsJahr = new DateTime($verwendung_tmp->ende_imBISMeldungsJahr);
+ $is_karenziert_VZ = $verwendung_tmp->beschausmasscode == 5 && $verwendung_tmp->jvzae_anteilig == 0;
+ if ($ende_imBISMeldungsJahr == $ende_imJahr)
{
- if($rowvw->ba1code=='' || $rowvw->ba1code==NULL)
+ if ($is_karenziert_VZ)
{
- $error_log.=($error_log!=''?', ':'')."Beschaeftigungsart1 ('".$rowvw->ba1code."')";
- }
- if($rowvw->ba2code=='' || $rowvw->ba2code==NULL)
- {
- $error_log.=($error_log!=''?', ':'')."Beschaeftigungsart2 ('".$rowvw->ba2code."')";
- }
- if($rowvw->beschausmasscode=='' || $rowvw->beschausmasscode==NULL)
- {
- $error_log.=($error_log!=''?', ':'')."BeschaeftigungsAusmass ('".$rowvw->beschausmasscode."')";
- }
- if($rowvw->verwendung_code=='' || $rowvw->verwendung_code==NULL)
- {
- $error_log.=($error_log!=''?', ':'')."VerwendungsCode ('".$rowvw->verwendung_code."')";
- }
- if(!$rowvw->hauptberuflich && ($rowvw->hauptberufcode=='' || $rowvw->hauptberufcode==NULL))
- {
- $error_log.=($error_log!=''?', ':'')."Hauptberuf ('".$rowvw->hauptberufcode."')";
- }
- if($rowvw->ba1code==3)
- {
- $echt++;
- }
- if($rowvw->ba1code==4)
- {
- $frei++;
- }
- $key = $rowvw->ba1code.'/'.$rowvw->ba2code.'/'.$rowvw->beschausmasscode.'/'.$rowvw->verwendung_code;
- $verwendung_data[$key]['ba1code']=$rowvw->ba1code;
- $verwendung_data[$key]['ba2code']=$rowvw->ba2code;
- $verwendung_data[$key]['beschausmasscode']=$rowvw->beschausmasscode;
- $verwendung_data[$key]['verwendung_code']=$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=".$db->db_add_param($row->mitarbeiter_uid)."
- AND funktion_kurzbz='Leitung'
- AND (datum_von<".$db->db_add_param($bisdatum)." OR datum_von is null)
- AND (datum_bis>".$db->db_add_param($bisprevious)." OR datum_bis is NULL)
- AND studiengang_kz>0
- AND studiengang_kz<10000;";
- if($resultslt=$db->db_query($qryslt))
- {
- while($rowslt=$db->db_fetch_object($resultslt))
- {
- if($rowslt->studiengang_kz=='' || $rowslt->studiengang_kz==NULL)
- {
- $error_log=($error_log!=''?', ':'')."StgKz(Leitung) ('".$rowslt->studiengang_kz."')";
- }
- if(!in_array($rowslt->studiengang_kz, $nichtmelden))
- {
- $verwendung_data[$key]['stgltg'][]=$rowslt->studiengang_kz;
- }
- }
- }
- //Funktionen
- $qryfkt="SELECT * FROM bis.tbl_bisfunktion WHERE bisverwendung_id=".$db->db_add_param($rowvw->bisverwendung_id)." AND studiengang_kz>0 AND studiengang_kz<10000;";
- if($resultfkt=$db->db_query($qryfkt))
- {
- while($rowfkt=$db->db_fetch_object($resultfkt))
- {
- if($rowfkt->studiengang_kz=='' || $rowfkt->studiengang_kz==NULL)
- {
- $error_log.=($error_log!=''?', ':'')."StgKz(Funktion) ('".$rowfkt->studiengang_kz."')";
- }
- if($rowfkt->sws=='' || $rowfkt->sws==NULL)
- {
- $error_log.=($error_log!=''?', ':'')."SWS ('".$rowfkt->sws."')";
- }
- if($rowvw->hauptberuflich=='' || $rowvw->hauptberuflich==NULL)
- {
- $error_log.=($error_log!=''?', ':'')."Hauptberuflich ('".$rowvw->hauptberuflich."')";
- }
- if(($rowvw->hauptberufcode=='' || $rowvw->hauptberufcode==NULL) && $rowvw->hauptberuflich=='f')
- {
- $error_log.=($error_log!=''?', ':'')."HauptberufCode ('".$rowvw->hauptberufcode."')";
- }
- if (isset($eteam[$rowfkt->studiengang_kz]))
- {
- if(($eteam[$rowfkt->studiengang_kz]=='' || $eteam[$rowfkt->studiengang_kz]==NULL))
- {
- $error_log.=($error_log!=''?', ':'')."BesondereQualifikationCode ('".$eteam[$rowfkt->studiengang_kz]."')";
- }
- }
-
- $verwfkt_found=false;
-
- // Wenn mehrere Verwendungen vorhanden sind fuer und funktionen fuer die gleichen Studiengaenge
- // dann muessen diese zusammengezaehlt werden
- if(isset($verwendung_data[$key]['fkt']) && is_array($verwendung_data[$key]['fkt']))
- {
- foreach($verwendung_data[$key]['fkt'] as $key_verwfkt=>$row_verwfkt)
- {
- if($row_verwfkt['stgkz']==$rowfkt->studiengang_kz)
- {
- $verwendung_data[$key]['fkt'][$key_verwfkt]['sws']+=$rowfkt->sws;
- $verwfkt_found=true;
- break;
- }
- }
- }
- if(!$verwfkt_found)
- {
- $verwendung_data[$key]['fkt'][] = array(
- 'stgkz'=>$rowfkt->studiengang_kz,
- 'sws'=>$rowfkt->sws,
- 'hauptberuflich'=>$rowvw->hauptberuflich,
- 'hauptberufcode'=>$rowvw->hauptberufcode);
- }
- }
- }
- }
- $mitarbeiter_data['verwendung']=$verwendung_data;
- //Verwendungen ausgeben
- foreach($verwendung_data as $row_verwendung)
- {
- $person_content.="
-
- ".$row_verwendung['ba1code']."
- ".$row_verwendung['ba2code']."
- ".$row_verwendung['beschausmasscode']."
- ".$row_verwendung['verwendung_code']."";
-
- if(isset($row_verwendung['stgltg']) && isset($row_verwendung['verwendung_code']) && $row_verwendung['verwendung_code']==5)
- {
- foreach($row_verwendung['stgltg'] as $row_stgl)
- {
- $person_content.="
-
- ".sprintf("%04s",$row_stgl)."
- ";
- }
- }
- if(isset($row_verwendung['fkt']))
- {
- foreach($row_verwendung['fkt'] as $row_fkt)
- {
- $person_content.="
-
- ".sprintf("%04s",$row_fkt['stgkz'])."
- ".number_format($row_fkt['sws'],2)."";
- if($row_fkt['hauptberuflich']=='t')
- {
- $person_content.="
- J";
- }
- else
- {
- $person_content.="
- N
- ".$row_fkt['hauptberufcode']."";
- }
- if(isset($eteam[$row_fkt['stgkz']]))
- {
- $person_content.="
- J
- ".$eteam[$row_fkt['stgkz']]."";
- }
- else
- {
- $person_content.="
- N";
- }
- $person_content.="
- ";
- }
- }
- $person_content.="
- ";
- }
-
- }
- else
- {
- $qry_count="SELECT 1 FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid);
- if($result_count=$db->db_query($qry_count))
- {
- if($db->db_num_rows($result_count)==0)
- {
- //Keine Verwendung
- $v.="$row->mitarbeiter_uid hat keine Verwendung und wird ausgelassen ";
- $error_person = true;
+ $verwendung_obj->vzae = number_format(0.00, 2);
+ break;
}
else
{
- //Keine Verwendung im Meldezeitraum
- //$v.="$row->mitarbeiter_uid hat keine Verwendung und wird ausgelassen ";
- $error_person = true;
+ $verwendung_obj->vzae = (isset($verwendung_tmp->beschaeftigungsausmass_relativ)) ? $verwendung_tmp->beschaeftigungsausmass_relativ * 100 : NULL; // TODO: not null...
}
}
- } }
- $mitarbeiterzahl++;
- $person_content.="
- ";
- if($error_log!='' || $error_log1!='')
- {
- if($error_person)
- $v.='';
- $v.="Bei Mitarbeiter (PersNr, UID, Vorname, Nachname) '".$row->personalnummer."','".$row->mitarbeiter_uid."', '".$row->nachname."', '".$row->vorname."': \n";
- if($error_log!='')
- {
- $v.=" Es fehlt: ".$error_log."\n";
- }
- $zaehl++;
- $v.="\n";
- $error_log='';
- if($error_person)
- $v.='';
- }
- else
- {
- if(!$error_person)
- {
- $datei.=$person_content;
- $mitarbeiter_gesamt[]=$mitarbeiter_data;
}
+
+ // Neue Verwendung im finalen Verwendungcontainer speichern
+ $verwendung_arr [] = $verwendung_obj;
}
}
- $datei.="
-
-";
+
+ // Container Verwendung dem Container Person anhaengen
+ // -----------------------------------------------------------------------------------------------------------------
+ $person_obj->verwendung_arr = $verwendung_arr;
+
+
+ // *****************************************************************************************************************
+ // Container Funktion generieren (nicht für Lehrgaenge)
+ // *****************************************************************************************************************
+ $funktion_arr = array();
+
+ // Alle Benutzerfunktionen im BIS Meldungsjahr holen
+ $benutzerfunktion = new Benutzerfunktion();
+ $benutzerfunktion->getBenutzerFunktionByUid(
+ $person_obj->uid, null,
+ $beginn_imJahr->format('Y-m-d'),
+ $ende_imJahr->format('Y-m-d')
+ );
+ $bisfunktion_arr = $benutzerfunktion->result;
+
+ /**
+ * Funktionscode 1 - 6 anhand Benutzerfunktionen ermitteln
+ * Exkludiert Funktionen, die einem Lehrgang bzw. STG, die nicht BIS-gemeldet werden, zugeordnet sind.
+ */
+ // -------------------------------------------------------------------------------------------------------------
+ $funktion_arr = _getFunktionscontainer_Funktionscode123456($bisfunktion_arr);
+
+ /**
+ * Funktionscode 7 aus Entwicklungsteam-Tabelle ermitteln
+ * Exkludiert Funktionen, die einem Lehrgang bzw. STG, die nicht BIS-gemeldet werden, zugeordnet sind.
+ */
+ // -------------------------------------------------------------------------------------------------------------
+ $funktion_arr = _addFunktionscontainer_Funktionscode7($person_obj->uid, $funktion_arr);
+
+ // Container Funktion dem Container Person anhaengen
+ // -----------------------------------------------------------------------------------------------------------------
+ $person_obj->funktion_arr = $funktion_arr;
+
+
+ // *****************************************************************************************************************
+ // Container Lehre generieren (nicht für Lehrgaenge)
+ // *****************************************************************************************************************
+ $lehre_arr = array();
+
+ // Alle Semesterwochenstunden, summiert nach STG und Studiensemester
+ $lehreinheitmitarbeiter = new Lehreinheitmitarbeiter();
+ $lehreinheitmitarbeiter->get_SWS_groupByStg(
+ $person_obj->uid,
+ $beginn_imJahr->format('Y-m-d'),
+ $ende_imJahr->format('Y-m-d')
+ );
+ $sws_proStg_arr = $lehreinheitmitarbeiter->result;
+
+ /**
+ * Lehrtaetigkeit (Semesterwochenstunden) pro STG ermitteln.
+ * Exkludiert Lehrtaetigkeit an Lehrgaengen bzw. Lehrtaetigkeit an STG, die nicht BIS-gemeldet werden.
+ */
+ $lehre_arr = _getLehrecontainer($sws_proStg_arr);
+
+ // Container Lehre dem Container Person anhaengen
+ // -----------------------------------------------------------------------------------------------------------------
+ $person_obj->lehre_arr = $lehre_arr;
+
+
+ // Container Person dem Gesamt-Container anhaengen
+ // -----------------------------------------------------------------------------------------------------------------
+ $person_arr []= $person_obj;
}
-echo ' BIS - Meldung Mitarbeiter
-
- ';
- include('../../include/meta/jquery.php');
- include('../../include/meta/jquery-tablesorter.php');
-echo '
- ';
-echo "
BIS - Mitarbeiterdaten werden überprüft (für Meldung ".$stsem." / $bisprevious - $bisdatum)