diff --git a/application/config/navigation.php b/application/config/navigation.php
index d76b8a7f2..033a65f86 100644
--- a/application/config/navigation.php
+++ b/application/config/navigation.php
@@ -71,6 +71,16 @@ $config['navigation_header'] = array(
'lehre/lehrauftrag_erteilen:r'
)
),
+ 'zverfueg' => array(
+ 'link' => site_url('lehre/lvplanung/AdminZeitverfuegbarkeit'),
+ 'description' => 'Zeitverfügbarkeit',
+ 'expand' => true,
+ 'sort' => 45,
+ 'requiredPermissions' => array(
+ 'lehre/zeitverfuegbarkeit:rw',
+ 'lehre/zeitverfuegbarkeit:rw'
+ )
+ ),
'zgvueberpruefung' => array(
'link' => site_url('system/infocenter/ZGVUeberpruefung'),
'description' => 'ZGV Überprüfung',
@@ -235,3 +245,14 @@ $config['navigation_menu']['lehre/lehrauftrag/LehrauftragErteilen/*'] = array(
'requiredPermissions' => array('lehre/lehrauftrag_erteilen:r')
)
);
+
+$config['navigation_menu']['system/issues/Issues/*'] = array(
+ 'fehlerzustaendigkeiten' => array(
+ 'link' => site_url('system/issues/IssuesZustaendigkeiten'),
+ 'description' => 'Fehler Zuständigkeiten',
+ 'icon' => 'cogs',
+ 'sort' => 100,
+ 'target' => '_blank',
+ 'requiredPermissions' => array('admin:rw')
+ )
+);
diff --git a/application/controllers/jobs/LVPlanJob.php b/application/controllers/jobs/LVPlanJob.php
index 2688e5cc9..c3fe5495a 100644
--- a/application/controllers/jobs/LVPlanJob.php
+++ b/application/controllers/jobs/LVPlanJob.php
@@ -19,7 +19,7 @@
*/
if (!defined('BASEPATH')) exit('No direct script access allowed');
-class LVPlanJob extends CLI_Controller
+class LVPlanJob extends JOB_Controller
{
/**
* Initialize LVPlanJob Class
@@ -149,4 +149,315 @@ class LVPlanJob extends CLI_Controller
echo "Failed ".$fail."\n";
}
}
+
+ /**
+ * Send Mail to STGL, Kompetenzfeld and LV Planung about todays updated Zeitwuensche.
+ * STGL gets list only of lectors who updated future assigend courses concerning their STG.
+ * Kompetenzleitung gets list only of lectors who updated future assigend courses concerning their KF.
+ * LVPlanung gets list of lectors who updated future assigend courses.
+ */
+ public function mailUpdatedZeitwuensche()
+ {
+ // Load models
+ $this->load->model('ressource/Stundenplandev_model', 'StundenplandevModel');
+ $this->load->model('organisation/Studiensemester_model', 'StundiensemesterModel');
+ $this->load->model('education/Lehreinheit_model', 'LehreinheitModel');
+ $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
+ $this->load->model('person/Person_model', 'PersonModel');
+
+ // Load libs
+ $this->load->library('MailLib');
+
+ // Load helpers
+ $this->load->helper('hlp_sancho_helper');
+
+ // Start Log Message
+ $this->logInfo('Mail updated Zeitwuensche started.');
+
+ // Get all lectors, who updated their Zeitwunsch today
+ $db = new DB_Model();
+ $result = $db->execReadOnlyQuery('
+ SELECT
+ zwg.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.oe_kurzbz
+ FROM
+ campus.tbl_zeitwunsch_gueltigkeit zwg
+ JOIN lehre.tbl_stundenplandev stpl
+ ON(
+ stpl.mitarbeiter_uid=zwg.mitarbeiter_uid
+ AND stpl.datum BETWEEN zwg.von AND COALESCE(zwg.bis, \'2999-12-31\')
+ AND (zwg.insertamum::date = (NOW()-\'1 days\'::interval)::date
+ OR
+ zwg.updateamum::date = (NOW()-\'1 days\'::interval)::date)
+ AND stpl.datum > now()
+ )
+ JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
+ GROUP BY
+ zwg.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.oe_kurzbz
+ ');
+
+ if (!hasData($result))
+ {
+ return; // No updated Zeitwuensche today
+ }
+
+ $uidByStg_arr = array(); // Mail data for Studiengang
+ $uidByOe_arr = array(); // Mail data for Kompetenzfeld
+ $uid_arr = array(); // Mail data for Kompetenzfeld
+
+ // Loop through lectors, who updated their Zeitwunsch today
+ $changed_arr = getData($result);
+ foreach ($changed_arr as $row)
+ {
+
+ // Add unique lector array
+ if (!in_array($row->mitarbeiter_uid, $uid_arr))
+ {
+ $uid_arr[]= $row->mitarbeiter_uid;
+ }
+
+ // Build unique Studiengang array
+ if (!array_key_exists($row->studiengang_kz, $uidByStg_arr))
+ {
+ $uidByStg_arr[$row->studiengang_kz] = array($row->mitarbeiter_uid);
+
+ }
+ elseif (!in_array($row->mitarbeiter_uid, $uidByStg_arr[$row->studiengang_kz]))
+ {
+ $uidByStg_arr[$row->studiengang_kz][]= $row->mitarbeiter_uid;
+ }
+
+ // Build unique Kompetenzfeld array
+ if (!array_key_exists($row->oe_kurzbz, $uidByOe_arr))
+ {
+ $uidByOe_arr[$row->oe_kurzbz] = array($row->mitarbeiter_uid);
+
+ }
+ elseif (!in_array($row->mitarbeiter_uid, $uidByOe_arr[$row->oe_kurzbz]))
+ {
+ $uidByOe_arr[$row->oe_kurzbz][]= $row->mitarbeiter_uid;
+ }
+ }
+
+ // Send mail to STG Assistenz
+ /*
+ $result = $this->_sendMailToStg($uidByStg_arr);
+ if (isError($result))
+ {
+ $this->logError(getError($result));
+ }
+ */
+
+ // Send mail to Kompetenzfeld Leitung
+ $result = $this->_sendMailToKF($uidByOe_arr);
+ if (isError($result))
+ {
+ $this->logError(getError($result));
+ }
+
+ // Send mail to LV Planung
+ $result = $this->_sendMailToLvPlanung($uid_arr);
+ if (isError($result))
+ {
+ $this->logError(getError($result));
+ }
+
+ // End Log Message
+ $this->logInfo('Mail updated Zeitwuensche ended.');
+ }
+
+ /**
+ * Send Mail to STGL Assistance about lectors, who teach LV assigend to the STG, and who updated Zeitwuensche.
+ *
+ * @param $data_arr
+ * @param $stg_bezeichnung
+ */
+ private function _sendMailToStg($data_arr)
+ {
+ foreach ($data_arr as $stg_kurzbz => $uid_arr)
+ {
+ // Get STG eMail
+ $this->load->model('organisation/Studiengang_model', 'StudiengangModel');
+ $result = $this->StudiengangModel->load($stg_kurzbz);
+ $stgMail = $result->retval[0]->email;
+
+ $lektorenTabelle = '
+
load->view(
+ 'templates/FHC-Header',
+ array(
+ 'title' => 'Zeitverfuegbarkeit verwalten',
+ 'jquery' => true,
+ 'jqueryui' => true,
+ 'bootstrap' => true,
+ 'fontawesome' => true,
+ 'momentjs' => true,
+ 'ajaxlib' => true,
+ 'tabulator' => true,
+ 'tablewidget' => true,
+ 'navigationwidget' => true,
+ 'sbadmintemplate' => true,
+ 'phrases' => array(
+ 'global' => array(
+ 'bis',
+ 'notiz'
+ ),
+ 'ui' => array(
+ 'systemfehler',
+ 'keineDatenVorhanden',
+ 'von',
+ 'bitteWaehlen',
+ 'speichern',
+ 'loeschen',
+ 'abbrechen'
+ ),
+ 'lehre' => array(
+ 'lektor'
+ )
+ ),
+ 'widgets' => true,
+ 'dialoglib' => true,
+ 'customJSs' => array(
+ 'public/js/bootstrapper.js',
+ 'public/js/lehre/lvplanung/zverfueg.js'
+ )
+ )
+);
+?>
+
+
+widgetlib->widget('NavigationWidget'); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ load->view('lehre/lvplanung/adminZeitverfuegbarkeitData.php'); ?>
+
+
+
+
+
+
+
+
+load->view('templates/FHC-Footer'); ?>
diff --git a/application/views/lehre/lvplanung/adminZeitverfuegbarkeitData.php b/application/views/lehre/lvplanung/adminZeitverfuegbarkeitData.php
new file mode 100644
index 000000000..81a683cff
--- /dev/null
+++ b/application/views/lehre/lvplanung/adminZeitverfuegbarkeitData.php
@@ -0,0 +1,70 @@
+= ss.start
+ AND zeitsperretyp_kurzbz = \'ZVerfueg\'
+ ORDER BY zeitsperre_id, zsp.mitarbeiter_uid
+ ) as tmp
+ ORDER BY vondatum DESC
+';
+
+$filterWidgetArray = array(
+ 'query' => $qry,
+ 'tableUniqueId' => 'adminZeitverfuegbarkeit',
+ 'requiredPermissions' => 'lehre/zeitverfuegbarkeit',
+ 'datasetRepresentation' => 'tabulator',
+ 'columnsAliases' => array(
+ 'ZeitsperreID',
+ 'UID',
+ ucfirst($this->p->t('lehre', 'lektor')),
+ ucfirst($this->p->t('ui', 'von')),
+ 'VonStunde',
+ ucfirst($this->p->t('global', 'bis')),
+ 'BisStunde',
+ ucfirst($this->p->t('global', 'notiz'))
+ ),
+ 'datasetRepOptions' => '{
+ layout: "fitColumns", // fit columns to width of table
+ autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
+ headerFilterPlaceholder: " ",
+ index: "zeitsperre_id", // assign specific column as unique id (important for row indexing)
+ selectable: 1, // allow row selection
+ tableWidgetHeader: false,
+ rowSelected: function(row) {
+ func_rowSelected(row);
+ },
+ rowDeselected: function(row) {
+ func_rowDeselected(row);
+ }
+ }', // tabulator properties
+ 'datasetRepFieldsDefs' => '{
+ zeitsperre_id: {visible:false},
+ mitarbeiter_uid: {visible: true, headerFilter:"input"},
+ lektor: {visible: true, headerFilter:"input"},
+ vondatum: {visible: true, headerFilter:"input"},
+ vonstunde: {visible: true, headerFilter:"input"},
+ bisdatum: {visible: true, headerFilter:"input"},
+ bisstunde: {visible: true, headerFilter:"input"},
+ bezeichnung: {visible: true, headerFilter:"input"}
+ }', // col properties
+);
+
+echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
+
+?>
diff --git a/application/views/system/infocenter/dokpruefung.php b/application/views/system/infocenter/dokpruefung.php
index f7446895c..b184b9a0b 100644
--- a/application/views/system/infocenter/dokpruefung.php
+++ b/application/views/system/infocenter/dokpruefung.php
@@ -65,7 +65,7 @@
if (!isset($formalReadonly)) :
?>
- >
formal_geprueft_amum) ? date_format(date_create($dokument->formal_geprueft_amum), 'd.m.Y') : ''; ?>
diff --git a/application/views/system/infocenter/infocenterAbgewiesenData.php b/application/views/system/infocenter/infocenterAbgewiesenData.php
index dbe0540be..40582a668 100644
--- a/application/views/system/infocenter/infocenterAbgewiesenData.php
+++ b/application/views/system/infocenter/infocenterAbgewiesenData.php
@@ -14,7 +14,7 @@ $query = '
ps.prestudent_id AS "PreStudentID",
p.vorname AS "Vorname",
p.nachname AS "Nachname",
- sg.kurzbzlang as "Studiengang",
+ so.studiengangkurzbzlang as "Studiengang",
pss.insertamum AS "AbgewiesenAm",
(
SELECT l.zeitpunkt
@@ -43,6 +43,8 @@ $query = '
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_person p USING(person_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
+ JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz = '. $ABGEWIESENEN_STATUS .'
AND pss.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
AND (sg.typ IN ('. $STUDIENGANG_TYP .')
diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php
index f3849d622..9748a6b30 100644
--- a/application/views/system/infocenter/infocenterData.php
+++ b/application/views/system/infocenter/infocenterData.php
@@ -6,7 +6,7 @@
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
- $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\', \'Attempt to register with existing mailadress\'';
+ $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
$LOGDATA_NAME_PARKED = '\'Parked\'';
$LOGDATA_NAME_ONHOLD = '\'Onhold\'';
$LOGTYPE_KURZBZ = '\'Processstate\'';
@@ -137,11 +137,12 @@
LIMIT 1
) AS "AnzahlAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
-- AND pss.bestaetigtam IS NULL
@@ -162,11 +163,12 @@
LIMIT 1
) AS "StgAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NULL
AND pss.bestaetigtam IS NULL
@@ -214,11 +216,12 @@
LIMIT 1
) AS "AnzahlStgNichtAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.')
AND pss.bewerbung_abgeschicktamum IS NULL
AND ps.person_id = p.person_id
diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php
index 92f062b62..75d60a179 100644
--- a/application/views/system/infocenter/infocenterFreigegebenData.php
+++ b/application/views/system/infocenter/infocenterFreigegebenData.php
@@ -5,7 +5,7 @@
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
- $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\'';
+ $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
$REJECTED_STATUS = '\'Abgewiesener\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
@@ -106,11 +106,12 @@ $query = '
LIMIT 1
) AS "AnzahlAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sp.orgform_kurzbz)), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
@@ -128,11 +129,12 @@ $query = '
LIMIT 1
) AS "StgAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.')
AND ps.person_id = p.person_id
@@ -197,14 +199,15 @@ $query = '
LIMIT 1
) AS "ReihungstestApplied",
(
- SELECT rtp.datum
+ SELECT CONCAT(rtp.datum, rtp.uhrzeit)
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
LEFT JOIN (
SELECT rtp.person_id,
rt.studiensemester_kurzbz,
rtp.teilgenommen,
- rt.datum
+ rt.datum,
+ rt.uhrzeit
FROM public.tbl_rt_person rtp
JOIN tbl_reihungstest rt ON(rtp.rt_id = rt.reihungstest_id)
WHERE rt.stufe = 1
@@ -407,13 +410,13 @@ $query = '
$datasetRaw->{'ReihungstestApplied'} = 'Nein';
}
- if ($datasetRaw->{'ReihungstestDate'} == null)
+ if ($datasetRaw->{'ReihungstestDate'} == '')
{
$datasetRaw->{'ReihungstestDate'} = '-';
}
else
{
- $datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d');
+ $datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d H:i');
}
if ($datasetRaw->{'ZGVNation'} == null)
diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
index dbc0124bc..ea1fab83c 100644
--- a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
+++ b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
@@ -5,7 +5,7 @@
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
- $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\'';
+ $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\'';
@@ -85,11 +85,12 @@ $query = '
LIMIT 1
) AS "AnzahlAbgeschickt",
(
- SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sp.orgform_kurzbz)), \', \')
+ SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(so.studiengangkurzbzlang) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
+ JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
diff --git a/application/views/system/infocenter/infocenterZgvUeberpruefungData.php b/application/views/system/infocenter/infocenterZgvUeberpruefungData.php
index 6614e6b2a..5bfa5b078 100644
--- a/application/views/system/infocenter/infocenterZgvUeberpruefungData.php
+++ b/application/views/system/infocenter/infocenterZgvUeberpruefungData.php
@@ -4,11 +4,6 @@ $APP = '\'infocenter\'';
$INTERESSENT_STATUS = '\'Interessent\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
-
-$uid = get_uid();
-$rechte = new benutzerberechtigung();
-$rechte->getBerechtigungen($uid);
-$oeKurz = $rechte->getOEkurzbz('lehre/zgvpruefung');
$oeKurz = '\''. implode('\',\'', $oeKurz) . '\'';
$query = '
diff --git a/application/views/system/issues/issuesData.php b/application/views/system/issues/issuesData.php
index c9a1d3828..a3b011531 100644
--- a/application/views/system/issues/issuesData.php
+++ b/application/views/system/issues/issuesData.php
@@ -1,7 +1,9 @@
'issues',
'filter_id' => $this->input->get('filter_id'),
'tableUniqueId' => 'issues',
- 'requiredPermissions' => 'admin',
+ 'requiredPermissions' => 'system/issues_verwalten',
'datasetRepresentation' => 'tablesorter',
'checkboxes' => 'issue_id',
'columnsAliases' => array(
@@ -132,7 +149,9 @@ $filterWidgetArray = array(
ucfirst($this->p->t('fehlermonitoring', 'statuscode')),
ucfirst($this->p->t('person', 'vorname')),
ucfirst($this->p->t('person', 'nachname')),
- ucfirst($this->p->t('fehlermonitoring', 'hauptzustaendig'))
+ ucfirst($this->p->t('fehlermonitoring', 'hauptzustaendig')),
+ ucfirst($this->p->t('fehlermonitoring', 'zustaendigePersonen')),
+ ucfirst($this->p->t('fehlermonitoring', 'zustaendigeOrganisationseinheiten'))
),
'formatRow' => function($datasetRaw) {
@@ -171,6 +190,18 @@ $filterWidgetArray = array(
$datasetRaw->{'Verarbeitet von'} = '-';
}
+ if ($datasetRaw->{'Person Zuständigkeiten'} == null)
+ {
+ $datasetRaw->{'Person Zuständigkeiten'} = '-';
+ }
+
+ if ($datasetRaw->{'Organisationseinheit Zuständigkeiten'} == null)
+ {
+ $datasetRaw->{'Organisationseinheit Zuständigkeiten'} = '-';
+ }
+
+
+
return $datasetRaw;
},
'markRow' => function($datasetRaw) {
diff --git a/application/views/system/issues/issuesZustaendigkeiten.php b/application/views/system/issues/issuesZustaendigkeiten.php
new file mode 100644
index 000000000..c22eaaee5
--- /dev/null
+++ b/application/views/system/issues/issuesZustaendigkeiten.php
@@ -0,0 +1,168 @@
+load->view(
+ 'templates/FHC-Header',
+ array(
+ 'title' => 'Fehler Zuständigkeiten',
+ 'jquery' => true,
+ 'jqueryui' => true,
+ 'jquerycheckboxes' => true,
+ 'bootstrap' => true,
+ 'fontawesome' => true,
+ 'sbadmintemplate' => true,
+ 'tablesorter' => true,
+ 'ajaxlib' => true,
+ 'filterwidget' => true,
+ 'navigationwidget' => true,
+ 'dialoglib' => true,
+ 'phrases' => array(
+ 'ui',
+ 'fehlermonitoring'
+ ),
+ 'customCSSs' => array('public/css/issues/issuesZustaendigkeiten.css', 'public/css/sbadmin2/tablesort_bootstrap.css'),
+ 'customJSs' => array('public/js/issues/issuesZustaendigkeiten.js', 'public/js/bootstrapper.js')
+ )
+);
+?>
+
+
+
+
+ widgetlib->widget('NavigationWidget'); ?>
+
+
+
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ load->view('system/issues/issuesZustaendigkeitenData.php'); ?>
+
+
+
+
+
+
+
+
+ |
+ p->t('fehlermonitoring', 'fehlercode')) ?>
+ |
+
+
+ |
+
+
+ |
+ p->t('fehlermonitoring', 'fehlerkurzbz')) ?>
+ |
+
+
+ |
+
+
+ |
+ p->t('fehlermonitoring', 'fehlertyp')) ?>
+ |
+
+
+ |
+
+
+ |
+ p->t('fehlermonitoring', 'fehlercodeExtern')) ?>
+ |
+
+
+ |
+
+
+ |
+ p->t('fehlermonitoring', 'fehlertext')) ?>
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+load->view('templates/FHC-Footer'); ?>
diff --git a/application/views/system/issues/issuesZustaendigkeitenData.php b/application/views/system/issues/issuesZustaendigkeitenData.php
new file mode 100644
index 000000000..d4cedd192
--- /dev/null
+++ b/application/views/system/issues/issuesZustaendigkeitenData.php
@@ -0,0 +1,84 @@
+ $query,
+ 'app' => 'core',
+ 'datasetName' => 'fehlerZustaendigkeiten',
+ 'filter_id' => $this->input->get('filter_id'),
+ 'tableUniqueId' => 'issuesZustaendigkeiten',
+ 'requiredPermissions' => 'admin',
+ 'datasetRepresentation' => 'tablesorter',
+ 'additionalColumns' => array('Delete'),
+ 'columnsAliases' => array(
+ 'ID',
+ ucfirst($this->p->t('fehlermonitoring', 'fehlercode')),
+ ucfirst($this->p->t('fehlermonitoring', 'fehlercodeExtern')),
+ ucfirst($this->p->t('fehlermonitoring', 'fehlerkurzbz')),
+ ucfirst($this->p->t('fehlermonitoring', 'fehlertext')),
+ ucfirst($this->p->t('fehlermonitoring', 'fehlertyp')),
+ 'app',
+ 'PersonId',
+ ucfirst($this->p->t('person', 'vorname')),
+ ucfirst($this->p->t('person', 'nachname')),
+ ucfirst($this->p->t('fehlermonitoring', 'oeKurzbz')),
+ ucfirst($this->p->t('fehlermonitoring', 'oeBezeichnung')),
+ ucfirst($this->p->t('fehlermonitoring', 'funktionKurzbz')),
+ ucfirst($this->p->t('fehlermonitoring', 'funktionBeschreibung'))
+ ),
+ 'formatRow' => function($datasetRaw) {
+
+ $datasetRaw->{'Delete'} =
+ "";
+
+ if ($datasetRaw->{'person_id'} == null)
+ {
+ $datasetRaw->{'person_id'} = '-';
+ }
+
+ if ($datasetRaw->{'vorname'} == null)
+ {
+ $datasetRaw->{'vorname'} = '-';
+ }
+
+ if ($datasetRaw->{'nachname'} == null)
+ {
+ $datasetRaw->{'nachname'} = '-';
+ }
+
+ if ($datasetRaw->{'oe_kurzbz'} == null)
+ {
+ $datasetRaw->{'oe_kurzbz'} = '-';
+ }
+
+ if ($datasetRaw->{'oe_bezeichnung'} == null)
+ {
+ $datasetRaw->{'oe_bezeichnung'} = '-';
+ }
+
+ if ($datasetRaw->{'funktion_kurzbz'} == null)
+ {
+ $datasetRaw->{'funktion_kurzbz'} = '-';
+ }
+
+ if ($datasetRaw->{'funktion_beschreibung'} == null)
+ {
+ $datasetRaw->{'funktion_beschreibung'} = '-';
+ }
+
+ return $datasetRaw;
+ }
+);
+
+echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
diff --git a/cis/infoterminal/index.php b/cis/infoterminal/index.php
index a3a7dfb91..82da8ab4e 100644
--- a/cis/infoterminal/index.php
+++ b/cis/infoterminal/index.php
@@ -22,21 +22,21 @@
*/
session_start();
- require_once('../../config/cis.config.inc.php');
- require_once('../../include/wochenplan.class.php');
- require_once('../../include/benutzerberechtigung.class.php');
- require_once('../../include/betriebsmittel.class.php');
- require_once('../../include/betriebsmittelperson.class.php');
- require_once('../../include/betriebsmitteltyp.class.php');
- require_once('../../include/mail.class.php');
- require_once('../../include/news.class.php');
- require_once('../../include/content.class.php');
- require_once('../../include/studiensemester.class.php');
- require_once('../../include/konto.class.php');
- require_once('../../include/functions.inc.php');
- require_once('../../include/authentication.class.php');
- require_once('../../include/addon.class.php');
- require_once('../../include/'.EXT_FKT_PATH.'/serviceterminal.inc.php');
+require_once('../../config/cis.config.inc.php');
+require_once('../../include/wochenplan.class.php');
+require_once('../../include/benutzerberechtigung.class.php');
+require_once('../../include/betriebsmittel.class.php');
+require_once('../../include/betriebsmittelperson.class.php');
+require_once('../../include/betriebsmitteltyp.class.php');
+require_once('../../include/mail.class.php');
+require_once('../../include/news.class.php');
+require_once('../../include/content.class.php');
+require_once('../../include/studiensemester.class.php');
+require_once('../../include/konto.class.php');
+require_once('../../include/functions.inc.php');
+require_once('../../include/authentication.class.php');
+require_once('../../include/addon.class.php');
+require_once('../../include/'.EXT_FKT_PATH.'/serviceterminal.inc.php');
if (!$db = new basis_db())
$db=false;
@@ -679,10 +679,6 @@ function meine_uid_informationen($db,$uid,$user="")
if ($db)
$user_array=personen_id_read_mitarbeiter_oder_student($db,$user->person_id);
-#echo ' ';
-##var_dump($user_array);
-#var_dump($_SESSION[constSESSIONNAME]["ldap_get_entries"]);
-
if (isset($user_array) && is_array($user_array) && count($user_array)>1)
{
$html_user_daten.='';
@@ -724,54 +720,6 @@ function meine_uid_informationen($db,$uid,$user="")
$html_user_daten.=' ';
- // eMail senden nach anforderung
- /*
- $send_mail=(isset($_REQUEST['send_mail']) ? $_REQUEST['send_mail']:false);
- if ($send_mail)
- {
- $to=$uid.'@'.DOMAIN;
- $from=MAIL_CIS;
- $subject=CAMPUS_NAME.' Informationen';
-
- $mail=new mail($to, $from, $subject, $html_user_daten_detail);
- if (isset($user_array) && is_array($user_array) && count($user_array)>1)
- {
- reset($user_array);
- for ($i=0;$iuid && ($user_array[$i]->aktiv='t' || ($user_array[$i]->aktiv !='f' && $user_array[$i]->aktiv)) )
- $mail->setCCRecievers($user_array[$i]->uid.'@'.DOMAIN);
- }
- }
- $mail->setHTMLContent($html_user_daten_detail);
- if ($mail->send())
- $html_user_daten.='email gesendet an '.$mail->to.' '.($mail->CC_recievers?$mail->CC_recievers:'').' ';
- else
- $html_user_daten.='email nicht gesendet an '.$mail->to.' ';
- }
- // Send eMail Auswahl anzeigen
- else
- {
- $farbe='gruen';
- $html_user_daten.='';
- }*/
return $html_user_daten;
}
#-------------------------------------------------------------------------------------------
@@ -952,33 +900,6 @@ function meine_uid_informationen_detail($db,$uid,$count=0)
die($db->db_last_error());
$nr_mg=$db->db_num_rows($erg_mg);
- // Betriebsmittel zur Person lesen
- /*
- $betriebsmittelperson=array();
- $qry="SELECT nummer,betriebsmitteltyp FROM public.vw_betriebsmittelperson where uid='".addslashes(trim($uid))."' and aktiv and benutzer_aktiv and ( retouram IS NULL ) LIMIT 50 ; ";
- if(!$result=$db->db_query($qry))
- die('Probleme beim Lesen der Benutzer uid '.$db->db_last_error());
- if ($result)
- {
- while($rows = $db->db_fetch_object($result))
- {
- $rows->asco='ASCO Datensätze gefunden';
- if (is_numeric($rows->nummer) && $mssql_verbindung)
- {
- $card_no=$rows->nummer;
- $anfrage = mssql_query('SELECT * FROM view_fh_technikum_mitarbeiterkarten_berechtigungen where card_no='.$card_no);
- if (mssql_num_rows($anfrage))
- {
- $rows->asco=array();
- while ($datensatz = mssql_fetch_object($anfrage))
- $rows->asco[]=$datensatz;
- }
- mssql_free_result($anfrage);
- }
- $betriebsmittelperson[]=$rows;
- }
- }*/
-
if ($count==0)
{
$html_user_daten.='Persönliche Daten';
@@ -1022,49 +943,6 @@ function meine_uid_informationen_detail($db,$uid,$count=0)
$html_user_daten.='| Email | ';
$html_user_daten.='| Intern | '.$email.' | ';
$html_user_daten.='| Alias | '.$email_alias.' | ';
- /*
-
- $html_user_daten.='| Mitglied in folgenden Verteilern | ';
- for($i=0;$i<$nr_mg;$i++)
- {
- $row=$db->db_fetch_object($erg_mg,$i);
-
- $html_user_daten.='';
- $html_user_daten.='| '.strtolower($row->gruppe_kurzbz).' | ';
- $html_user_daten.=''.$row->beschreibung.' | ';
- $html_user_daten.=' ';
- }
-
- if (isset($matrikelnr))
- {
- $html_user_daten.='| '.strtolower($stgkz).'_std | ';
- $html_user_daten.="\n Alle Studierdenden von $stgbez | | ";
- $html_user_daten.='| '.strtolower($stgkz).$semester.' | ';
- $html_user_daten.="\n Alle Studierenden von $stgkz $semester | | ";
- $html_user_daten.='| '.strtolower($stgkz).$semester.strtolower($verband).' | ';
- $html_user_daten.="\n Alle Studierenden von $stgkz $semester$verband | | ";
- $html_user_daten.='| '.strtolower($stgkz).$semester.strtolower($verband).$gruppe.' | ';
- $html_user_daten.="\n Alle Studierenden von $stgkz $semester$verband$gruppe | | ";
- }
- $html_user_daten.=' | ';
-
- $html_user_daten.='
';
- if ($stud_num_rows==1)
- {
- $html_user_daten.='| StudentIn | ';
- $html_user_daten.="
- Studiengang: $stgbez
- Semester: $semester
- Verband: $verband
- Gruppe: $gruppe
- Matrikelnummer: $matrikelnr";
- $html_user_daten.=' | ';
- }
- else if ($lekt_num_rows==1)
- {
- $html_user_daten.='| Lektor | ';
- $html_user_daten.='Kurzzeichen: '.$kurzbz.' Standort: '.$ort.' '.($tel!=''?'Telefon TW: '.$vorwahl.' '.$tel:'').' | ';
- }*/
$html_user_daten.=' ';
$html_user_daten.=' | ';
@@ -1096,30 +974,6 @@ function alle_uid_stundenplan_informationen($db,$uid,$user_array="")
return $html_liste_raum;
}
-// ------------------------------------------------------------------------------------------
-// Kalenderwoche und Tage Initialisieren
-// ------------------------------------------------------------------------------------------
-/*
- $date = date('d');
- $month = date('m');
- $year = date('y');
- $weekday = date('w');
- $kalenderweek = ((int)date('W')<10?'0'.(int)date('W'):date('W'));
-
- // Montag ermitteln
- if($weekday == 0)
- {
- $datum=mktime(0, 0, 0, $month, $date-$weekday -6, $year);
- $ersterTagMonat=date('m', mktime(0, 0, 0, $month, $date-$weekday -6, $year));
- $ersterTag=date('d', mktime(0, 0, 0, $month, $date-$weekday -6, $year));
- }
- else
- {
- $datum=mktime(0, 0, 0, $month, $date-$weekday +1, $year);
- $ersterTagMonat=date('m', mktime(0, 0, 0, $month, $date-$weekday +1, $year));
- $ersterTag=date('d', mktime(0, 0, 0, $month, $date-$weekday +1, $year));
- }
-*/
// ------------------------------------------------------------------------------------------
// Alle Termine zum User lesen
// ------------------------------------------------------------------------------------------
@@ -1334,18 +1188,19 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id)
$qry.=" SELECT DISTINCT ";
$qry.=" tbl_ortraumtyp.ort_kurzbz ";
$qry.=" ,tbl_ort.bezeichnung ,tbl_ort.aktiv ";
+ $qry.=" , (SELECT 'gesperrt'::text FROM public.tbl_ortraumtyp WHERE raumtyp_kurzbz='Gesperrt' AND ort_kurzbz=tbl_ort.ort_kurzbz) as gesperrt";
$qry.=" FROM tbl_raumtyp , tbl_ortraumtyp , tbl_ort ";
$qry.=" WHERE tbl_ortraumtyp.raumtyp_kurzbz=tbl_raumtyp.raumtyp_kurzbz ";
$qry.=" AND tbl_ort.ort_kurzbz=tbl_ortraumtyp.ort_kurzbz ";
$qry.=" AND tbl_ort.aktiv ";
$qry.=" AND lower(tbl_raumtyp.raumtyp_kurzbz) like lower('%".$db->db_escape(trim($raumtyp_kurzbz))."%') ";
if($standort_id!='')
- $qry.=" AND (tbl_ort.standort_id=".$db->db_add_param($standort_id, FHC_INTEGER).' OR tbl_ort.standort_id is null)';
+ $qry.=" AND (tbl_ort.standort_id=".$db->db_add_param($standort_id, FHC_INTEGER)." OR tbl_ort.standort_id is null)";
$qry.=" order by tbl_ortraumtyp.ort_kurzbz ";
$qry.=" ; ";
if(!$result=$db->db_query($qry))
- die('Probleme beim lesen der Raumtyptabelle '.$db->db_last_error());
+ die('Probleme beim lesen der Raumtyptabelle ');
$num_rows_stunde=$db->db_num_rows($result);
if($num_rows_stunde==0)
@@ -1372,7 +1227,6 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id)
// Raumreservierungen fuer Aktive Raumauswahl
// --------------------------------------------------------------
-
// Die aktive Stunde ermitteln - zum lesen welcher Raum jetzt besetzt ist - aktive Lehreinheit
$row_stunde=array();
@@ -1382,9 +1236,6 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id)
$qry.=" WHERE ".$db->db_add_param(constAktuelleZeitHHMi,FHC_STRING)." between to_char(tbl_stunde.beginn, 'HH24MI') and to_char(tbl_stunde.ende, 'HH24MI') ";
$qry.=" ORDER BY stunde LIMIT 1 ; ";
-# $qry.=" WHERE '". constAktuelleZeitHH."' between to_char(tbl_stunde.beginn, 'HH24') and to_char(tbl_stunde.ende, 'HH24') ";
-# $qry.=" ORDER BY stunde desc LIMIT 1; ";
-
if(!$result=$db->db_query($qry))
die('Probleme beim lesen der Raumtyptabelle '.$db->db_last_error());
@@ -1436,8 +1287,8 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id)
$farbe="gruen";
}
-# if ($farbe=="orange")
-# var_dump($info);
+ if ($row_raum[$i]->gesperrt=="gesperrt")
+ $farbe="rot";
// Nach 4 Raumanzeigen eine Neuezeile erzeugen
$html_liste_raum.=($i==0 || $i%4?"":"
");
@@ -1461,7 +1312,7 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id)
$html_liste_raum.='| | Mindestens nächsten 2 Einheiten frei |
| ';
$html_liste_raum.=' | ';
- $html_liste_raum.=' | ';
+ $html_liste_raum.='| | Raum derzeit besetzt / gesperrt |
| ';
$html_liste_raum.='
';
$html_liste_raum.='';
$html_liste_raum.='
';
@@ -1506,7 +1357,6 @@ function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id)
// dh. Letztes Ende ist gleich Start aktueller Datensatz
if ($lastEnde && $row->time_beginn!=$lastEnde)
{
-# echo "
Zeit korr. Funktion:alle_raum_informationen ".$row->beginn_show." wird zu ".$lastShowEnde."
";
$row->time_beginn=$lastEnde;
}
@@ -1900,7 +1750,7 @@ function uid_read_mitarbeiter_oder_student($db,$uid)
// Wenn kein Mitarbeiter pruefen ob Student
$qry="SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_student where uid=".$db->db_add_param(trim($uid), FHC_STRING)." LIMIT 1 ; ";
if(!$result=$db->db_query($qry))
- die('Probleme beim Lesen der Studierenden '.$db->db_last_error());
+ die('Probleme beim Lesen der Studierenden ');
if ($num_rows_stunde=$db->db_num_rows($result))
{
while($rows = $db->db_fetch_object($result))
@@ -1976,7 +1826,7 @@ function read_create_html_news($db,$fachbereich_kurzbz,$studiengang_kz,$semester
{
if(defined('CIS_INFOSCREEN_NEWS_ANZEIGEN') && CIS_INFOSCREEN_NEWS_ANZEIGEN==false)
return '';
-
+
// ------------------------------------------------------------------------------------------
// Lesen Newstickerzeilen
// ------------------------------------------------------------------------------------------
diff --git a/cis/infoterminal/informationsbildschirm.php b/cis/infoterminal/informationsbildschirm.php
index caf174846..75cabdc62 100644
--- a/cis/infoterminal/informationsbildschirm.php
+++ b/cis/infoterminal/informationsbildschirm.php
@@ -169,21 +169,22 @@ echo '
echo '';
if($infoscreen_id!='' && isset($content[$aktuellerContentIdx]))
{
-
echo '
';
}
else
{
- echo '
-
- Informationsbildschirm - '.CAMPUS_NAME.'
-
- Dieser Informationsbildschirm wurde noch nicht registriert
-
- IP-Adresse:'.$ip.'
- ';
+ echo '
+
+
+
+ |
+
+
+ | '.$ip.' |
+
+
+';
}
-
echo '