mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 16:44:28 +00:00
Merge branch 'feature-5920/Personalmeldung_Berechnung_VZAE_JVZAE'
This commit is contained in:
@@ -208,4 +208,45 @@ define('DVB_PASSWORD','passwort');
|
|||||||
|
|
||||||
define('CI_ENVIRONMENT', 'development'); // Code igniter environment variable
|
define('CI_ENVIRONMENT', 'development'); // Code igniter environment variable
|
||||||
|
|
||||||
|
// BIS Personalmeldung
|
||||||
|
|
||||||
|
// Studiengaenge, die nicht gemeldet werden
|
||||||
|
define('BIS_EXCLUDE_STG', array());
|
||||||
|
|
||||||
|
// Basis Vollzeit Arbeitsstunden für Berechnung von Jahresvollzeitaequivalenz JVZAE (echte Dienstverträge)
|
||||||
|
define('BIS_VOLLZEIT_ARBEITSSTUNDEN', '40');
|
||||||
|
|
||||||
|
// Basis Vollzeit Semesterwochenstunden für Berechnung von Jahresvollzeitaequivalenz JVZAE auf Stundenbasis (freie Dienstverträge)
|
||||||
|
define('BIS_VOLLZEIT_SWS_EINZELSTUNDENBASIS', '15');
|
||||||
|
|
||||||
|
// Basis Vollzeit Semesterwochenstunden für Berechnung von Jahresvollzeitaequivalenz JVZAE für inkludierte Lehre bei echten Dienstverträgen
|
||||||
|
define('BIS_VOLLZEIT_SWS_INKLUDIERTE_LEHRE', '25');
|
||||||
|
|
||||||
|
// Semester Gewichtung für Berechnung von Jahresvollzeitaequivalenz JVZAE
|
||||||
|
define('BIS_HALBJAHRES_GEWICHTUNG_SWS', 0.5);
|
||||||
|
|
||||||
|
// Jahrespauschale fuer studentische Hilfskraefte (in Stunden)
|
||||||
|
define('BIS_PAUSCHALE_STUDENTISCHE_HILFSKRAFT', 0);
|
||||||
|
|
||||||
|
// Jahrespauschale fuer sonstige Dienstverhaeltnisse, zb Werkvertrag (in Stunden)
|
||||||
|
define('BIS_PAUSCHALE_SONSTIGES_DIENSTVERHAELTNIS', 0);
|
||||||
|
|
||||||
|
define('BIS_FUNKTIONSCODE_1234_ARR', array(
|
||||||
|
'vertrBefugter' => 1, // Vertretungsbefugte/r des Erhalters (GF, Prokura)
|
||||||
|
'kollegium_Ltg' => 2, // Leiter/in des Kollegiums
|
||||||
|
'kollegium_Ltg' => 2, // Leiter/in des Kollegiums
|
||||||
|
'kollegium_stvLtg' => 3, // stellv. Leiter/In des Kollegiums
|
||||||
|
'kollegium' => 4 // Mitglied des Kollegiums
|
||||||
|
));
|
||||||
|
|
||||||
|
// Liste der Leitungsfunktionen
|
||||||
|
define('BIS_FUNKTIONSCODE_5_ARR', array(
|
||||||
|
'Leitung'
|
||||||
|
));
|
||||||
|
|
||||||
|
// Organisationseinheitstypen bei denen KEINE Leiter gemeldet werden
|
||||||
|
define('BIS_FUNKTIONSCODE_6_ARR', array(
|
||||||
|
'Team'
|
||||||
|
));
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
|||||||
</hbox>
|
</hbox>
|
||||||
|
|
||||||
|
|
||||||
<groupbox id="mitarbeiter-detail-groupbox-funktion">
|
<groupbox id="mitarbeiter-detail-groupbox-funktion" hidden="true">
|
||||||
<caption label="Funktion" />
|
<caption label="Funktion" />
|
||||||
<hbox>
|
<hbox>
|
||||||
<tree id="mitarbeiter-tree-funktion" seltype="single" hidecolumnpicker="false" flex="1"
|
<tree id="mitarbeiter-tree-funktion" seltype="single" hidecolumnpicker="false" flex="1"
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
|
|||||||
MitarbeiterVerwendungDetailNeu='true';
|
MitarbeiterVerwendungDetailNeu='true';
|
||||||
|
|
||||||
//Defaultwerte
|
//Defaultwerte
|
||||||
ba1code=3; //fixer Dienstvertrag
|
ba1code=103; //fixer Dienstvertrag
|
||||||
ba2code=1; //unbefristet
|
ba2code=1; //unbefristet
|
||||||
beschausmasscode=1; //Vollzeit
|
beschausmasscode=1; //Vollzeit
|
||||||
verwendung_code=1; //Lehr- und Forschungspersonal
|
verwendung_code=1; //Lehr- und Forschungspersonal
|
||||||
|
|||||||
@@ -587,5 +587,97 @@ class bisverwendung extends basis_db
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prueft, ob Mitarbeiter habilitiert ist
|
||||||
|
* @param $uid UID des Mitarbeiters
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isHabilitiert($uid)
|
||||||
|
{
|
||||||
|
$qry = '
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
bis.tbl_bisverwendung
|
||||||
|
WHERE
|
||||||
|
mitarbeiter_uid = '. $this->db_add_param($uid). '
|
||||||
|
AND
|
||||||
|
habilitation = true;
|
||||||
|
';
|
||||||
|
|
||||||
|
if ($this->db_query($qry))
|
||||||
|
{
|
||||||
|
return $this->db_num_rows() > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt alle Verwendungen eines Mitarbeiters innerhalb des BIS Meldungszeitraums
|
||||||
|
* @param $uid UID des Mitarbeiters
|
||||||
|
* @param $stichtag
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function getVerwendungenBISMeldung($uid, $stichtag)
|
||||||
|
{
|
||||||
|
$datetime = new DateTime($stichtag);
|
||||||
|
$stichtag = $datetime->format('Y-m-d');
|
||||||
|
$bismeldung_jahr = $datetime->format('Y');
|
||||||
|
|
||||||
|
$qry = '
|
||||||
|
SELECT
|
||||||
|
*,
|
||||||
|
CASE
|
||||||
|
WHEN (beginn is null OR beginn < make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1))
|
||||||
|
THEN make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1)
|
||||||
|
ELSE beginn
|
||||||
|
END as beginn_imBISMeldungsJahr,
|
||||||
|
CASE
|
||||||
|
WHEN (ende is null OR ende > make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31))
|
||||||
|
THEN make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31)
|
||||||
|
ELSE ende
|
||||||
|
END as ende_imBISMeldungsJahr
|
||||||
|
FROM
|
||||||
|
bis.tbl_bisverwendung
|
||||||
|
JOIN bis.tbl_beschaeftigungsart1 USING (ba1code)
|
||||||
|
WHERE
|
||||||
|
mitarbeiter_uid = '. $this->db_add_param($uid).'
|
||||||
|
AND (beginn <= '. $this->db_add_param($stichtag).' OR beginn is null)
|
||||||
|
AND (ende >= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1) OR ende is null)
|
||||||
|
ORDER BY ende
|
||||||
|
';
|
||||||
|
|
||||||
|
if($this->db_query($qry))
|
||||||
|
{
|
||||||
|
while($row = $this->db_fetch_object())
|
||||||
|
{
|
||||||
|
$obj = new StdClass();
|
||||||
|
|
||||||
|
$obj->bisverwendung_id = $row->bisverwendung_id;
|
||||||
|
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||||
|
$obj->vertragsstunden = $row->vertragsstunden;
|
||||||
|
$obj->ba1code = $row->ba1code_bis;
|
||||||
|
$obj->ba2code = $row->ba2code;
|
||||||
|
$obj->verwendung_code = $row->verwendung_code;
|
||||||
|
$obj->beschausmasscode = $row->beschausmasscode;
|
||||||
|
$obj->hauptberufcode = $row->hauptberufcode;
|
||||||
|
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||||
|
$obj->beginn = $row->beginn;
|
||||||
|
$obj->ende = $row->ende;
|
||||||
|
$obj->beginn_imBISMeldungsJahr = $row->beginn_imbismeldungsjahr;
|
||||||
|
$obj->ende_imBISMeldungsJahr = $row->ende_imbismeldungsjahr;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$this->result[] = $obj;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ class lehreinheitmitarbeiter extends basis_db
|
|||||||
public $ext_id; // bigint
|
public $ext_id; // bigint
|
||||||
public $vertrag_id;
|
public $vertrag_id;
|
||||||
|
|
||||||
|
public $result = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Konstruktor - Laedt optional einee LEMitarbeiterzuordnung
|
* Konstruktor - Laedt optional einee LEMitarbeiterzuordnung
|
||||||
* @param $lehreinheit_id
|
* @param $lehreinheit_id
|
||||||
@@ -495,6 +497,116 @@ class lehreinheitmitarbeiter extends basis_db
|
|||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ladet Semesterwochenstunden-Summe eines Mitarbeiters eines Semesters.
|
||||||
|
* Nur bisrelevante SWS.
|
||||||
|
* @param String $uid
|
||||||
|
* @param String $studiensemester
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function getLehreinheiten_SWS_BISMeldung($uid, $studiensemester)
|
||||||
|
{
|
||||||
|
$qry = '
|
||||||
|
SELECT
|
||||||
|
round(sum(semesterstunden) / 15) AS sws
|
||||||
|
FROM (
|
||||||
|
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, mitarbeiter_uid, semesterstunden
|
||||||
|
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
||||||
|
JOIN public.tbl_mitarbeiter ma USING (mitarbeiter_uid)
|
||||||
|
JOIN public.tbl_benutzer ON (mitarbeiter_uid = uid)
|
||||||
|
JOIN public.tbl_person USING (person_id)
|
||||||
|
JOIN bis.tbl_bisverwendung USING (mitarbeiter_uid)
|
||||||
|
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||||
|
JOIN public.tbl_studiensemester ss USING (studiensemester_kurzbz)
|
||||||
|
WHERE mitarbeiter_uid = '. $this->db_add_param($uid).'
|
||||||
|
AND lema.bismelden
|
||||||
|
AND studiensemester_kurzbz = '. $this->db_add_param($studiensemester).'
|
||||||
|
) tbl_semesterstunden
|
||||||
|
';
|
||||||
|
|
||||||
|
if($this->db_query($qry))
|
||||||
|
{
|
||||||
|
while($row = $this->db_fetch_object())
|
||||||
|
{
|
||||||
|
$this->result[] = $row->sws;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ladet Semesterwochenstunden-Summe gruppiert nach Studiengang und Studiensemester.
|
||||||
|
* Es werden die Studiensemester herangezogen, die im Zeitraum zwischen beginn und ende beginnen.
|
||||||
|
* @param String $uid
|
||||||
|
* @param String $beginn
|
||||||
|
* @param String $ende
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function get_SWS_groupByStg($uid, $beginn, $ende)
|
||||||
|
{
|
||||||
|
$beginn = new DateTime($beginn);
|
||||||
|
$ende = new DateTime($ende);
|
||||||
|
|
||||||
|
$qry = '
|
||||||
|
WITH semester_sws_tbl AS (
|
||||||
|
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden, stg.studiengang_kz
|
||||||
|
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
||||||
|
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||||
|
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||||
|
JOIN lehre.tbl_studienplan_lehrveranstaltung USING (lehrveranstaltung_id)
|
||||||
|
JOIN lehre.tbl_studienplan USING (studienplan_id)
|
||||||
|
JOIN lehre.tbl_studienordnung sto USING (studienordnung_id)
|
||||||
|
JOIN public.tbl_studiengang stg ON stg.studiengang_kz = sto.studiengang_kz
|
||||||
|
JOIN public.tbl_studiensemester ss USING (studiensemester_kurzbz)
|
||||||
|
WHERE mitarbeiter_uid = '. $this->db_add_param($uid). '
|
||||||
|
AND (
|
||||||
|
ss.start BETWEEN
|
||||||
|
'. $this->db_add_param($beginn->format('Y-m-d')). ' AND
|
||||||
|
'. $this->db_add_param($ende->format('Y-m-d')). ')
|
||||||
|
-- nur lehre, die bisgemeldet wird
|
||||||
|
AND lema.bismelden
|
||||||
|
-- keine lehreinheiten ohne semesterstunden
|
||||||
|
AND lema.semesterstunden != 0
|
||||||
|
)
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
studiengang_kz,
|
||||||
|
studiensemester_kurzbz,
|
||||||
|
sum(semesterstunden) AS summe,
|
||||||
|
round(sum(semesterstunden) / 15, 2) AS sws
|
||||||
|
FROM
|
||||||
|
semester_sws_tbl
|
||||||
|
GROUP BY
|
||||||
|
studiengang_kz,
|
||||||
|
studiensemester_kurzbz
|
||||||
|
ORDER BY
|
||||||
|
studiengang_kz;
|
||||||
|
';
|
||||||
|
|
||||||
|
if ($this->db_query($qry))
|
||||||
|
{
|
||||||
|
while($row = $this->db_fetch_object())
|
||||||
|
{
|
||||||
|
$obj = new StdClass();
|
||||||
|
$obj->studiengang_kz = $row->studiengang_kz;
|
||||||
|
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||||
|
$obj->sws = $row->sws;
|
||||||
|
$this->result []= $obj;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Laedt die Lektoren einer Lehrveranstaltung in einem Studiensemester
|
* Laedt die Lektoren einer Lehrveranstaltung in einem Studiensemester
|
||||||
* @param lehrveranstaltung_id
|
* @param lehrveranstaltung_id
|
||||||
|
|||||||
@@ -1539,5 +1539,56 @@ class mitarbeiter extends benutzer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt alle Mitarbeiter zurück, die im BIS Meldungszeitraum bisgemeldet sind
|
||||||
|
* @param String $stichtag BIS Meldung Stichtag
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function getMitarbeiterBISMeldung($stichtag)
|
||||||
|
{
|
||||||
|
$datetime = new DateTime($stichtag);
|
||||||
|
$bismeldung_jahr = $datetime->format('Y');
|
||||||
|
|
||||||
|
$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)
|
||||||
|
JOIN bis.tbl_beschaeftigungsausmass USING(beschausmasscode)
|
||||||
|
WHERE
|
||||||
|
bismelden
|
||||||
|
AND personalnummer > 0
|
||||||
|
AND (beginn <= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31) OR beginn is null)
|
||||||
|
AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende >= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1))
|
||||||
|
ORDER BY uid, nachname, vorname
|
||||||
|
';
|
||||||
|
|
||||||
|
if($result = $this->db_query($qry))
|
||||||
|
{
|
||||||
|
while($row = $this->db_fetch_object($result))
|
||||||
|
{
|
||||||
|
$obj = new StdClass();
|
||||||
|
|
||||||
|
$obj->uid = $row->uid;
|
||||||
|
$obj->vorname = $row->vorname;
|
||||||
|
$obj->vornamen = $row->vornamen;
|
||||||
|
$obj->nachname = $row->nachname;
|
||||||
|
$obj->gebdatum = $row->gebdatum;
|
||||||
|
$obj->geschlecht = $row->geschlecht;
|
||||||
|
$obj->geschlechtX = $row->geschlecht_imputiert;
|
||||||
|
$obj->staatsbuergerschaft = $row->staatsbuergerschaft;
|
||||||
|
$obj->personalnummer = $row->personalnummer;
|
||||||
|
$obj->ausbildungcode = $row->ausbildungcode;
|
||||||
|
|
||||||
|
$this->result []= $obj;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ echo '
|
|||||||
<RDF:Seq about="'.$rdf_url.'/liste">
|
<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();
|
$db = new basis_db();
|
||||||
|
|
||||||
if($db->db_query($qry))
|
if($db->db_query($qry))
|
||||||
|
|||||||
+103
-1
@@ -3842,6 +3842,108 @@ if ($result = $db->db_query("SELECT 1 FROM pg_class WHERE relname = 'unq_idx_abl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||||
|
|
||||||
@@ -3852,7 +3954,7 @@ $tabellen=array(
|
|||||||
"bis.tbl_bisio_aufenthaltfoerderung" => array("bisio_id","aufenthaltfoerderung_code"),
|
"bis.tbl_bisio_aufenthaltfoerderung" => array("bisio_id","aufenthaltfoerderung_code"),
|
||||||
"bis.tbl_ausbildung" => array("ausbildungcode","ausbildungbez","ausbildungbeschreibung"),
|
"bis.tbl_ausbildung" => array("ausbildungcode","ausbildungbez","ausbildungbeschreibung"),
|
||||||
"bis.tbl_berufstaetigkeit" => array("berufstaetigkeit_code","berufstaetigkeit_bez","berufstaetigkeit_kurzbz"),
|
"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_beschaeftigungsart2" => array("ba2code","ba2bez"),
|
||||||
"bis.tbl_beschaeftigungsausmass" => array("beschausmasscode","beschausmassbez","min","max"),
|
"bis.tbl_beschaeftigungsausmass" => array("beschausmasscode","beschausmassbez","min","max"),
|
||||||
"bis.tbl_besqual" => array("besqualcode","besqualbez"),
|
"bis.tbl_besqual" => array("besqualcode","besqualbez"),
|
||||||
|
|||||||
@@ -40,19 +40,19 @@ $rechte->getBerechtigungen($uid);
|
|||||||
if(!$rechte->isBerechtigt('mitarbeiter/stammdaten', null,'suid'))
|
if(!$rechte->isBerechtigt('mitarbeiter/stammdaten', null,'suid'))
|
||||||
die('Sie haben keine Berechtigung für diese Seite');
|
die('Sie haben keine Berechtigung für diese Seite');
|
||||||
|
|
||||||
$error_log='';
|
$error_log = '';
|
||||||
$fehler=0;
|
$fehler = 0;
|
||||||
|
|
||||||
$text = '';
|
$text = '';
|
||||||
$anzahl_quelle=0;
|
$anzahl_quelle = 0;
|
||||||
$anzahl_eingefuegt=0;
|
$anzahl_eingefuegt = 0;
|
||||||
$anzahl_update=0;
|
$anzahl_update = 0;
|
||||||
$anzahl_fehler=0;
|
$anzahl_fehler = 0;
|
||||||
$ausgabe='';
|
$ausgabe = '';
|
||||||
$error_log_fas='';
|
$error_log_fas = '';
|
||||||
$update=false;
|
$update = false;
|
||||||
$bismeldedatum=date("Y-m-d", mktime(0, 0, 0, 9, 1, date("Y")));
|
$bismeldedatum_start = date("Y-m-d", mktime(0, 0, 0, 1, 1, date("Y")-1));
|
||||||
$bismeldedatumvorjahr=date("Y-m-d", mktime(0, 0, 0, 9, 1, date("Y")-1));
|
$bismeldedatum_ende = date("Y-m-d", mktime(0, 0, 0, 12, 31, date("Y")-1));
|
||||||
|
|
||||||
$ba1_arr = array();
|
$ba1_arr = array();
|
||||||
$qry = "SELECT * FROM bis.tbl_beschaeftigungsart1";
|
$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)."
|
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
|
||||||
ORDER BY beginn";
|
ORDER BY beginn";
|
||||||
|
|
||||||
if($result = $db->db_query($qry))
|
if ($result = $db->db_query($qry))
|
||||||
{
|
{
|
||||||
$num_rows=$db->db_num_rows($result);
|
$num_rows = $db->db_num_rows($result);
|
||||||
if($num_rows>1)
|
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 "
|
echo "
|
||||||
<br>
|
<br>
|
||||||
@@ -165,7 +165,7 @@ if($resultall = $db->db_query($qryall))
|
|||||||
$row->beginn." - ".$row->ende."<br>";
|
$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>
|
echo "<br><u>Aktive(r) Mitarbeiter(in): <b>".$rowall->nachname." ".$rowall->vorname."</b>
|
||||||
hat ".$num_rows." aktuelle Verwendungen:</u><br>";
|
hat ".$num_rows." aktuelle Verwendungen:</u><br>";
|
||||||
}
|
}
|
||||||
@@ -188,14 +188,14 @@ $qryall = '
|
|||||||
)
|
)
|
||||||
GROUP BY uid, nachname, vorname
|
GROUP BY uid, nachname, vorname
|
||||||
ORDER by 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>";
|
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;
|
$i = 0;
|
||||||
$qry="
|
$qry = "
|
||||||
SELECT
|
SELECT
|
||||||
*
|
*
|
||||||
FROM
|
FROM
|
||||||
@@ -207,12 +207,12 @@ if($resultall = $db->db_query($qryall))
|
|||||||
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
|
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
|
||||||
ORDER by beginn";
|
ORDER by beginn";
|
||||||
|
|
||||||
if($result = $db->db_query($qry))
|
if ($result = $db->db_query($qry))
|
||||||
{
|
{
|
||||||
$num_rows=$db->db_num_rows($result);
|
$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>
|
echo "<br>
|
||||||
<u>
|
<u>
|
||||||
@@ -233,7 +233,7 @@ if($resultall = $db->db_query($qryall))
|
|||||||
}
|
}
|
||||||
|
|
||||||
//3 - nicht aktive mitarbeiter mitarbeiter mit aktueller verwendung
|
//3 - nicht aktive mitarbeiter mitarbeiter mit aktueller verwendung
|
||||||
$qryall='
|
$qryall = '
|
||||||
SELECT
|
SELECT
|
||||||
uid, nachname, vorname
|
uid, nachname, vorname
|
||||||
FROM
|
FROM
|
||||||
@@ -246,14 +246,14 @@ $qryall='
|
|||||||
GROUP BY uid, nachname, vorname
|
GROUP BY uid, nachname, vorname
|
||||||
ORDER by 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 nicht aktiven Mitarbeitern sind die aktuellen Verwendungen nicht plausibel (inaktiv aber aktuelle Verwendung)</H2>";
|
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;
|
$i = 0;
|
||||||
$qry="
|
$qry = "
|
||||||
SELECT
|
SELECT
|
||||||
*
|
*
|
||||||
FROM
|
FROM
|
||||||
@@ -263,12 +263,12 @@ if($resultall = $db->db_query($qryall))
|
|||||||
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
|
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
|
||||||
ORDER BY beginn";
|
ORDER BY beginn";
|
||||||
|
|
||||||
if($result = $db->db_query($qry))
|
if ($result = $db->db_query($qry))
|
||||||
{
|
{
|
||||||
$num_rows=$db->db_num_rows($result);
|
$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>
|
echo "<br>
|
||||||
<u>
|
<u>
|
||||||
@@ -287,16 +287,17 @@ if($resultall = $db->db_query($qryall))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//4 - wenn hauptberuf=j dann sollte verwendung=1,5,6 sein - check
|
//4 - wenn hauptberufcode gesetzt ist, muss die Verwendung 1 sein
|
||||||
$qryall="
|
$qryall = "
|
||||||
SELECT
|
SELECT
|
||||||
uid, nachname, vorname
|
uid, nachname, vorname
|
||||||
FROM
|
FROM
|
||||||
campus.vw_mitarbeiter
|
campus.vw_mitarbeiter
|
||||||
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
|
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
|
||||||
WHERE
|
WHERE
|
||||||
verwendung_code NOT IN ('1','5','6')
|
verwendung_code NOT IN ('1')
|
||||||
AND hauptberuflich=true
|
AND hauptberuflich=true
|
||||||
|
AND (tbl_bisverwendung.ende>".$db->db_add_param($bismeldedatum_start)." or tbl_bisverwendung.ende is null)
|
||||||
GROUP BY uid, nachname, vorname
|
GROUP BY uid, nachname, vorname
|
||||||
ORDER by nachname, vorname, uid;";
|
ORDER by nachname, vorname, uid;";
|
||||||
|
|
||||||
@@ -304,8 +305,7 @@ 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 Mitarbeitern sind die Eintragungen 'hauptberuflich' nicht plausibel</H2>";
|
echo "<br><br><H2>Bei $num_rows_all Mitarbeitern sind die Eintragungen 'hauptberuflich' nicht plausibel</H2>";
|
||||||
echo "hauptberuflich=ja, aber Verwendung nicht ".
|
echo "hauptberuflich=ja, aber Verwendung nicht ".$verwendung_arr[1];
|
||||||
$verwendung_arr[1].", ".$verwendung_arr[5]." oder ".$verwendung_arr[6];
|
|
||||||
|
|
||||||
while($rowall=$db->db_fetch_object($resultall))
|
while($rowall=$db->db_fetch_object($resultall))
|
||||||
{
|
{
|
||||||
@@ -316,9 +316,10 @@ if($resultall = $db->db_query($qryall))
|
|||||||
FROM
|
FROM
|
||||||
bis.tbl_bisverwendung
|
bis.tbl_bisverwendung
|
||||||
WHERE
|
WHERE
|
||||||
verwendung_code NOT IN ('1','5','6')
|
verwendung_code NOT IN ('1')
|
||||||
AND hauptberuflich=true
|
AND hauptberuflich=true
|
||||||
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
|
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";
|
ORDER BY beginn";
|
||||||
|
|
||||||
if($result = $db->db_query($qry))
|
if($result = $db->db_query($qry))
|
||||||
@@ -342,6 +343,7 @@ if($resultall = $db->db_query($qryall))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//5 - stimmt beschausmasscode mit vertragsstunden überein?
|
//5 - stimmt beschausmasscode mit vertragsstunden überein?
|
||||||
|
/* Beschaeftigungsausmass nicht mehr relevant
|
||||||
$qryall="
|
$qryall="
|
||||||
SELECT
|
SELECT
|
||||||
uid, nachname, vorname
|
uid, nachname, vorname
|
||||||
@@ -403,6 +405,7 @@ if($resultall = $db->db_query($qryall))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
//6 - aktive, freie lektoren auf verwendung 1 oder 2 prüfen
|
//6 - aktive, freie lektoren auf verwendung 1 oder 2 prüfen
|
||||||
$qryall="
|
$qryall="
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ if ($result = $db->db_query($qry))
|
|||||||
echo '<br><br>Anzahl:'.$db->db_num_rows($result);
|
echo '<br><br>Anzahl:'.$db->db_num_rows($result);
|
||||||
echo '
|
echo '
|
||||||
<div style="float:right" >Beendingungsdatum der Verwendung:
|
<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>
|
</div>
|
||||||
<br><br>
|
<br><br>
|
||||||
<table class="tablesorter" id="t1">
|
<table class="tablesorter" id="t1">
|
||||||
|
|||||||
+1117
-453
File diff suppressed because it is too large
Load Diff
@@ -42,10 +42,6 @@ echo '<!doctype html>
|
|||||||
<a href="checkverwendung.php">Plausibilitätsprüfungen Verwendungen</a><br>
|
<a href="checkverwendung.php">Plausibilitätsprüfungen Verwendungen</a><br>
|
||||||
Diverse Prüfungen auf inkonsistente Daten<br><br>
|
Diverse Prüfungen auf inkonsistente Daten<br><br>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<a href="checkfunktion.php">Funktionen generieren</a><br>
|
|
||||||
Funktionen zu den Verwendungen generieren (SWS pro Studiengang)<br><br>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<a href="personalmeldung.php">Meldung generieren</a><br>
|
<a href="personalmeldung.php">Meldung generieren</a><br>
|
||||||
Abschließende Plausibilitätsprüfungen durchführen und Meldung generieren<br><br>
|
Abschließende Plausibilitätsprüfungen durchführen und Meldung generieren<br><br>
|
||||||
|
|||||||
Reference in New Issue
Block a user