diff --git a/application/config/constants.php b/application/config/constants.php
index ef4cdaf2c..f21b6c962 100644
--- a/application/config/constants.php
+++ b/application/config/constants.php
@@ -31,6 +31,13 @@ define('EXIT_VALIDATION_UDF_NOT_VALID_VAL', 17); // UDF validation has been fail
define('EXIT_AUTO_MIN', 1000); // lowest automatically-assigned error code
define('EXIT_AUTO_MAX', 2000); // highest automatically-assigned error code
+/*
+|--------------------------------------------------------------------------
+| General purpose
+|--------------------------------------------------------------------------
+*/
+define('BEGINNING_OF_TIME', '1970-01-01');
+
/*
|--------------------------------------------------------------------------
| Authentication constants
diff --git a/application/config/jqm.php b/application/config/jqm.php
new file mode 100644
index 000000000..43cc1c038
--- /dev/null
+++ b/application/config/jqm.php
@@ -0,0 +1,14 @@
+ array(
+ 'admin:rw',
+ 'developer:rw'
+ ),
+ 'OEHPayment' => 'developer:rw',
+ 'SAPPayment' => 'developer:rw'
+);
+
diff --git a/application/config/navigation.php b/application/config/navigation.php
index a89c259ee..84004b58e 100644
--- a/application/config/navigation.php
+++ b/application/config/navigation.php
@@ -109,6 +109,13 @@ $config['navigation_header'] = array(
'expand' => true,
'sort' => 20,
'requiredPermissions' => 'system/developer:r'
+ ),
+ 'jobsqueueviewer' => array(
+ 'link' => site_url('system/jq/JobsQueueViewer'),
+ 'description' => 'Jobs Queue Viewer',
+ 'expand' => true,
+ 'sort' => 20,
+ 'requiredPermissions' => 'system/developer:r'
)
)
)
diff --git a/application/controllers/jobs/LehrauftragJob.php b/application/controllers/jobs/LehrauftragJob.php
index 2f6b928c7..4ba327a2f 100644
--- a/application/controllers/jobs/LehrauftragJob.php
+++ b/application/controllers/jobs/LehrauftragJob.php
@@ -20,31 +20,31 @@ class LehrauftragJob extends JOB_Controller
{
const BERECHTIGUNG_LEHRAUFTRAG_ERTEILEN = 'lehre/lehrauftrag_erteilen';
const BERECHTIGUNG_LEHRAUFTRAG_AKZEPTIEREN = 'lehre/lehrauftrag_akzeptieren';
-
+
const LEHRAUFTRAG_ERTEILEN_URI = 'lehre/lehrauftrag/LehrauftragErteilen';
const LEHRAUFTRAG_AKZEPTIEREN_URI = '/lehre/lehrauftrag/LehrauftragAkzeptieren';
-
+
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
-
+
// Load models
$this->load->model('accounting/Vertrag_model', 'VertragModel');
$this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
$this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
$this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel');
-
+
// Load libraries
$this->load->library('PermissionLib');
-
+
// Load helpers
$this->load->helper('hlp_sancho_helper');
}
-
+
/**
* This daily job sends information about all lehr-/projektauftraege ordered (and not approved) the day bofore.
* Receivers: Department-/Kompetenzfeldleiter
@@ -62,7 +62,7 @@ class LehrauftragJob extends JOB_Controller
foreach ($vertrag_arr as $vertrag)
{
$result = $this->VertragModel->getLehreinheitData($vertrag->vertrag_id, 'lehrveranstaltung_id, studiensemester_kurzbz');
-
+
if (hasData($result))
{
$obj = new StdClass();
@@ -72,7 +72,7 @@ class LehrauftragJob extends JOB_Controller
}
}
}
-
+
/**
* Build the data array to be used in the email. Data array is clustered as follows:
* Array
@@ -90,7 +90,7 @@ class LehrauftragJob extends JOB_Controller
foreach ($lehreinheit_data_arr as $lehreinheit_data)
{
$result = $this->_getLVData($lehreinheit_data->lehrveranstaltung_id);
-
+
if (hasData($result))
{
// Search if studiensemester exists in data_arr
@@ -102,12 +102,12 @@ class LehrauftragJob extends JOB_Controller
$data = array(
'studiensemester_kurzbz' => $lehreinheit_data->studiensemester_kurzbz
);
-
+
$data []= array(
'oe_kurzbz' => $result->retval[0]->oe_kurzbz,
'oe_bezeichnung' => $result->retval[0]->lv_oe_bezeichnung
);
-
+
// Add stg data to oe, start amount with 1
$data[0][] = array(
'stg_kz' => $result->retval[0]->studiengang_kz,
@@ -115,7 +115,7 @@ class LehrauftragJob extends JOB_Controller
'stg_bezeichnung' => $result->retval[0]->lv_stg_bezeichnung,
'amount' => 1
);
-
+
// Push to final data_arr
$data_arr []= $data;
}
@@ -124,7 +124,7 @@ class LehrauftragJob extends JOB_Controller
{
// Search if oe exists inside existing studiensemester of data_arr
$oe_index = array_search($result->retval[0]->oe_kurzbz, array_column($data_arr[$ss_index], 'oe_kurzbz'));
-
+
// If oe is new, add oe and stg to studiensemester
if ($oe_index === false)
{
@@ -132,7 +132,7 @@ class LehrauftragJob extends JOB_Controller
$data_arr[$ss_index][] = array(
'oe_kurzbz' => $result->retval[0]->oe_kurzbz,
'oe_bezeichnung' => $result->retval[0]->lv_oe_bezeichnung,
-
+
// Add stg data to oe, start amount with 1
array(
'stg_kz' => $result->retval[0]->studiengang_kz,
@@ -147,7 +147,7 @@ class LehrauftragJob extends JOB_Controller
{
// Search if stg exists inside existing oe of data_arr
$stg_index = array_search($result->retval[0]->studiengang_kz, array_column($data_arr[$ss_index][$oe_index], 'stg_kz'));
-
+
// If stg is new, add stg to oe, start amount with 1
if ($stg_index === false)
{
@@ -168,7 +168,7 @@ class LehrauftragJob extends JOB_Controller
}
}
}
-
+
/**
* Cluster data by uid of entitled mail receivers.
* Returning array is clustered as follows:
@@ -186,7 +186,7 @@ class LehrauftragJob extends JOB_Controller
* [amount] // amount of new ordered lehrauftraege of that stg
*/
$data_arr = $this->_clusterData_byReceiver($data_arr);
-
+
// Send email
if(!$this->_sendMail_toApprove($data_arr))
{
@@ -197,7 +197,7 @@ class LehrauftragJob extends JOB_Controller
$this->logError('Error when sending emails in job MailLehrauftragToApprove');
}
}
-
+
/**
* This daily job sends information about all lehr-/projektauftraege approved the day bofore.
* Receivers: lectors
@@ -208,7 +208,7 @@ class LehrauftragJob extends JOB_Controller
$this->VertragvertragsstatusModel->addSelect('vertrag_id, uid');
$this->VertragvertragsstatusModel->addOrder('uid');
$result = $this->VertragvertragsstatusModel->getApproved_fromDate('YESTERDAY');
-
+
/**
* Build the data array to be used in the email. Data array is clustered as follows:
* Array
@@ -228,10 +228,10 @@ class LehrauftragJob extends JOB_Controller
{
$studiensemester = $studiensemester[0]->vertragsstunden_studiensemester_kurzbz;
}
-
+
// Search if uid exists in data_arr
$uid_index = array_search($vertrag->uid, array_column($data_arr, 'uid'));
-
+
// If uid is new, add uid, studiensemester and start amount with 1
if ($uid_index === false)
{
@@ -249,7 +249,7 @@ class LehrauftragJob extends JOB_Controller
{
$data_arr[$uid_index]['studiensemester'] .= ' und '. $studiensemester;
}
-
+
// Increase amount +1
$data_arr[$uid_index]['amount']++;
}
@@ -266,11 +266,11 @@ class LehrauftragJob extends JOB_Controller
$this->logError('Error when sending emails in job MailLehrauftragToAccept');
}
}
-
+
//******************************************************************************************************************
// PRIVATE FUNCTIONS
//******************************************************************************************************************
-
+
/**
* Get data of given lehrveranstaltung.
* @param $lehrveranstaltung_id
@@ -286,7 +286,7 @@ class LehrauftragJob extends JOB_Controller
stg.typ AS "stg_typ",
stg.kurzbz AS "stg_kurzbz"
');
-
+
$this->LehrveranstaltungModel->addJoin('lehre.tbl_studienplan_lehrveranstaltung stpllv', 'lehrveranstaltung_id');
$this->LehrveranstaltungModel->addJoin('lehre.tbl_studienplan stpl', 'studienplan_id');
$this->LehrveranstaltungModel->addJoin('lehre.tbl_studienordnung sto', 'studienordnung_id');
@@ -294,10 +294,10 @@ class LehrauftragJob extends JOB_Controller
$this->LehrveranstaltungModel->addJoin('public.tbl_organisationseinheit oe', 'ON oe.oe_kurzbz = tbl_lehrveranstaltung.oe_kurzbz');
$this->LehrveranstaltungModel->addOrder('stpllv.insertamum', 'DESC');
$this->LehrveranstaltungModel->addLimit(1);
-
+
return $this->LehrveranstaltungModel->load($lehrveranstaltung_id);
}
-
+
/**
* Send Sancho eMail about ordered Lehrauftraege.
* @param $data_arr
@@ -310,12 +310,12 @@ class LehrauftragJob extends JOB_Controller
// Set mail recipients (department assistance/leader)
$to = $data['uid']. '@'. DOMAIN;
$html_table = $this->_renderData_LehrauftraegeToApprove($data);
-
+
// Prepare mail content
$content_data_arr = array(
'table' => $html_table
);
-
+
sendSanchoMail(
'LehrauftragNeueBestellungen',
$content_data_arr,
@@ -326,7 +326,7 @@ class LehrauftragJob extends JOB_Controller
);
}
}
-
+
/**
* Cluster the data array by entitled mail receiver.
* Returning array is clustered as follows:
@@ -409,7 +409,7 @@ class LehrauftragJob extends JOB_Controller
return $mail_data_arr;
}
-
+
/**
* Render the data array for the mail template returing a HTML table.
* @param $data_arr Data to be used in HTML table
@@ -425,11 +425,11 @@ class LehrauftragJob extends JOB_Controller
if (isset($studiensemester_container['studiensemester_kurzbz']))
{
$studiensemester = $studiensemester_container['studiensemester_kurzbz'];
-
+
// Link to LehrauftragErteilen
$url = site_url(self::LEHRAUFTRAG_ERTEILEN_URI).'?studiensemester='. $studiensemester;
}
-
+
// HTML table header
$html .= '
@@ -446,7 +446,7 @@ class LehrauftragJob extends JOB_Controller
- studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'abgehaltenAmBachelor') : $this->p->t('abschlusspruefung', 'abgehaltenAmMaster'); ?> + studiengangstyp == 'Bachelor' ? $this->p->t('abschlusspruefung', 'abgehaltenAmBachelor') : $this->p->t('abschlusspruefung', 'abgehaltenAmMaster'); ?> studiengangbezeichnung : $abschlusspruefung->studiengangbezeichnung_englisch ?>, p->t('abschlusspruefung', 'studiengangskennzahl') ?> studiengang_kz ?>
@@ -156,7 +156,7 @@ $this->load->view( p->t('abschlusspruefung', 'pruefungsgegenstand') ?>| ';
diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php
index e377f0424..320f7adb3 100644
--- a/config/global.config-default.inc.php
+++ b/config/global.config-default.inc.php
@@ -294,4 +294,16 @@ define('STUDIENGANG_KZ_QUALIFIKATIONKURSE', null);
// Gibt an ob der Login ins Testtool ueber das Bewerbungstool stattfindet oder nicht
define('TESTTOOL_LOGIN_BEWERBUNGSTOOL', false);
+
+// Prueft ob Buchungen bereits ins SAP uebertragen wurden und sperrt ggf die Bearbeitung
+define('BUCHUNGEN_CHECK_SAP', true);
+
+// Gibt an, ob im FAS die Zahlungsbestaetigungen zum Download / im CIS generell die Zahlungen angezeigt werden
+define ('ZAHLUNGSBESTAETIGUNG_ANZEIGEN', true);
+
+// Gibt an, ob im CIS die Zahlungsbestaetigungen fuer Lehrgaenge zum Download angezeigt werden
+define ('ZAHLUNGSBESTAETIGUNG_ANZEIGEN_FUER_LEHRGAENGE', true);
+
+// Gibt an, ob im CIS die Zahlungsreferenz angezeigt wird
+define ('ZAHLUNGSBESTAETIGUNG_ZAHLUNGSREFERENZ_ANZEIGEN', false);
?>
diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php
index 6c278c0bb..cd45e6979 100644
--- a/config/vilesci.config-default.inc.php
+++ b/config/vilesci.config-default.inc.php
@@ -252,4 +252,6 @@ define('BIS_FUNKTIONSCODE_6_ARR', array(
// Standortcode fuer Lehrgaenge
define('BIS_STANDORTCODE_LEHRGAENGE', '0');
+// bPk Abfrage
+define('BPK_FUER_ALLE_BENUTZER_ABFRAGEN', false);
?>
diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php
index 3c0a72875..a80ea171a 100644
--- a/content/student/studentDBDML.php
+++ b/content/student/studentDBDML.php
@@ -280,6 +280,80 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
}
}
+function deleteFromSAP($buchung)
+{
+ global $db, $user;
+
+ if(defined('BUCHUNGEN_CHECK_SAP') && BUCHUNGEN_CHECK_SAP == true)
+ {
+ $qry = "SELECT * FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung->buchungsnr);
+ if($result = $db->db_query($qry))
+ {
+ if($row = $db->db_fetch_object($result))
+ {
+ $qry = "DELETE FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung->buchungsnr);
+ if($db->db_query($qry))
+ {
+ $log = new log();
+ $log->mitarbeiter_uid = $user;
+ $log->beschreibung = 'Buchungszuordnung SAP geloescht: SalesOrder:'.$row->sap_sales_order_id;
+ $log->sql = $qry;
+ if(!$log->save(true))
+ {
+ echo "Fehler beim Schreiben des Log".$log->errormsg;
+ return false;
+ }
+ return true;
+ }
+ else
+ {
+ echo "Fehler beim Löschen der Zahlungszuordnung";
+ return false;
+ }
+ }
+ else
+ {
+ //Gegenbuchung
+ }
+ }
+ else
+ {
+ echo "Zahlung nicht gefunden";
+ return false;
+ }
+ }
+ return true;
+}
+
+/**
+ * Prueft ob die Kontobuchung bereits ins SAP Ubertragen wurde oder noch geändert werden darf
+ */
+function isBuchungAllowedToChange($buchung_obj)
+{
+ global $db;
+
+ if(defined('BUCHUNGEN_CHECK_SAP') && BUCHUNGEN_CHECK_SAP == true)
+ {
+ $qry = "SELECT * FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung_obj->buchungsnr);
+ if ($buchung_obj->buchungsnr_verweis != '')
+ $qry .= " OR buchungsnr=".$db->db_add_param($buchung_obj->buchungsnr_verweis);
+
+ if ($result = $db->db_query($qry))
+ {
+ if($db->db_num_rows($result) > 0)
+ {
+ return false;
+ }
+ else
+ return true;
+ }
+ else
+ return false;
+ }
+ else
+ return true;
+}
+
if(!$error)
{
@@ -1952,27 +2026,36 @@ if(!$error)
}
else
{
- $buchung->betrag = $_POST['betrag'];
- $buchung->buchungsdatum = $_POST['buchungsdatum'];
- $buchung->buchungstext = $_POST['buchungstext'];
- $buchung->mahnspanne = $_POST['mahnspanne'];
- $buchung->buchungstyp_kurzbz = $_POST['buchungstyp_kurzbz'];
- $buchung->studiensemester_kurzbz = $_POST['studiensemester_kurzbz'];
- $buchung->studiengang_kz = $_POST['studiengang_kz'];
- $buchung->credit_points = $_POST['credit_points'];
- $buchung->new = false;
- $buchung->updateamum = date('Y-m-d H:i:s');
- $buchung->updatevon = $user;
- $buchung->anmerkung = $_POST['anmerkung'];
-
- if($buchung->save())
+ if(isBuchungAllowedToChange($buchung)
+ || $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid'))
{
- $return = true;
+ $buchung->betrag = $_POST['betrag'];
+ $buchung->buchungsdatum = $_POST['buchungsdatum'];
+ $buchung->buchungstext = $_POST['buchungstext'];
+ $buchung->mahnspanne = $_POST['mahnspanne'];
+ $buchung->buchungstyp_kurzbz = $_POST['buchungstyp_kurzbz'];
+ $buchung->studiensemester_kurzbz = $_POST['studiensemester_kurzbz'];
+ $buchung->studiengang_kz = $_POST['studiengang_kz'];
+ $buchung->credit_points = $_POST['credit_points'];
+ $buchung->new = false;
+ $buchung->updateamum = date('Y-m-d H:i:s');
+ $buchung->updatevon = $user;
+ $buchung->anmerkung = $_POST['anmerkung'];
+
+ if($buchung->save())
+ {
+ $return = true;
+ }
+ else
+ {
+ $return = false;
+ $errormsg = 'Fehler beim Speichern:'.$buchung->errormsg;
+ }
}
else
{
$return = false;
- $errormsg = 'Fehler beim Speichern:'.$buchung->errormsg;
+ $errormsg = 'Buchung wurde bereits übertragen und darf nicht geändert werden';
}
}
}
@@ -2025,26 +2108,35 @@ if(!$error)
{
if($buchung->buchungsnr_verweis=='')
{
- $kto = new konto();
- //$buchung->betrag*(-1);
- $buchung->betrag = $kto->getDifferenz($buchungsnr);
- $buchung->buchungsdatum = $gegenbuchungsdatum;
- $buchung->mahnspanne = '0';
- $buchung->buchungsnr_verweis = $buchung->buchungsnr;
- $buchung->new = true;
- $buchung->insertamum = date('Y-m-d H:i:s');
- $buchung->insertvon = $user;
- $buchung->anmerkung = '';
-
- if($buchung->save())
+ if(isBuchungAllowedToChange($buchung)
+ || $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid'))
{
- //$data = $buchung->buchungsnr;
- $return = true;
+ $kto = new konto();
+ //$buchung->betrag*(-1);
+ $buchung->betrag = $kto->getDifferenz($buchungsnr);
+ $buchung->buchungsdatum = $gegenbuchungsdatum;
+ $buchung->mahnspanne = '0';
+ $buchung->buchungsnr_verweis = $buchung->buchungsnr;
+ $buchung->new = true;
+ $buchung->insertamum = date('Y-m-d H:i:s');
+ $buchung->insertvon = $user;
+ $buchung->anmerkung = '';
+
+ if($buchung->save())
+ {
+ //$data = $buchung->buchungsnr;
+ $return = true;
+ }
+ else
+ {
+ $return = false;
+ $errormsg .= "\n".'Fehler beim Speichern:'.$buchung->errormsg;
+ }
}
else
{
$return = false;
- $errormsg .= "\n".'Fehler beim Speichern:'.$buchung->errormsg;
+ $errormsg .= "\n".'Buchung wurde bereits Übertragen und darf nicht geändert werden';
}
}
else
@@ -2094,14 +2186,32 @@ if(!$error)
}
else
{
- if($buchung->delete($_POST['buchungsnr']))
+ $isAllowedToChange = isBuchungAllowedToChange($buchung);
+ if($isAllowedToChange
+ || $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid')
+ )
{
- $return = true;
+ if(!$isAllowedToChange)
+ {
+ // Buchung aus SAP Zwischentabelle loeschen
+ deleteFromSAP($buchung);
+ }
+
+ if($buchung->delete($_POST['buchungsnr']))
+ {
+ $return = true;
+ }
+ else
+ {
+ $errormsg = $buchung->errormsg;
+ $return = false;
+ }
}
else
{
- $errormsg = $buchung->errormsg;
+ $error = true;
$return = false;
+ $errormsg = 'Diese Buchung darf nicht gelöscht werden da diese bereits übertragen wurde';
}
}
}
@@ -2501,7 +2611,7 @@ if(!$error)
$_POST['nummer']=$bm->transform_kartennummer($_POST['nummer']);
//Das speichern von Zutrittskarten ohne Nummern verhindern
- if($_POST['betriebsmitteltyp']=='Zutrittskarte' && $_POST['nummer']=='')
+ if($_POST['betriebsmitteltyp']=='Zutrittskarte' && ($_POST['nummer']=='' && $_POST['nummer2']==''))
{
$error = true;
$return = false;
@@ -2509,14 +2619,23 @@ if(!$error)
}
else
{
+ if ($_POST['betriebsmitteltyp']=='Zutrittskarte' && $_POST['nummer'] == '')
+ {
+ $resultBM = $bm->getBetriebsmittel($_POST['betriebsmitteltyp'],null, $_POST['nummer2']);
+ }
+ else
+ {
+ $resultBM = $bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummer']);
+ }
+
//Nachschauen ob dieses Betriebsmittel schon existiert
- if($bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummer']))
+ if($resultBM)
{
if(count($bm->result)>0)
{
//Wenn die Nummer gleich bleibt dann die alte ID verwenden da es
//unterschiedliche Schluessel gibt die die gleiche nummer haben ?!?
- if($_POST['nummer']==$_POST['nummerold'])
+ if($_POST['nummer'] != '' && $_POST['nummer'] == $_POST['nummerold'])
{
$betriebsmittel_id = $_POST['betriebsmittel_id'];
}
diff --git a/content/student/studentkontooverlay.xul.php b/content/student/studentkontooverlay.xul.php
index 2cb5f2aae..4682907d2 100644
--- a/content/student/studentkontooverlay.xul.php
+++ b/content/student/studentkontooverlay.xul.php
@@ -195,13 +195,16 @@ echo '';
Supportanfragen unter zeiterfassung@technikum-wien.at'; diff --git a/locale/en-US/zeitaufzeichnung.php b/locale/en-US/zeitaufzeichnung.php index 8d2c217fa..a67a35e4b 100644 --- a/locale/en-US/zeitaufzeichnung.php +++ b/locale/en-US/zeitaufzeichnung.php @@ -62,3 +62,4 @@ $this->phrasen['zeitaufzeichnung/dienstreise']='Business Trip'; $this->phrasen['zeitaufzeichnung/projektphase']='WP'; $this->phrasen['zeitaufzeichnung/pauseEinfuegen']='insert break automatically'; $this->phrasen['zeitaufzeichnung/zeitraumZuKurz']='Timeslot too short for automatic break.'; +$this->phrasen['zeitaufzeichnung/supportAnfragen']=' Contact for support zeiterfassung@technikum-wien.at'; diff --git a/public/js/FilterWidget.js b/public/js/FilterWidget.js index a85969865..f63c41013 100644 --- a/public/js/FilterWidget.js +++ b/public/js/FilterWidget.js @@ -824,6 +824,8 @@ var FHC_FilterWidget = { html += ""; html += ""; html += " '; + else + echo ' system.tbl_jobstatuses table created'; + + $qry = 'GRANT SELECT ON TABLE system.tbl_jobstatuses TO web;'; + if (!$db->db_query($qry)) + echo 'system.tbl_jobstatuses: '.$db->db_last_error().' '; + else + echo ' Granted privileges to web on system.tbl_jobstatuses'; + + $qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_jobstatuses TO vilesci;'; + if (!$db->db_query($qry)) + echo 'system.tbl_jobstatuses: '.$db->db_last_error().' '; + else + echo ' Granted privileges to vilesci on system.tbl_jobstatuses'; +} + +// Creates table system.tbl_jobtypes if it doesn't exist and grants privileges +if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_jobtypes LIMIT 1')) +{ + $qry = 'CREATE TABLE system.tbl_jobtypes ( + type character varying(128) NOT NULL, + description text NOT NULL + ); + + COMMENT ON TABLE system.tbl_jobtypes IS \'All possible job types\'; + COMMENT ON COLUMN system.tbl_jobtypes.type IS \'Job type value and primary key\'; + COMMENT ON COLUMN system.tbl_jobtypes.description IS \'Job type description\'; + + ALTER TABLE ONLY system.tbl_jobtypes ADD CONSTRAINT pk_jobtypes PRIMARY KEY (type); + '; + + if (!$db->db_query($qry)) + echo 'system.tbl_jobtypes: '.$db->db_last_error().' '; + else + echo ' system.tbl_jobtypes table created'; + + $qry = 'GRANT SELECT ON TABLE system.tbl_jobtypes TO web;'; + if (!$db->db_query($qry)) + echo 'system.tbl_jobtypes: '.$db->db_last_error().' '; + else + echo ' Granted privileges to web on system.tbl_jobtypes'; + + $qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_jobtypes TO vilesci;'; + if (!$db->db_query($qry)) + echo 'system.tbl_jobtypes: '.$db->db_last_error().' '; + else + echo ' Granted privileges to vilesci on system.tbl_jobtypes'; +} + +// Creates table system.tbl_jobsqueue if it doesn't exist and grants privileges +if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_jobsqueue LIMIT 1')) +{ + $qry = 'CREATE TABLE system.tbl_jobsqueue ( + jobid integer NOT NULL, + type character varying(128) NOT NULL, + creationtime timestamp without time zone DEFAULT now(), + status character varying(64) NOT NULL, + input jsonb, + output jsonb, + starttime timestamp without time zone, + endtime timestamp without time zone, + insertvon character varying(32), + insertamum timestamp without time zone DEFAULT now() + ); + + COMMENT ON TABLE system.tbl_jobsqueue IS \'Table to schedule/manage the jobs queue\'; + COMMENT ON COLUMN system.tbl_jobsqueue.jobid IS \'Primary key\'; + COMMENT ON COLUMN system.tbl_jobsqueue.type IS \'Job type\'; + COMMENT ON COLUMN system.tbl_jobsqueue.creationtime IS \'Job creation timestamp\'; + COMMENT ON COLUMN system.tbl_jobsqueue.status IS \'Job current status\'; + COMMENT ON COLUMN system.tbl_jobsqueue.input IS \'Job input in JSON format\'; + COMMENT ON COLUMN system.tbl_jobsqueue.output IS \'Job output in JSON format\'; + COMMENT ON COLUMN system.tbl_jobsqueue.starttime IS \'Job start timestamp\'; + COMMENT ON COLUMN system.tbl_jobsqueue.endtime IS \'Job end timestamp\'; + COMMENT ON COLUMN system.tbl_jobsqueue.insertvon IS \'User/Service who/that inserted this record\'; + COMMENT ON COLUMN system.tbl_jobsqueue.insertamum IS \'Record insert time stamp\'; + + CREATE SEQUENCE system.seq_jobsqueue_jobid + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + ALTER SEQUENCE system.seq_jobsqueue_jobid OWNED BY system.tbl_jobsqueue.jobid; + + ALTER TABLE ONLY system.tbl_jobsqueue ALTER COLUMN jobid SET DEFAULT nextval(\'system.seq_jobsqueue_jobid\'::regclass); + + GRANT SELECT, UPDATE ON SEQUENCE system.seq_jobsqueue_jobid TO vilesci; + GRANT SELECT, UPDATE ON SEQUENCE system.seq_jobsqueue_jobid TO fhcomplete; + + ALTER TABLE ONLY system.tbl_jobsqueue ADD CONSTRAINT pk_jobsqueue PRIMARY KEY (jobid); + + ALTER TABLE ONLY system.tbl_jobsqueue ADD CONSTRAINT fk_jobsqueue_status FOREIGN KEY (status) REFERENCES system.tbl_jobstatuses(status) ON UPDATE CASCADE ON DELETE RESTRICT; + + ALTER TABLE ONLY system.tbl_jobsqueue ADD CONSTRAINT fk_jobsqueue_type FOREIGN KEY (type) REFERENCES system.tbl_jobtypes(type) ON UPDATE CASCADE ON DELETE RESTRICT; + '; + + if (!$db->db_query($qry)) + echo 'system.tbl_jobsqueue: '.$db->db_last_error().' '; + else + echo ' system.tbl_jobsqueue table created'; + + $qry = 'GRANT SELECT ON TABLE system.tbl_jobsqueue TO web;'; + if (!$db->db_query($qry)) + echo 'system.tbl_jobsqueue: '.$db->db_last_error().' '; + else + echo ' Granted privileges to web on system.tbl_jobsqueue'; + + $qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_jobsqueue TO vilesci;'; + if (!$db->db_query($qry)) + echo 'system.tbl_jobsqueue: '.$db->db_last_error().' '; + else + echo ' Granted privileges to vilesci on system.tbl_jobsqueue'; +} + +// Creates table system.tbl_jobtriggers if it doesn't exist and grants privileges +if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_jobtriggers LIMIT 1')) +{ + $qry = 'CREATE TABLE system.tbl_jobtriggers ( + type character varying(128) NOT NULL, + status character varying(64) NOT NULL, + following_type character varying(128) NOT NULL + ); + + COMMENT ON TABLE system.tbl_jobtriggers IS \'Table to manage the job triggers\'; + COMMENT ON COLUMN system.tbl_jobtriggers.type IS \'Job type\'; + COMMENT ON COLUMN system.tbl_jobtriggers.status IS \'Job status\'; + COMMENT ON COLUMN system.tbl_jobtriggers.following_type IS \'New job type\'; + + ALTER TABLE ONLY system.tbl_jobtriggers ADD CONSTRAINT pk_jobtriggers PRIMARY KEY (type, status, following_type); + + ALTER TABLE ONLY system.tbl_jobtriggers ADD CONSTRAINT fk_jobtriggers_status FOREIGN KEY (status) REFERENCES system.tbl_jobstatuses(status) ON UPDATE CASCADE ON DELETE RESTRICT; + + ALTER TABLE ONLY system.tbl_jobtriggers ADD CONSTRAINT fk_jobtriggers_type FOREIGN KEY (type) REFERENCES system.tbl_jobtypes(type) ON UPDATE CASCADE ON DELETE RESTRICT; + + ALTER TABLE ONLY system.tbl_jobtriggers ADD CONSTRAINT fk_jobtriggers_following_type FOREIGN KEY (following_type) REFERENCES system.tbl_jobtypes(type) ON UPDATE CASCADE ON DELETE RESTRICT; + '; + + if (!$db->db_query($qry)) + echo 'system.tbl_jobtriggers: '.$db->db_last_error().' '; + else + echo ' system.tbl_jobtriggers table created'; + + $qry = 'GRANT SELECT ON TABLE system.tbl_jobtriggers TO web;'; + if (!$db->db_query($qry)) + echo 'system.tbl_jobtriggers: '.$db->db_last_error().' '; + else + echo ' Granted privileges to web on system.tbl_jobtriggers'; + + $qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_jobtriggers TO vilesci;'; + if (!$db->db_query($qry)) + echo 'system.tbl_jobtriggers: '.$db->db_last_error().' '; + else + echo ' Granted privileges to vilesci on system.tbl_jobtriggers'; +} + +// Add column iso3166_1_a2 to bis.tbl_nation +if (!$result = @$db->db_query("SELECT iso3166_1_a2 FROM bis.tbl_nation LIMIT 1")) +{ + $qry = "ALTER TABLE bis.tbl_nation ADD COLUMN iso3166_1_a2 character varying(2);"; + $qry .= "COMMENT ON COLUMN bis.tbl_nation.iso3166_1_a2 IS 'ISO 3166-1 alpha-2 country code';"; + + if(!$db->db_query($qry)) + echo 'bis.tbl_nation.iso3166_1_a2: '.$db->db_last_error().' '; + else + echo ' bis.tbl_nation.iso3166_1_a2: Spalte iso3166_1_a2 hinzugefuegt'; +} + // Spalte bezeichnung_mehrsprachig in public.tbl_studiengangstyp if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM public.tbl_studiengangstyp LIMIT 1")) { @@ -4206,13 +4395,39 @@ if(!$result = @$db->db_query("SELECT co_name FROM public.tbl_adresse LIMIT 1")) $qry = " ALTER TABLE public.tbl_adresse ADD COLUMN co_name varchar(256); COMMENT ON COLUMN public.tbl_adresse.co_name IS 'Name des abweichenden Empfaengers';"; - + if(!$db->db_query($qry)) echo 'public.tbl_adresse: '.$db->db_last_error().' '; else echo ' public.tbl_adresse: Spalte co_name und anmerkung hinzugefuegt'; } +// Add column iso3166_1_a3 to tbl_nation +if(!$result = @$db->db_query("SELECT iso3166_1_a3 FROM bis.tbl_nation LIMIT 1")) +{ + $qry = "ALTER table bis.tbl_nation ADD COLUMN iso3166_1_a3 VARCHAR(3); + COMMENT ON COLUMN bis.tbl_nation.iso3166_1_a3 IS 'ISO 3166-1 alpha-3 country code';"; + + if(!$db->db_query($qry)) + echo 'bis.tbl_nation: '.$db->db_last_error().' '; + else + echo ' bis.tbl_nation: Spalte iso3166_1_a3 hinzugefuegt'; +} + +// OE_KURZBZ in system.tbl_filters auf 32 Zeichen verlängert +if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='wawi' AND TABLE_NAME='tbl_betriebsmitteltyp' AND COLUMN_NAME = 'typ_code' AND character_maximum_length=2")) +{ + if($db->db_num_rows($result)>0) + { + $qry = " ALTER TABLE wawi.tbl_betriebsmitteltyp ALTER COLUMN typ_code TYPE varchar(6)"; + + if(!$db->db_query($qry)) + echo 'wawi.tbl_betriebsmitteltyp '.$db->db_last_error().' '; + else + echo ' Spalte typ_code in wawi.tbl_betriebsmitteltyp von character(2) auf varchar(6) geändert '; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo ' Pruefe Tabellen und Attribute!'; @@ -4242,7 +4457,7 @@ $tabellen=array( "bis.tbl_mobilitaet" => array("mobilitaet_id","prestudent_id","mobilitaetstyp_kurzbz","studiensemester_kurzbz","mobilitaetsprogramm_code","gsprogramm_id","firma_id","status_kurzbz","ausbildungssemester","insertvon","insertamum","updatevon","updateamum"), "bis.tbl_mobilitaetstyp" => array("mobilitaetstyp_kurzbz","bezeichnung","aktiv"), "bis.tbl_mobilitaetsprogramm" => array("mobilitaetsprogramm_code","kurzbz","beschreibung","sichtbar","sichtbar_outgoing"), - "bis.tbl_nation" => array("nation_code","entwicklungsstand","eu","ewr","kontinent","kurztext","langtext","engltext","sperre","nationengruppe_kurzbz"), + "bis.tbl_nation" => array("nation_code","entwicklungsstand","eu","ewr","kontinent","kurztext","langtext","engltext","sperre","nationengruppe_kurzbz", "iso3166_1_a2","iso3166_1_a3"), "bis.tbl_nationengruppe" => array("nationengruppe_kurzbz","nationengruppe_bezeichnung","aktiv"), "bis.tbl_orgform" => array("orgform_kurzbz","code","bezeichnung","rolle","bisorgform_kurzbz","bezeichnung_mehrsprachig"), "bis.tbl_verwendung" => array("verwendung_code","verwendungbez"), @@ -4472,6 +4687,10 @@ $tabellen=array( "system.tbl_log" => array("log_id","person_id","zeitpunkt","app","oe_kurzbz","logtype_kurzbz","logdata","insertvon","taetigkeit_kurzbz"), "system.tbl_logtype" => array("logtype_kurzbz", "data_schema"), "system.tbl_filters" => array("filter_id","app","dataset_name","filter_kurzbz","person_id","description","sort","default_filter","filter","oe_kurzbz","statistik_kurzbz"), + "system.tbl_jobsqueue" => array("jobid", "type", "creationtime", "status", "input", "output", "starttime", "endtime", "insertvon", "insertamum"), + "system.tbl_jobstatuses" => array("status"), + "system.tbl_jobtriggers" => array("type", "status", "following_type"), + "system.tbl_jobtypes" => array("type", "description"), "system.tbl_phrase" => array("phrase_id","app","phrase","insertamum","insertvon","category"), "system.tbl_phrasentext" => array("phrasentext_id","phrase_id","sprache","orgeinheit_kurzbz","orgform_kurzbz","text","description","insertamum","insertvon"), "system.tbl_rolle" => array("rolle_kurzbz","beschreibung"), diff --git a/system/filtersupdate.php b/system/filtersupdate.php index 12265eddf..9fbaf936f 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -438,13 +438,13 @@ $filters = array( array( 'app' => 'core', 'dataset_name' => 'logs', - 'filter_kurzbz' => 'last7days', - 'description' => '{Last 7 days logs}', + 'filter_kurzbz' => 'last1min', + 'description' => '{Last minute logs}', 'sort' => 1, 'default_filter' => true, 'filter' => ' { - "name": "All logs from the last 7 days", + "name": "All logs from the last minute", "columns": [ {"name": "RequestId"}, {"name": "ExecutionTime"}, @@ -456,8 +456,8 @@ $filters = array( { "name": "ExecutionTime", "operation": "lt", - "condition": "7", - "option": "days" + "condition": "1", + "option": "minutes" } ] } @@ -467,13 +467,13 @@ $filters = array( array( 'app' => 'core', 'dataset_name' => 'logs', - 'filter_kurzbz' => 'jobs14days', - 'description' => '{Last 14 days jobs logs}', + 'filter_kurzbz' => 'jobs24hours', + 'description' => '{Last 24 hours jobs logs}', 'sort' => 2, 'default_filter' => false, 'filter' => ' { - "name": "All jobs logs from the last 14 days", + "name": "All jobs logs from the last 24 hours", "columns": [ {"name": "RequestId"}, {"name": "ExecutionTime"}, @@ -487,11 +487,133 @@ $filters = array( "operation": "contains", "condition": "job" }, + { + "name": "RequestId", + "operation": "contains", + "condition": "JOB" + }, { "name": "ExecutionTime", "operation": "lt", - "condition": "14", - "option": "days" + "condition": "24", + "option": "hours" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'core', + 'dataset_name' => 'logs', + 'filter_kurzbz' => 'jobs48hours', + 'description' => '{Last 48 hours jobs logs}', + 'sort' => 2, + 'default_filter' => false, + 'filter' => ' + { + "name": "All jobs logs from the last 48 hours", + "columns": [ + {"name": "RequestId"}, + {"name": "ExecutionTime"}, + {"name": "ExecutedBy"}, + {"name": "Description"}, + {"name": "Data"} + ], + "filters": [ + { + "name": "WebserviceType", + "operation": "contains", + "condition": "job" + }, + { + "name": "RequestId", + "operation": "contains", + "condition": "JOB" + }, + { + "name": "ExecutionTime", + "operation": "lt", + "condition": "48", + "option": "hours" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'core', + 'dataset_name' => 'logs', + 'filter_kurzbz' => 'jqws24hours', + 'description' => '{Last 24 hours JQWs logs}', + 'sort' => 2, + 'default_filter' => false, + 'filter' => ' + { + "name": "All Job Queue Workers logs from the last 24 hours", + "columns": [ + {"name": "RequestId"}, + {"name": "ExecutionTime"}, + {"name": "ExecutedBy"}, + {"name": "Description"}, + {"name": "Data"} + ], + "filters": [ + { + "name": "WebserviceType", + "operation": "contains", + "condition": "job" + }, + { + "name": "RequestId", + "operation": "contains", + "condition": "JQW" + }, + { + "name": "ExecutionTime", + "operation": "lt", + "condition": "24", + "option": "hours" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'core', + 'dataset_name' => 'logs', + 'filter_kurzbz' => 'jqws48hours', + 'description' => '{Last 48 hours JQWs logs}', + 'sort' => 2, + 'default_filter' => false, + 'filter' => ' + { + "name": "All Job Queue Workers logs from the last 48 hours", + "columns": [ + {"name": "RequestId"}, + {"name": "ExecutionTime"}, + {"name": "ExecutedBy"}, + {"name": "Description"}, + {"name": "Data"} + ], + "filters": [ + { + "name": "WebserviceType", + "operation": "contains", + "condition": "job" + }, + { + "name": "RequestId", + "operation": "contains", + "condition": "JQW" + }, + { + "name": "ExecutionTime", + "operation": "lt", + "condition": "48", + "option": "hours" } ] } @@ -535,13 +657,13 @@ $filters = array( array( 'app' => 'core', 'dataset_name' => 'logs', - 'filter_kurzbz' => 'content3days', - 'description' => '{Last 3 days content logs}', + 'filter_kurzbz' => 'content3minutes', + 'description' => '{Last 3 minutes content logs}', 'sort' => 4, 'default_filter' => false, 'filter' => ' { - "name": "All content logs from the last 3 days", + "name": "All content logs from the last 3 minutes", "columns": [ {"name": "RequestId"}, {"name": "ExecutionTime"}, @@ -559,7 +681,7 @@ $filters = array( "name": "ExecutionTime", "operation": "lt", "condition": "3", - "option": "days" + "option": "minutes" } ] } @@ -569,13 +691,13 @@ $filters = array( array( 'app' => 'core', 'dataset_name' => 'logs', - 'filter_kurzbz' => 'wienerlinien7days', - 'description' => '{Last 7 days wiener linien logs}', + 'filter_kurzbz' => 'wienerlinien24hours', + 'description' => '{Last 24 hours Wiener Linien logs}', 'sort' => 5, 'default_filter' => false, 'filter' => ' { - "name": "All wiener linien logs from the last 7 days", + "name": "All Wiener Linien logs from the last 24 hours", "columns": [ {"name": "RequestId"}, {"name": "ExecutionTime"}, @@ -592,8 +714,8 @@ $filters = array( { "name": "ExecutionTime", "operation": "lt", - "condition": "7", - "option": "days" + "condition": "24", + "option": "hours" } ] } @@ -633,6 +755,37 @@ $filters = array( } ', 'oe_kurzbz' => null, + ), + array( + 'app' => 'core', + 'dataset_name' => 'jq', + 'filter_kurzbz' => 'lastHour', + 'description' => '{Last hour queued jobs}', + 'sort' => 1, + 'default_filter' => true, + 'filter' => ' + { + "name": "All jobs queued in the last hour", + "columns": [ + {"name": "JobId"}, + {"name": "CreationTime"}, + {"name": "Type"}, + {"name": "Status"}, + {"name": "StartTime"}, + {"name": "EndTime"}, + {"name": "UserService"} + ], + "filters": [ + { + "name": "CreationTime", + "operation": "lt", + "condition": "1", + "option": "hours" + } + ] + } + ', + 'oe_kurzbz' => null, ) ); diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index c2afb39c8..14d9f4f31 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -7868,6 +7868,106 @@ Any unusual occurrences 'insertvon' => 'system' ) ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'alle', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Alle', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'All', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'heute', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Heute', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Today', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'letzteWoche', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Letzte Woche', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Last week', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'gestern', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Gestern', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Yesterday', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'zeitraum', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Zeitraum', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Period', + 'description' => '', + 'insertvon' => 'system' + ) + ) ) ); diff --git a/vilesci/cronjobs/bpk.php b/vilesci/cronjobs/bpk.php index 2d26634e3..3a7ac4395 100644 --- a/vilesci/cronjobs/bpk.php +++ b/vilesci/cronjobs/bpk.php @@ -75,7 +75,22 @@ else $webservice = new dvb(DVB_USERNAME, DVB_PASSWORD, $debug); -$qry = " +if (defined('BPK_FUER_ALLE_BENUTZER_ABFRAGEN') && BPK_FUER_ALLE_BENUTZER_ABFRAGEN) +{ + $qry = " + SELECT + distinct person_id, vorname, nachname + FROM + public.tbl_person + JOIN public.tbl_benutzer USING(person_id) + WHERE + public.tbl_benutzer.aktiv = true + AND tbl_person.bpk is null + AND gebdatum is not null"; +} +else +{ + $qry = " SELECT distinct person_id, vorname, nachname FROM @@ -89,6 +104,7 @@ $qry = " AND studiengang_kz<10000 AND EXISTS(SELECT 1 FROM public.tbl_prestudent WHERE person_id=tbl_person.person_id AND bismelden=true) AND gebdatum is not null"; +} if ($limit != '') $qry .= " LIMIT ".$limit; diff --git a/vilesci/fhausweis/kartenausgabe.php b/vilesci/fhausweis/kartenausgabe.php index 58ce7ec6d..aae80f2b0 100644 --- a/vilesci/fhausweis/kartenausgabe.php +++ b/vilesci/fhausweis/kartenausgabe.php @@ -139,7 +139,7 @@ if ($action == 'kartenausgabe') } echo ' -Ziehen Sie die neue Karte über den Hitag Kartenleser um die Karte zu aktivieren: +Ziehen Sie die neue Karte über den Mifare Kartenleser um die Karte zu aktivieren: - @@ -1007,7 +1007,10 @@ function output_inventar($debug=false,$resultBetriebsmittel=null,$resultBetriebs $htmlstring.='';
// mit Berechtigung ist der Status zum bearbeiten
- $betriebsmittelstatus_kurzbz_select=trim($resultBetriebsmittel[$pos]->betriebsmittelstatus_kurzbz);
+ $betriebsmittel_betriebsmittelstatus = new betriebsmittel_betriebsmittelstatus();
+ $status = $betriebsmittel_betriebsmittelstatus->load_last_status_by_betriebsmittel_id($resultBetriebsmittel[$pos]->betriebsmittel_id);
+ $betriebsmittelstatus_kurzbz_select = trim($status);
+ //$resultBetriebsmittel[$pos]->betriebsmittelstatus_kurzbz;
if (!$schreib_recht)
$htmlstring.=$betriebsmittelstatus_kurzbz_select;
else
diff --git a/vilesci/lehre/studienplan_gueltigkeit.php b/vilesci/lehre/studienplan_gueltigkeit.php
index 0b27a5e02..dea6d4ba0 100644
--- a/vilesci/lehre/studienplan_gueltigkeit.php
+++ b/vilesci/lehre/studienplan_gueltigkeit.php
@@ -34,6 +34,7 @@ if(!$rechte->isBerechtigt('lehre/studienordnung', null, 's'))
$studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:'';
$orgform_kurzbz = isset($_GET['orgform_kurzbz'])?$_GET['orgform_kurzbz']:'';
+$farbe = isset($_GET['farbe'])?true:false;
$db = new basis_db();
echo '
@@ -51,7 +52,7 @@ echo '
{
$("#t1").tablesorter(
{
- widgets: ["zebra"]
+ /*widgets: ["zebra"]*/
});
});
@@ -95,7 +96,7 @@ foreach ($orgform->result as $of)
echo '';
}
-echo '
+echo 'Unterschiede farblich hervorheben
';
@@ -127,6 +128,7 @@ echo ' | |