Merge remote-tracking branch 'origin/master'

This commit is contained in:
Manfred Kindl
2017-11-20 18:32:44 +01:00
11 changed files with 427 additions and 170 deletions
+9
View File
@@ -10,6 +10,15 @@ documents/
.project
.buildpath
application/config/development/
application/extensions/
application/controllers/extensions/
application/config/extensions/
application/helpers/extensions/
application/hooks/extensions/
application/libraries/extensions/
application/models/extensions/
application/views/extensions/
application/widgets/extensions/
tests/codeception/_output/*
!/tests/codeception/_output/.placeholder
tests/codeception/codeception.yml
+7 -14
View File
@@ -53,22 +53,15 @@ class Redirect extends FHC_Controller
if ($oe_kurzbz != null && $oe_kurzbz != '')
{
$organisationRoot = null;
$getOERoot = $this->MessageTokenModel->getOERoot($oe_kurzbz);
if ($getOERoot) // If no errors occurred
if (isSuccess($getOERoot)) // If no errors occurred
{
// If data are present
if (is_array($getOERoot->result()) && count($getOERoot->result()) > 0)
{
$organisationseinheit = $getOERoot->result()[0];
if ($organisationseinheit->oe_kurzbz == null)
{
show_error('No organisation unit present in the message');
}
else
{
$organisationRoot = $organisationseinheit->oe_kurzbz;
}
}
$organisationRoot = $getOERoot->retval;
}
else
{
show_error('No organisation unit present in the message');
}
$addonAufnahmeUrls = $this->config->item('addons_aufnahme_url');
+18 -1
View File
@@ -18,7 +18,7 @@ class Person_model extends DB_Model
public function getPersonKontaktByZugangscode($zugangscode, $email)
{
$this->addJoin('public.tbl_kontakt', 'person_id');
return $this->loadWhere(array('zugangscode' => $zugangscode, 'kontakt' => $email));
}
@@ -135,4 +135,21 @@ class Person_model extends DB_Model
return $result;
}
/**
* Searches a Person
* @param $filter Term to search for.
* @return DB-result
*/
public function searchPerson($filter)
{
$this->addSelect('vorname, nachname, gebdatum, person_id');
$result = $this->loadWhere(
'lower(nachname) like '.$this->db->escape('%'.$filter.'%')."
OR lower(vorname) like ".$this->db->escape('%'.$filter.'%')."
OR lower(nachname || ' ' || vorname) like ".$this->db->escape('%'.$filter.'%')."
OR lower(vorname || ' ' || nachname) like ".$this->db->escape('%'.$filter.'%'));
return $result;
}
}
@@ -215,23 +215,43 @@ class MessageToken_model extends CI_Model
*/
public function getOERoot($oe_kurzbz)
{
$sql = 'SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit WHERE oe_kurzbz = ?';
$sql = '
WITH RECURSIVE organizations(rid, oe_kurzbz, oe_parent_kurzbz) AS
(
SELECT 1 AS rid, o.oe_kurzbz, o.oe_parent_kurzbz
FROM public.tbl_organisationseinheit o
WHERE o.oe_kurzbz = ?
UNION ALL
SELECT rid + 1 AS rid, oe.oe_kurzbz, oe.oe_parent_kurzbz
FROM organizations org, public.tbl_organisationseinheit oe
WHERE oe.oe_kurzbz = org.oe_parent_kurzbz
AND oe.aktiv = TRUE
)
SELECT oe_kurzbz
FROM organizations orgs
ORDER BY rid DESC
LIMIT 1
';
$result = $this->db->query($sql, array($oe_kurzbz));
if ($result) // If no errors occurred
{
// If data are present
if (is_array($result->result()) && count($result->result()) > 0)
if (is_array($result->result())
&& count($result->result()) > 0
&& is_object($result->result()[0])
&& isset($result->result()[0]->oe_kurzbz))
{
$organisationseinheit = $result->result()[0];
// If this organisationseinheit has a parent
if ($organisationseinheit->oe_parent_kurzbz != null)
{
// looks for the parent
$result = $this->getOERoot($organisationseinheit->oe_parent_kurzbz);
}
return success($result->result()[0]->oe_kurzbz);
}
else
{
return error();
}
}
else
{
return error($this->db->error());
}
return $result;
+4
View File
@@ -104,6 +104,10 @@ define('LDAP2_USER_SEARCH_FILTER','sAMAccountName');
// LDAP MASTER SERVER fuer Passwort Aenderungen
define('LDAP_SERVER_MASTER',LDAP_SERVER);
// Default Password fuer neue Accounts
// Hier sollte ein langes geheimes Passwort gesetzt werden!
define('ACCOUNT_ACTIVATION_PASSWORD','');
// Attribut fuer Zutrittskartennummer im LDAP
define("LDAP_CARD_NUMBER","twHitagCardNumber");
// Attribut fuer Zutrittskartennummer2 im LDAP
+5
View File
@@ -94,6 +94,11 @@ define('LDAP2_USER_SEARCH_FILTER','sAMAccountName');
// LDAP MASTER SERVER fuer Passwort Aenderungen
define('LDAP_SERVER_MASTER',LDAP_SERVER);
// Default Password fuer neue Accounts
// Hier sollte ein langes geheimes Passwort gesetzt werden!
define('ACCOUNT_ACTIVATION_PASSWORD','');
// Attribut fuer Zutrittskartennummer im LDAP
define("LDAP_CARD_NUMBER","twHitagCardNumber");
// Attribut fuer Zutrittskartennummer2 im LDAP
+10 -9
View File
@@ -521,7 +521,7 @@ if(!@$db->db_query("SELECT campus.get_highest_content_version(0)"))
WHERE content_id=i_content_id
ORDER BY version desc
LIMIT 1;
RETURN rec.version;
END;
$_$;
@@ -585,13 +585,6 @@ if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'tbl_extensi
else
echo '<br>Created sequence: system.tbl_extensions_id_seq';
// ALTER SEQUENCE system.tbl_extensions_id_seq
$qry = 'ALTER SEQUENCE system.tbl_extensions_id_seq OWNED BY system.tbl_extensions.extension_id;';
if (!$db->db_query($qry))
echo '<strong>system.tbl_extensions_id_seq '.$db->db_last_error().'</strong><br>';
else
echo '<br>Altered sequence system.tbl_extensions_id_seq';
// GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO vilesci;
$qry = 'GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO vilesci;';
if (!$db->db_query($qry))
@@ -613,7 +606,7 @@ if(!@$db->db_query("SELECT 0 FROM system.tbl_extensions WHERE 0 = 1"))
{
$qry = '
CREATE TABLE system.tbl_extensions (
extension_id integer NOT NULL DEFAULT nextval(\'tbl_extensions_id_seq\'::regclass),
extension_id integer NOT NULL DEFAULT NEXTVAL(\'system.tbl_extensions_id_seq\'),
name character varying(128) NOT NULL,
version integer NOT NULL,
description text,
@@ -669,6 +662,13 @@ if(!@$db->db_query("SELECT 0 FROM system.tbl_extensions WHERE 0 = 1"))
echo '<strong>Adding comment to system.tbl_extensions.dependencies: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Added comment to system.tbl_extensions.dependencies';
// ALTER SEQUENCE system.tbl_extensions_id_seq
$qry = 'ALTER SEQUENCE system.tbl_extensions_id_seq OWNED BY system.tbl_extensions.extension_id;';
if (!$db->db_query($qry))
echo '<strong>system.tbl_extensions_id_seq '.$db->db_last_error().'</strong><br>';
else
echo '<br>Altered sequence system.tbl_extensions_id_seq';
}
// UNIQUE INDEX uidx_extensions_name_version
@@ -949,6 +949,7 @@ $tabellen=array(
"system.tbl_cronjob" => array("cronjob_id","server_kurzbz","titel","beschreibung","file","last_execute","aktiv","running","jahr","monat","tag","wochentag","stunde","minute","standalone","reihenfolge","updateamum", "updatevon","insertamum","insertvon","variablen"),
"system.tbl_benutzerrolle" => array("benutzerberechtigung_id","rolle_kurzbz","berechtigung_kurzbz","uid","funktion_kurzbz","oe_kurzbz","art","studiensemester_kurzbz","start","ende","negativ","updateamum", "updatevon","insertamum","insertvon","kostenstelle_id","anmerkung"),
"system.tbl_berechtigung" => array("berechtigung_kurzbz","beschreibung"),
"system.tbl_extensions" => array("extension_id","name","version","description","license","url","core_version","dependencies","enabled"),
"system.tbl_phrase" => array("phrase_id","app","phrase","insertamum","insertvon"),
"system.tbl_phrasentext" => array("phrasentext_id","phrase_id","sprache","orgeinheit_kurzbz","orgform_kurzbz","text","description","insertamum","insertvon"),
"system.tbl_rolle" => array("rolle_kurzbz","beschreibung"),
+1
View File
@@ -115,6 +115,7 @@ if(isset($_POST['action']) && $_POST['action'] == 'run')
(ende>now() OR ende is null OR ende>".$db->db_add_param($lastbismeldung).")
AND (beginn<".$db->db_add_param($aktbismeldung)." OR beginn is null)
AND mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
AND tbl_bisverwendung.beschausmasscode!=5
ORDER BY beginn DESC";
if($result_verw = $db->db_query($qry_verw))
{
+319 -133
View File
@@ -54,17 +54,36 @@ $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));
function myaddslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
$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;
$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;
$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;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!DOCTYPE HTML>
<html>
<head>
<title>BIS-Meldung - &Uuml;berpr&uuml;fung von Verwendungen</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
</head>
<body>
@@ -85,23 +104,43 @@ $lastss = $stsem_obj->getPrevious();
$lastws = $stsem_obj->getBeforePrevious();
//1 - aktive mitarbeiter und bismelden mit keiner verwendung oder mehr als einer aktuellen verwendung
$qryall='SELECT uid,nachname,vorname, count(bisverwendung_id)
FROM campus.vw_mitarbeiter LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE aktiv AND bismelden AND (ende>now() OR ende IS NULL)
GROUP BY uid,nachname,vorname HAVING count(bisverwendung_id)!=1 ORDER by nachname,vorname;';
$qryall='
SELECT
uid, nachname, vorname, count(bisverwendung_id)
FROM
campus.vw_mitarbeiter
LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE
aktiv
AND bismelden
AND (ende>now() OR ende IS NULL)
GROUP BY
uid, nachname, vorname
HAVING count(bisverwendung_id)!=1
ORDER by nachname, vorname;';
if($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
echo "<H2>Bei $num_rows_all aktiven Mitarbeitern sind die aktuellen Verwendungen nicht plausibel</H2>";
echo "Es ist keine oder es sind mehrere aktive Verwendungen vorhanden.<br>";
while($rowall=$db->db_fetch_object($resultall))
{
$i=0;
$qry="SELECT * FROM bis.tbl_bisverwendung
JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
JOIN public.tbl_person USING(person_id)
JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid)
WHERE tbl_benutzer.aktiv=TRUE AND bismelden=TRUE
AND (ende>now() OR ende IS NULL) AND mitarbeiter_uid='".$rowall->uid."';";
$qry="
SELECT
*
FROM
bis.tbl_bisverwendung
JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
JOIN public.tbl_person USING(person_id)
JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid)
WHERE
tbl_benutzer.aktiv=TRUE
AND bismelden=TRUE
AND (ende>now() OR ende IS NULL)
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
ORDER BY beginn";
if($result = $db->db_query($qry))
{
$num_rows=$db->db_num_rows($result);
@@ -111,23 +150,44 @@ if($resultall = $db->db_query($qryall))
{
if($i==0)
{
echo "<br><u>Aktive(r) Mitarbeiter(in) ".$row->nachname." ".$row->vorname." hat ".$num_rows." aktuelle Verwendungen (m&ouml;glicherweise korrekt):</u><br>";
echo "
<br>
<u>Aktive(r) Mitarbeiter(in) <b>".$row->nachname." ".$row->vorname."</b>".
" hat ".$num_rows." aktuelle Verwendungen (m&ouml;glicherweise korrekt):
</u>
<br>";
$i++;
}
echo "Verwendung Code ".$row->verwendung_code.", Beschäftigungscode ".$row->ba1code.", ".$row->ba2code.", mit Ausmaß ".$row->beschausmasscode.", ".$row->beginn." - ".$row->ende."<br>";
echo $verwendung_arr[$row->verwendung_code].", ".
$ba1_arr[$row->ba1code].", ".
$ba2_arr[$row->ba2code].", ".
$ausmass_arr[$row->beschausmasscode].", ".
$row->beginn." - ".$row->ende."<br>";
}
}
elseif($num_rows==0)
echo "<br><u>Aktive(r) Mitarbeiter(in): ".$rowall->nachname." ".$rowall->vorname." hat ".$num_rows." aktuelle Verwendungen:</u><br>";
echo "<br><u>Aktive(r) Mitarbeiter(in): <b>".$rowall->nachname." ".$rowall->vorname."</b>
hat ".$num_rows." aktuelle Verwendungen:</u><br>";
}
}
}
//2 - aktive fixe mitarbeiter mit keiner aktuellen verwendung
$qryall='SELECT uid,nachname,vorname, count(bisverwendung_id)
FROM campus.vw_mitarbeiter LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE aktiv AND fixangestellt AND NOT ende>now() AND NOT ende IS NULL
AND uid NOT IN (SELECT uid FROM campus.vw_mitarbeiter LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE aktiv AND fixangestellt AND (ende>now() OR ende IS NULL)) GROUP BY uid,nachname,vorname ORDER by nachname,vorname;';
$qryall = '
SELECT
uid, nachname, vorname, count(bisverwendung_id)
FROM
campus.vw_mitarbeiter
LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE
aktiv
AND fixangestellt
AND NOT ende>now() AND NOT ende IS NULL
AND uid NOT IN (
SELECT uid FROM campus.vw_mitarbeiter LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE aktiv AND fixangestellt AND (ende>now() OR ende IS NULL)
)
GROUP BY uid, nachname, vorname
ORDER by nachname, vorname;';
if($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
@@ -135,8 +195,18 @@ if($resultall = $db->db_query($qryall))
while($rowall=$db->db_fetch_object($resultall))
{
$i=0;
$qry="SELECT * FROM bis.tbl_bisverwendung JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid) JOIN public.tbl_person USING(person_id)
WHERE tbl_benutzer.aktiv=TRUE AND mitarbeiter_uid='".$rowall->uid."';";
$qry="
SELECT
*
FROM
bis.tbl_bisverwendung
JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
JOIN public.tbl_person USING(person_id)
WHERE
tbl_benutzer.aktiv=TRUE
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
ORDER by beginn";
if($result = $db->db_query($qry))
{
$num_rows=$db->db_num_rows($result);
@@ -144,31 +214,54 @@ if($resultall = $db->db_query($qryall))
{
if($i==0)
{
echo "<br><u>Aktive(r) Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname." hat keine aktuellen Verwendungen:</u><br>";
echo "<br>
<u>
Aktive(r) Mitarbeiter(in) <b>".$rowall->nachname." ".$rowall->vorname."</b>
hat keine aktuellen Verwendungen:
</u>
<br>";
$i++;
}
echo "Verwendung Code ".$row->verwendung_code.", Beschäftigungscode ".$row->ba1code.", ".$row->ba2code.", mit Ausmaß ".$row->beschausmasscode.", ".$row->beginn." - ".$row->ende."<br>";
echo $verwendung_arr[$row->verwendung_code].", ".
$ba1_arr[$row->ba1code].", ".
$ba2_arr[$row->ba2code].", ".
$ausmass_arr[$row->beschausmasscode].", ".
$row->beginn." - ".$row->ende."<br>";
}
}
}
}
//3 - nicht aktive mitarbeiter mitarbeiter mit aktueller verwendung
$qryall='SELECT uid,nachname,vorname FROM campus.vw_mitarbeiter
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE aktiv=false AND (ende>now() OR ende IS NULL)
GROUP BY uid,nachname,vorname
ORDER by nachname,vorname;';
$qryall='
SELECT
uid, nachname, vorname
FROM
campus.vw_mitarbeiter
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE
aktiv=false
AND (ende>now() OR ende IS NULL)
GROUP BY uid, nachname, vorname
ORDER by nachname, vorname;';
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</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))
{
$i=0;
$qry="SELECT * FROM bis.tbl_bisverwendung
WHERE (ende>now() OR ende IS NULL) AND mitarbeiter_uid='".$rowall->uid."';";
$qry="
SELECT
*
FROM
bis.tbl_bisverwendung
WHERE
(ende>now() OR ende IS NULL)
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
ORDER BY beginn";
if($result = $db->db_query($qry))
{
$num_rows=$db->db_num_rows($result);
@@ -176,29 +269,57 @@ if($resultall = $db->db_query($qryall))
{
if($i==0)
{
echo "<br><u>Nicht aktive(r) Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname." hat ".$num_rows." aktuelle Verwendungen:</u><br>";
echo "<br>
<u>
Nicht aktive(r) Mitarbeiter(in) <b>".$rowall->nachname." ".$rowall->vorname."</b>
hat ".$num_rows." aktuelle Verwendungen:
</u>
<br>";
$i++;
}
echo "Verwendung Code ".$row->verwendung_code.", Beschäftigungscode ".$row->ba1code.", ".$row->ba2code.", mit Ausmaß ".$row->beschausmasscode.", ".$row->beginn." - ".$row->ende."<br>";
echo $verwendung_arr[$row->verwendung_code].", ".
$ba1_arr[$row->ba1code].", ".
$ba2_arr[$row->ba2code].", ".
$ausmass_arr[$row->beschausmasscode].", ".
$row->beginn." - ".$row->ende."<br>";
}
}
}
}
//4 - wenn hauptberuf=j dann sollte verwendung=1,5,6 sein - check
$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') AND hauptberuflich=true
GROUP BY uid,nachname,vorname
ORDER by nachname,vorname,uid;";
$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')
AND hauptberuflich=true
GROUP BY uid, nachname, vorname
ORDER by nachname, vorname, uid;";
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 (hauptberuflich ja, aber Verwendung nicht 1,5,6)</H2>";
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];
while($rowall=$db->db_fetch_object($resultall))
{
$i=0;
$qry="SELECT * FROM bis.tbl_bisverwendung
WHERE verwendung_code NOT IN ('1','5','6') AND hauptberuflich=true AND mitarbeiter_uid='".$rowall->uid."';";
$qry="
SELECT
*
FROM
bis.tbl_bisverwendung
WHERE
verwendung_code NOT IN ('1','5','6')
AND hauptberuflich=true
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
ORDER BY beginn";
if($result = $db->db_query($qry))
{
$num_rows=$db->db_num_rows($result);
@@ -206,42 +327,61 @@ if($resultall = $db->db_query($qryall))
{
if($i==0)
{
echo "<br><u>Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname.":</u><br>";
echo "<br><u>Mitarbeiter(in) <b>".$rowall->nachname." ".$rowall->vorname."</b>:</u><br>";
$i++;
}
echo "Verwendung Code ".$row->verwendung_code.", hauptberuflich ".($row->hauptberuflich=='t'?'ja':'nein').", Beschäftigungscode ".$row->ba1code.", ".$row->ba2code.", mit Ausmaß ".$row->beschausmasscode.", ".$row->beginn." - ".$row->ende."<br>";
echo $verwendung_arr[$row->verwendung_code].",
hauptberuflich ".($row->hauptberuflich=='t'?'ja':'nein').", ".
$ba1_arr[$row->ba1code].", ".
$ba2_arr[$row->ba2code].", ".
$ausmass_arr[$row->beschausmasscode].", ".
$row->beginn." - ".$row->ende."<br>";
}
}
}
}
//5 - stimmt beschausmasscode mit vertragsstunden überein?
$qryall="SELECT uid,nachname,vorname FROM campus.vw_mitarbeiter
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE (beschausmasscode='1' AND vertragsstunden<='35')
OR (beschausmasscode='2' AND vertragsstunden>'15')
OR (beschausmasscode='3' AND vertragsstunden<'16')
OR (beschausmasscode='3' AND vertragsstunden>'25')
OR (beschausmasscode='4' AND vertragsstunden<'26')
OR (beschausmasscode='4' AND vertragsstunden>'35')
OR (beschausmasscode='5' AND vertragsstunden>'0')
GROUP BY uid,nachname,vorname
ORDER by nachname,vorname,uid;";
$qryall="
SELECT
uid, nachname, vorname
FROM
campus.vw_mitarbeiter
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE
(beschausmasscode='1' AND vertragsstunden<='35')
OR (beschausmasscode='2' AND vertragsstunden>'15')
OR (beschausmasscode='3' AND vertragsstunden<'16')
OR (beschausmasscode='3' AND vertragsstunden>'25')
OR (beschausmasscode='4' AND vertragsstunden<'26')
OR (beschausmasscode='4' AND vertragsstunden>'35')
OR (beschausmasscode='5' AND vertragsstunden>'0')
GROUP BY uid, nachname, vorname
ORDER by nachname, vorname, uid;";
if($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
echo "<br><br><H2>Bei $num_rows_all Mitarbeitern ist das Beschäftigungsausmaß nicht plausibel</H2>";
echo "Vertragsstunden passen nicht mit Beschäftigungsausmass überein<br><br>";
while($rowall=$db->db_fetch_object($resultall))
{
$i=0;
$qry="SELECT * FROM bis.tbl_bisverwendung
WHERE ((beschausmasscode='1' AND vertragsstunden<'38.5')
OR (beschausmasscode='2' AND vertragsstunden>'15')
OR (beschausmasscode='3' AND vertragsstunden<'16')
OR (beschausmasscode='3' AND vertragsstunden>'25')
OR (beschausmasscode='4' AND vertragsstunden<'26')
OR (beschausmasscode='4' AND vertragsstunden>'35')
OR (beschausmasscode='5' AND vertragsstunden>'0'))
AND mitarbeiter_uid='".$rowall->uid."';";
$qry="
SELECT
*
FROM
bis.tbl_bisverwendung
WHERE
((beschausmasscode='1' AND vertragsstunden<'38.5')
OR (beschausmasscode='2' AND vertragsstunden>'15')
OR (beschausmasscode='3' AND vertragsstunden<'16')
OR (beschausmasscode='3' AND vertragsstunden>'25')
OR (beschausmasscode='4' AND vertragsstunden<'26')
OR (beschausmasscode='4' AND vertragsstunden>'35')
OR (beschausmasscode='5' AND vertragsstunden>'0'))
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
ORDER BY beginn";
if($result = $db->db_query($qry))
{
$num_rows=$db->db_num_rows($result);
@@ -252,28 +392,50 @@ if($resultall = $db->db_query($qryall))
echo "<br><u>Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname.":</u><br>";
$i++;
}
echo "Beschäftigungsausmaß ".$row->beschausmasscode.", Vertragsstunden ".$row->vertragsstunden.", Verwendung Code ".$row->verwendung_code.", Beschäftigungscode ".$row->ba1code.", ".$row->ba2code.", mit Ausmaß ".$row->beschausmasscode.", ".$row->beginn." - ".$row->ende."<br>";
echo $ausmass_arr[$row->beschausmasscode].
", Vertragsstunden ".$row->vertragsstunden.
", ".$verwendung_arr[$row->verwendung_code].
", ".$ba1_arr[$row->ba1code].
", ".$ba2_arr[$row->ba2code].
", ".$row->beginn." - ".$row->ende."<br>";
}
}
}
}
//6 - aktive, freie lektoren auf verwendung 1 oder 2 prüfen
$qryall="SELECT uid,nachname,vorname FROM campus.vw_mitarbeiter
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE aktiv AND lektor AND fixangestellt=false
AND verwendung_code NOT IN ('1','2') AND (ende>now() OR ende IS NULL)
GROUP BY uid,nachname,vorname
ORDER by nachname,vorname,uid;";
$qryall="
SELECT
uid, nachname, vorname
FROM
campus.vw_mitarbeiter
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE
aktiv
AND lektor
AND fixangestellt=false
AND verwendung_code NOT IN ('1','2')
AND (ende>now() OR ende IS NULL)
GROUP BY uid, nachname, vorname
ORDER by nachname, vorname, uid;";
if($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
echo "<br><br><H2>Bei $num_rows_all aktiven, freien Lektoren ist die Verwendung nicht plausibel</H2>";
echo "Verwendung darf nur '".$verwendung_arr[1]."' oder '".$verwendung_arr[2]."' sein.<br><br>";
while($rowall=$db->db_fetch_object($resultall))
{
$i=0;
$qry="SELECT * FROM bis.tbl_bisverwendung
WHERE verwendung_code NOT IN ('1','2')
AND mitarbeiter_uid='".$rowall->uid."';";
$qry="
SELECT
*
FROM
bis.tbl_bisverwendung
WHERE
verwendung_code NOT IN ('1','2')
AND mitarbeiter_uid=".$db->db_add_param($rowall->uid)."
ORDER BY beginn";
if($result = $db->db_query($qry))
{
$num_rows=$db->db_num_rows($result);
@@ -284,105 +446,129 @@ if($resultall = $db->db_query($qryall))
echo "<br><u>Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname.":</u><br>";
$i++;
}
echo "Verwendung Code ".$row->verwendung_code.", Beschäftigungscode ".$row->ba1code.", ".$row->ba2code.", ".$row->beginn." - ".$row->ende."<br>";
echo $verwendung_arr[$row->verwendung_code].", ".
$ba1_arr[$row->ba1code].", ".
$ba2_arr[$row->ba2code].", ".
$row->beginn." - ".$row->ende."<br>";
}
}
}
}
//7 - Lehrauftrag aber keine aktuelle Verwendung
$i=0;
$qryall="SELECT DISTINCT lehre.tbl_lehreinheitmitarbeiter.mitarbeiter_uid, nachname, vorname
FROM lehre.tbl_lehreinheitmitarbeiter join lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN
lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN campus.vw_mitarbeiter ON (tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid)
$qryall="
SELECT
DISTINCT lehre.tbl_lehreinheitmitarbeiter.mitarbeiter_uid, nachname, vorname
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN campus.vw_mitarbeiter ON (tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid)
WHERE
(lehre.tbl_lehreinheit.studiensemester_kurzbz='$lastss' OR lehre.tbl_lehreinheit.studiensemester_kurzbz='$lastws')
AND tbl_lehreinheitmitarbeiter.stundensatz!=0 AND tbl_lehreinheitmitarbeiter.semesterstunden!=0
AND NOT EXISTS (SELECT * FROM bis.tbl_bisverwendung
WHERE ((beginn<'".$ende[$lastss]."') AND (ende>'".$beginn[$lastws]."') OR ende is null) AND mitarbeiter_uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid)
ORDER BY nachname,vorname;";
(
lehre.tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($lastss)."
OR lehre.tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($lastws)."
)
AND tbl_lehreinheitmitarbeiter.stundensatz!=0
AND tbl_lehreinheitmitarbeiter.semesterstunden!=0
AND NOT EXISTS (
SELECT * FROM bis.tbl_bisverwendung
WHERE
(
beginn<".$db->db_add_param($ende[$lastss])."
AND (ende>".$db->db_add_param($beginn[$lastws])." OR ende is null)
)
AND mitarbeiter_uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid
)
ORDER BY nachname,vorname;";
if($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
echo "<br><br><H2>Bei $num_rows_all Lektoren <u>mit Lehrauftrag</u> sind die Verwendungen nicht plausibel</H2>";
echo "<br><br><H2>Bei $num_rows_all Lektoren <u>mit Lehrauftrag</u> sind die Verwendungen nicht plausibel (Lehrauftrag aber keine aktuelle Verwendung)</H2>";
while($rowall=$db->db_fetch_object($resultall))
{
$i++;
echo "<br><u>Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname.":</u><br>";
$qry="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".$rowall->mitarbeiter_uid."';";
$qry="
SELECT
*
FROM
bis.tbl_bisverwendung
WHERE
mitarbeiter_uid=".$db->db_add_param($rowall->mitarbeiter_uid)."
ORDER BY beginn;";
if($result = $db->db_query($qry))
{
while($row=$db->db_fetch_object($result))
{
echo "Verwendung Code ".$row->verwendung_code.", Beschäftigungscode ".$row->ba1code.", ".$row->ba2code.", ".$row->beginn." - ".$row->ende."<br>";
echo $verwendung_arr[$row->verwendung_code].", ".
$ba1_arr[$row->ba1code].", ".
$ba2_arr[$row->ba2code].", ".
$row->beginn." - ".$row->ende."<br>";
}
}
}
}
//8 - Verwendung Habil. und Entwicklungsteam Habil.=1
$i=0;
$qryall="SELECT DISTINCT mitarbeiter_uid, nachname, vorname
FROM bis.tbl_entwicklungsteam join bis.tbl_bisverwendung USING (mitarbeiter_uid)
JOIN campus.vw_mitarbeiter ON (tbl_entwicklungsteam.mitarbeiter_uid=uid)
WHERE ((besqualcode!=1 AND habilitation) OR (besqualcode=1 AND habilitation=false))
ORDER BY mitarbeiter_uid;";
$qryall="
SELECT
DISTINCT mitarbeiter_uid, nachname, vorname
FROM
bis.tbl_entwicklungsteam
JOIN bis.tbl_bisverwendung USING (mitarbeiter_uid)
JOIN campus.vw_mitarbeiter ON (tbl_entwicklungsteam.mitarbeiter_uid=uid)
WHERE
((besqualcode!=1 AND habilitation) OR (besqualcode=1 AND habilitation=false))
ORDER BY mitarbeiter_uid;";
if($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
echo "<br><br><H2>Bei $num_rows_all Lektoren sind die Angaben über Habilitationen nicht plausibel</H2>";
echo "Wenn Besondere Qualifikation beim Entwicklungsteam gleich Habilitation ist dann muss bei der Verwendung auch
eine Habilitation eingetragen sein.";
while($rowall=$db->db_fetch_object($resultall))
{
$i++;
echo "<br><u>Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname.":</u><br>";
$qry="SELECT mitarbeiter_uid, nachname, vorname, besqualbez, habilitation, studiengang_kz, verwendung_code, tbl_bisverwendung.beginn as anfang, tbl_bisverwendung.ende as zuende
FROM bis.tbl_entwicklungsteam join bis.tbl_bisverwendung USING (mitarbeiter_uid)
JOIN campus.vw_mitarbeiter ON (tbl_entwicklungsteam.mitarbeiter_uid=uid)
JOIN bis.tbl_besqual USING(besqualcode)
WHERE ((besqualcode!=1 AND habilitation) OR (besqualcode=1 AND habilitation=false))
AND mitarbeiter_uid='".$rowall->mitarbeiter_uid."';";
$qry="
SELECT
mitarbeiter_uid, nachname, vorname, besqualbez,
habilitation, studiengang_kz, verwendung_code,
tbl_bisverwendung.beginn as anfang, tbl_bisverwendung.ende as zuende
FROM
bis.tbl_entwicklungsteam join bis.tbl_bisverwendung USING (mitarbeiter_uid)
JOIN campus.vw_mitarbeiter ON (tbl_entwicklungsteam.mitarbeiter_uid=uid)
JOIN bis.tbl_besqual USING(besqualcode)
WHERE
((besqualcode!=1 AND habilitation) OR (besqualcode=1 AND habilitation=false))
AND mitarbeiter_uid=".$db->db_add_param($rowall->mitarbeiter_uid)."
ORDER BY tbl_bisverwendung.beginn";
if($result = $db->db_query($qry))
{
while($row=$db->db_fetch_object($result))
{
echo "Verwendung Code ".$row->verwendung_code.", ".$row->anfang." - ".$row->zuende.", Habilitation ".($row->habilitation=='t'?'ja':'nein')." <-> Entwicklungsteam-bes.Qualifikation:(Stg. ".$row->studiengang_kz.") '".$row->besqualbez."'.<br>";
echo $verwendung_arr[$row->verwendung_code].", ".
$row->anfang." - ".$row->zuende.", Habilitation ".($row->habilitation=='t'?'ja':'nein').
" <-> Entwicklungsteam-bes.Qualifikation:(Stg. ".$row->studiengang_kz.") '".$row->besqualbez."'.<br>";
}
}
}
}
//9 - 2 gleiche aktive Verwendungen
$qryall="
SELECT distinct vorname, nachname, personalnummer, ba1code, ba2code FROM campus.vw_mitarbeiter JOIN (
SELECT a.mitarbeiter_uid, a.ba1code, a.ba2code FROM bis.tbl_bisverwendung a, bis.tbl_bisverwendung b WHERE
a.bisverwendung_id<>b.bisverwendung_id AND
a.ba1code=b.ba1code AND
a.ba2code=b.ba2code AND
a.mitarbeiter_uid=b.mitarbeiter_uid AND
(a.ende is null OR a.ende>'$bismeldedatumvorjahr') AND
(b.ende is null OR b.ende>'$bismeldedatumvorjahr') AND
a.beschausmasscode=b.beschausmasscode AND
a.verwendung_code=b.verwendung_code
) c ON(mitarbeiter_uid=uid)";
if($resultall = $db->db_query($qryall))
{
$num_rows_all=$db->db_num_rows($resultall);
echo "<br><br><H2>Bei $num_rows_all Lektoren sind mehrere gleiche aktive Verwendungen vorhanden</H2>";
while($rowall=$db->db_fetch_object($resultall))
{
$i++;
echo "<br><u>Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname.":</u><br>";
echo "(ba1code: $rowall->ba1code, ba2code: $rowall->ba2code)";
}
}
echo '<br>';
//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)
$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;';
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);
+3 -3
View File
@@ -61,7 +61,7 @@ $mitarbeiterzahl=0;
$echt=0;
$frei=0;
$nichtmelden = array(11,91,92,94,999,203,145,204, 308, 182, 222);
$nichtmelden = array(11,91,92,94,999,203,145,204,308,182,222);
$datumobj=new datum();
@@ -328,7 +328,7 @@ if($result = $db->db_query($qry))
<BeschaeftigungsAusmass>".$row_verwendung['beschausmasscode']."</BeschaeftigungsAusmass>
<VerwendungsCode>".$row_verwendung['verwendung_code']."</VerwendungsCode>";
if(isset($row_verwendung['stgltg']))
if(isset($row_verwendung['stgltg']) && isset($row_verwendung['verwendung_code']) && $row_verwendung['verwendung_code']==5)
{
foreach($row_verwendung['stgltg'] as $row_stgl)
{
@@ -345,7 +345,7 @@ if($result = $db->db_query($qry))
$person_content.="
<Funktion>
<StgKz>".sprintf("%04s",$row_fkt['stgkz'])."</StgKz>
<SWS>".$row_fkt['sws']."</SWS>";
<SWS>".number_format($row_fkt['sws'])."</SWS>";
if($row_fkt['hauptberuflich']=='t')
{
$person_content.="
+21
View File
@@ -670,6 +670,7 @@ function GenerateXMLStudentBlock($row)
$qrystatus="SELECT * FROM public.tbl_prestudentstatus
WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." AND studiensemester_kurzbz=".$db->db_add_param($ssem)." AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).")
ORDER BY datum desc, insertamum desc, ext_id desc;";
if($resultstatus = $db->db_query($qrystatus))
{
if($db->db_num_rows($resultstatus)>0)
@@ -779,6 +780,26 @@ function GenerateXMLStudentBlock($row)
$storgform=$rowstatus->orgform_kurzbz;
$aktstatus_stsem = $rowstatus->studiensemester_kurzbz;
}
else
{
$aktstatus='';
$storgform='';
$aktstatus_datum='';
$aktstatus_stsem='';
$sem='';
$error_log.= "kein gueltiger Status vorhanden";
}
}
else
{
$aktstatus='';
$storgform='';
$aktstatus_datum='';
$aktstatus_stsem='';
$sem='';
$error_log.= "kein gueltiger Status vorhanden";
}
}
}