diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php index 6325f3b49..b8a7de4bd 100644 --- a/application/views/system/infocenter/infocenterData.php +++ b/application/views/system/infocenter/infocenterData.php @@ -10,7 +10,7 @@ ( SELECT zeitpunkt FROM system.tbl_log - WHERE app = \'aufnahme\' + WHERE taetigkeit_kurzbz = \'bewerbung\' AND person_id = p.person_id ORDER BY zeitpunkt DESC LIMIT 1 @@ -18,7 +18,7 @@ ( SELECT insertvon FROM system.tbl_log - WHERE app = \'aufnahme\' + WHERE taetigkeit_kurzbz = \'bewerbung\' AND person_id = p.person_id ORDER BY zeitpunkt DESC LIMIT 1 diff --git a/include/functions.inc.php b/include/functions.inc.php index eb49206f5..6f6c5cc3b 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -1082,9 +1082,19 @@ function cutString($string, $limit, $placeholderSign = '', $keepFileextension = } } -function PersonLog($person_id, $logtype_kurzbz, $logdata, $app, $oe_kurzbz = null, $user=null) +/** + * Erstellt einen Log Eintrag zu einer Person + * @param $person_id ID der Person. + * @param $logtype_kurzbz Typ des Logeintrages + * @param $logdata Array mit den zusaetzlichen Logdaten zu diesem Typ. + * @param $taetigkeit_kurzbz Kurzbz der Verarbeitungstaetigkeit. + * @param $app Applikation von der dieser Logeintrag stammt. (optional) + * @param $oe_kurzbz Kurzbz der Organisationseinheit. (optional) + * @param $user User der die Aktion durchgefuehrt hat. (optional) + */ +function PersonLog($person_id, $logtype_kurzbz, $logdata, $taetigkeit_kurzbz, $app = 'core', $oe_kurzbz = null, $user = null) { $personlog = new personlog(); - $personlog->log($person_id, $logtype_kurzbz, $logdata, $app, $oe_kurzbz, $user); + $personlog->log($person_id, $logtype_kurzbz, $logdata, $taetigkeit_kurzbz, $app, $oe_kurzbz, $user); } ?> diff --git a/include/personlog.class.php b/include/personlog.class.php index 03fa1e27b..1c008971c 100644 --- a/include/personlog.class.php +++ b/include/personlog.class.php @@ -29,6 +29,7 @@ class personlog extends basis_db public $person_id; public $zeitpunkt; // timestamp public $app; // varchar(32) + public $taetigkeit_kurzbz; // varchar(32) public $oe_kurzbz; // varchar(32) public $logtype_kurzbz; // varchar(32) public $logdata; @@ -42,12 +43,24 @@ class personlog extends basis_db parent::__construct(); } - public function log($person_id, $logtype_kurzbz, $logdata, $app='core', $oe_kurzbz=null, $user=null) + /** + * Erstellt einen Log Eintrag zu einer Person + * @param $person_id ID der Person. + * @param $logtype_kurzbz Typ des Logeintrages + * @param $logdata Array mit den zusaetzlichen Logdaten zu diesem Typ. + * @param $taetigkeit_kurzbz Kurzbz der Verarbeitungstaetigkeit. + * @param $app Applikation von der dieser Logeintrag stammt. + * @param $oe_kurzbz Kurzbz der Organisationseinheit. (optional) + * @param $user User der die Aktion durchgefuehrt hat. (optional) + * @return boolean true wenn erfolgreich, false im Fehlerfall. + */ + public function log($person_id, $logtype_kurzbz, $logdata, $taetigkeit_kurzbz, $app = 'core', $oe_kurzbz = null, $user = null) { - $qry = "INSERT INTO system.tbl_log(person_id, zeitpunkt, app, oe_kurzbz, + $qry = "INSERT INTO system.tbl_log(person_id, zeitpunkt, taetigkeit_kurzbz, app, oe_kurzbz, logtype_kurzbz, logdata, insertvon) VALUES(". $this->db_add_param($person_id).','. $this->db_add_param(date('Y-m-d H:i:s')).','. + $this->db_add_param($taetigkeit_kurzbz).','. $this->db_add_param($app).','. $this->db_add_param($oe_kurzbz).','. $this->db_add_param($logtype_kurzbz).','. diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 450c5f7bb..5af97ecff 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -1055,10 +1055,53 @@ if ($result = $db->db_query("SELECT conname FROM pg_constraint WHERE conname = ' echo '
Created foreign key tbl_filters_oe_kurzbz_fkey'; } } - // End filters //--------------------------------------------------------------------------------------------------------------------- +// system.tbl_verarbeitungstaetigkeit +if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_verarbeitungstaetigkeit")) +{ + $qry = " + CREATE TABLE system.tbl_verarbeitungstaetigkeit + ( + taetigkeit_kurzbz varchar(32) NOT NULL, + bezeichnung varchar(255), + bezeichnung_mehrsprachig varchar(255)[], + aktiv boolean DEFAULT true + ); + + ALTER TABLE system.tbl_verarbeitungstaetigkeit ADD CONSTRAINT pk_verarbeitungstaetigkeit PRIMARY KEY (taetigkeit_kurzbz); + + INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv) + VALUES('bewerbung','Bewerbung','{\'Bewerbung\',\'Bewerbung\'}', true); + INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv) + VALUES('aufnahme','Reihungs-/Aufnahmeverfahren','{\'Reihungs-/Aufnahmeverfahren\',\'Reihungs-/Aufnahmeverfahren\'}', true); + INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv) + VALUES('bewertung','Bewertung/Benotung','{\'Bewertung/Benotung\',\'Bewertung/Benotung\'}', true); + INSERT INTO system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz, bezeichnung, bezeichnung_mehrsprachig, aktiv) + VALUES('lehrauftraege','Lehraufträge','{\'Lehraufträge\',\'Lehraufträge\'}', true); + + GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_verarbeitungstaetigkeit TO vilesci; + GRANT SELECT ON system.tbl_verarbeitungstaetigkeit TO web; + "; + if (!$db->db_query($qry)) + echo 'tbl_verarbeitungstaetigkeit '.$db->db_last_error().'
'; + else + echo '
Created new table system.tbl_verarbeitungstaetigkeit'; +} + +// system.tbl_log.taetigkeit_kurzbz +if (!$result = @$db->db_query("SELECT taetigkeit_kurzbz FROM system.tbl_log")) +{ + $qry = " + ALTER TABLE system.tbl_log ADD COLUMN taetigkeit_kurzbz varchar(32); + ALTER TABLE system.tbl_log ADD CONSTRAINT fk_log_taetigkeit FOREIGN KEY (taetigkeit_kurzbz) REFERENCES system.tbl_verarbeitungstaetigkeit(taetigkeit_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; + "; + if (!$db->db_query($qry)) + echo 'system.tbl_log.taetigkeit_kurzbz '.$db->db_last_error().'
'; + else + echo '
Added Column taetigkeit_kurzbz to system.tbl_log'; +} // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -1309,13 +1352,14 @@ $tabellen=array( "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_log" => array("log_id","person_id","zeitpunkt","app","oe_kurzbz","logtype_kurzbz","logdata","insertvon"), + "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"), "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"), "system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art"), + "system.tbl_verarbeitungstaetigkeit" => array("taetigkeit_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig","aktiv"), "system.tbl_webservicelog" => array("webservicelog_id","webservicetyp_kurzbz","request_id","beschreibung","request_data","execute_time","execute_user"), "system.tbl_webservicerecht" => array("webservicerecht_id","berechtigung_kurzbz","methode","attribut","insertamum","insertvon","updateamum","updatevon","klasse"), "system.tbl_webservicetyp" => array("webservicetyp_kurzbz","beschreibung"),