From 21e43d7a0894ec036591cfc1e6d088a77a6ceb73 Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 27 May 2020 11:37:49 +0200 Subject: [PATCH 001/106] Created DB view public.vw.msg_vars_user (data of logged in user) This data will be used by the messaging system to provide data of the logged in user. --- system/dbupdate_3.3.php | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 64f4f490a..3112bacbb 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -196,6 +196,43 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_person LIMIT 1")) echo '
Granted privileges to vilesci on public.vw_msg_vars_person'; } +// CREATE OR REPLACE VIEW public.vw_msg_vars_user and grants privileges +if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_user LIMIT 1")) +{ + $qry = ' + CREATE OR REPLACE VIEW public.vw_msg_vars_user AS ( + SELECT DISTINCT ON + (b.uid) b.uid, + p.vorname, + p.nachname, + b.alias, + ma.telefonklappe AS "durchwahl" + FROM public.tbl_person p + JOIN public.tbl_benutzer b USING (person_id) + JOIN public.tbl_mitarbeiter ma ON ma.mitarbeiter_uid = b.uid + WHERE ma.personalnummer > 0 + );'; + + if(!$db->db_query($qry)) + echo 'public.vw_msg_vars_user: '.$db->db_last_error().'
'; + else + echo '
public.vw_msg_vars_user view created'; + + $qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_user TO web;'; + + if(!$db->db_query($qry)) + echo 'public.vw_msg_vars_user: '.$db->db_last_error().'
'; + else + echo '
Granted privileges to web on public.vw_msg_vars_user'; + + $qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_user TO vilesci;'; + + if(!$db->db_query($qry)) + echo 'public.vw_msg_vars_user: '.$db->db_last_error().'
'; + else + echo '
Granted privileges to vilesci on public.vw_msg_vars_user'; +} + //Spalte anmerkung und rechnungsadresse in tbl_adresse if(!$result = @$db->db_query("SELECT rechnungsadresse FROM public.tbl_adresse LIMIT 1")) { From 1be1d1c8e9b32b8bb47798901fd58f139b0b81eb Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 27 May 2020 11:48:05 +0200 Subject: [PATCH 002/106] Added GUI for 'Eigene Felder' + layout adaptations . GUI: added multidropdown 'Eigene Felder', which contains fields of the logged in user . Layout: Message text area has now min and max height; sending button now aligned correctly; multidropdowns now aligned to text area Signed-off-by: Cris --- .../system/messages/htmlWriteTemplate.php | 31 ++++++++++++++++--- public/js/messaging/messageWrite.js | 7 ++++- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/application/views/system/messages/htmlWriteTemplate.php b/application/views/system/messages/htmlWriteTemplate.php index 199a88cfa..95ab12630 100644 --- a/application/views/system/messages/htmlWriteTemplate.php +++ b/application/views/system/messages/htmlWriteTemplate.php @@ -83,19 +83,41 @@ 19 ? 19 : count($variables); echo $this->widgetlib->widget( 'MultipleDropdown_widget', array('elements' => success($variables)), array( 'name' => 'variables[]', 'id' => 'variables', - 'size' => count($variables), + 'size' => $size, 'multiple' => true ) ); ?> - +
+
+ + + 5 ? 5 : count($user_fields); + echo $this->widgetlib->widget( + 'MultipleDropdown_widget', + array('elements' => success($user_fields)), + array( + 'name' => 'user_fields[]', + 'id' => 'user_fields', + 'size' => $size, + 'multiple' => true + ) + ); + ?> +

@@ -111,14 +133,15 @@ ?> -
-
+

diff --git a/public/js/messaging/messageWrite.js b/public/js/messaging/messageWrite.js index 3a3a23792..1978fc08c 100644 --- a/public/js/messaging/messageWrite.js +++ b/public/js/messaging/messageWrite.js @@ -46,7 +46,12 @@ $(document).ready(function () { tinymce.init({ selector: "#bodyTextArea", - plugins: "autoresize" + plugins: "autoresize", + autoresize_on_init: false, + autoresize_min_height: 400, + autoresize_max_height: 400, + autoresize_bottom_margin: 10, + auto_focus: "bodyTextArea" }); tinymce.init({ From 7ab2155d6a0098b3127e353ad4ed29a85170f63c Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 27 May 2020 11:49:35 +0200 Subject: [PATCH 003/106] Added method to retrieve data of logged in user in Message model Signed-off-by: Cris --- application/models/system/Message_model.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/application/models/system/Message_model.php b/application/models/system/Message_model.php index 764c3ae14..5ebcc5ee9 100644 --- a/application/models/system/Message_model.php +++ b/application/models/system/Message_model.php @@ -191,4 +191,23 @@ class Message_model extends DB_Model return $this->execQuery(sprintf($query, is_array($person_id) ? 'IN' : '='), array($person_id)); } + + /** + * Get message vars for logged in user + * @param string $uid + * @return array|null + */ + public function getMsgVarsDataLoggedInUser() + { + $result = $this->db->query('SELECT * FROM public.vw_msg_vars_user WHERE uid = \''. getAuthUID(). '\''); + + if ($result) + { + return success($result->list_fields()); + } + else + { + return error($this->db->error(), FHC_DB_ERROR); + } + } } From a5e0c9ca5a89020cf0796f00bba657400a147a34 Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 27 May 2020 11:52:12 +0200 Subject: [PATCH 004/106] Added logic to provide fields of logged in user in Messaging system Signed-off-by: Cris --- application/libraries/MessageLib.php | 25 ++++++++++++++++++++++++ application/models/CL/Messages_model.php | 21 ++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index fd2051f48..31d33eda4 100644 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -215,6 +215,31 @@ class MessageLib return $messageVars; // otherwise returns the error } + + /** + * Retrieves message vars of the logged in user from view vw_msg_vars_user + */ + public function getMessageVarsLoggedInUser() + { + // Retrieves message vars from view vw_msg_vars + $messageVars = $this->_ci->MessageModel->getMsgVarsDataLoggedInUser(); + if (isSuccess($messageVars)) // if everything is ok + { + $variablesArray = array(); + $tmpVariablesArray = getData($messageVars); + + // Starts from 1 to skip the first element which is uid + for ($i = 1; $i < count($tmpVariablesArray); $i++) + { + $variablesArray['{my_'.str_replace(' ', '_', strtolower($tmpVariablesArray[$i])).'}'] + = 'my_'. strtoupper($tmpVariablesArray[$i]); + } + + return success($variablesArray); + } + + return $messageVars; // otherwise returns the error + } /** * Retrieves organisation units for each role that a user plays inside that organisation unit diff --git a/application/models/CL/Messages_model.php b/application/models/CL/Messages_model.php index 67e7ff969..2bec3dd9c 100644 --- a/application/models/CL/Messages_model.php +++ b/application/models/CL/Messages_model.php @@ -833,6 +833,26 @@ class Messages_model extends CI_Model $variables[] = $tmpVar; } + + // --------------------------------------------------------------------------------------- + // Retrieves message vars of logged in user from database view vw_msg_vars_person + $result = null; + + // If data contains a prestudent id + $result = $this->messagelib->getMessageVarsLoggedInUser(); + + if (isError($result)) show_error(getError($result)); + + // Then builds an array that contains objects with field name and field description of logged in user data + $user_fields = array(); + foreach (getData($result) as $id => $description) + { + $obj = new stdClass(); + $obj->id = $id; + $obj->description = $description; + + $user_fields[] = $obj; + } // --------------------------------------------------------------------------------------- // Retrieves the sender id @@ -853,6 +873,7 @@ class Messages_model extends CI_Model 'subject' => $replySubject, 'body' => $replyBody, 'variables' => $variables, + 'user_fields' => $user_fields, 'organisationUnits' => getData($organisationUnits), 'senderIsAdmin' => getData($senderIsAdmin), 'recipientsArray' => $recipientsArray, From 046994f14b667effcd07e120eaf153b3b508954e Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 27 May 2020 11:53:56 +0200 Subject: [PATCH 005/106] Added phrase 'meineFelder' Signed-off-by: Cris --- system/phrasesupdate.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 14af8e733..2672d5b91 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -6766,6 +6766,26 @@ When on hold, the date is only a reminder.', ) ) ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'meineFelder', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Meine Felder', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'My fields', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), ); From 634401485a5f857842e8a08a6431e7a7f1191526 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 28 May 2020 09:42:51 +0200 Subject: [PATCH 006/106] Renamed 'Meine Felder'-msg names and small method adaptation to retrieve fields Signed-off-by: Cris --- application/libraries/MessageLib.php | 6 +++--- application/models/system/Message_model.php | 17 +++++++++++++++++ system/dbupdate_3.3.php | 10 +++++----- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index 31d33eda4..e0622e664 100644 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -222,7 +222,7 @@ class MessageLib public function getMessageVarsLoggedInUser() { // Retrieves message vars from view vw_msg_vars - $messageVars = $this->_ci->MessageModel->getMsgVarsDataLoggedInUser(); + $messageVars = $this->_ci->MessageModel->getMsgVarsLoggedInUser(); if (isSuccess($messageVars)) // if everything is ok { $variablesArray = array(); @@ -231,8 +231,8 @@ class MessageLib // Starts from 1 to skip the first element which is uid for ($i = 1; $i < count($tmpVariablesArray); $i++) { - $variablesArray['{my_'.str_replace(' ', '_', strtolower($tmpVariablesArray[$i])).'}'] - = 'my_'. strtoupper($tmpVariablesArray[$i]); + $variablesArray['{'.str_replace(' ', '_', strtolower($tmpVariablesArray[$i])).'}'] + = strtoupper($tmpVariablesArray[$i]); } return success($variablesArray); diff --git a/application/models/system/Message_model.php b/application/models/system/Message_model.php index 5ebcc5ee9..0972f127f 100644 --- a/application/models/system/Message_model.php +++ b/application/models/system/Message_model.php @@ -171,6 +171,23 @@ class Message_model extends DB_Model return error($this->db->error(), FHC_DB_ERROR); } } + + /** + * Get message variables for logged in user + */ + public function getMsgVarsLoggedInUser() + { + $result = $this->db->query('SELECT * FROM public.vw_msg_vars_user WHERE 0 = 1'); + + if ($result) + { + return success($result->list_fields()); + } + else + { + return error($this->db->error(), FHC_DB_ERROR); + } + } /** * getMsgVarsDataByPrestudentId diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 3112bacbb..f0da8fab6 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -202,11 +202,11 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_user LIMIT 1")) $qry = ' CREATE OR REPLACE VIEW public.vw_msg_vars_user AS ( SELECT DISTINCT ON - (b.uid) b.uid, - p.vorname, - p.nachname, - b.alias, - ma.telefonklappe AS "durchwahl" + (b.uid) b.uid AS "my_uid", + p.vorname AS "my_vorname", + p.nachname AS "my_nachname", + b.alias AS "my_alias", + ma.telefonklappe AS "my_durchwahl" FROM public.tbl_person p JOIN public.tbl_benutzer b USING (person_id) JOIN public.tbl_mitarbeiter ma ON ma.mitarbeiter_uid = b.uid From ebd9c2c0ba8fc1efe22f3e0933c20d165e5a8b6e Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 28 May 2020 09:46:15 +0200 Subject: [PATCH 007/106] Added method to retrieve message vars data of the logged in user This method retrieves the specific data of the logged in user to be used in 'Meine Felder' Signed-off-by: Cris --- application/models/system/Message_model.php | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/application/models/system/Message_model.php b/application/models/system/Message_model.php index 0972f127f..6f2a3c7ed 100644 --- a/application/models/system/Message_model.php +++ b/application/models/system/Message_model.php @@ -210,21 +210,13 @@ class Message_model extends DB_Model } /** - * Get message vars for logged in user - * @param string $uid + * Get message vars data for logged in user * @return array|null */ - public function getMsgVarsDataLoggedInUser() + public function getMsgVarsDataByLoggedInUser() { - $result = $this->db->query('SELECT * FROM public.vw_msg_vars_user WHERE uid = \''. getAuthUID(). '\''); + $query = 'SELECT * FROM public.vw_msg_vars_user WHERE my_uid = ?'; - if ($result) - { - return success($result->list_fields()); - } - else - { - return error($this->db->error(), FHC_DB_ERROR); - } + return $this->execQuery($query, array(getAuthUID())); } } From 4f1796ee9d969812273f1e637d9ad5ad3c657a39 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 28 May 2020 09:48:31 +0200 Subject: [PATCH 008/106] Added logic to add message vars data of logged in user into message body Signed-off-by: Cris --- application/models/CL/Messages_model.php | 39 ++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/application/models/CL/Messages_model.php b/application/models/CL/Messages_model.php index 2bec3dd9c..d0676c5dd 100644 --- a/application/models/CL/Messages_model.php +++ b/application/models/CL/Messages_model.php @@ -393,7 +393,10 @@ class Messages_model extends CI_Model // Looping on receivers data foreach (getData($msgVarsData) as $receiver) { - $msgVarsDataArray = $this->_lowerReplaceSpaceArrayKeys((array)$receiver); // replaces array keys + // Merge receivers data with logged in user data + $msgVarsDataArray = $this->_addMsgVarsDataOfLoggedInUser($receiver); + + $msgVarsDataArray = $this->_lowerReplaceSpaceArrayKeys((array)getData($msgVarsDataArray)[0]); // replaces array keys $parsedSubject = parseText($subject, $msgVarsDataArray); $parsedBody = parseText($body, $msgVarsDataArray); @@ -600,6 +603,9 @@ class Messages_model extends CI_Model $parseMessageText = error('The given person_id is not a valid number'); if (is_numeric($person_id)) $parseMessageText = $this->MessageModel->getMsgVarsDataByPersonId($person_id); + + // Add message vars data of the logged in user + $parseMessageText = $this->_addMsgVarsDataOfLoggedInUser($parseMessageText); if (hasData($parseMessageText)) { @@ -623,7 +629,10 @@ class Messages_model extends CI_Model $parseMessageText = error('The given prestudent_id is not a valid number'); if (is_numeric($prestudent_id)) $parseMessageText = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id); - + + // Add message vars data of the logged in user + $parseMessageText = $this->_addMsgVarsDataOfLoggedInUser($parseMessageText); + if (hasData($parseMessageText)) { $parseMessageText = success( @@ -882,4 +891,30 @@ class Messages_model extends CI_Model 'type' => $type ); } + + /** + * Adds message vars data of the logged in user to the given object (that should also have message vars data) + * @param object $otherMsgVarsDataObj Can be success object or simple object. + * @return object Returns success object. + */ + public function _addMsgVarsDataOfLoggedInUser($otherMsgVarsDataObj) + { + // First check if param type is object + if (!is_object($otherMsgVarsDataObj)) show_error('Must pass an object to merge with data of logged in user'); + + // If it is a return object, extract the simple data object + if (isSuccess($otherMsgVarsDataObj)) + { + $otherMsgVarsDataObj = getData($otherMsgVarsDataObj)[0]; + } + + // Retrieve message vars data of the logged in user + if (!$msgVarsDataLoggedInUser = getData($this->MessageModel->getMsgVarsDataByLoggedInUser())[0]) + { + return success($otherMsgVarsDataObj); // If failed, return at least given object as expected success object + } + + return success(array((object)(array_merge((array) $otherMsgVarsDataObj, (array) $msgVarsDataLoggedInUser)))); + + } } From 8b80f2226e63c3b3471082946cdd91113a7540e5 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 2 Jun 2020 15:03:31 +0200 Subject: [PATCH 009/106] Added logic for cronjob to add senders fields into message body Signed-off-by: Cris --- application/models/CL/Messages_model.php | 25 +++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/application/models/CL/Messages_model.php b/application/models/CL/Messages_model.php index d0676c5dd..ac3a16e3e 100644 --- a/application/models/CL/Messages_model.php +++ b/application/models/CL/Messages_model.php @@ -48,6 +48,9 @@ class Messages_model extends CI_Model $this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel'); // Loads model Prestudent_model $this->load->model('crm/Prestudent_model', 'PrestudentModel'); + // Loads model Benutzer_model + $this->load->model('person/Benutzer_model', 'BenutzerModel'); + } //------------------------------------------------------------------------------------------------------------------ @@ -463,6 +466,14 @@ class Messages_model extends CI_Model if (!hasData($msgVarsData)) show_error('No recipients were given'); $prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents); + + // Get the senders uid + $this->BenutzerModel->addSelect('uid'); + if (!$result = getData($this->BenutzerModel->getFromPersonId($sender_id))) + { + show_error('No sender_uid found'); + } + $sender_uid = $result[0]->uid; // Adds the organisation unit to each prestudent if (isEmptyString($oe_kurzbz) && hasData($msgVarsData) && hasData($prestudentsData)) @@ -472,7 +483,15 @@ class Messages_model extends CI_Model foreach (getData($msgVarsData) as $receiver) { - $msgVarsDataArray = $this->_lowerReplaceSpaceArrayKeys((array)$receiver); // replaces array keys + /** + * Merge receivers data with senders data + * NOTE: _addMsgVarsDataOfLoggedInUser usually retrieves data of the logged in user that is set in the + * templates user fields. As sendExplicitTemplateSenderId is run by a job, a sender uid is passed to be used + * instead the logged in user. + */ + $msgVarsDataArray = $this->_addMsgVarsDataOfLoggedInUser($receiver, $sender_uid); + + $msgVarsDataArray = $this->_lowerReplaceSpaceArrayKeys((array)getData($msgVarsDataArray)[0]); // replaces array keys // Additional message variables if (is_array($msgVars)) $msgVarsDataArray = array_merge($msgVarsDataArray, $msgVars); @@ -897,7 +916,7 @@ class Messages_model extends CI_Model * @param object $otherMsgVarsDataObj Can be success object or simple object. * @return object Returns success object. */ - public function _addMsgVarsDataOfLoggedInUser($otherMsgVarsDataObj) + public function _addMsgVarsDataOfLoggedInUser($otherMsgVarsDataObj, $uid = null) { // First check if param type is object if (!is_object($otherMsgVarsDataObj)) show_error('Must pass an object to merge with data of logged in user'); @@ -909,7 +928,7 @@ class Messages_model extends CI_Model } // Retrieve message vars data of the logged in user - if (!$msgVarsDataLoggedInUser = getData($this->MessageModel->getMsgVarsDataByLoggedInUser())[0]) + if (!$msgVarsDataLoggedInUser = getData($this->MessageModel->getMsgVarsDataByLoggedInUser($uid))[0]) { return success($otherMsgVarsDataObj); // If failed, return at least given object as expected success object } From d35ee0c834becab5700ba448284864d4b49f749e Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 2 Jun 2020 15:06:22 +0200 Subject: [PATCH 010/106] Adapted method to retrieve user fields when method is called by a cronjob Signed-off-by: Cris --- application/models/system/Message_model.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/application/models/system/Message_model.php b/application/models/system/Message_model.php index 6f2a3c7ed..d9f8585ed 100644 --- a/application/models/system/Message_model.php +++ b/application/models/system/Message_model.php @@ -211,12 +211,23 @@ class Message_model extends DB_Model /** * Get message vars data for logged in user + * @param string uid The UID should ONLY be passed if this method is called by a cronjob. + * This is to enable jobs to use templates which use logged-in-user fields ('Eigene Felder'). * @return array|null */ - public function getMsgVarsDataByLoggedInUser() + public function getMsgVarsDataByLoggedInUser($uid = null) { + if (is_string($uid)) + { + $params = array($uid); + } + else + { + $params = array(getAuthUID()); + } + $query = 'SELECT * FROM public.vw_msg_vars_user WHERE my_uid = ?'; - return $this->execQuery($query, array(getAuthUID())); + return $this->execQuery($query, $params); } } From 2906c1803e9d0caf5cac630730eb1de18ce2cdac Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 2 Jun 2020 16:29:51 +0200 Subject: [PATCH 011/106] Changed 'Eigene Felder'-Alias: if alias is NULL, uid is used as alias This is to ensure the email is built correctly. Signed-off-by: Cris --- system/dbupdate_3.3.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index f0da8fab6..f03718116 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -205,7 +205,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_user LIMIT 1")) (b.uid) b.uid AS "my_uid", p.vorname AS "my_vorname", p.nachname AS "my_nachname", - b.alias AS "my_alias", + COALESCE(b.alias, b.uid) AS "my_alias", ma.telefonklappe AS "my_durchwahl" FROM public.tbl_person p JOIN public.tbl_benutzer b USING (person_id) From 8304b4a1ae50668156b127e17bda2948a70057aa Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 2 Jun 2020 16:31:52 +0200 Subject: [PATCH 012/106] Adapted GUI: display user fields in tinymce-editor on doubleclick Signed-off-by: Cris --- public/js/messaging/messageWrite.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/public/js/messaging/messageWrite.js b/public/js/messaging/messageWrite.js index 1978fc08c..8b1d73bdf 100644 --- a/public/js/messaging/messageWrite.js +++ b/public/js/messaging/messageWrite.js @@ -78,6 +78,21 @@ $(document).ready(function () }); } + if ($("#user_fields")) + { + $("#user_fields").dblclick(function () + { + if ($("#bodyTextArea")) + { + //if editor active add at cursor position, otherwise at end + if (tinymce.activeEditor.id === "bodyTextArea") + tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).children(":selected").val()); + else + tinyMCE.get("bodyTextArea").setContent(tinyMCE.get("bodyTextArea").getContent() + $(this).children(":selected").val()); + } + }); + } + if ($("#recipients")) { $("#recipients").change(tinymcePreviewSetContent); From 742c9fa8572745b9f7c4a570bf6bb4550eac30df Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 4 Jun 2020 11:33:58 +0200 Subject: [PATCH 013/106] Check that user is an active employee in message-cronjob Signed-off-by: Cris --- application/models/CL/Messages_model.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/models/CL/Messages_model.php b/application/models/CL/Messages_model.php index ac3a16e3e..f24e16086 100644 --- a/application/models/CL/Messages_model.php +++ b/application/models/CL/Messages_model.php @@ -467,8 +467,9 @@ class Messages_model extends CI_Model $prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents); - // Get the senders uid + // Get the senders uid (if user is an active employee) $this->BenutzerModel->addSelect('uid'); + $this->BenutzerModel->addJoin('public.tbl_mitarbeiter ma', 'ma.mitarbeiter_uid = uid'); if (!$result = getData($this->BenutzerModel->getFromPersonId($sender_id))) { show_error('No sender_uid found'); From 2d86477e1b106978ff9d2bc3a76b8a64659162e8 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 2 Jul 2020 12:04:30 +0200 Subject: [PATCH 014/106] Added column co_name to tbl_adresse (= Abweichender Empfaenger) Signed-off-by: Cris --- system/dbupdate_3.3.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index f9d7197aa..aee61d116 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4200,6 +4200,19 @@ if(!$result = @$db->db_query("SELECT sort FROM lehre.tbl_abschlussbeurteilung LI echo '
lehre.tbl_abschlussbeurteilung: Spalte sort hinzugefuegt!
'; } +//Spalte co_adresse in tbl_adresse +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(64); + 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'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -4351,7 +4364,7 @@ $tabellen=array( "lehre.tbl_zeugnis" => array("zeugnis_id","student_uid","zeugnis","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id"), "lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id","punkte"), "public.ci_apikey" => array("apikey_id","key","level","ignore_limits","date_created"), - "public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id","rechnungsadresse","anmerkung"), + "public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id","rechnungsadresse","anmerkung", "co_name"), "public.tbl_akte" => array("akte_id","person_id","dokument_kurzbz","uid","inhalt","mimetype","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id","dms_id","nachgereicht","anmerkung","titel_intern","anmerkung_intern","nachgereicht_am","ausstellungsnation","formal_geprueft_amum","archiv","signiert","stud_selfservice","akzeptiertamum"), "public.tbl_ampel" => array("ampel_id","kurzbz","beschreibung","benutzer_select","deadline","vorlaufzeit","verfallszeit","insertamum","insertvon","updateamum","updatevon","email","verpflichtend","buttontext"), "public.tbl_ampel_benutzer_bestaetigt" => array("ampel_benutzer_bestaetigt_id","ampel_id","uid","insertamum","insertvon"), From 998127740f7ac191c7ca80c5beba1db35ebb880e Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 2 Jul 2020 12:08:19 +0200 Subject: [PATCH 015/106] Added co_name to FAS Adressedialogue/-fields & to class Adresse This new field co_name = Abweichender Empfaenger is required for BIS Meldung. Signed-off-by: Cris --- content/adressedialog.js.php | 409 ++++---- content/adressedialog.xul.php | 403 ++++---- content/fasDBDML.php | 1645 +++++++++++++++++---------------- content/kontakt.js.php | 1596 ++++++++++++++++---------------- content/kontakt.xul.php | 681 +++++++------- include/adresse.class.php | 21 +- rdf/adresse.rdf.php | 1 + 7 files changed, 2395 insertions(+), 2361 deletions(-) diff --git a/content/adressedialog.js.php b/content/adressedialog.js.php index 6f4eaf5fe..210b208b0 100644 --- a/content/adressedialog.js.php +++ b/content/adressedialog.js.php @@ -1,204 +1,207 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../config/vilesci.config.inc.php'); -require_once('../include/functions.inc.php'); - -$user = get_uid(); -loadVariables($user); -?> - -// **** -// * Laedt die zu bearbeitenden Daten -// **** -function AdresseInit(adresse_id, person_id) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - if(adresse_id!='') - { - //Daten holen - var url = 'rdf/adresse.rdf.php?adresse_id='+adresse_id+'&'+gettimestamp(); - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. - getService(Components.interfaces.nsIRDFService); - - var dsource = rdfService.GetDataSourceBlocking(url); - - var subject = rdfService.GetResource("http://www.technikum-wien.at/adresse/" + adresse_id); - - var predicateNS = "http://www.technikum-wien.at/adresse/rdf"; - - //RDF parsen - - person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" )); - name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#name" )); - strasse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#strasse" )); - plz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#plz" )); - ort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ort" )); - gemeinde = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gemeinde" )); - nation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nation" )); - typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#typ" )); - heimatadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#heimatadresse" )); - zustelladresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zustelladresse" )); - firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" )); - rechnungsadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rechnungsadresse" )); - anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" )); - neu = false; - } - else - { - //Defaultwerte bei Neuem Datensatz - neu = true; - name=''; - strasse=''; - plz=''; - ort=''; - gemeinde='' - nation='A'; - typ='h'; - heimatadresse='Ja'; - zustelladresse='Ja'; - firma_id=''; - rechnungsadresse='Nein'; - anmerkung=''; - } - - document.getElementById('adresse-checkbox-neu').checked=neu; - document.getElementById('adresse-textbox-person_id').value=person_id; - document.getElementById('adresse-textbox-adresse_id').value=adresse_id; - document.getElementById('adresse-textbox-name').value=name; - document.getElementById('adresse-textbox-strasse').value=strasse; - document.getElementById('adresse-textbox-plz').value=plz; - AdresseLoadGemeinde(true); - document.getElementById('adresse-textbox-gemeinde').value=gemeinde; - AdresseLoadOrtschaft(true); - document.getElementById('adresse-textbox-ort').value=ort; - document.getElementById('adresse-menulist-nation').value=nation; - document.getElementById('adresse-menulist-typ').value=typ; - if(heimatadresse=='Ja') - document.getElementById('adresse-checkbox-heimatadresse').checked=true; - else - document.getElementById('adresse-checkbox-heimatadresse').checked=false; - - if(zustelladresse=='Ja') - document.getElementById('adresse-checkbox-zustelladresse').checked=true; - else - document.getElementById('adresse-checkbox-zustelladresse').checked=false; - document.getElementById('adresse-menulist-firma').value=firma_id; - document.getElementById('adresse-textbox-anmerkung').value=anmerkung; - if(rechnungsadresse=='Ja') - document.getElementById('adresse-checkbox-rechnungsadresse').checked=true; - else - document.getElementById('adresse-checkbox-rechnungsadresse').checked=false; -} - -// **** -// * Speichern der Daten -// **** -function AdresseSpeichern() -{ - if(window.opener.KontaktAdresseSpeichern(document)) - window.close(); - else - this.focus(); -} - -// **** -// * Laedt die Gemeinden zur eingegebenen Postleitzahl -// **** -function AdresseLoadGemeinde(blocking) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - menulist_gemeinde = document.getElementById('adresse-textbox-gemeinde'); - if(document.getElementById('adresse-menulist-nation').value=='A') - { - menulist_gemeinde.value=''; - document.getElementById('adresse-textbox-ort').value=''; - } - plz = document.getElementById('adresse-textbox-plz').value; - - if(plz.length>3) - { - var url = 'rdf/gemeinde.rdf.php?plz='+plz+'&'+gettimestamp(); - - var oldDatasources = menulist_gemeinde.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - menulist_gemeinde.database.RemoveDataSource(oldDatasources.getNext()); - } - //Refresh damit die entfernten DS auch wirklich entfernt werden - menulist_gemeinde.builder.rebuild(); - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - if(blocking) - var datasource = rdfService.GetDataSourceBlocking(url); - else - var datasource = rdfService.GetDataSource(url); - datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - menulist_gemeinde.database.AddDataSource(datasource); - - menulist_gemeinde.builder.rebuild(); - } -} - -// **** -// * Laedt die Ortschaften zu Plz und Gemeinde -// **** -function AdresseLoadOrtschaft(blocking) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - gemeinde = document.getElementById('adresse-textbox-gemeinde').value; - menulist_ort = document.getElementById('adresse-textbox-ort'); - if(document.getElementById('adresse-menulist-nation').value=='A') - { - menulist_ort.value=''; - } - plz = document.getElementById('adresse-textbox-plz').value; - - if(plz.length>3 && gemeinde!='') - { - var url = 'rdf/gemeinde.rdf.php?plz='+plz+'&gemeinde='+encodeURIComponent(gemeinde)+'&'+gettimestamp(); - - var oldDatasources = menulist_ort.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - menulist_ort.database.RemoveDataSource(oldDatasources.getNext()); - } - //Refresh damit die entfernten DS auch wirklich entfernt werden - menulist_ort.builder.rebuild(); - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - if(blocking) - var datasource1 = rdfService.GetDataSourceBlocking(url); - else - var datasource1 = rdfService.GetDataSource(url); - datasource1.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - datasource1.QueryInterface(Components.interfaces.nsIRDFXMLSink); - menulist_ort.database.AddDataSource(datasource1); - - menulist_ort.builder.rebuild(); - } +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); + +$user = get_uid(); +loadVariables($user); +?> + +// **** +// * Laedt die zu bearbeitenden Daten +// **** +function AdresseInit(adresse_id, person_id) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + if(adresse_id!='') + { + //Daten holen + var url = 'rdf/adresse.rdf.php?adresse_id='+adresse_id+'&'+gettimestamp(); + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. + getService(Components.interfaces.nsIRDFService); + + var dsource = rdfService.GetDataSourceBlocking(url); + + var subject = rdfService.GetResource("http://www.technikum-wien.at/adresse/" + adresse_id); + + var predicateNS = "http://www.technikum-wien.at/adresse/rdf"; + + //RDF parsen + + person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" )); + name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#name" )); + strasse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#strasse" )); + plz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#plz" )); + ort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ort" )); + gemeinde = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gemeinde" )); + nation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nation" )); + typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#typ" )); + heimatadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#heimatadresse" )); + zustelladresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zustelladresse" )); + co_name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#co_name" )); + firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" )); + rechnungsadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rechnungsadresse" )); + anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" )); + neu = false; + } + else + { + //Defaultwerte bei Neuem Datensatz + neu = true; + name=''; + strasse=''; + plz=''; + ort=''; + gemeinde='' + nation='A'; + typ='h'; + heimatadresse='Ja'; + zustelladresse='Ja'; + co_name = ''; + firma_id=''; + rechnungsadresse='Nein'; + anmerkung=''; + } + + document.getElementById('adresse-checkbox-neu').checked=neu; + document.getElementById('adresse-textbox-person_id').value=person_id; + document.getElementById('adresse-textbox-adresse_id').value=adresse_id; + document.getElementById('adresse-textbox-name').value=name; + document.getElementById('adresse-textbox-strasse').value=strasse; + document.getElementById('adresse-textbox-plz').value=plz; + AdresseLoadGemeinde(true); + document.getElementById('adresse-textbox-gemeinde').value=gemeinde; + AdresseLoadOrtschaft(true); + document.getElementById('adresse-textbox-ort').value=ort; + document.getElementById('adresse-menulist-nation').value=nation; + document.getElementById('adresse-menulist-typ').value=typ; + if(heimatadresse=='Ja') + document.getElementById('adresse-checkbox-heimatadresse').checked=true; + else + document.getElementById('adresse-checkbox-heimatadresse').checked=false; + + if(zustelladresse=='Ja') + document.getElementById('adresse-checkbox-zustelladresse').checked=true; + else + document.getElementById('adresse-checkbox-zustelladresse').checked=false; + document.getElementById('adresse-textbox-co_name').value = co_name; + document.getElementById('adresse-menulist-firma').value=firma_id; + document.getElementById('adresse-textbox-anmerkung').value=anmerkung; + if(rechnungsadresse=='Ja') + document.getElementById('adresse-checkbox-rechnungsadresse').checked=true; + else + document.getElementById('adresse-checkbox-rechnungsadresse').checked=false; +} + +// **** +// * Speichern der Daten +// **** +function AdresseSpeichern() +{ + if(window.opener.KontaktAdresseSpeichern(document)) + window.close(); + else + this.focus(); +} + +// **** +// * Laedt die Gemeinden zur eingegebenen Postleitzahl +// **** +function AdresseLoadGemeinde(blocking) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + menulist_gemeinde = document.getElementById('adresse-textbox-gemeinde'); + if(document.getElementById('adresse-menulist-nation').value=='A') + { + menulist_gemeinde.value=''; + document.getElementById('adresse-textbox-ort').value=''; + } + plz = document.getElementById('adresse-textbox-plz').value; + + if(plz.length>3) + { + var url = 'rdf/gemeinde.rdf.php?plz='+plz+'&'+gettimestamp(); + + var oldDatasources = menulist_gemeinde.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + menulist_gemeinde.database.RemoveDataSource(oldDatasources.getNext()); + } + //Refresh damit die entfernten DS auch wirklich entfernt werden + menulist_gemeinde.builder.rebuild(); + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + if(blocking) + var datasource = rdfService.GetDataSourceBlocking(url); + else + var datasource = rdfService.GetDataSource(url); + datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + menulist_gemeinde.database.AddDataSource(datasource); + + menulist_gemeinde.builder.rebuild(); + } +} + +// **** +// * Laedt die Ortschaften zu Plz und Gemeinde +// **** +function AdresseLoadOrtschaft(blocking) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + gemeinde = document.getElementById('adresse-textbox-gemeinde').value; + menulist_ort = document.getElementById('adresse-textbox-ort'); + if(document.getElementById('adresse-menulist-nation').value=='A') + { + menulist_ort.value=''; + } + plz = document.getElementById('adresse-textbox-plz').value; + + if(plz.length>3 && gemeinde!='') + { + var url = 'rdf/gemeinde.rdf.php?plz='+plz+'&gemeinde='+encodeURIComponent(gemeinde)+'&'+gettimestamp(); + + var oldDatasources = menulist_ort.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + menulist_ort.database.RemoveDataSource(oldDatasources.getNext()); + } + //Refresh damit die entfernten DS auch wirklich entfernt werden + menulist_ort.builder.rebuild(); + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + if(blocking) + var datasource1 = rdfService.GetDataSourceBlocking(url); + else + var datasource1 = rdfService.GetDataSource(url); + datasource1.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + datasource1.QueryInterface(Components.interfaces.nsIRDFXMLSink); + menulist_ort.database.AddDataSource(datasource1); + + menulist_ort.builder.rebuild(); + } } \ No newline at end of file diff --git a/content/adressedialog.xul.php b/content/adressedialog.xul.php index 9cac357de..f4f530bf0 100644 --- a/content/adressedialog.xul.php +++ b/content/adressedialog.xul.php @@ -1,199 +1,206 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -header("Cache-Control: no-cache"); -header("Cache-Control: post-check=0, pre-check=0",false); -header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); -header("Pragma: no-cache"); -header("Content-type: application/vnd.mozilla.xul+xml"); - -include('../config/vilesci.config.inc.php'); -echo ''."\n"; - -echo ''; -echo ''; - -if(isset($_GET['adresse_id']) && is_numeric($_GET['adresse_id'])) - $adresse_id=$_GET['adresse_id']; -else - $adresse_id=''; - -if(isset($_GET['person_id']) && is_numeric($_GET['person_id'])) - $person_id=$_GET['person_id']; -else - $person_id=''; -?> - -)" - > - - @@ -95,7 +96,7 @@ foreach ($orgform->result as $of) echo ''; } -echo ' +echo 'Unterschiede farblich hervorheben '; @@ -127,6 +128,7 @@ echo ' '; $start=0; +$color = 'black'; foreach($studiensemester->studiensemester as $row_stsem) { @@ -141,7 +143,12 @@ foreach($studiensemester->studiensemester as $row_stsem) foreach($gueltigkeit[$row_stsem->studiensemester_kurzbz][$i] as $row_studienplan) { $start=true; - $row .= $row_studienplan.'
'; + // Die Farbe des Studienplans ist immer gleich bleibend nach der Bezeichnung des Studienplans + if ($farbe == true) + { + $color = 'hsl('.abs((crc32($row_studienplan))*2 % 360).', 90%, 40%)'; + } + $row .= ''.$row_studienplan.'
'; } } $row .= ''; From 3b33b6bcdb603b7836be6dfaaaad84c9d3f15f0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 18 Sep 2020 11:55:52 +0200 Subject: [PATCH 049/106] Formatierung des Betrags bei automatisierten Gegenbuchungen korrigiert --- application/models/crm/Konto_model.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/application/models/crm/Konto_model.php b/application/models/crm/Konto_model.php index eae38a49e..a3b5cdbb6 100644 --- a/application/models/crm/Konto_model.php +++ b/application/models/crm/Konto_model.php @@ -48,17 +48,20 @@ class Konto_model extends DB_Model 'studiengang_kz' => $buchung->studiengang_kz, 'studiensemester_kurzbz' => $buchung->studiensemester_kurzbz, 'buchungsnr_verweis' => $buchungsnr, - 'betrag' => $betragOffen*(-1), + 'betrag' => str_replace(',','.',$betragOffen*(-1)), 'buchungsdatum' => date('Y-m-d'), 'buchungstext' => $buchung->buchungstext, 'insertamum' => date('Y-m-d H:i:s'), 'insertvon' => '', 'buchungstyp_kurzbz' => $buchung->buchungstyp_kurzbz, ); + return $this->insert($data); } else + { return error('Failed to load Payment'); + } } else { From ecfe6762a720e122076d30617b2bb25b56e55b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 18 Sep 2020 16:01:23 +0200 Subject: [PATCH 050/106] Zahlungsreferenz im CIS kann nun ausgeblendet werden --- cis/private/profile/zahlungen_details.php | 19 +++++++++++++------ config/global.config-default.inc.php | 3 +++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/cis/private/profile/zahlungen_details.php b/cis/private/profile/zahlungen_details.php index 650ee81c0..5b56bea8c 100644 --- a/cis/private/profile/zahlungen_details.php +++ b/cis/private/profile/zahlungen_details.php @@ -15,9 +15,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Martin Tatzber , + * Authors: Martin Tatzber , */ require_once('../../../config/cis.config.inc.php'); +require_once('../../../config/global.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/konto.class.php'); require_once('../../../include/bankverbindung.class.php'); @@ -28,7 +29,7 @@ require_once('../../../include/benutzer.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/student.class.php'); require_once('../../../include/prestudent.class.php'); - + $uid = get_uid(); if(isset($_GET['uid'])) @@ -48,7 +49,7 @@ if(isset($_GET['uid'])) } else $getParam=''; - + $benutzer = new benutzer(); if(!$benutzer->load($uid)) die('Benutzer nicht gefunden'); @@ -88,7 +89,7 @@ $oe=new organisationseinheit(); $oe->load($studiengang->oe_kurzbz); $konto->getBuchungstyp(); -$buchungstyp = array(); +$buchungstyp = array(); foreach ($konto->result as $row) $buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung; @@ -153,7 +154,13 @@ if($bic!='') '.$bic.' '; } -if($konto->zahlungsreferenz!='') +if ($konto->zahlungsreferenz != '' + && + ( + !defined('ZAHLUNGSBESTAETIGUNG_ZAHLUNGSREFERENZ_ANZEIGEN') + || ZAHLUNGSBESTAETIGUNG_ZAHLUNGSREFERENZ_ANZEIGEN == true + ) +) { echo ' @@ -189,7 +196,7 @@ foreach($addon->result as $a) '; } - + } echo ''; diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 8d4687401..320f7adb3 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -303,4 +303,7 @@ 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); ?> From 4fa86ce173808809e7596ac14b3a7fb7e3ab49ba Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Tue, 22 Sep 2020 11:20:01 +0200 Subject: [PATCH 051/106] display latest status in status bar in inventory search --- ...riebsmittel_betriebsmittelstatus.class.php | 43 ++++++++++++++++++- vilesci/inventar/inventar.php | 17 +++++--- 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/include/betriebsmittel_betriebsmittelstatus.class.php b/include/betriebsmittel_betriebsmittelstatus.class.php index fa259df03..e5733ec03 100644 --- a/include/betriebsmittel_betriebsmittelstatus.class.php +++ b/include/betriebsmittel_betriebsmittelstatus.class.php @@ -368,6 +368,47 @@ class betriebsmittel_betriebsmittelstatus extends basis_db $this->errormsg = 'Fehler beim Entfernen des Betriebsmittel Betriebsmittelstatus-Datensatzes'; return false; } - } + } + + /** + * Laedt den letzten Stauts eines Betriebsmittels + * @param $betriebsmittel_id + * @return betriebsmittelstatus_kurzbz wenn ok, false im Fehlerfall + */ + public function load_last_status_by_betriebsmittel_id($betriebsmittel_id) + { + $this->result=array(); + $this->errormsg=''; + if ($betriebsmittel_id) + $this->betriebsmittel_id=$betriebsmittel_id; + + if(!is_numeric($this->betriebsmittel_id)) + { + $this->errormsg = 'Betriebsmittel_id ist ungueltig'; + return false; + } + + $qry=' SELECT * FROM wawi.tbl_betriebsmittel_betriebsmittelstatus + WHERE betriebsmittel_id='.$this->db_add_param(trim($this->betriebsmittel_id), FHC_INTEGER).' + ORDER BY betriebsmittelbetriebsmittelstatus_id DESC LIMIT 1'; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + return $row->betriebsmittelstatus_kurzbz; + } + else + { + $this->errormsg='Es wurde kein Eintrag gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> diff --git a/vilesci/inventar/inventar.php b/vilesci/inventar/inventar.php index 938d62094..801512f5f 100644 --- a/vilesci/inventar/inventar.php +++ b/vilesci/inventar/inventar.php @@ -334,11 +334,11 @@ if (!$uid = get_uid()) - @@ -1007,8 +1007,11 @@ function output_inventar($debug=false,$resultBetriebsmittel=null,$resultBetriebs $htmlstring.=''; // mit Berechtigung ist der Status zum bearbeiten - $betriebsmittelstatus_kurzbz_select=trim($resultBetriebsmittel[$pos]->betriebsmittelstatus_kurzbz); - if (!$schreib_recht) + $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 { From b79ab2a043cc07b0168e6e03f74284a5ee171304 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 23 Sep 2020 10:16:57 +0200 Subject: [PATCH 052/106] add dropdown again when writing permissions --- vilesci/inventar/inventar.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vilesci/inventar/inventar.php b/vilesci/inventar/inventar.php index 801512f5f..cca67eaa0 100644 --- a/vilesci/inventar/inventar.php +++ b/vilesci/inventar/inventar.php @@ -1011,7 +1011,7 @@ function output_inventar($debug=false,$resultBetriebsmittel=null,$resultBetriebs $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) + if (!$schreib_recht) $htmlstring.=$betriebsmittelstatus_kurzbz_select; else { From b62a2007af3862ea0456741bfeb0941fa11efc85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 23 Sep 2020 16:33:14 +0200 Subject: [PATCH 053/106] Schlagwortdienst auf HTTPS geaendert --- cis/private/lehre/swd.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/private/lehre/swd.php b/cis/private/lehre/swd.php index dfdebfcdb..b7fa82ac5 100644 --- a/cis/private/lehre/swd.php +++ b/cis/private/lehre/swd.php @@ -1,5 +1,5 @@ Date: Thu, 24 Sep 2020 08:25:28 +0200 Subject: [PATCH 054/106] =?UTF-8?q?zeige=20keine=20Pr=C3=BCfungstermine=20?= =?UTF-8?q?wo=20Note=20vorhanden=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lehre/pruefung/pruefungsanmeldung.json.php | 2 +- include/pruefungCis.class.php | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 07999f47d..e201fbe30 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -156,7 +156,7 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null) } $lehrveranstaltungen=$lvIds; $pruefung = new pruefungCis(); - if($pruefung->getPruefungByLv($lehrveranstaltungen)) + if($pruefung->getPruefungByLv($lehrveranstaltungen, $uid)) { $pruefungen = array(); foreach($pruefung->lehrveranstaltungen as $key=>$lv) diff --git a/include/pruefungCis.class.php b/include/pruefungCis.class.php index 1ddf88443..3439793da 100644 --- a/include/pruefungCis.class.php +++ b/include/pruefungCis.class.php @@ -590,7 +590,7 @@ class pruefungCis extends basis_db * @param String|Array $lehrveranstaltung_IDs einzelne ID einer Lehrveranstaltung oder ein Array von IDs * @return boolean true, wenn ok; false, im Fehlerfall */ - public function getPruefungByLv($lehrveranstaltung_IDs) + public function getPruefungByLv($lehrveranstaltung_IDs, $uid = null) { if(empty($lehrveranstaltung_IDs)) { @@ -612,7 +612,17 @@ class pruefungCis extends basis_db $in = $lehrveranstaltung_IDs; } - $qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.');'; + $qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.')'; + + if ($uid !== null) + { + // LVs entfernen wo schon eine Note für UID vorhanden ist + $qry .= " AND lehrveranstaltung_id NOT IN ( + SELECT lehrveranstaltung_id + FROM lehre.tbl_pruefung + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE student_uid = " . $this->db_add_param($uid) . ");"; + } if($this->db_query($qry)) { From 08536d63df9e8f1d14e2f7eeae8307d2bf736e61 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Fri, 25 Sep 2020 12:19:18 +0200 Subject: [PATCH 055/106] display Full Name of Supervisors for vacation reqeust --- cis/private/profile/urlaubstool.php | 9 +++++- cis/private/profile/zeitsperre_resturlaub.php | 12 ++++++-- include/person.class.php | 29 +++++++++++++++++++ 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index 9d33b25ae..08e9eb766 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -257,19 +257,26 @@ if(isset($_GET['speichern']) && isset($_GET['wtag'])) if(!$error) { //Mail an Vorgesetzten + $prsn = new person(); + $vorgesetzter = $ma->getVorgesetzte($uid); if($vorgesetzter) { $to=''; + $fullName =''; foreach($ma->vorgesetzte as $vg) { if($to!='') { $to.=', '.$vg.'@'.DOMAIN; + $name = $prsn->getFullNameFromBenutzer($vg); + $fullName = ', '.$name; } else { $to.=$vg.'@'.DOMAIN; + $name = $prsn->getFullNameFromBenutzer($vg); + $fullName = $name; } } @@ -295,7 +302,7 @@ if(isset($_GET['speichern']) && isset($_GET['wtag'])) $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigabeansuchenUrlaub'), $message); if($mail->send()) { - $vgmail="".$p->t('urlaubstool/freigabemailWurdeVersandt',array($to)).""; + $vgmail="".$p->t('urlaubstool/freigabemailWurdeVersandt',array($fullName)).""; } else { diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index b7654310e..2f7840108 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -413,15 +413,23 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ if($zeitsperre->new && $zeitsperre->zeitsperretyp_kurzbz=='Urlaub') { //Beim Anlegen von neuen Urlauben wird ein Mail an den Vorgesetzten versendet um diesen Freizugeben - $vorgesetzter = $ma->getVorgesetzte($uid); + $prsn = new person(); + + $vorgesetzter = $ma->getVorgesetzte($uid); if($vorgesetzter) { $to=''; + $fullName =''; foreach($ma->vorgesetzte as $vg) { if (!empty($to)) + { $to.=','; + $fullName =','; + } $to.=trim($vg.'@'.DOMAIN); + $name = $prsn->getFullNameFromBenutzer($vg); + $fullName = $name; } $benutzer = new benutzer(); @@ -440,7 +448,7 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ $mail = new mail($to, $from, 'Freigabeansuchen', $message); if($mail->send()) { - echo "
".$p->t('urlaubstool/freigabemailWurdeVersandt',array($to)).""; + echo "
".$p->t('urlaubstool/freigabemailWurdeVersandt',array($fullName)).""; } else { diff --git a/include/person.class.php b/include/person.class.php index edfa0ec7f..b220bb55b 100644 --- a/include/person.class.php +++ b/include/person.class.php @@ -1018,4 +1018,33 @@ class person extends basis_db return false; } } + + public function getFullNameFromBenutzer($uid) + { + $qry = "SELECT + * + FROM + public.tbl_person + JOIN public.tbl_benutzer USING(person_id) + WHERE + uid=".$this->db_add_param($uid, FHC_STRING); + + if ($this->db_query($qry)) + { + if ($row = $this->db_fetch_object()) + { + return (string)$row->vorname.' '.$row->nachname; + } + else + { + $this->errormsg = 'Keine Personendaten zu dieser UID gefunden'; + return false; + } + } + else + { + $this->errormsg = "Fehler beim Laden der Personendaten"; + return false; + } + } } From 51c4e1f92b84d824b7b2de0f3e1c4e95e4d459e4 Mon Sep 17 00:00:00 2001 From: Nikolaus Krondraf Date: Fri, 25 Sep 2020 13:00:41 +0200 Subject: [PATCH 056/106] =?UTF-8?q?zeige=20keine=20Pr=C3=BCfungstermine=20?= =?UTF-8?q?wo=20positive=20Note=20vorhanden=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/pruefungCis.class.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/include/pruefungCis.class.php b/include/pruefungCis.class.php index 3439793da..ec402ed5d 100644 --- a/include/pruefungCis.class.php +++ b/include/pruefungCis.class.php @@ -616,12 +616,19 @@ class pruefungCis extends basis_db if ($uid !== null) { - // LVs entfernen wo schon eine Note für UID vorhanden ist + // LVs entfernen wo schon eine positive Note für UID vorhanden ist $qry .= " AND lehrveranstaltung_id NOT IN ( - SELECT lehrveranstaltung_id - FROM lehre.tbl_pruefung - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE student_uid = " . $this->db_add_param($uid) . ");"; + SELECT lehrveranstaltung_id + FROM lehre.tbl_pruefung + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE student_uid = " . $this->db_add_param($uid) . " + AND note NOT IN (5, 7, 9, 11, 13, 14) + UNION + SELECT lehrveranstaltung_id + FROM lehre.tbl_zeugnisnote + WHERE student_uid = " . $this->db_add_param($uid) . " + AND note NOT IN (5, 7, 9, 11, 13, 14) + );"; } if($this->db_query($qry)) From c48540014297631a430c31b90fe976f616c892c8 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Tue, 29 Sep 2020 14:56:15 +0200 Subject: [PATCH 057/106] user is able to delete approved vacation if in the future --- cis/private/profile/urlaubstool.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index 9d33b25ae..4b1805080 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -373,10 +373,14 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) if(date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))>=$row->vondatum && date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))<=$row->bisdatum) { - if($row->freigabevon!='' || $row->bisdatumfreigabevon!='' && $row->vondatum<=date("Y-m-d",time())) { $hgfarbe[$i]='#bbb'; } + elseif ($row->freigabevon!='' && $row->vondatum>date("Y-m-d",time())) + { + $hgfarbe[$i]='#C1FF80'; + } else { $hgfarbe[$i]='#FFFC7F'; @@ -389,7 +393,7 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) } else { - if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb') + if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb' && $hgfarbe[$i]!='#C1FF80') { $hgfarbe[$i]='#E9ECEE'; @@ -696,7 +700,7 @@ for ($i=0;$i<6;$i++) } if($tage[$j+7*$i]!='') { - if($hgfarbe[$j+7*$i]=='#FFFC7F') + if($hgfarbe[$j+7*$i]=='#FFFC7F' )//|| $hgfarbe[$j+7*$i]=='#C1FF80') { echo 't('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'
';; $k=$j+7*$i; @@ -724,6 +728,11 @@ for ($i=0;$i<6;$i++) } elseif(isset($freigabeamum[$j+7*$i])) { + if($hgfarbe[$j+7*$i]=='#C1FF80') + { + $k=$j+7*$i; + echo ""; + } echo 'freigegeben'; } else From 388a266822aae2ad88453b32121f5ec5f9a24618 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 1 Oct 2020 11:17:14 +0200 Subject: [PATCH 058/106] Modified Dropdown-Widget Organisationseinheit Modified to enable empty default-value and default text. Signed-off-by: Cris --- application/widgets/Organisationseinheit_widget.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/application/widgets/Organisationseinheit_widget.php b/application/widgets/Organisationseinheit_widget.php index e4fbfe2ba..8aba73acc 100644 --- a/application/widgets/Organisationseinheit_widget.php +++ b/application/widgets/Organisationseinheit_widget.php @@ -31,7 +31,10 @@ class Organisationseinheit_widget extends DropdownWidget { // NOTE: no need to call addSelectToModel because getRecursiveList already returns // the correct names of the fields - $this->setElementsArray($this->OrganisationseinheitModel->getRecursiveList()); + $this->setElementsArray($this->OrganisationseinheitModel->getRecursiveList(), + true, + $this->p->t('lehre', 'organisationseinheit'), + 'No organisational unit found'); } $this->loadDropDownView($widgetData); From 17251de9b0786e533e7c5f67ed32c4e56ebb6d10 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 1 Oct 2020 11:50:56 +0200 Subject: [PATCH 059/106] Shelf TableWidget.js for new branch Signed-off-by: Cris --- public/js/TableWidget.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js index 049959796..c7eea73c3 100644 --- a/public/js/TableWidget.js +++ b/public/js/TableWidget.js @@ -544,8 +544,11 @@ var FHC_TableWidget = { options.columns = arrayTabulatorColumns; options.data = data.dataset; - options.persistentLayout = true; // enables persistence (default store in localStorage if available, else in cookie) - options.persistenceID = data.tableUniqueId; // TableWidget unique id to store persistence data seperately for multiple tables + if (options.tableWidgetHeader == 'undefined') + { + options.persistentLayout = true; // enables persistence (default store in localStorage if available, else in cookie) + options.persistenceID = data.tableUniqueId; // TableWidget unique id to store persistence data seperately for multiple tables + } options.movableColumns = true; // allows changing column order options.tooltipsHeader = true; // set header tooltip with column title options.placeholder = _func_placeholder(); // display text when table is empty @@ -566,12 +569,16 @@ var FHC_TableWidget = { // ------------------------------------------------------------------------------------------------------------- // Render tableWidgetHeader - var tabulatorHeaderHTML = _renderTabulatorHeaderHTML(tableWidgetDiv); - tableWidgetDiv.find('#tableWidgetHeader').append(tabulatorHeaderHTML); + if (options.tableWidgetHeader == 'undefined' || + (options.tableWidgetHeader != 'undefined' && options.tableWidgetHeader != false)) + { + var tabulatorHeaderHTML = _renderTabulatorHeaderHTML(tableWidgetDiv); + tableWidgetDiv.find('#tableWidgetHeader').append(tabulatorHeaderHTML); - // Render the collapsable div triggered by button in tableWidgetHeader - var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv); - tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML); + // Render the collapsable div triggered by button in tableWidgetHeader + var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv); + tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML); + } /** * tableWidgetFooter is NOT rendered by default. From 5e4107fa4fe6e1ac3799386fcdb8714e83a40f0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 2 Oct 2020 15:00:57 +0200 Subject: [PATCH 060/106] Added Permission to edit Payments that are already transfered to external System --- content/student/studentDBDML.php | 62 ++++++++++++++++++++++++++++++-- system/checksystem.php | 1 + 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 886e938a8..a80ea171a 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -280,6 +280,51 @@ 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 */ @@ -1981,7 +2026,8 @@ if(!$error) } else { - if(isBuchungAllowedToChange($buchung)) + if(isBuchungAllowedToChange($buchung) + || $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid')) { $buchung->betrag = $_POST['betrag']; $buchung->buchungsdatum = $_POST['buchungsdatum']; @@ -2062,7 +2108,8 @@ if(!$error) { if($buchung->buchungsnr_verweis=='') { - if(isBuchungAllowedToChange($buchung)) + if(isBuchungAllowedToChange($buchung) + || $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid')) { $kto = new konto(); //$buchung->betrag*(-1); @@ -2139,8 +2186,17 @@ if(!$error) } else { - if(isBuchungAllowedToChange($buchung)) + $isAllowedToChange = isBuchungAllowedToChange($buchung); + if($isAllowedToChange + || $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid') + ) { + if(!$isAllowedToChange) + { + // Buchung aus SAP Zwischentabelle loeschen + deleteFromSAP($buchung); + } + if($buchung->delete($_POST['buchungsnr'])) { $return = true; diff --git a/system/checksystem.php b/system/checksystem.php index 04e76bb52..3253dd5d4 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -195,6 +195,7 @@ $berechtigungen = array( array('student/noten','Notenverwaltung'), array('student/stammdaten','Stammdaten der Studenten'), array('student/vorrueckung','Studentenvorrückung'), + array('student/zahlungAdmin','Zahlungsadministration'), array('system/developer','Anzeige zusätzlicher Developerinfos'), array('system/loginasuser','Berechtigung zum Einloggen als anderer User'), array('system/phrase','Bearbeiten von Textphrasen'), From cd3557ed986306696878ecdee6ce8ca28dbeb26b Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 5 Oct 2020 17:34:28 +0200 Subject: [PATCH 061/106] Zeitsperretyp kurzbz in DropDown entfernt --- cis/private/profile/zeitsperre_resturlaub.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index b7654310e..66cb4a6e1 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -518,7 +518,7 @@ if(count($zeit->result)>0) $row_vertretung = $db->db_fetch_object($result_vertretung); $content_table.= " $row->bezeichnung - $row->zeitsperretyp_kurzbz + $row->zeitsperretyp_beschreibung ".$datum_obj->convertISODate($row->vondatum)." ".($row->vonstunde!=''?'('.$row->vonstunde.')':'')." ".$datum_obj->convertISODate($row->bisdatum)." ".($row->bisstunde!=''?'('.$row->bisstunde.')':'')." ".(isset($row_vertretung->kurzbz)?$row_vertretung->kurzbz:'')." @@ -587,15 +587,15 @@ $content_form.= '
t('zeitsperre/grund').''; From 2a09e1af8a3beb6cafa41f878c148d68f05bb5bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 7 Oct 2020 08:57:12 +0200 Subject: [PATCH 062/106] =?UTF-8?q?Verhindert=20dass=20Matrikelnummern=20a?= =?UTF-8?q?ngefordert=20werden=20f=C3=BCr=20Studieng=C3=A4nge=20mit=20Kenn?= =?UTF-8?q?zahl=20>=2010000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/dvb.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/include/dvb.class.php b/include/dvb.class.php index 0eab0e3f0..0131f1e4d 100644 --- a/include/dvb.class.php +++ b/include/dvb.class.php @@ -188,6 +188,7 @@ class dvb extends basis_db AND tbl_benutzer.aktiv AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming') AND tbl_prestudent.bismelden + AND tbl_prestudent.studiengang_kz<10000 ORDER BY tbl_prestudentstatus.datum desc LIMIT 1 "; From 6128a7ae6ec5e2e0814db7a27d7b0f693057bb22 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Mon, 12 Oct 2020 15:31:37 +0200 Subject: [PATCH 063/106] add X to delete approved vacation --- cis/private/profile/urlaubstool.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index 4b1805080..5d64cacb7 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -379,7 +379,7 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) } elseif ($row->freigabevon!='' && $row->vondatum>date("Y-m-d",time())) { - $hgfarbe[$i]='#C1FF80'; + $hgfarbe[$i]='#CDDDEE'; } else { @@ -393,7 +393,7 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) } else { - if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb' && $hgfarbe[$i]!='#C1FF80') + if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb' && $hgfarbe[$i]!='#CDDDEE') { $hgfarbe[$i]='#E9ECEE'; @@ -700,7 +700,7 @@ for ($i=0;$i<6;$i++) } if($tage[$j+7*$i]!='') { - if($hgfarbe[$j+7*$i]=='#FFFC7F' )//|| $hgfarbe[$j+7*$i]=='#C1FF80') + if($hgfarbe[$j+7*$i]=='#FFFC7F' )//|| $hgfarbe[$j+7*$i]=='#CDDDEE') { echo 't('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'
';; $k=$j+7*$i; @@ -728,12 +728,13 @@ for ($i=0;$i<6;$i++) } elseif(isset($freigabeamum[$j+7*$i])) { - if($hgfarbe[$j+7*$i]=='#C1FF80') + echo 'freigegeben '; + if($hgfarbe[$j+7*$i]=='#CDDDEE') { $k=$j+7*$i; echo "
"; + echo 'loeschen'; } - echo 'freigegeben'; } else { From 5802ca8ea20c0687f5eccb95a94a91d1957affdb Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Tue, 13 Oct 2020 09:26:06 +0200 Subject: [PATCH 064/106] =?UTF-8?q?versende=20Email=20an=20Vorgesetzten=20?= =?UTF-8?q?wenn=20freigegebener=20Urlaub=20gel=C3=B6scht=20=20wird?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/urlaubstool.php | 60 ++++++++++++++++++++++++++++- include/zeitsperre.class.php | 9 +++++ locale/de-AT/urlaubstool.php | 4 ++ 3 files changed, 72 insertions(+), 1 deletion(-) diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index 5d64cacb7..720935c46 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -163,6 +163,64 @@ if (isset($_GET['rechts_x']) || isset($_POST['rechts_x'])) $wjahr=$wjahr; } } + +//Bereits freigegebenen Eintrag löschen +//Eintragung löschen +if((isset($_GET['delete']) && isset($_GET['informSupervisor'])) || (isset($_POST['delete']) && isset($_POST['informSupervisor']))) +{ + $zeitsperre = new zeitsperre(); + $zeitsperre->load($_GET['delete']); + + $vondatum = $zeitsperre->getVonDatum(); + $bisdatum = $zeitsperre->getBisDatum(); + + if(!$zeitsperre->delete($_GET['delete'])) + echo $zeitsperre->errormsg; + + //Mail an Vorgesetzten + $vorgesetzter = $ma->getVorgesetzte($uid); + if($vorgesetzter) + { + $to=''; + foreach($ma->vorgesetzte as $vg) + { + if($to!='') + { + $to.=', '.$vg.'@'.DOMAIN; + } + else + { + $to.=$vg.'@'.DOMAIN; + } + } + + $benutzer = new benutzer(); + $benutzer->load($uid); + $message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n". + $p->t('urlaubstool/xHatUrlaubGeloescht',array($benutzer->nachname,$benutzer->vorname)).":\n"; + + for($i=0;$it('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n"; + } + + $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message); + if($mail->send()) + { + $vgmail="".$p->t('urlaubstool/VorgesetzteInformiert',array($to)).""; + } + else + { + $vgmail="
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."!"; + } + } + else + { + $vgmail="
".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden').""; + } +} + + //Eintragung löschen if((isset($_GET['delete']) || isset($_POST['delete']))) { @@ -732,7 +790,7 @@ for ($i=0;$i<6;$i++) if($hgfarbe[$j+7*$i]=='#CDDDEE') { $k=$j+7*$i; - echo ""; + echo ""; echo 'loeschen'; } } diff --git a/include/zeitsperre.class.php b/include/zeitsperre.class.php index ce310451a..936a8d32f 100644 --- a/include/zeitsperre.class.php +++ b/include/zeitsperre.class.php @@ -510,6 +510,15 @@ class zeitsperre extends basis_db } } + public function getVonDatum() + { + return $this->vondatum; + } + + public function getBisDatum() + { + return $this->bisdatum; + } } ?> diff --git a/locale/de-AT/urlaubstool.php b/locale/de-AT/urlaubstool.php index 9ab612826..cd34be0da 100644 --- a/locale/de-AT/urlaubstool.php +++ b/locale/de-AT/urlaubstool.php @@ -36,4 +36,8 @@ $this->phrasen['urlaubstool/meineZeitsperren']='Meine Zeitsperren'; $this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben']='Sie können diesen unter folgender Adresse freigeben'; $this->phrasen['urlaubstool/freigabeansuchenUrlaub']='Freigabeansuchen Urlaub'; $this->phrasen['urlaubstool/freigabeFehlt']='Urlaub wurde noch nicht freigegeben'; +$this->phrasen['urlaubstool/freigegebenerUrlaubGeloescht']='Bereits Freigegebener Urlaub wurde gelöscht'; +$this->phrasen['urlaubstool/VorgesetzteInformiert']='Email wurde an %s versandt'; +$this->phrasen['urlaubstool/konnteKeinInformationsemailVersendetWerden']='Es konnte kein Email versendet werden, da kein Vorgesetzter eingetragen ist!'; +$this->phrasen['urlaubstool/xHatUrlaubGeloescht']='%s %s hat bereits freigegebenen Urlaub gelöscht'; ?> From 4ced199e88a2ef1c2412b7a18baf9ee605e9b611 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Tue, 13 Oct 2020 12:26:06 +0200 Subject: [PATCH 065/106] =?UTF-8?q?Freigegebenen=20Urlaub=20l=C3=B6schen?= =?UTF-8?q?=20auch=20in=20Zeitsperren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/urlaubstool.php | 5 +- cis/private/profile/zeitsperre_resturlaub.php | 64 ++++++++++++++++++- 2 files changed, 62 insertions(+), 7 deletions(-) diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index 720935c46..efba62e99 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -198,11 +198,8 @@ if((isset($_GET['delete']) && isset($_GET['informSupervisor'])) || (isset($_POS $benutzer->load($uid); $message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n". $p->t('urlaubstool/xHatUrlaubGeloescht',array($benutzer->nachname,$benutzer->vorname)).":\n"; + $message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n"; - for($i=0;$it('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n"; - } $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message); if($mail->send()) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index b7654310e..348a4418e 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -461,8 +461,62 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ echo "$error_msg"; } +//loeschen eines bereits freigegebenen Urlaubs +if((isset($_GET['type']) && $_GET['type']=='delete_sperre' && isset($_GET['informSupervisor']))) +{ + $zeitsperre = new zeitsperre(); + $zeitsperre->load($_GET['id']); + + $vondatum = $zeitsperre->getVonDatum(); + $bisdatum = $zeitsperre->getBisDatum(); + + if(!$zeitsperre->delete($_GET['id'])) + echo $zeitsperre->errormsg; + + //Mail an Vorgesetzten + $vorgesetzter = $ma->getVorgesetzte($uid); + if($vorgesetzter) + { + $to=''; + foreach($ma->vorgesetzte as $vg) + { + if($to!='') + { + $to.=', '.$vg.'@'.DOMAIN; + } + else + { + $to.=$vg.'@'.DOMAIN; + } + } + + $benutzer = new benutzer(); + $benutzer->load($uid); + $message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n". + $p->t('urlaubstool/xHatUrlaubGeloescht',array($benutzer->nachname,$benutzer->vorname)).":\n"; + + + $message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n"; + + + $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message); + if($mail->send()) + { + echo "
".$p->t('urlaubstool/VorgesetzteInformiert',array($to)).""; + } + else + { + echo "
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."!"; + } + } + else + { + $vgmail="
".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden').""; + } +} + //loeschen einer zeitsperre -if(isset($_GET['type']) && $_GET['type']=='delete_sperre') +if(isset($_GET['type']) && $_GET['type']=='delete_sperre' && !isset($_GET['informSupervisor']) ) { $zeit = new zeitsperre(); $zeit->load($_GET['id']); @@ -532,10 +586,14 @@ if(count($zeit->result)>0) $content_table.="".$p->t('zeitsperre/edit').""; if ($row->vondatum < $gesperrt_bis AND in_array($row->zeitsperretyp_kurzbz,$typen_arr)) $content_table .= ' '; - else if($row->freigabeamum=='' || $row->zeitsperretyp_kurzbz!='Urlaub') + else if($row->vondatum>=date("Y-m-d",time()) && $row->zeitsperretyp_kurzbz=='Urlaub') { - $content_table.="\n".$p->t('zeitsperre/loeschen').""; + $content_table.="\n".$p->t('zeitsperre/loeschen').""; } + elseif($row->zeitsperretyp_kurzbz!='Urlaub') + { + $content_table.="\n".$p->t('zeitsperre/loeschen').""; + } else $content_table .= ' '; $content_table.=""; From c1e4278e71fac1f9b86503d5a93e7db34ef359a7 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 13 Oct 2020 15:45:37 +0200 Subject: [PATCH 066/106] Changed permission denying - text in 'Lehrauftrag bestellen' If a permission is correctly set, but the permission is restricted on organisational units Department or Kompetenzfeld, the error-text gives now meaningful information about the abort. Signed-off-by: Cris --- application/controllers/lehre/lehrauftrag/Lehrauftrag.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php index b7140c7c3..8a096338e 100644 --- a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php +++ b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php @@ -92,7 +92,8 @@ class Lehrauftrag extends Auth_Controller // Retrieve studiengaenge the user is entitled for to populate studiengang dropdown if (!$studiengang_kz_arr = $this->permissionlib->getSTG_isEntitledFor(self::BERECHTIGUNG_LEHRAUFTRAG_BESTELLEN)) { - show_error('Fehler bei Berechtigungsprüfung'); + show_error('Keine Studiengänge gefunden.
+ Es muss eine passende Organisationseinheit hinterlegt werden.
'); } // If studiengang_kz get param was set, check against entitled stg From 15877dd91416bbc4341fa2d0ec738aab3bd163d8 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 13 Oct 2020 18:32:09 +0200 Subject: [PATCH 067/106] Lehrveranstaltung_model getStudents: possible to get only active students --- .../education/Lehrveranstaltung_model.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index 4941ba9bd..d80d02b41 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -119,9 +119,10 @@ class Lehrveranstaltung_model extends DB_Model * Gets all students of a Lehrveranstaltung * @param $studiensemester_kurzbz * @param $lehrveranstaltung_id + * @param $active optional, if true, only active students retrieved, false - only inactive, all students otherwise * @return array|null */ - public function getStudentsByLv($studiensemester_kurzbz, $lehrveranstaltung_id) + public function getStudentsByLv($studiensemester_kurzbz, $lehrveranstaltung_id, $active = null) { $query = "SELECT distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, @@ -144,8 +145,18 @@ class Lehrveranstaltung_model extends DB_Model WHERE vw_student_lehrveranstaltung.studiensemester_kurzbz=? AND - vw_student_lehrveranstaltung.lehrveranstaltung_id=? - ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC"; + vw_student_lehrveranstaltung.lehrveranstaltung_id=?"; + + if (isset($active)) + { + if ($active === true) + $query .= " AND tbl_benutzer.aktiv"; + elseif ($active === false) + $query .= " AND tbl_benutzer.aktiv = false"; + } + + $query .= + " ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC"; return $this->execQuery($query, array($studiensemester_kurzbz, $lehrveranstaltung_id)); } From 14fa1b24ad91826031ca70a0b8773aded43a7de5 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 14 Oct 2020 13:23:19 +0200 Subject: [PATCH 068/106] Display Full Name instead of Email Adress of Supervisor --- cis/private/profile/urlaubstool.php | 41 +++++++++++-------- cis/private/profile/zeitsperre_resturlaub.php | 19 ++++++--- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index 9fc8ec22d..11620a99a 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -177,22 +177,29 @@ if((isset($_GET['delete']) && isset($_GET['informSupervisor'])) || (isset($_POS if(!$zeitsperre->delete($_GET['delete'])) echo $zeitsperre->errormsg; - //Mail an Vorgesetzten - $vorgesetzter = $ma->getVorgesetzte($uid); - if($vorgesetzter) - { - $to=''; - foreach($ma->vorgesetzte as $vg) + //Mail an Vorgesetzten + $prsn = new person(); + + $vorgesetzter = $ma->getVorgesetzte($uid); + if($vorgesetzter) { - if($to!='') + $to=''; + $fullName =''; + foreach($ma->vorgesetzte as $vg) { - $to.=', '.$vg.'@'.DOMAIN; + if($to!='') + { + $to.=', '.$vg.'@'.DOMAIN; + $name = $prsn->getFullNameFromBenutzer($vg); + $fullName.=', '.$name; + } + else + { + $to.=$vg.'@'.DOMAIN; + $name = $prsn->getFullNameFromBenutzer($vg); + $fullName.=$name; + } } - else - { - $to.=$vg.'@'.DOMAIN; - } - } $benutzer = new benutzer(); $benutzer->load($uid); @@ -204,11 +211,11 @@ if((isset($_GET['delete']) && isset($_GET['informSupervisor'])) || (isset($_POS $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message); if($mail->send()) { - $vgmail="".$p->t('urlaubstool/VorgesetzteInformiert',array($to)).""; + $vgmail="".$p->t('urlaubstool/VorgesetzteInformiert',array($fullName)).""; } else { - $vgmail="
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."!"; + $vgmail="
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."!"; } } else @@ -325,13 +332,13 @@ if(isset($_GET['speichern']) && isset($_GET['wtag'])) { $to.=', '.$vg.'@'.DOMAIN; $name = $prsn->getFullNameFromBenutzer($vg); - $fullName = ', '.$name; + $fullName.=', '.$name; } else { $to.=$vg.'@'.DOMAIN; $name = $prsn->getFullNameFromBenutzer($vg); - $fullName = $name; + $fullName.=$name; } } diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 087b2ce80..efe6ed98d 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -419,17 +419,17 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ if($vorgesetzter) { $to=''; - $fullName =''; + $fullName=''; foreach($ma->vorgesetzte as $vg) { if (!empty($to)) { $to.=','; - $fullName =','; + $fullName.=','; } $to.=trim($vg.'@'.DOMAIN); $name = $prsn->getFullNameFromBenutzer($vg); - $fullName = $name; + $fullName.=$name; } $benutzer = new benutzer(); @@ -452,7 +452,7 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ } else { - echo "
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to)).""; + echo "
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName)).""; } } else @@ -482,19 +482,26 @@ if((isset($_GET['type']) && $_GET['type']=='delete_sperre' && isset($_GET['infor echo $zeitsperre->errormsg; //Mail an Vorgesetzten + $prsn = new person(); + $vorgesetzter = $ma->getVorgesetzte($uid); if($vorgesetzter) { $to=''; + $fullName =''; foreach($ma->vorgesetzte as $vg) { if($to!='') { $to.=', '.$vg.'@'.DOMAIN; + $name = $prsn->getFullNameFromBenutzer($vg); + $fullName.=', '.$name; } else { $to.=$vg.'@'.DOMAIN; + $name = $prsn->getFullNameFromBenutzer($vg); + $fullName.=$name; } } @@ -510,11 +517,11 @@ if((isset($_GET['type']) && $_GET['type']=='delete_sperre' && isset($_GET['infor $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message); if($mail->send()) { - echo "
".$p->t('urlaubstool/VorgesetzteInformiert',array($to)).""; + echo "
".$p->t('urlaubstool/VorgesetzteInformiert',array($fullName)).""; } else { - echo "
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."!"; + echo "
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."!"; } } else From e6a761abd7cc6a80d67721e1adb10689682f666e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 15 Oct 2020 13:38:01 +0200 Subject: [PATCH 069/106] Darstellungsfehler in OE-Widget behoben --- application/models/organisation/Organisationseinheit_model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/models/organisation/Organisationseinheit_model.php b/application/models/organisation/Organisationseinheit_model.php index 6439bc8d6..bec4aee47 100644 --- a/application/models/organisation/Organisationseinheit_model.php +++ b/application/models/organisation/Organisationseinheit_model.php @@ -33,7 +33,7 @@ class Organisationseinheit_model extends DB_Model FROM tree JOIN tbl_organisationseinheit oe ON (tree.oe_kurzbz = oe.oe_parent_kurzbz) ) SELECT oe_kurzbz AS id, - SUBSTRING(REGEXP_REPLACE(path, '[A-z]+\|', '-', 'g') || bezeichnung, 2) AS description + SUBSTRING(REGEXP_REPLACE(path, '[A-z0-9]+\|', '-', 'g') || bezeichnung, 2) AS description FROM tree"; $parametersArray = array(); From 4654339681276f9f53e4ad7cf86d18833b3bbbf9 Mon Sep 17 00:00:00 2001 From: Paolo Date: Sun, 18 Oct 2020 23:40:48 +0200 Subject: [PATCH 070/106] Renamed library alias LogLib into LogLibJob when loaded in JOB_Controller --- application/core/JOB_Controller.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/application/core/JOB_Controller.php b/application/core/JOB_Controller.php index 2d3d3873e..8b32ba0f5 100644 --- a/application/core/JOB_Controller.php +++ b/application/core/JOB_Controller.php @@ -18,7 +18,8 @@ abstract class JOB_Controller extends CLI_Controller // Loads LogLib with different debug trace levels to get data of the job that extends this class // It also specify parameters to set database fields - $this->load->library('LogLib', + $this->load->library( + 'LogLib', array( 'classIndex' => 5, 'functionIndex' => 5, @@ -29,7 +30,8 @@ abstract class JOB_Controller extends CLI_Controller 'requestDataFormatter' => function($data) { return json_encode($data); } - ) + ), + 'LogLibJob' // library alias case sensitive ); } @@ -84,16 +86,16 @@ abstract class JOB_Controller extends CLI_Controller switch($level) { case LogLib::INFO: - $this->loglib->logInfoDB($data); + $this->LogLibJob->logInfoDB($data); break; case LogLib::DEBUG: - $this->loglib->logDebugDB($data); + $this->LogLibJob->logDebugDB($data); break; case LogLib::WARNING: - $this->loglib->logWarningDB($data); + $this->LogLibJob->logWarningDB($data); break; case LogLib::ERROR: - $this->loglib->logErrorDB($data); + $this->LogLibJob->logErrorDB($data); break; } } From 4b81727b73e84d48e6977ddb430c4f26edb3c70b Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 20 Oct 2020 00:37:49 +0200 Subject: [PATCH 071/106] Diplomasupplement: added auslandssemesterdata to sonstige angaben --- rdf/diplomasupplement.xml.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/rdf/diplomasupplement.xml.php b/rdf/diplomasupplement.xml.php index a88df9533..7efefb9fd 100644 --- a/rdf/diplomasupplement.xml.php +++ b/rdf/diplomasupplement.xml.php @@ -360,15 +360,32 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } } - $qry = "SELECT von, bis, lehreinheit_id FROM bis.tbl_bisio WHERE student_uid=".$db->db_add_param($uid_arr[$i]); + $qry = "SELECT tbl_bisio.bisio_id, von, bis, lehreinheit_id, + (SELECT STRING_AGG ( + tbl_zweck.bezeichnung, + ', ' + ORDER BY tbl_zweck.zweck_code + ) FROM bis.tbl_bisio_zweck + JOIN bis.tbl_zweck USING(zweck_code) + WHERE tbl_bisio_zweck.bisio_id = tbl_bisio.bisio_id + ) zweck, ort, universitaet + FROM bis.tbl_bisio + WHERE student_uid=".$db->db_add_param($uid_arr[$i]); + if($db->db_query($qry)) { if($db->db_num_rows()>0) { - echo " "; + echo ""; while($row1 = $db->db_fetch_object()) { - echo "Auslandssemester/International semester ".$datum->convertISODate($row1->von)." - ".$datum->convertISODate($row1->bis); + echo ""; + echo "".$datum->convertISODate($row1->von).""; + echo "".$datum->convertISODate($row1->bis).""; + echo "$row1->zweck"; + echo "$row1->ort"; + echo "$row1->universitaet"; + echo ""; } echo ""; $auslandssemester=true; From a26f1701ec21105b315c233b54f7f8a8606ad58c Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 20 Oct 2020 23:08:01 +0200 Subject: [PATCH 072/106] Diplomasupplement: andere Formulierung bei dualem Studium, orgform kommt vom Status --- rdf/diplomasupplement.xml.php | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/rdf/diplomasupplement.xml.php b/rdf/diplomasupplement.xml.php index 7efefb9fd..0052c75be 100644 --- a/rdf/diplomasupplement.xml.php +++ b/rdf/diplomasupplement.xml.php @@ -228,14 +228,13 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") else echo ' '; - if($row->mischform=='t' || $row->orgform_kurzbz=='VBB') - { - //Bei Mischformen, die OrgForm aus dem Status nehmen - $prestudent = new prestudent(); - $prestudent->getLastStatus($row->prestudent_id); - if($prestudent->orgform_kurzbz!='') - $row->orgform_kurzbz=$prestudent->orgform_kurzbz; - } + //OrgForm aus dem Status nehmen + $prestudent = new prestudent(); + $prestudent->getLastStatus($row->prestudent_id); + if($prestudent->orgform_kurzbz!='') + $row->orgform_kurzbz=$prestudent->orgform_kurzbz; + + $anforderungen_praxis = 'Das Studium beinhaltet ein facheinschlägiges Berufspraktikum.'; switch($row->orgform_kurzbz) { @@ -245,6 +244,10 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") break; case 'DL': echo ' Fernstudium / Distance Learning'; break; + case 'DUA': // andere praxisanforderungen bei dualem Studium + echo ' Duales Studium / Integrated work/study degree program'; + $anforderungen_praxis = 'Das Studium ist als duales Studium konzipiert und weist einen hohen Anteil an Praxisphasen in Partnerunternehmen auf, die inhaltlich und organisatorisch im Studienplan verankert sind und die systematische Verschränkung von Wissen und Anwendung fördern.'; + break; default: echo ' '; break; } @@ -254,7 +257,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo ' UNESCO ISCED 7'; echo ' '; echo ' '; - echo ' '; + echo ' '; echo ' '; echo ' '; echo ' '; @@ -278,7 +281,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo ' UNESCO ISCED 6'; echo ' '; echo ' '; - echo ' '; + echo ' '; echo ' '; echo ' '; echo ' '; From 3ec0aabfee85c93c94a011631ac030de7928e4c0 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 22 Oct 2020 00:30:37 +0200 Subject: [PATCH 073/106] person/Kontakt_model: added getZustellKontakt for getting latest Zustellkontakt --- application/models/person/Kontakt_model.php | 29 +++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/application/models/person/Kontakt_model.php b/application/models/person/Kontakt_model.php index 50ef18e15..c35794fc8 100644 --- a/application/models/person/Kontakt_model.php +++ b/application/models/person/Kontakt_model.php @@ -169,4 +169,33 @@ class Kontakt_model extends DB_Model return $this->execQuery($qry, array($person_id)); } + + /** + * Loads main contact, i.e. most recent Zustellkontakt with the given kontakttypes. + * @param $person_id + * @param $kontakttypen array of kontakttypen, one chronologically last Zustellkontakt for all given types + * @return object + */ + public function getZustellKontakt($person_id, $kontakttypen) + { + if (is_string($kontakttypen)) + $kontakttypen = array($kontakttypen); + + if (!isEmptyArray($kontakttypen)) + { + $qry = " + SELECT + kontakt + FROM + public.tbl_kontakt + WHERE person_id = ? + AND kontakttyp IN ? + ORDER BY zustellung DESC NULLS LAST, updateamum DESC, insertamum DESC + LIMIT 1"; + + return $this->execQuery($qry, array($person_id, $kontakttypen)); + } + else + return success(array()); + } } From a7d577baa508ef19d09279f040671e9c3f6f3812 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 22 Oct 2020 00:38:52 +0200 Subject: [PATCH 074/106] person/Kontakt_model: added getZustellKontakt method for getting latest Zustellkontakt --- application/models/person/Kontakt_model.php | 29 +++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/application/models/person/Kontakt_model.php b/application/models/person/Kontakt_model.php index 50ef18e15..c35794fc8 100644 --- a/application/models/person/Kontakt_model.php +++ b/application/models/person/Kontakt_model.php @@ -169,4 +169,33 @@ class Kontakt_model extends DB_Model return $this->execQuery($qry, array($person_id)); } + + /** + * Loads main contact, i.e. most recent Zustellkontakt with the given kontakttypes. + * @param $person_id + * @param $kontakttypen array of kontakttypen, one chronologically last Zustellkontakt for all given types + * @return object + */ + public function getZustellKontakt($person_id, $kontakttypen) + { + if (is_string($kontakttypen)) + $kontakttypen = array($kontakttypen); + + if (!isEmptyArray($kontakttypen)) + { + $qry = " + SELECT + kontakt + FROM + public.tbl_kontakt + WHERE person_id = ? + AND kontakttyp IN ? + ORDER BY zustellung DESC NULLS LAST, updateamum DESC, insertamum DESC + LIMIT 1"; + + return $this->execQuery($qry, array($person_id, $kontakttypen)); + } + else + return success(array()); + } } From 283a5d2c22e761b41b5b6f962377cc6994b7c325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 22 Oct 2020 17:15:53 +0200 Subject: [PATCH 075/106] =?UTF-8?q?BIS-Meldung:=20Angerechnete=20ECTS=20be?= =?UTF-8?q?i=20Auslandssemester=20wird=20nur=20gerpr=C3=BCft=20wenn=20das?= =?UTF-8?q?=20Auslandssemester=20vorbei=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/studentenmeldung.php | 99 +++++++++++++++++--------------- 1 file changed, 52 insertions(+), 47 deletions(-) diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index 40c63b7b7..f27d3602f 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -625,7 +625,7 @@ function GenerateXMLStudentBlock($row) $ausserordentlich=true; else $ausserordentlich=false; - + // Pruefen, ob Incoming (3.Stelle in Personenkennzeichen = 0) $incoming = mb_substr($row->matrikelnr,2,1) == '0' ? true : false; @@ -652,7 +652,7 @@ function GenerateXMLStudentBlock($row) $nation=''; $co_name = ''; } - + // Zustelladresse & c/o Name(=abweichender Empfaenger) $qryzustelladr = " SELECT * @@ -661,17 +661,17 @@ function GenerateXMLStudentBlock($row) AND person_id=". $db->db_add_param($row->pers_id). "; "; $results = $db->db_query($qryzustelladr); - + if ($db->db_num_rows($results) != 1) { $error_log1.= "Es sind ".$db->db_num_rows($results)." Zustelladressen eingetragen\n"; } - + $zustell_plz = ''; $zustell_gemeinde = ''; $zustell_strasse = ''; $zustell_nation = ''; - + if ($rowzustelladr = $db->db_fetch_object($results)) { $zustell_plz = $rowzustelladr->plz; @@ -679,14 +679,14 @@ function GenerateXMLStudentBlock($row) $zustell_strasse = $rowzustelladr->strasse; $zustell_nation = $rowzustelladr->nation; } - + // FH eMail-Adresse FH aus UID@Domain $email = ''; if ($row->student_uid != '') { $email = $row->student_uid. '@'. DOMAIN; } - + if($row->gebdatum<'1920-01-01' OR $row->gebdatum==null OR $row->gebdatum=='') { $error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')"; @@ -761,7 +761,7 @@ function GenerateXMLStudentBlock($row) { $error_log.=(!empty($error_log) ? ', ' : ''). "bPK-Zeichenfolge ist ungültig"; } - + if (strlen($row->bpk) != 28) { $error_log.=(!empty($error_log) ? ', ' : ''). "bPK ist nicht 28 Zeichen lang"; @@ -773,29 +773,29 @@ function GenerateXMLStudentBlock($row) { $error_log.=(!empty($error_log)?', ':'')."Zustell-PLZ fehlt"; } - + if ($zustell_gemeinde == '' || $zustell_gemeinde == null) { $error_log.=(!empty($error_log)?', ':'')."Zustell-Gemeinde fehlt"; } - + if ($zustell_strasse == '' || $zustell_strasse == null) { $error_log.=(!empty($error_log)?', ':'')."Zustell-Strasse fehlt"; } - + if ($zustell_nation == '' || $zustell_nation == null) { $error_log.=(!empty($error_log)?', ':'')."Zustell-Nation fehlt"; } - + if ($email == '' || $email == null) { $error_log.=(!empty($error_log)?', ':'')."Studenten-eMail Adresse fehlt (keine Student-UID eingetragen)."; } - + } - + if(!$ausserordentlich) { if($row->zgv_code=='' || $row->zgv_code==null) @@ -1157,36 +1157,36 @@ function GenerateXMLStudentBlock($row) $datei .= " " . trim($row->matrikelnr) . ""; - + $datei .= " " . $row->matr_nr . ""; - + if (!$ausserordentlich) { $datei .= " " . $orgform_code_array[$storgform] . ""; } - + $datei .= " " . date("dmY", $datumobj->mktime_fromdate($row->gebdatum)) . " " . strtoupper($row->geschlecht) . ""; - + if ($row->titelpre != '') { $datei .= " " . $row->titelpre . ""; } - + if ($row->titelpost != '') { $datei .= " " . $row->titelpost . ""; } - + $datei .= " " . $row->vorname . " " . $row->nachname . ""; - + if ($row->svnr != '') { $datei .= " @@ -1197,18 +1197,18 @@ function GenerateXMLStudentBlock($row) $datei .= " " . $row->ersatzkennzeichen . ""; } - + $datei .= " " . $row->bpk . " "; - + $datei .= " " . $row->staatsbuergerschaft . " " . $plz . " " . $gemeinde . " " . $nation . ""; - + if (!$ausserordentlich && !$incoming) { $datei .= " @@ -1217,21 +1217,21 @@ function GenerateXMLStudentBlock($row) " . $zustell_strasse . " " . $zustell_nation . ""; } - + if ($co_name != '') { $datei .= " " . $co_name . " "; } - + if ($email != '') { $datei .= " " . $email . " "; } - + if(!$ausserordentlich) { $datei.=" @@ -1337,12 +1337,12 @@ function GenerateXMLStudentBlock($row) $adauer = (is_null($rowio->von) || is_null($rowio->bis)) ? null : $datumobj->DateDiff($rowio->von, $rowio->bis); - + // Aufenthaltszweckcode -------------------------------------------------------------------------------- $bisio_zweck = new bisio(); $bisio_zweck->getZweck($rowio->bisio_id); $zweck_code_arr = array(); - + // Bei Incomings... if ($aktstatus == 'Incoming') { @@ -1352,7 +1352,7 @@ function GenerateXMLStudentBlock($row) $error_log_io .= (!empty($error_log_io) ? ', ' : ''). "Es sind". count($bisio_zweck->result). " Aufenthaltszwecke eingetragen (max. 1 Zweck für Incomings)"; } - + //...nur Zweck 1, 2 oder 3 erlaubt if (count($bisio_zweck->result) == 1 && empty(array_intersect(array(1, 2, 3), array_column($bisio_zweck->result, 'zweck_code')))) @@ -1361,7 +1361,7 @@ function GenerateXMLStudentBlock($row) $bisio_zweck->result[0]->zweck_code. " (für Incomings ist nur Zweck 1, 2, 3 erlaubt)"; } } - + foreach ($bisio_zweck->result as $row_zweck) { // Nur eindeutige Werte (bei Mehrfachangaben; trifft auf Outgoings zu) @@ -1373,26 +1373,26 @@ function GenerateXMLStudentBlock($row) $error_log_io .= (!empty($error_log_io) ? ', ' : ''). "Aufenthaltzweckcode 1, 2, 3 dürfen nicht gemeinsam gemeldet werden"; } - + $zweck_code_arr []= $row_zweck->zweck_code; } } - + // Aufenthaltfoerderungscode --------------------------------------------------------------------------- $aufenthaltfoerderung_code_arr = array(); - + // Nur bei Outgoings Aufenthaltsfoerderungscode melden if ($aktstatus != 'Incoming') { $bisio_foerderung = new bisio(); $bisio_foerderung->getFoerderungen($rowio->bisio_id); - + // ... mindestens 1 Aufenthaltfoerderung melden, wenn Auslandsaufenthalt >= 29 Tage if ((!$bisio_foerderung->result || count($bisio_foerderung->result) == 0) && $adauer >= 29) { $error_log_io .= (!empty($error_log_io) ? ', ' : '') . "Keine Aufenthaltsfoerderung angegeben (bei Outgoings >= 29 Tage Monat im Ausland muss mind. 1 gemeldet werden)"; } - + foreach ($bisio_foerderung->result as $row_foerderung) { // ...wenn code = 5, nur ein Wert erlaubt (keine Mehrfachangaben) @@ -1401,26 +1401,31 @@ function GenerateXMLStudentBlock($row) $aufenthaltfoerderung_code_arr [] = $row_foerderung->aufenthaltfoerderung_code; break; } - + // nur eindeutige Werte if (!in_array($row_foerderung->aufenthaltfoerderung_code, $aufenthaltfoerderung_code_arr)) { $aufenthaltfoerderung_code_arr [] = $row_foerderung->aufenthaltfoerderung_code; } } - - if ($rowio->ects_erworben == '' && $adauer >= 29) + + if($datumobj->mktime_fromdate($rowio->bis) < $datumobj->mktime_fromdate($bisdatum)) + $aufenthalt_finished = true; + else + $aufenthalt_finished = false; + + if ($rowio->ects_erworben == '' && $adauer >= 29 && $aufenthalt_finished) { $error_log_io .= (!empty($error_log_io) ? ', ' : '') . "Erworbene ECTS fehlen (Meldepflicht bei Outgoings >= 29 Tage Monat im Ausland)"; } - - if ($rowio->ects_angerechnet == '' && $adauer >= 29) + + if ($rowio->ects_angerechnet == '' && $adauer >= 29 && $aufenthalt_finished) { $error_log_io .= (!empty($error_log_io) ? ', ' : '') . "Angerechnete ECTS fehlen (Meldepflicht bei Outgoings >= 29 Tage Monat im Ausland)"; } } - + // Bei validen Daten errorlog ausgeben if($error_log_io != '') { @@ -1446,7 +1451,7 @@ function GenerateXMLStudentBlock($row) $datei.=" ".$abis.""; } - + foreach ($zweck_code_arr as $zweck) { $datei.=" @@ -1467,13 +1472,13 @@ function GenerateXMLStudentBlock($row) $datei.=" ". $aufenthaltfoerderung_code. ""; } - + $datei.=" "; } - - - + + + if($aktstatus!='Incoming') { if(!isset($iosem[$storgform][$sem])) From 817d35dce794cd8c5c9cb3ff82cb3851c45bd3d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 23 Oct 2020 08:26:33 +0200 Subject: [PATCH 076/106] =?UTF-8?q?Spalten=20aus=20der=20Spaltenpr=C3=BCfu?= =?UTF-8?q?ng=20f=C3=BCr=20tbl=5Fbestellung=20entfernt=20da=20dieser=20?= =?UTF-8?q?=C3=BCber=20das=20Addon=20hinzugef=C3=BCgt=20wurden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/dbupdate_3.3.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 42c057b48..62682fb75 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4714,7 +4714,7 @@ $tabellen=array( "wawi.tbl_bestellungtag" => array("tag","bestellung_id","insertamum","insertvon"), "wawi.tbl_bestelldetailtag" => array("tag","bestelldetail_id","insertamum","insertvon"), "wawi.tbl_projekt_bestellung" => array("projekt_kurzbz","bestellung_id","anteil"), - "wawi.tbl_bestellung" => array("bestellung_id","besteller_uid","kostenstelle_id","konto_id","firma_id","lieferadresse","rechnungsadresse","freigegeben","bestell_nr","titel","bemerkung","liefertermin","updateamum","updatevon","insertamum","insertvon","ext_id","zahlungstyp_kurzbz","zuordnung_uid","zuordnung_raum","zuordnung","auftragsbestaetigung","auslagenersatz","iban","wird_geleast","nicht_bestellen","empfehlung_leasing"), + "wawi.tbl_bestellung" => array("bestellung_id","besteller_uid","kostenstelle_id","konto_id","firma_id","lieferadresse","rechnungsadresse","freigegeben","bestell_nr","titel","bemerkung","liefertermin","updateamum","updatevon","insertamum","insertvon","ext_id","zahlungstyp_kurzbz"), "wawi.tbl_bestelldetail" => array("bestelldetail_id","bestellung_id","position","menge","verpackungseinheit","beschreibung","artikelnummer","preisprove","mwst","erhalten","sort","text","updateamum","updatevon","insertamum","insertvon"), "wawi.tbl_bestellung_bestellstatus" => array("bestellung_bestellstatus_id","bestellung_id","bestellstatus_kurzbz","uid","oe_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"), "wawi.tbl_bestellstatus" => array("bestellstatus_kurzbz","beschreibung"), From 2b6f8d90408a9c6fd53ded4d5d89cbf149aca3a2 Mon Sep 17 00:00:00 2001 From: Paolo Date: Fri, 23 Oct 2020 10:42:12 +0200 Subject: [PATCH 077/106] Fixed alias name of loglib in JQW_Controller --- application/core/JQW_Controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/core/JQW_Controller.php b/application/core/JQW_Controller.php index cec2f7943..72a2a972b 100644 --- a/application/core/JQW_Controller.php +++ b/application/core/JQW_Controller.php @@ -20,7 +20,7 @@ abstract class JQW_Controller extends JOB_Controller parent::__construct(); // Changes the needed configs for LogLib - $this->loglib->setConfigs( + $this->LogLibJob->setConfigs( array( 'dbExecuteUser' => 'Jobs queue system', 'requestId' => 'JQW' From 31d80567a6fdc12cbbf3d6a0c76aca0287b2c5c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 23 Oct 2020 15:43:41 +0200 Subject: [PATCH 078/106] Fixed Warning on User creation if C/O of Adress is missing --- include/adresse.class.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/adresse.class.php b/include/adresse.class.php index 6fd61673e..ffdb08582 100644 --- a/include/adresse.class.php +++ b/include/adresse.class.php @@ -52,6 +52,7 @@ class adresse extends basis_db public $ext_id; // integer public $rechnungsadresse=false; // boolean public $anmerkung; // string + public $co_name; /** * Konstruktor @@ -272,7 +273,7 @@ class adresse extends basis_db $this->errormsg = 'Gemeinde darf nicht länger als 255 Zeichen sein'; return false; } - + if(mb_strlen($this->co_name)>64) { $this->errormsg = 'Gemeinde darf nicht länger als 64 Zeichen sein'; @@ -325,7 +326,7 @@ class adresse extends basis_db $this->errormsg = 'adresse_id muss eine gueltige Zahl sein'; return false; } - + $qry='UPDATE public.tbl_adresse SET'. ' person_id='.$this->db_add_param($this->person_id, FHC_INTEGER).', '. ' name='.$this->db_add_param($this->name).', '. From fa73cf5272dcaa96a521a2c9fa01744bd87e2161 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 29 Oct 2020 14:19:02 +0100 Subject: [PATCH 079/106] Added phrase 'global/durchfuehren' Signed-off-by: Cris --- locale/de-AT/global.php | 387 ++++++++++++++++++++-------------------- locale/en-US/global.php | 381 +++++++++++++++++++-------------------- 2 files changed, 385 insertions(+), 383 deletions(-) diff --git a/locale/de-AT/global.php b/locale/de-AT/global.php index 2da93e384..b7f5fc769 100644 --- a/locale/de-AT/global.php +++ b/locale/de-AT/global.php @@ -1,193 +1,194 @@ -phrasen['global/studiengang']='Studiengang'; -$this->phrasen['global/studienrichtung']='Studienrichtung'; -$this->phrasen['global/institut']='Institut'; -$this->phrasen['global/semester']='Semester'; -$this->phrasen['global/studiensemester']='Studiensemester'; -$this->phrasen['global/studienplan']='Studienplan'; -$this->phrasen['global/studienzentrum']='Studienzentrum'; -$this->phrasen['global/studiengangsleitung']='Studiengangsleitung'; -$this->phrasen['global/leitung']='Leitung'; -$this->phrasen['global/koordination']='Koordination'; -$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung'; -$this->phrasen['global/lehreinheit']='Lehreinheit'; -$this->phrasen['global/organisationseinheit']='Organisationseinheit'; -$this->phrasen['global/organisationseinheiten']='Organisationseinheiten'; -$this->phrasen['global/organisationsform']='Organisationsform'; -$this->phrasen['global/studienjahr']='Studienjahr'; -$this->phrasen['global/lektorIn']='LektorIn'; -$this->phrasen['global/lektorInnen']='LektorInnen'; - -$this->phrasen['global/ects']='ECTS'; -$this->phrasen['global/semesterstunden']='Semesterstunden'; - -$this->phrasen['global/studiengangsmanagement']='Studiengangsmanagement'; -$this->phrasen['global/geschaeftsfuehrendeltg']='geschäftsf. Leitung'; -$this->phrasen['global/stellvertreter']='Stellvertretung'; -$this->phrasen['global/sekretariat']='Sekretariat'; -$this->phrasen['global/studentenvertreter']='Studienvertretung'; -$this->phrasen['global/jahrgangsvertretung']='Jahrgangsvertretung'; -$this->phrasen['global/hochschulvertretung']='Hochschulvertretung'; - -$this->phrasen['global/lehrziele']='Lehrziele'; -$this->phrasen['global/allgemeinerdownload']='Allgemeiner Download'; -$this->phrasen['global/newsgroups']='Newsgroups'; - -$this->phrasen['global/speichern']='Speichern'; -$this->phrasen['global/loeschen']='Löschen'; -$this->phrasen['global/entfernen']='Entfernen'; -$this->phrasen['global/editieren']='Editieren'; -$this->phrasen['global/suchen']='Suchen'; -$this->phrasen['global/lesen']='Lesen'; -$this->phrasen['global/bestaetigen']='Bestätigen'; -$this->phrasen['global/alle']='Alle'; -$this->phrasen['global/abbrechen']='Abbrechen'; -$this->phrasen['global/eintragen']='Eintragen'; -$this->phrasen['global/erstellen']='Erstellen'; -$this->phrasen['global/zurueck']='Zurück'; -$this->phrasen['global/abschicken']='Abschicken'; -$this->phrasen['global/zuruecksetzen']='Zurücksetzen'; -$this->phrasen['global/datei']='Datei'; -$this->phrasen['global/auswaehlen']='Auswählen'; -$this->phrasen['global/umbenennen']='Umbenennen'; -$this->phrasen['global/anzeigen']='Anzeigen'; -$this->phrasen['global/ausblenden']='Ausblenden'; -$this->phrasen['global/bearbeiten']='Bearbeiten'; -$this->phrasen['global/aendern']='Ändern'; -$this->phrasen['global/kopieren']='Kopieren'; -$this->phrasen['global/ja']='Ja'; -$this->phrasen['global/nein']='Nein'; -$this->phrasen['global/download']='Download'; -$this->phrasen['global/auswahl']='Auswahl'; -$this->phrasen['global/hinzufuegen']='Hinzufügen'; -$this->phrasen['global/drucken']='Drucken'; -$this->phrasen['global/pdfExport']='PDF Export'; -$this->phrasen['global/und']='und'; -$this->phrasen['global/oder']='oder'; -$this->phrasen['global/faelligAm']='Fällig am'; - -$this->phrasen['global/username']='Username'; -$this->phrasen['global/vorname']='Vorname'; -$this->phrasen['global/nachname']='Nachname'; -$this->phrasen['global/anrede']='Anrede'; -$this->phrasen['global/name']='Name'; -$this->phrasen['global/uid']='UID'; -$this->phrasen['global/postnomen']='Postnomen'; -$this->phrasen['global/strasse']='Straße'; -$this->phrasen['global/plz']='Postleitzahl'; -$this->phrasen['global/ort']='Ort'; -$this->phrasen['global/anmerkung']='Anmerkung'; -$this->phrasen['global/anmerkungen']='Anmerkungen'; -$this->phrasen['global/sprache']='Sprache'; -$this->phrasen['global/englisch']='Englisch'; -$this->phrasen['global/deutsch']='Deutsch'; -$this->phrasen['global/titel']='Titel'; -$this->phrasen['global/geschlecht']='Geschlecht'; -$this->phrasen['global/mann']='Mann'; -$this->phrasen['global/frau']='Frau'; -$this->phrasen['global/staatsbuergerschaft']='Staatsbürgerschaft'; -$this->phrasen['global/geburtsdatum']='Geburtsdatum'; -$this->phrasen['global/geburtsort']='Geburtsort'; -$this->phrasen['global/universität']='Universität'; -$this->phrasen['global/code']='Code'; -$this->phrasen['global/adresse']='Adresse'; -$this->phrasen['global/hauptwohnsitz']='Hauptwohnsitz'; -$this->phrasen['global/nebenwohnsitz']='Nebenwohnsitz'; -$this->phrasen['global/emailAdresse']='E-Mail Adresse'; -$this->phrasen['global/mail']='Mail'; -$this->phrasen['global/telefon']='Telefon'; -$this->phrasen['global/telefonnummer']='Telefonnummer'; -$this->phrasen['global/handy']='Handy'; -$this->phrasen['global/fax']='Fax'; -$this->phrasen['global/bezeichnung']='Bezeichnung'; -$this->phrasen['global/datum']='Datum'; -$this->phrasen['global/stunde']='Stunde'; -$this->phrasen['global/minute']='Minute'; -$this->phrasen['global/uhrzeit']='Uhrzeit'; -$this->phrasen['global/person']='Person'; -$this->phrasen['global/personen']='Personen'; -$this->phrasen['global/personenkz']='Personenkz.'; -$this->phrasen['global/beschreibung']='Beschreibung'; -$this->phrasen['global/angelegtAm']='angelegt am'; -$this->phrasen['global/funktion']='Funktion'; //Mitarbeiterfunktion zB Assistenz -$this->phrasen['global/montag']='Montag'; -$this->phrasen['global/dienstag']='Dienstag'; -$this->phrasen['global/mittwoch']='Mittwoch'; -$this->phrasen['global/donnerstag']='Donnerstag'; -$this->phrasen['global/freitag']='Freitag'; -$this->phrasen['global/samstag']='Samstag'; -$this->phrasen['global/sonntag']='Sonntag'; -$this->phrasen['global/matrikelnummer']='Matrikelnummer'; -$this->phrasen['global/personenkennzeichen']='Personenkennzeichen'; - -$this->phrasen['global/von']='Von'; -$this->phrasen['global/bis']='Bis'; -$this->phrasen['global/zweck']='Zweck'; -$this->phrasen['global/aktion']='Aktion'; -$this->phrasen['global/nummer']='Nummer'; -$this->phrasen['global/gruppe']='Gruppe'; -$this->phrasen['global/verband']='Verband'; -$this->phrasen['global/kalender']='Kalender'; -$this->phrasen['global/beginn']='Beginn'; -$this->phrasen['global/ende']='Ende'; -$this->phrasen['global/beispiele']='Beispiele'; -$this->phrasen['global/neu']='Neu'; -$this->phrasen['global/ok']='OK'; - -$this->phrasen['global/anmelden']='Anmelden'; -$this->phrasen['global/angemeldet']='Angemeldet'; -$this->phrasen['global/löschen']='Löschen'; -$this->phrasen['global/dateiLoeschen']='Datei Löschen'; -$this->phrasen['global/betreff']='Betreff'; -$this->phrasen['global/handbuch']='Handbuch'; -$this->phrasen['global/hilfe']='Hilfe'; -$this->phrasen['global/benutzer']='Benutzer'; -$this->phrasen['global/anleitung']='Anleitung'; -$this->phrasen['global/bericht']='Bericht'; -$this->phrasen['global/fixangestellt']='Fixangestellt'; - -// Statusmeldungen -$this->phrasen['global/erfolgreichgespeichert']='Erfolgreich gespeichert'; -$this->phrasen['global/erfolgreichgelöscht']='Erfolgreich gelöscht'; -$this->phrasen['global/fehleraufgetreten']='Es ist ein Fehler aufgetreten'; -$this->phrasen['global/emailgesendetan']='E-Mail gesendet an'; -$this->phrasen['global/emailNichtVersendet']='E-Mail konnte nicht versendet werden'; -$this->phrasen['global/keineBerechtigungFuerDieseSeite']='Sie haben keine Berechtigung für diese Seite'; -$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Fehler beim Öffnen der Datenbankverbindung'; -$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Fehler beim Lesen aus der Datenbank'; -$this->phrasen['global/userNichtGefunden']='Es wurde kein User gefunden'; -$this->phrasen['global/datumNichtGesetzt']='Datum ist nicht gesetzt'; -$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'Studiensemester konnte nicht gefunden werden'; -$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Studiengang konnte nicht gefunden werden'; -$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Studienjahr konnte nicht gefunden werden'; -$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Fehler beim ermitteln der UID'; -$this->phrasen['global/nichtAngemeldet'] = 'Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden'; -$this->phrasen['global/LDAPserverNichtErreichbar']='Der LDAP-Server ist nicht erreichbar'; -$this->phrasen['global/unbekannterFehleraufgetreten']='Es ist ein unbekannter Fehler aufgetreten'; -$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Fehler bei der Uebergabe der Parameter'; -$this->phrasen['global/warnungWirklichLoeschen']='Wollen Sie diesen Datensatz wirklich löschen?'; -$this->phrasen['global/dateiErfolgreichHochgeladen']='Die Datei wurde erfolgreich hochgeladen'; -$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Die Datei wurde nicht erfolgreich hochgeladen. Bitte wiederholen Sie den Vorgang'; -$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='Fuer diese Aktion benoetigen Sie Administratorenrechte'; -$this->phrasen['global/dateiExistiertNicht']='Die Datei existiert nicht'; -$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Fehler beim Aktualisieren der Daten'; -$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Fehler beim Laden des Datensatzes'; -$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Fehler beim Speichern der Daten'; -$this->phrasen['global/datenWurdenGespeichert']='Daten wurden gespeichert'; -$this->phrasen['global/eintragWurdeGeloescht']='Eintrag wurde gelöscht'; -$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Fehler beim Löschen des Eintrags'; -$this->phrasen['global/keineBerechtigung']='Keine Berechtigung'; -$this->phrasen['global/datensatzWurdeNichtGefunden']='Datensatz wurde nicht gefunden'; -$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='Keine Berechtigung zum Ändern des Datensatzes'; -$this->phrasen['global/keineDatenGefunden']='Keine Daten gefunden'; -$this->phrasen['global/erfolgreichAngelegt']='Erfolgreich angelegt'; -$this->phrasen['global/keineSuchergebnisse']='Es liegen keine Daten zu Ihrer Suchanfrage vor'; -$this->phrasen['global/bitteWaehlen']='Bitte wählen Sie'; - - -//infrastruktur - -$this->phrasen['global/passwort']='Passwort'; -$this->phrasen['global/abmelden']='Abmelden'; -$this->phrasen['global/emailAnAssistenz']='Email an Assistenz'; -?> +phrasen['global/studiengang']='Studiengang'; +$this->phrasen['global/studienrichtung']='Studienrichtung'; +$this->phrasen['global/institut']='Institut'; +$this->phrasen['global/semester']='Semester'; +$this->phrasen['global/studiensemester']='Studiensemester'; +$this->phrasen['global/studienplan']='Studienplan'; +$this->phrasen['global/studienzentrum']='Studienzentrum'; +$this->phrasen['global/studiengangsleitung']='Studiengangsleitung'; +$this->phrasen['global/leitung']='Leitung'; +$this->phrasen['global/koordination']='Koordination'; +$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung'; +$this->phrasen['global/lehreinheit']='Lehreinheit'; +$this->phrasen['global/organisationseinheit']='Organisationseinheit'; +$this->phrasen['global/organisationseinheiten']='Organisationseinheiten'; +$this->phrasen['global/organisationsform']='Organisationsform'; +$this->phrasen['global/studienjahr']='Studienjahr'; +$this->phrasen['global/lektorIn']='LektorIn'; +$this->phrasen['global/lektorInnen']='LektorInnen'; + +$this->phrasen['global/ects']='ECTS'; +$this->phrasen['global/semesterstunden']='Semesterstunden'; + +$this->phrasen['global/studiengangsmanagement']='Studiengangsmanagement'; +$this->phrasen['global/geschaeftsfuehrendeltg']='geschäftsf. Leitung'; +$this->phrasen['global/stellvertreter']='Stellvertretung'; +$this->phrasen['global/sekretariat']='Sekretariat'; +$this->phrasen['global/studentenvertreter']='Studienvertretung'; +$this->phrasen['global/jahrgangsvertretung']='Jahrgangsvertretung'; +$this->phrasen['global/hochschulvertretung']='Hochschulvertretung'; + +$this->phrasen['global/lehrziele']='Lehrziele'; +$this->phrasen['global/allgemeinerdownload']='Allgemeiner Download'; +$this->phrasen['global/newsgroups']='Newsgroups'; + +$this->phrasen['global/speichern']='Speichern'; +$this->phrasen['global/loeschen']='Löschen'; +$this->phrasen['global/entfernen']='Entfernen'; +$this->phrasen['global/editieren']='Editieren'; +$this->phrasen['global/suchen']='Suchen'; +$this->phrasen['global/lesen']='Lesen'; +$this->phrasen['global/bestaetigen']='Bestätigen'; +$this->phrasen['global/alle']='Alle'; +$this->phrasen['global/abbrechen']='Abbrechen'; +$this->phrasen['global/eintragen']='Eintragen'; +$this->phrasen['global/erstellen']='Erstellen'; +$this->phrasen['global/durchfuehren']='Durchführen'; +$this->phrasen['global/zurueck']='Zurück'; +$this->phrasen['global/abschicken']='Abschicken'; +$this->phrasen['global/zuruecksetzen']='Zurücksetzen'; +$this->phrasen['global/datei']='Datei'; +$this->phrasen['global/auswaehlen']='Auswählen'; +$this->phrasen['global/umbenennen']='Umbenennen'; +$this->phrasen['global/anzeigen']='Anzeigen'; +$this->phrasen['global/ausblenden']='Ausblenden'; +$this->phrasen['global/bearbeiten']='Bearbeiten'; +$this->phrasen['global/aendern']='Ändern'; +$this->phrasen['global/kopieren']='Kopieren'; +$this->phrasen['global/ja']='Ja'; +$this->phrasen['global/nein']='Nein'; +$this->phrasen['global/download']='Download'; +$this->phrasen['global/auswahl']='Auswahl'; +$this->phrasen['global/hinzufuegen']='Hinzufügen'; +$this->phrasen['global/drucken']='Drucken'; +$this->phrasen['global/pdfExport']='PDF Export'; +$this->phrasen['global/und']='und'; +$this->phrasen['global/oder']='oder'; +$this->phrasen['global/faelligAm']='Fällig am'; + +$this->phrasen['global/username']='Username'; +$this->phrasen['global/vorname']='Vorname'; +$this->phrasen['global/nachname']='Nachname'; +$this->phrasen['global/anrede']='Anrede'; +$this->phrasen['global/name']='Name'; +$this->phrasen['global/uid']='UID'; +$this->phrasen['global/postnomen']='Postnomen'; +$this->phrasen['global/strasse']='Straße'; +$this->phrasen['global/plz']='Postleitzahl'; +$this->phrasen['global/ort']='Ort'; +$this->phrasen['global/anmerkung']='Anmerkung'; +$this->phrasen['global/anmerkungen']='Anmerkungen'; +$this->phrasen['global/sprache']='Sprache'; +$this->phrasen['global/englisch']='Englisch'; +$this->phrasen['global/deutsch']='Deutsch'; +$this->phrasen['global/titel']='Titel'; +$this->phrasen['global/geschlecht']='Geschlecht'; +$this->phrasen['global/mann']='Mann'; +$this->phrasen['global/frau']='Frau'; +$this->phrasen['global/staatsbuergerschaft']='Staatsbürgerschaft'; +$this->phrasen['global/geburtsdatum']='Geburtsdatum'; +$this->phrasen['global/geburtsort']='Geburtsort'; +$this->phrasen['global/universität']='Universität'; +$this->phrasen['global/code']='Code'; +$this->phrasen['global/adresse']='Adresse'; +$this->phrasen['global/hauptwohnsitz']='Hauptwohnsitz'; +$this->phrasen['global/nebenwohnsitz']='Nebenwohnsitz'; +$this->phrasen['global/emailAdresse']='E-Mail Adresse'; +$this->phrasen['global/mail']='Mail'; +$this->phrasen['global/telefon']='Telefon'; +$this->phrasen['global/telefonnummer']='Telefonnummer'; +$this->phrasen['global/handy']='Handy'; +$this->phrasen['global/fax']='Fax'; +$this->phrasen['global/bezeichnung']='Bezeichnung'; +$this->phrasen['global/datum']='Datum'; +$this->phrasen['global/stunde']='Stunde'; +$this->phrasen['global/minute']='Minute'; +$this->phrasen['global/uhrzeit']='Uhrzeit'; +$this->phrasen['global/person']='Person'; +$this->phrasen['global/personen']='Personen'; +$this->phrasen['global/personenkz']='Personenkz.'; +$this->phrasen['global/beschreibung']='Beschreibung'; +$this->phrasen['global/angelegtAm']='angelegt am'; +$this->phrasen['global/funktion']='Funktion'; //Mitarbeiterfunktion zB Assistenz +$this->phrasen['global/montag']='Montag'; +$this->phrasen['global/dienstag']='Dienstag'; +$this->phrasen['global/mittwoch']='Mittwoch'; +$this->phrasen['global/donnerstag']='Donnerstag'; +$this->phrasen['global/freitag']='Freitag'; +$this->phrasen['global/samstag']='Samstag'; +$this->phrasen['global/sonntag']='Sonntag'; +$this->phrasen['global/matrikelnummer']='Matrikelnummer'; +$this->phrasen['global/personenkennzeichen']='Personenkennzeichen'; + +$this->phrasen['global/von']='Von'; +$this->phrasen['global/bis']='Bis'; +$this->phrasen['global/zweck']='Zweck'; +$this->phrasen['global/aktion']='Aktion'; +$this->phrasen['global/nummer']='Nummer'; +$this->phrasen['global/gruppe']='Gruppe'; +$this->phrasen['global/verband']='Verband'; +$this->phrasen['global/kalender']='Kalender'; +$this->phrasen['global/beginn']='Beginn'; +$this->phrasen['global/ende']='Ende'; +$this->phrasen['global/beispiele']='Beispiele'; +$this->phrasen['global/neu']='Neu'; +$this->phrasen['global/ok']='OK'; + +$this->phrasen['global/anmelden']='Anmelden'; +$this->phrasen['global/angemeldet']='Angemeldet'; +$this->phrasen['global/löschen']='Löschen'; +$this->phrasen['global/dateiLoeschen']='Datei Löschen'; +$this->phrasen['global/betreff']='Betreff'; +$this->phrasen['global/handbuch']='Handbuch'; +$this->phrasen['global/hilfe']='Hilfe'; +$this->phrasen['global/benutzer']='Benutzer'; +$this->phrasen['global/anleitung']='Anleitung'; +$this->phrasen['global/bericht']='Bericht'; +$this->phrasen['global/fixangestellt']='Fixangestellt'; + +// Statusmeldungen +$this->phrasen['global/erfolgreichgespeichert']='Erfolgreich gespeichert'; +$this->phrasen['global/erfolgreichgelöscht']='Erfolgreich gelöscht'; +$this->phrasen['global/fehleraufgetreten']='Es ist ein Fehler aufgetreten'; +$this->phrasen['global/emailgesendetan']='E-Mail gesendet an'; +$this->phrasen['global/emailNichtVersendet']='E-Mail konnte nicht versendet werden'; +$this->phrasen['global/keineBerechtigungFuerDieseSeite']='Sie haben keine Berechtigung für diese Seite'; +$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Fehler beim Öffnen der Datenbankverbindung'; +$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Fehler beim Lesen aus der Datenbank'; +$this->phrasen['global/userNichtGefunden']='Es wurde kein User gefunden'; +$this->phrasen['global/datumNichtGesetzt']='Datum ist nicht gesetzt'; +$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'Studiensemester konnte nicht gefunden werden'; +$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Studiengang konnte nicht gefunden werden'; +$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Studienjahr konnte nicht gefunden werden'; +$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Fehler beim ermitteln der UID'; +$this->phrasen['global/nichtAngemeldet'] = 'Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden'; +$this->phrasen['global/LDAPserverNichtErreichbar']='Der LDAP-Server ist nicht erreichbar'; +$this->phrasen['global/unbekannterFehleraufgetreten']='Es ist ein unbekannter Fehler aufgetreten'; +$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Fehler bei der Uebergabe der Parameter'; +$this->phrasen['global/warnungWirklichLoeschen']='Wollen Sie diesen Datensatz wirklich löschen?'; +$this->phrasen['global/dateiErfolgreichHochgeladen']='Die Datei wurde erfolgreich hochgeladen'; +$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Die Datei wurde nicht erfolgreich hochgeladen. Bitte wiederholen Sie den Vorgang'; +$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='Fuer diese Aktion benoetigen Sie Administratorenrechte'; +$this->phrasen['global/dateiExistiertNicht']='Die Datei existiert nicht'; +$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Fehler beim Aktualisieren der Daten'; +$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Fehler beim Laden des Datensatzes'; +$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Fehler beim Speichern der Daten'; +$this->phrasen['global/datenWurdenGespeichert']='Daten wurden gespeichert'; +$this->phrasen['global/eintragWurdeGeloescht']='Eintrag wurde gelöscht'; +$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Fehler beim Löschen des Eintrags'; +$this->phrasen['global/keineBerechtigung']='Keine Berechtigung'; +$this->phrasen['global/datensatzWurdeNichtGefunden']='Datensatz wurde nicht gefunden'; +$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='Keine Berechtigung zum Ändern des Datensatzes'; +$this->phrasen['global/keineDatenGefunden']='Keine Daten gefunden'; +$this->phrasen['global/erfolgreichAngelegt']='Erfolgreich angelegt'; +$this->phrasen['global/keineSuchergebnisse']='Es liegen keine Daten zu Ihrer Suchanfrage vor'; +$this->phrasen['global/bitteWaehlen']='Bitte wählen Sie'; + + +//infrastruktur + +$this->phrasen['global/passwort']='Passwort'; +$this->phrasen['global/abmelden']='Abmelden'; +$this->phrasen['global/emailAnAssistenz']='Email an Assistenz'; +?> diff --git a/locale/en-US/global.php b/locale/en-US/global.php index fb71e6cab..46a998cfb 100644 --- a/locale/en-US/global.php +++ b/locale/en-US/global.php @@ -1,190 +1,191 @@ -phrasen['global/studiengang']='Degree Program'; -$this->phrasen['global/studienrichtung']='Degree Program'; -$this->phrasen['global/institut']='Institute'; -$this->phrasen['global/semester']='Semester'; -$this->phrasen['global/studiensemester']='Semester'; -$this->phrasen['global/studienplan']='Study Plan'; -$this->phrasen['global/studienzentrum']='Study Center'; -$this->phrasen['global/studiengangsleitung']='Program Director'; -$this->phrasen['global/leitung']='Head'; -$this->phrasen['global/koordination']='Coordination'; -$this->phrasen['global/lehrveranstaltung']='Subject'; -$this->phrasen['global/lehreinheit']='Teaching unit'; -$this->phrasen['global/organisationseinheit']='Organisation Unit'; -$this->phrasen['global/organisationseinheiten']='Organisation Units'; -$this->phrasen['global/organisationsform']='Organisational form'; -$this->phrasen['global/studienjahr']='Academic year'; -$this->phrasen['global/lektorIn']='Lector'; -$this->phrasen['global/lektorInnen']='Lectors'; - -$this->phrasen['global/ects']='ECTS'; -$this->phrasen['global/semesterstunden']='Units per semester'; - -$this->phrasen['global/studiengangsmanagement']='Study Management'; -$this->phrasen['global/geschaeftsfuehrendeltg']='business Leadership'; -$this->phrasen['global/stellvertreter']='Deputy Program Director'; -$this->phrasen['global/sekretariat']='Administrative Assistant'; -$this->phrasen['global/studentenvertreter']='Degree Program Representative'; -$this->phrasen['global/jahrgangsvertretung']='Academic Year Representative'; -$this->phrasen['global/hochschulvertretung']='UAS Representative'; - -$this->phrasen['global/lehrziele']='Teaching goals'; -$this->phrasen['global/allgemeinerdownload']='Global Download'; -$this->phrasen['global/newsgroups']='Newsgroups'; - -$this->phrasen['global/speichern']='Save'; -$this->phrasen['global/loeschen']='Delete'; -$this->phrasen['global/entfernen']='Delete'; -$this->phrasen['global/editieren']='Edit'; -$this->phrasen['global/suchen']='Search'; -$this->phrasen['global/lesen']='Read'; -$this->phrasen['global/bestaetigen']='Confirm'; -$this->phrasen['global/alle']='All'; -$this->phrasen['global/abbrechen']='Cancel'; -$this->phrasen['global/eintragen']='Register'; -$this->phrasen['global/erstellen']='Create'; -$this->phrasen['global/zurueck']='Back'; -$this->phrasen['global/abschicken']='Submit'; -$this->phrasen['global/zuruecksetzen']='Reset'; -$this->phrasen['global/datei']='File'; -$this->phrasen['global/auswaehlen']='Select'; -$this->phrasen['global/umbenennen']='Rename'; -$this->phrasen['global/anzeigen']='Show'; -$this->phrasen['global/ausblenden']='Hide'; -$this->phrasen['global/bearbeiten']='Edit'; -$this->phrasen['global/aendern']='Change'; -$this->phrasen['global/kopieren']='Copy'; -$this->phrasen['global/ja']='Yes'; -$this->phrasen['global/nein']='No'; -$this->phrasen['global/download']='Download'; -$this->phrasen['global/auswahl']='Select'; -$this->phrasen['global/hinzufuegen']='Add'; -$this->phrasen['global/drucken']='Print'; -$this->phrasen['global/und']='and'; -$this->phrasen['global/oder']='or'; -$this->phrasen['global/faelligAm']='Due on'; - -$this->phrasen['global/username']='Username'; -$this->phrasen['global/vorname']='First Name'; -$this->phrasen['global/nachname']='Last Name'; -$this->phrasen['global/anrede']='Title'; -$this->phrasen['global/name']='Name'; -$this->phrasen['global/uid']='UID'; -$this->phrasen['global/postnomen']='Postnomen'; -$this->phrasen['global/strasse']='Street'; -$this->phrasen['global/plz']='Postal Code'; -$this->phrasen['global/ort']='City'; -$this->phrasen['global/anmerkung']='Comment'; -$this->phrasen['global/anmerkungen']='Comments'; -$this->phrasen['global/sprache']='Language'; -$this->phrasen['global/englisch']='English'; -$this->phrasen['global/deutsch']='German'; -$this->phrasen['global/titel']='Title'; -$this->phrasen['global/geschlecht']='Gender'; -$this->phrasen['global/mann']='Male'; -$this->phrasen['global/frau']='Female'; -$this->phrasen['global/staatsbuergerschaft']='Citizenship'; -$this->phrasen['global/geburtsdatum']='Date of Birth'; -$this->phrasen['global/geburtsort']='Place of Birth'; -$this->phrasen['global/universität']='University'; -$this->phrasen['global/code']='Code'; -$this->phrasen['global/adresse']='Address'; -$this->phrasen['global/hauptwohnsitz']='Principal residence'; -$this->phrasen['global/nebenwohnsitz']='Secondary residence'; -$this->phrasen['global/emailAdresse']='E-Mail Address'; -$this->phrasen['global/mail']='Mail'; -$this->phrasen['global/telefon']='Telephone'; -$this->phrasen['global/telefonnummer']='Telephone number'; -$this->phrasen['global/handy']='Mobile phone'; -$this->phrasen['global/fax']='Fax'; -$this->phrasen['global/bezeichnung']='Description'; -$this->phrasen['global/datum']='Date'; -$this->phrasen['global/stunde']='Hour'; -$this->phrasen['global/minute']='Minute'; -$this->phrasen['global/uhrzeit']='Time'; -$this->phrasen['global/person']='Person'; -$this->phrasen['global/personenkz']='StudentID'; -$this->phrasen['global/personen']='Number of Persons'; -$this->phrasen['global/beschreibung']='Description'; -$this->phrasen['global/angelegtAm']='created:'; -$this->phrasen['global/funktion']='Role'; //Mitarbeiterfunktion zB Assistenz -$this->phrasen['global/montag']='Monday'; -$this->phrasen['global/dienstag']='Tuesday'; -$this->phrasen['global/mittwoch']='Wednesday'; -$this->phrasen['global/donnerstag']='Thursday'; -$this->phrasen['global/freitag']='Friday'; -$this->phrasen['global/samstag']='Saturday'; -$this->phrasen['global/sonntag']='Sunday'; -$this->phrasen['global/matrikelnummer']='Matriculation number'; -$this->phrasen['global/personenkennzeichen']='Personal identifier'; - -$this->phrasen['global/von']='From'; -$this->phrasen['global/bis']='To'; -$this->phrasen['global/zweck']='Purpose'; -$this->phrasen['global/aktion']='Action'; -$this->phrasen['global/nummer']='Number'; -$this->phrasen['global/gruppe']='Group'; -$this->phrasen['global/verband']='Division'; -$this->phrasen['global/kalender']='Calendar'; -$this->phrasen['global/beginn']='Start'; -$this->phrasen['global/ende']='End'; -$this->phrasen['global/beispiele']='Examples'; -$this->phrasen['global/neu']='New'; -$this->phrasen['global/ok']='OK'; - -$this->phrasen['global/anmelden']='Register'; -$this->phrasen['global/angemeldet']='Registered'; -$this->phrasen['global/löschen']='Delete'; -$this->phrasen['global/dateiLoeschen']='Delete File'; -$this->phrasen['global/betreff']='Subject'; -$this->phrasen['global/handbuch']='Manual'; -$this->phrasen['global/hilfe']='Help'; -$this->phrasen['global/benutzer']='User'; -$this->phrasen['global/anleitung']='Manual'; -$this->phrasen['global/bericht']='Report'; -$this->phrasen['global/fixangestellt']='Salaried'; - -// Statusmeldungen -$this->phrasen['global/erfolgreichgespeichert']='Successfully saved'; -$this->phrasen['global/erfolgreichgelöscht']='Successfully deleted'; -$this->phrasen['global/fehleraufgetreten']='Error occurred'; -$this->phrasen['global/emailgesendetan']='E-Mail sent to'; -$this->phrasen['global/keineBerechtigungFuerDieseSeite']='You dont have the authority to view this site'; -$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Cant open Database connection'; -$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Error reading from database'; -$this->phrasen['global/userNichtGefunden']='No user found'; -$this->phrasen['global/datumNichtGesetzt']='Date is missing'; -$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'No semester found'; -$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Program not found'; -$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Academic year not found'; -$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Error finding the UID'; -$this->phrasen['global/nichtAngemeldet'] = 'You are not logged in. No UID found'; -$this->phrasen['global/LDAPserverNichtErreichbar']='Error connecting to LDAP-Server'; -$this->phrasen['global/unbekannterFehleraufgetreten']='Unknown error occurred'; -$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Error in the parameter transfer'; -$this->phrasen['global/warnungWirklichLoeschen']='Do you want to delete this record?'; -$this->phrasen['global/dateiErfolgreichHochgeladen']='File successfully uploaded'; -$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Failed to upload File. Please retry'; -$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='You must be Administrator.'; -$this->phrasen['global/dateiExistiertNicht']='File not found'; -$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Error updating the data. '; -$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Error loading entries'; -$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Error saving the data'; -$this->phrasen['global/datenWurdenGespeichert']='Data saved'; -$this->phrasen['global/eintragWurdeGeloescht']='Entry deleted'; -$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Error deleting entry'; -$this->phrasen['global/keineBerechtigung']='No authority'; -$this->phrasen['global/datensatzWurdeNichtGefunden']='Data not found'; -$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='You dont have the authority to change to data'; -$this->phrasen['global/keineDatenGefunden']='No data found'; -$this->phrasen['global/erfolgreichAngelegt']='Created successfully'; -$this->phrasen['global/keineSuchergebnisse']='No matches found'; -$this->phrasen['global/bitteWaehlen']='Please select'; - -//infrastruktur - -$this->phrasen['global/passwort']='Password'; -$this->phrasen['global/abmelden']='Logout'; -$this->phrasen['global/emailAnAssistenz']='Email Administrative Assistant'; -?> +phrasen['global/studiengang']='Degree Program'; +$this->phrasen['global/studienrichtung']='Degree Program'; +$this->phrasen['global/institut']='Institute'; +$this->phrasen['global/semester']='Semester'; +$this->phrasen['global/studiensemester']='Semester'; +$this->phrasen['global/studienplan']='Study Plan'; +$this->phrasen['global/studienzentrum']='Study Center'; +$this->phrasen['global/studiengangsleitung']='Program Director'; +$this->phrasen['global/leitung']='Head'; +$this->phrasen['global/koordination']='Coordination'; +$this->phrasen['global/lehrveranstaltung']='Subject'; +$this->phrasen['global/lehreinheit']='Teaching unit'; +$this->phrasen['global/organisationseinheit']='Organisation Unit'; +$this->phrasen['global/organisationseinheiten']='Organisation Units'; +$this->phrasen['global/organisationsform']='Organisational form'; +$this->phrasen['global/studienjahr']='Academic year'; +$this->phrasen['global/lektorIn']='Lector'; +$this->phrasen['global/lektorInnen']='Lectors'; + +$this->phrasen['global/ects']='ECTS'; +$this->phrasen['global/semesterstunden']='Units per semester'; + +$this->phrasen['global/studiengangsmanagement']='Study Management'; +$this->phrasen['global/geschaeftsfuehrendeltg']='business Leadership'; +$this->phrasen['global/stellvertreter']='Deputy Program Director'; +$this->phrasen['global/sekretariat']='Administrative Assistant'; +$this->phrasen['global/studentenvertreter']='Degree Program Representative'; +$this->phrasen['global/jahrgangsvertretung']='Academic Year Representative'; +$this->phrasen['global/hochschulvertretung']='UAS Representative'; + +$this->phrasen['global/lehrziele']='Teaching goals'; +$this->phrasen['global/allgemeinerdownload']='Global Download'; +$this->phrasen['global/newsgroups']='Newsgroups'; + +$this->phrasen['global/speichern']='Save'; +$this->phrasen['global/loeschen']='Delete'; +$this->phrasen['global/entfernen']='Delete'; +$this->phrasen['global/editieren']='Edit'; +$this->phrasen['global/suchen']='Search'; +$this->phrasen['global/lesen']='Read'; +$this->phrasen['global/bestaetigen']='Confirm'; +$this->phrasen['global/alle']='All'; +$this->phrasen['global/abbrechen']='Cancel'; +$this->phrasen['global/eintragen']='Register'; +$this->phrasen['global/erstellen']='Create'; +$this->phrasen['global/durchfuehren']='Run'; +$this->phrasen['global/zurueck']='Back'; +$this->phrasen['global/abschicken']='Submit'; +$this->phrasen['global/zuruecksetzen']='Reset'; +$this->phrasen['global/datei']='File'; +$this->phrasen['global/auswaehlen']='Select'; +$this->phrasen['global/umbenennen']='Rename'; +$this->phrasen['global/anzeigen']='Show'; +$this->phrasen['global/ausblenden']='Hide'; +$this->phrasen['global/bearbeiten']='Edit'; +$this->phrasen['global/aendern']='Change'; +$this->phrasen['global/kopieren']='Copy'; +$this->phrasen['global/ja']='Yes'; +$this->phrasen['global/nein']='No'; +$this->phrasen['global/download']='Download'; +$this->phrasen['global/auswahl']='Select'; +$this->phrasen['global/hinzufuegen']='Add'; +$this->phrasen['global/drucken']='Print'; +$this->phrasen['global/und']='and'; +$this->phrasen['global/oder']='or'; +$this->phrasen['global/faelligAm']='Due on'; + +$this->phrasen['global/username']='Username'; +$this->phrasen['global/vorname']='First Name'; +$this->phrasen['global/nachname']='Last Name'; +$this->phrasen['global/anrede']='Title'; +$this->phrasen['global/name']='Name'; +$this->phrasen['global/uid']='UID'; +$this->phrasen['global/postnomen']='Postnomen'; +$this->phrasen['global/strasse']='Street'; +$this->phrasen['global/plz']='Postal Code'; +$this->phrasen['global/ort']='City'; +$this->phrasen['global/anmerkung']='Comment'; +$this->phrasen['global/anmerkungen']='Comments'; +$this->phrasen['global/sprache']='Language'; +$this->phrasen['global/englisch']='English'; +$this->phrasen['global/deutsch']='German'; +$this->phrasen['global/titel']='Title'; +$this->phrasen['global/geschlecht']='Gender'; +$this->phrasen['global/mann']='Male'; +$this->phrasen['global/frau']='Female'; +$this->phrasen['global/staatsbuergerschaft']='Citizenship'; +$this->phrasen['global/geburtsdatum']='Date of Birth'; +$this->phrasen['global/geburtsort']='Place of Birth'; +$this->phrasen['global/universität']='University'; +$this->phrasen['global/code']='Code'; +$this->phrasen['global/adresse']='Address'; +$this->phrasen['global/hauptwohnsitz']='Principal residence'; +$this->phrasen['global/nebenwohnsitz']='Secondary residence'; +$this->phrasen['global/emailAdresse']='E-Mail Address'; +$this->phrasen['global/mail']='Mail'; +$this->phrasen['global/telefon']='Telephone'; +$this->phrasen['global/telefonnummer']='Telephone number'; +$this->phrasen['global/handy']='Mobile phone'; +$this->phrasen['global/fax']='Fax'; +$this->phrasen['global/bezeichnung']='Description'; +$this->phrasen['global/datum']='Date'; +$this->phrasen['global/stunde']='Hour'; +$this->phrasen['global/minute']='Minute'; +$this->phrasen['global/uhrzeit']='Time'; +$this->phrasen['global/person']='Person'; +$this->phrasen['global/personenkz']='StudentID'; +$this->phrasen['global/personen']='Number of Persons'; +$this->phrasen['global/beschreibung']='Description'; +$this->phrasen['global/angelegtAm']='created:'; +$this->phrasen['global/funktion']='Role'; //Mitarbeiterfunktion zB Assistenz +$this->phrasen['global/montag']='Monday'; +$this->phrasen['global/dienstag']='Tuesday'; +$this->phrasen['global/mittwoch']='Wednesday'; +$this->phrasen['global/donnerstag']='Thursday'; +$this->phrasen['global/freitag']='Friday'; +$this->phrasen['global/samstag']='Saturday'; +$this->phrasen['global/sonntag']='Sunday'; +$this->phrasen['global/matrikelnummer']='Matriculation number'; +$this->phrasen['global/personenkennzeichen']='Personal identifier'; + +$this->phrasen['global/von']='From'; +$this->phrasen['global/bis']='To'; +$this->phrasen['global/zweck']='Purpose'; +$this->phrasen['global/aktion']='Action'; +$this->phrasen['global/nummer']='Number'; +$this->phrasen['global/gruppe']='Group'; +$this->phrasen['global/verband']='Division'; +$this->phrasen['global/kalender']='Calendar'; +$this->phrasen['global/beginn']='Start'; +$this->phrasen['global/ende']='End'; +$this->phrasen['global/beispiele']='Examples'; +$this->phrasen['global/neu']='New'; +$this->phrasen['global/ok']='OK'; + +$this->phrasen['global/anmelden']='Register'; +$this->phrasen['global/angemeldet']='Registered'; +$this->phrasen['global/löschen']='Delete'; +$this->phrasen['global/dateiLoeschen']='Delete File'; +$this->phrasen['global/betreff']='Subject'; +$this->phrasen['global/handbuch']='Manual'; +$this->phrasen['global/hilfe']='Help'; +$this->phrasen['global/benutzer']='User'; +$this->phrasen['global/anleitung']='Manual'; +$this->phrasen['global/bericht']='Report'; +$this->phrasen['global/fixangestellt']='Salaried'; + +// Statusmeldungen +$this->phrasen['global/erfolgreichgespeichert']='Successfully saved'; +$this->phrasen['global/erfolgreichgelöscht']='Successfully deleted'; +$this->phrasen['global/fehleraufgetreten']='Error occurred'; +$this->phrasen['global/emailgesendetan']='E-Mail sent to'; +$this->phrasen['global/keineBerechtigungFuerDieseSeite']='You dont have the authority to view this site'; +$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Cant open Database connection'; +$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Error reading from database'; +$this->phrasen['global/userNichtGefunden']='No user found'; +$this->phrasen['global/datumNichtGesetzt']='Date is missing'; +$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'No semester found'; +$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Program not found'; +$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Academic year not found'; +$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Error finding the UID'; +$this->phrasen['global/nichtAngemeldet'] = 'You are not logged in. No UID found'; +$this->phrasen['global/LDAPserverNichtErreichbar']='Error connecting to LDAP-Server'; +$this->phrasen['global/unbekannterFehleraufgetreten']='Unknown error occurred'; +$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Error in the parameter transfer'; +$this->phrasen['global/warnungWirklichLoeschen']='Do you want to delete this record?'; +$this->phrasen['global/dateiErfolgreichHochgeladen']='File successfully uploaded'; +$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Failed to upload File. Please retry'; +$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='You must be Administrator.'; +$this->phrasen['global/dateiExistiertNicht']='File not found'; +$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Error updating the data. '; +$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Error loading entries'; +$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Error saving the data'; +$this->phrasen['global/datenWurdenGespeichert']='Data saved'; +$this->phrasen['global/eintragWurdeGeloescht']='Entry deleted'; +$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Error deleting entry'; +$this->phrasen['global/keineBerechtigung']='No authority'; +$this->phrasen['global/datensatzWurdeNichtGefunden']='Data not found'; +$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='You dont have the authority to change to data'; +$this->phrasen['global/keineDatenGefunden']='No data found'; +$this->phrasen['global/erfolgreichAngelegt']='Created successfully'; +$this->phrasen['global/keineSuchergebnisse']='No matches found'; +$this->phrasen['global/bitteWaehlen']='Please select'; + +//infrastruktur + +$this->phrasen['global/passwort']='Password'; +$this->phrasen['global/abmelden']='Logout'; +$this->phrasen['global/emailAnAssistenz']='Email Administrative Assistant'; +?> From d78308d43fc5c9be8fd030e8f2485aaf2f236ed5 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 29 Oct 2020 23:40:02 +0100 Subject: [PATCH 080/106] DVUH Meldung: added ERNP Meldung for retrieving bpk for e.g. foreign residents --- include/dvb.class.php | 163 +++++++++++++++++++++++++++++++++++ soap/datenverbund_client.php | 73 ++++++++++++++-- 2 files changed, 229 insertions(+), 7 deletions(-) diff --git a/include/dvb.class.php b/include/dvb.class.php index 0131f1e4d..2f163d5e7 100644 --- a/include/dvb.class.php +++ b/include/dvb.class.php @@ -1013,6 +1013,134 @@ class dvb extends basis_db } } + public function setMatrikelnummerErnp($bildungseinrichtung, $person, $reisepass) + { + $this->debug('ernpMeldung'); + $uuid = $this->getUUID(); + + if ($this->tokenIsExpired()) + { + $result = $this->authenticate(); + if (ErrorHandler::isError($result)) + return ErrorHandler::error(); + } + + $data = ''; + $data .= ' + '.$uuid.''; + + $data .= $this->getPersonmeldungXml($bildungseinrichtung, $person); + + $data .= ' + + '.$reisepass->ausgabedatum.' + '.$reisepass->ausstellBehoerde.' + '.$reisepass->ausstellland.' + '.$reisepass->dokumentnr.' + REISEP + + '; + $data .= ''; + + $curl = curl_init(); + $url = self::DVB_URL_WEBSERVICE_MELDUNG; + + curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_POSTFIELDS, $data); + + $headers = array( + 'Accept: application/xml', + 'Content-Type: application/xml', + 'Authorization: Bearer '.$this->authentication->access_token, + 'User-Agent: FHComplete', + 'Connection: Keep-Alive', + 'Expect:' + ); + curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); + + $this->debug('Request URL:'.$url); + $this->debug('Request Data:'.$data); + $response = curl_exec($curl); + $curl_info = curl_getinfo($curl); + curl_close($curl); + + $this->debug('Response: '.$curl_info['http_code']); + + $this->debug('Response: '.print_r($response, true)); + + if ($curl_info['http_code'] == '200') + { + $dom = new DOMDocument(); + $dom->loadXML($response); + $domnodes_fehlerliste = $dom->getElementsByTagName('fehlerliste'); + + $fehleranzahl = $domnodes_fehlerliste->item(0)->getAttribute('fehleranzahl'); + if ($fehleranzahl === '0') + { + // Keine Fehler -> Meldung erfolgreich + $retval = new stdClass(); + $retval->matrikelnummer = $person->matrikelnummer; + return ErrorHandler::success($retval); + } + else + { + $this->errormsg = 'Es gab '.$fehleranzahl.' Fehler:'; + $domnodes_fehler = $dom->getElementsByTagName('fehler'); + foreach ($domnodes_fehler as $row) + { + $fehlernummer = $row->getElementsByTagName('fehlernummer'); + + /** + * Bei Fehlernummer ED10065 wurde die Matrikelnummer korrekt gesetzt. + * Das BPK wurde vom Datenverbund versucht zu ermitteln und wird in der Fehlermeldung + * zurückgeliefert. Dieses sollte dann gespeichert werden. + * Es muss eine erneute Vergabemeldung mit korrigierten Daten vorgenommen werden um die Daten im + * DVB zu aktualisieren + * Dies gilt nur, wenn ED10065 alleine geliefert wird und keine sonstigen Fehler auftreten + */ + if ($fehlernummer->length == 1 && $fehlernummer->item(0)->textContent == 'ED10065') + { + $this->debug('ED10065 Response'); + $domnodes_feldinhalt = $row->getElementsByTagName('feldinhalt'); + if ($domnodes_feldinhalt->length > 0 && $domnodes_feldinhalt->item(0)->textContent!='') + { + $bpk = $domnodes_feldinhalt->item(0)->textContent; + $retval = new stdClass(); + $retval->matrikelnummer = $person->matrikelnummer; + if ($bpk != 'keine bPK gefunden') + $retval->bpk = $bpk; + + $this->errormsg .= 'ED10065 Response'; + $this->errormsg .= 'Eine Personendatenprüfung ist erforderlich'; + $this->errormsg .= 'Danach muss eine erneute Vergabemeldung mit dieser Matrikelnummer erfolgen.'; + $this->debug('BPK:'.$bpk); + $this->debug('MatrNr:'.$person->matrikelnummer); + + return ErrorHandler::success($retval); + } + } + else + { + $datenfeld = $row->getElementsByTagName('datenfeld'); + $fehlertext = $row->getElementsByTagName('fehlertext'); + $this->errormsg .= ' Datenfeld:'.$datenfeld->item(0)->textContent; + $this->errormsg .= ' Fehlertext:'.$fehlertext->item(0)->textContent; + } + } + return ErrorHandler::error(); + } + } + else + { + $errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; + return ErrorHandler::error($errormsg); + } + } + /** * Get BPK from Person * @param string $person_id ID of the Person. @@ -1737,6 +1865,41 @@ class dvb extends basis_db $this->debug_output .= "\n".date('Y-m-d H:i:s').': '.$msg; } + private function getPersonmeldungXml($bildungseinrichtung, $person) + { + $gebdat = str_replace("-", "", $person->geburtsdatum); + + $data = ' + '.$bildungseinrichtung.' + '.$gebdat.' + '.$person->geschlecht.' + '.$person->matrikelnummer.''; + if (isset($person->matura) && $person->matura != '') + $data .= ''.$person->matura.''; + else + $data .= '00000000'; + + $data .= ''.$person->nachname.''; + + if (isset($person->plz) && $person->plz != '') + $data .= ''.$person->plz.''; + + $data .= ''.$person->staat.''; + + if (isset($person->svnr) && $person->svnr != '') + $data .= ''.$person->svnr.''; + + $data .= ''.$person->vorname.''; + + if (isset($person->writeonerror) && $person->writeonerror === true) + $data .= 'J'; + + $data .= ' + '; + + return $data; + } + /** * Erstellt einen Logeintrag * @param object $person Personen objekt. diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php index 36f0fb9e0..954eea2e6 100644 --- a/soap/datenverbund_client.php +++ b/soap/datenverbund_client.php @@ -57,6 +57,11 @@ $ersatzkennzeichen = filter_input(INPUT_POST, 'ersatzkennzeichen'); $person_id = filter_input(INPUT_POST, 'person_id'); $strasse = filter_input(INPUT_POST, 'strasse'); +$ausgabedatum = filter_input(INPUT_POST, 'ausgabedatum'); +$ausstellbehoerde = filter_input(INPUT_POST, 'ausstellbehoerde'); +$ausstellland = filter_input(INPUT_POST, 'ausstellland'); +$dokumentnr = filter_input(INPUT_POST, 'dokumentnr'); + ?> @@ -79,6 +84,7 @@ $strasse = filter_input(INPUT_POST, 'strasse');
  • Matrikelnummer Reservierungen anzeigen
  • Matrikelnummer Kontingent anfordern
  • Matrikelnummer Vergabe melden
  • +
  • ERNP-Eintragung anfordern
  • Gesamtprozess (Abfrage, ggf Vergabemeldung, Speichern bei Person)
  • BPK ermitteln
  • BPK ermitteln manuell
  • @@ -114,6 +120,18 @@ $strasse = filter_input(INPUT_POST, 'strasse'); '; } + function printSetMatrikelnrRows() + { + global $matrikelnr, $nachname, $vorname, $geburtsdatum, $geschlecht, $postleitzahl, $staat, $svnr, $matura; + printrow('matrikelnummer', 'Matrikelnummer', $matrikelnr); + printrow('nachname', 'Nachname', $nachname, '', 255); + printrow('vorname', 'Vorname', $vorname, '', 30); + printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, 'Format: YYYYMMDD', 10); + printrow('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1); + printrow('postleitzahl', 'Postleitzahl', $postleitzahl, '', 10); + printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb A für Österreich)', 3); + } + switch($action) { case 'getOAuth': @@ -144,17 +162,32 @@ $strasse = filter_input(INPUT_POST, 'strasse'); break; case 'setMatrikelnummer': - printrow('matrikelnummer', 'Matrikelnummer', $matrikelnr); - printrow('nachname', 'Nachname', $nachname, '', 255); - printrow('vorname', 'Vorname', $vorname, '', 30); - printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, 'Format: YYYYMMDD', 10); - printrow('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1); - printrow('postleitzahl', 'Postleitzahl', $postleitzahl, '', 10); - printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb A für Österreich)', 3); + printSetMatrikelnrRows(); printrow('svnr', 'SVNR', $svnr); printrow('matura', 'Maturadatum', $matura, 'Format: YYYYMMDD (optional)', 10); break; + case 'setMatrikelnummerErnp': + echo ' + + Personmeldung + '; + + printSetMatrikelnrRows(); + printrow('svnr', 'Ersatzkennzeichen', $svnr); + printrow('matura', 'Maturadatum', $matura, 'Format: YYYYMMDD (optional)', 10); + + echo ' + + Ernpmeldung + '; + + printrow('dokumentnr', 'Dokumentnummer', $dokumentnr, '', 60); + printrow('ausgabedatum', 'Ausgabedatum', $ausgabedatum, 'Format: YYYYMMDD', 10); + printrow('ausstellbehoerde', 'Ausstellbehörde', $ausstellbehoerde, '', 40); + printrow('ausstellland', 'Ausstellland', $ausstellland, '1-3 Stellen Codex (zb D für Deutschland)', 60); + break; + case 'assignMatrikelnummer': printrow('person_id', 'PersonID', $person_id); break; @@ -337,6 +370,32 @@ if (isset($_REQUEST['submit'])) echo '
    Fehlgeschlagen:'.$result->errormsg; break; + case 'setMatrikelnummerErnp': + $person = new stdClass(); + $person->matrikelnummer = $matrikelnr; + $person->vorname = $vorname; + $person->nachname = $nachname; + $person->geburtsdatum = $geburtsdatum; + $person->geschlecht = $geschlecht; + $person->staat = $staat; + $person->plz = $postleitzahl; + $person->matura = $matura; // Optional + $person->svnr = $svnr; // Optional + + $reisepass = new stdClass(); + $reisepass->ausgabedatum = $ausgabedatum; + $reisepass->ausstellBehoerde = $ausstellbehoerde; + $reisepass->ausstellland = $ausstellland; + $reisepass->dokumentnr = $dokumentnr; + + $result = $dvb->setMatrikelnummerErnp(DVB_BILDUNGSEINRICHTUNG_CODE, $person, $reisepass); + + if (ErrorHandler::isSuccess($result)) + echo '
    Erfolgreich gemeldet'; + else + echo '
    Fehlgeschlagen:'.$result->errormsg; + break; + case 'assignMatrikelnummer': $result = $dvb->assignMatrikelnummer($person_id); if(ErrorHandler::isSuccess($result)) From 6e37edd30b9ff705c779e4a028854036a32a9681 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 30 Oct 2020 13:27:34 +0100 Subject: [PATCH 081/106] DVUH ERNP Meldung: added noticetext as warning, different country example (D instead of A) --- soap/datenverbund_client.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php index 954eea2e6..9e5defeec 100644 --- a/soap/datenverbund_client.php +++ b/soap/datenverbund_client.php @@ -129,7 +129,6 @@ $dokumentnr = filter_input(INPUT_POST, 'dokumentnr'); printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, 'Format: YYYYMMDD', 10); printrow('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1); printrow('postleitzahl', 'Postleitzahl', $postleitzahl, '', 10); - printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb A für Österreich)', 3); } switch($action) @@ -163,17 +162,21 @@ $dokumentnr = filter_input(INPUT_POST, 'dokumentnr'); case 'setMatrikelnummer': printSetMatrikelnrRows(); + printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb A für Österreich)', 3); printrow('svnr', 'SVNR', $svnr); printrow('matura', 'Maturadatum', $matura, 'Format: YYYYMMDD (optional)', 10); break; case 'setMatrikelnummerErnp': + echo 'HINWEIS: Die Eintragung ins ERnP (Ergänzungsregister für natürliche Personen) sollte nur dann durchgeführt werden, wenn für die Person bei "Matrikelnummer Vergabe melden" keine BPK ermittelt werden kann. +
    Beim Punkt "BPK ermitteln" sollte dementsprechend keine BPK zurückgegeben werden.


    '; echo ' Personmeldung '; printSetMatrikelnrRows(); + printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb D für Deutschland)', 3); printrow('svnr', 'Ersatzkennzeichen', $svnr); printrow('matura', 'Maturadatum', $matura, 'Format: YYYYMMDD (optional)', 10); From 2ceefabec9cc5efd01a37fbe19839588f725df93 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 30 Oct 2020 15:47:15 +0100 Subject: [PATCH 082/106] DVUH Meldung: Dokumenttyp can be entered for ERNP Meldung (Dropdown) --- include/dvb.class.php | 2 +- soap/datenverbund_client.php | 42 +++++++++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/include/dvb.class.php b/include/dvb.class.php index 2f163d5e7..c264ca4a7 100644 --- a/include/dvb.class.php +++ b/include/dvb.class.php @@ -1037,7 +1037,7 @@ class dvb extends basis_db '.$reisepass->ausstellBehoerde.' '.$reisepass->ausstellland.' '.$reisepass->dokumentnr.' - REISEP + '.$reisepass->dokumenttyp.' '; $data .= ''; diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php index 9e5defeec..3dbb8ff5d 100644 --- a/soap/datenverbund_client.php +++ b/soap/datenverbund_client.php @@ -57,6 +57,7 @@ $ersatzkennzeichen = filter_input(INPUT_POST, 'ersatzkennzeichen'); $person_id = filter_input(INPUT_POST, 'person_id'); $strasse = filter_input(INPUT_POST, 'strasse'); +$dokumenttyp = filter_input(INPUT_POST, 'dokumenttyp'); $ausgabedatum = filter_input(INPUT_POST, 'ausgabedatum'); $ausstellbehoerde = filter_input(INPUT_POST, 'ausstellbehoerde'); $ausstellland = filter_input(INPUT_POST, 'ausstellland'); @@ -120,9 +121,42 @@ $dokumentnr = filter_input(INPUT_POST, 'dokumentnr'); '; } + /** + * Erstellt eine Tabllezeile mit Input-Feld + * @param string $name Name des Inputs. + * @param string $title Titel der Zeile. + * @param string $value Value des Inputs. + * @param string $hint Hinweistext zu Inputfeld. + * @param int $maxlength Maximallaenge des Eingabefeldes. + * @return void + */ + function printDropdownRow($name, $title, $values, $selectedValue = '', $hint = '') + { + global $db; + + echo ' + + '.$title.': + + '.$hint.' + + '; + } + + /** + * Prints Stammdaten inputfields for setMatrikelnummer form + */ function printSetMatrikelnrRows() { - global $matrikelnr, $nachname, $vorname, $geburtsdatum, $geschlecht, $postleitzahl, $staat, $svnr, $matura; + global $matrikelnr, $nachname, $vorname, $geburtsdatum, $geschlecht, $postleitzahl; printrow('matrikelnummer', 'Matrikelnummer', $matrikelnr); printrow('nachname', 'Nachname', $nachname, '', 255); printrow('vorname', 'Vorname', $vorname, '', 30); @@ -168,8 +202,8 @@ $dokumentnr = filter_input(INPUT_POST, 'dokumentnr'); break; case 'setMatrikelnummerErnp': - echo 'HINWEIS: Die Eintragung ins ERnP (Ergänzungsregister für natürliche Personen) sollte nur dann durchgeführt werden, wenn für die Person bei "Matrikelnummer Vergabe melden" keine BPK ermittelt werden kann. -
    Beim Punkt "BPK ermitteln" sollte dementsprechend keine BPK zurückgegeben werden.


    '; + echo 'HINWEIS: Die Eintragung ins ERnP (Ergänzungsregister für natürliche Personen) sollte nur dann durchgeführt werden,
    wenn für die Person bei "Matrikelnummer Vergabe melden" keine BPK ermittelt werden kann. +
    Beim Punkt "BPK ermitteln" sollte dementsprechend keine BPK zurückgegeben werden.


    '; echo ' Personmeldung @@ -185,6 +219,7 @@ $dokumentnr = filter_input(INPUT_POST, 'dokumentnr'); Ernpmeldung '; + printDropdownRow('dokumenttyp', 'Dokumenttyp', array('Reisepass' => 'REISEP', 'Personalausweis' => 'PERSAUSW'), $dokumenttyp,''); printrow('dokumentnr', 'Dokumentnummer', $dokumentnr, '', 60); printrow('ausgabedatum', 'Ausgabedatum', $ausgabedatum, 'Format: YYYYMMDD', 10); printrow('ausstellbehoerde', 'Ausstellbehörde', $ausstellbehoerde, '', 40); @@ -386,6 +421,7 @@ if (isset($_REQUEST['submit'])) $person->svnr = $svnr; // Optional $reisepass = new stdClass(); + $reisepass->dokumenttyp = $dokumenttyp; $reisepass->ausgabedatum = $ausgabedatum; $reisepass->ausstellBehoerde = $ausstellbehoerde; $reisepass->ausstellland = $ausstellland; From 4465fbc87739ae9573a2e7216ed5f8047f6309a8 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 4 Nov 2020 22:43:45 +0100 Subject: [PATCH 083/106] DVUH Meldung: Renamed Ersatzkennzeichen input field text to SVNR/Ersatzkennzeichen --- soap/datenverbund_client.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php index 3dbb8ff5d..f751e2498 100644 --- a/soap/datenverbund_client.php +++ b/soap/datenverbund_client.php @@ -211,7 +211,7 @@ $dokumentnr = filter_input(INPUT_POST, 'dokumentnr'); printSetMatrikelnrRows(); printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb D für Deutschland)', 3); - printrow('svnr', 'Ersatzkennzeichen', $svnr); + printrow('svnr', 'SVNR/Ersatzkennzeichen', $svnr); printrow('matura', 'Maturadatum', $matura, 'Format: YYYYMMDD (optional)', 10); echo ' From 17affaa57d117d7319219ce7c22cedebd7df016d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 6 Nov 2020 09:42:05 +0100 Subject: [PATCH 084/106] =?UTF-8?q?BIS-Meldung=20Kennzahlen=20f=C3=BCr=20E?= =?UTF-8?q?isenstadt=20und=20Pinkafeld=20angepasst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/studentenmeldung.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index f27d3602f..7f6d97a47 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -144,9 +144,9 @@ derzeit fuer alle Studierende der gleiche Standort ToDo: Standort sollte pro Student konfigurierbar sein. */ $standortcode='22'; -if(in_array($stg_kz,array('265','268','761','760','266','267','764','269','400'))) +if(in_array($stg_kz,array('265','268','761','760','266','267','764','269','400','794','795','786','859'))) $standortcode='14'; // Pinkafeld -elseif(in_array($stg_kz,array('639','640','263','743','364','635','402','401','725','264','271'))) +elseif(in_array($stg_kz,array('639','640','263','743','364','635','402','401','725','264','271','781'))) $standortcode='3'; // Eisenstadt $datumobj=new datum(); From df8e7a9006d4c0421c75d6103e5319b1ea389896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 6 Nov 2020 12:39:37 +0100 Subject: [PATCH 085/106] =?UTF-8?q?BIS=20Check=20f=C3=BCr=20Aufenthaltszwe?= =?UTF-8?q?ckcode=20korrigiert=20wenn=201,2=20und=203=20gleichzeitig=20erf?= =?UTF-8?q?asst=20wurde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/studentenmeldung.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index 7f6d97a47..df10214fa 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -1368,7 +1368,7 @@ function GenerateXMLStudentBlock($row) if (!in_array($row_zweck->zweck_code, $zweck_code_arr)) { // Aufenthaltszweck 1, 2, 3 nicht gemeinsam melden - if (!empty(array_intersect(array(1, 2, 3), $zweck_code_arr))) + if (in_array(1,$zweck_code_arr) && in_array(2,$zweck_code_arr) && in_array(3,$zweck_code_arr)) { $error_log_io .= (!empty($error_log_io) ? ', ' : ''). "Aufenthaltzweckcode 1, 2, 3 dürfen nicht gemeinsam gemeldet werden"; From 575e097e7fa667a64601cc812a6d5506c139ed6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 9 Nov 2020 08:20:30 +0100 Subject: [PATCH 086/106] =?UTF-8?q?Diplomasupplement=20-=20Englische=20Ver?= =?UTF-8?q?sion=20f=C3=BCr=20duales=20Studium=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rdf/diplomasupplement.xml.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rdf/diplomasupplement.xml.php b/rdf/diplomasupplement.xml.php index 0052c75be..14352a3c3 100644 --- a/rdf/diplomasupplement.xml.php +++ b/rdf/diplomasupplement.xml.php @@ -235,6 +235,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $row->orgform_kurzbz=$prestudent->orgform_kurzbz; $anforderungen_praxis = 'Das Studium beinhaltet ein facheinschlägiges Berufspraktikum.'; + $anforderungen_praxiseng = 'Included in the program is a relevant work placement.'; switch($row->orgform_kurzbz) { @@ -247,6 +248,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") case 'DUA': // andere praxisanforderungen bei dualem Studium echo ' Duales Studium / Integrated work/study degree program'; $anforderungen_praxis = 'Das Studium ist als duales Studium konzipiert und weist einen hohen Anteil an Praxisphasen in Partnerunternehmen auf, die inhaltlich und organisatorisch im Studienplan verankert sind und die systematische Verschränkung von Wissen und Anwendung fördern.'; + $anforderungen_praxiseng = 'The program is designed as integrated work study program and has a high proportion of practical phases in partner companies, which are embedded in the curriculum in terms of content and organisation and promote the systematic interconnection of knowledge and utilisation.'; break; default: echo ' '; break; @@ -258,7 +260,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo ' '; echo ' '; echo ' '; - echo ' '; + echo ' '; echo ' '; echo ' '; echo ' Diplomstudium (UNESCO ISCED 7)'; @@ -282,7 +284,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo ' '; echo ' '; echo ' '; - echo ' '; + echo ' '; echo ' '; echo ' '; echo ' Bachelorstudium (UNESCO ISCED 6)'; @@ -363,7 +365,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } } - $qry = "SELECT tbl_bisio.bisio_id, von, bis, lehreinheit_id, + $qry = "SELECT tbl_bisio.bisio_id, von, bis, lehreinheit_id, (SELECT STRING_AGG ( tbl_zweck.bezeichnung, ', ' From 443caa91f27c6ce55a60930b0405e14f71d888d2 Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 9 Nov 2020 10:45:25 +0100 Subject: [PATCH 087/106] Messaging sysntem: the internal email account is used only if the user account is older then 24 hours --- application/libraries/MessageLib.php | 42 +++++++++++++++++--- application/models/person/Benutzer_model.php | 4 +- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index fd2051f48..1180de9fd 100644 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -595,11 +595,20 @@ class MessageLib $this->_ci->load->model('person/Benutzer_model', 'BenutzerModel'); // And the receiver has an active account for the given organisation unit - $benutzerResult = $this->_ci->BenutzerModel->getActiveUserByPersonIdAndOrganisationUnit($message->receiver_id, $message->sender_ou); + $benutzerResult = $this->_ci->BenutzerModel->getActiveUserByPersonIdAndOrganisationUnit( + $message->receiver_id, + $message->sender_ou + ); + if (isError($benutzerResult)) return $benutzerResult; // if an error occured then return it - // Use the uid + domain email - if (hasData($benutzerResult)) $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; + // Checks if the user was NOT created in the last 24 hours + if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('+1 day'))) + { + // Use the uid + domain email + if (hasData($benutzerResult)) $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; + } + // otherwise do NOT use the internal email account } // Otherwise try with the private email @@ -676,10 +685,33 @@ class MessageLib $this->_ci->BenutzerModel->addOrder('updateamum', 'DESC'); $this->_ci->BenutzerModel->addOrder('insertamum', 'DESC'); - $benutzerResult = $this->_ci->BenutzerModel->loadWhere(array('person_id' => $message->receiver_id)); + $benutzerResult = $this->_ci->BenutzerModel->loadWhere( + array( + 'person_id' => $message->receiver_id + ) + ); if (isError($benutzerResult)) return $benutzerResult; // if an error occured then return it - $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; // Use the uid + domain email + // For each benutzer found for this person + foreach (getData($benutzerResult) as $benutzer) + { + // Checks if the user was NOT created in the last 24 hours + if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('+1 day'))) + { + // Use the uid + domain as email address + $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; + } + } + + // Otherwise try with the private email + if (isEmptyString($message->receiverContact)) + { + // Then use the private email + $privateEmailResult = $this->_getPrivateEmail($message->receiver_id); + if (isError($privateEmailResult)) return $privateEmailResult; // if an error occured then return it + + if (hasData($privateEmailResult)) $message->receiverContact = getData($privateEmailResult); + } } } } diff --git a/application/models/person/Benutzer_model.php b/application/models/person/Benutzer_model.php index 45edf5122..3c5a6d08a 100644 --- a/application/models/person/Benutzer_model.php +++ b/application/models/person/Benutzer_model.php @@ -23,7 +23,8 @@ class Benutzer_model extends DB_Model */ public function getActiveUserByPersonIdAndOrganisationUnit($person_id, $oe_kurzbz) { - $sql = 'SELECT b.uid + $sql = 'SELECT b.uid, + b.insertamum FROM public.tbl_benutzer b JOIN public.tbl_prestudent ps USING (person_id) JOIN public.tbl_studiengang sg USING (studiengang_kz) @@ -97,3 +98,4 @@ class Benutzer_model extends DB_Model return mb_strtolower(str_replace(' ','_', $str)); } } + From e499a07d7e93903948e52a641c20e0a30d253230 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 9 Nov 2020 15:16:54 +0100 Subject: [PATCH 088/106] =?UTF-8?q?bpk-Pr=C3=BCfung=20auskommentiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/studentenmeldung.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index df10214fa..388942595 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -751,7 +751,7 @@ function GenerateXMLStudentBlock($row) { $error_log.=(!empty($error_log)?', ':'')."Heimat-Nation ('".$nation."')"; } - if($row->bpk == '' || $row->bpk == null) + /*if($row->bpk == '' || $row->bpk == null) { $error_log .= (!empty($error_log) ? ', ' : '') . "bPK fehlt"; } @@ -766,7 +766,7 @@ function GenerateXMLStudentBlock($row) { $error_log.=(!empty($error_log) ? ', ' : ''). "bPK ist nicht 28 Zeichen lang"; } - } + }*/ if (!$ausserordentlich && !$incoming) { if ($zustell_plz == '' || $zustell_plz == null) @@ -1198,9 +1198,9 @@ function GenerateXMLStudentBlock($row) " . $row->ersatzkennzeichen . ""; } - $datei .= " + /*$datei .= " " . $row->bpk . " - "; + ";*/ $datei .= " " . $row->staatsbuergerschaft . " From 4feabb25e0f69fb5ad70f1ada65d237a775569d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 13 Nov 2020 14:55:51 +0100 Subject: [PATCH 089/106] =?UTF-8?q?Firmenhandys=20sind=20nur=20f=C3=BCr=20?= =?UTF-8?q?Mitarbeiter=20sichtbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/index.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cis/private/profile/index.php b/cis/private/profile/index.php index 5b3a645da..dd39cf301 100644 --- a/cis/private/profile/index.php +++ b/cis/private/profile/index.php @@ -56,6 +56,12 @@ $uid = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); +$is_employee = false; +if (check_lektor($uid)) +{ + $is_employee = true; +} + $datum_obj = new datum(); // Wenn ein anderer User sich das Profil ansieht (Bei Personensuche) sollen bestimmte persönliche Daten nicht angezeigt werden @@ -346,7 +352,7 @@ if ($type == 'mitarbeiter') $kontakt->load_pers($user->person_id); foreach($kontakt->result as $k) { - if ($k->kontakttyp == 'firmenhandy') + if ($k->kontakttyp == 'firmenhandy' && $is_employee) echo 'Firmenhandy: '.$k->kontakt.'
    '; } From a1d2eb51a7106b7efad3f5f5ac3e15c315ced8c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 17 Nov 2020 17:49:32 +0100 Subject: [PATCH 090/106] Loading Name of a Person doesnt load all person Data --- include/person.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/person.class.php b/include/person.class.php index b220bb55b..328cc413c 100644 --- a/include/person.class.php +++ b/include/person.class.php @@ -374,7 +374,7 @@ class person extends basis_db $this->errormsg = 'Staatsbuergerschaft darf nicht laenger als 3 Zeichen sein'; return false; } - + //Pruefen ob das Geburtsdatum mit der SVNR uebereinstimmt. if ($this->svnr != '' && $this->gebdatum != '') { @@ -1022,7 +1022,7 @@ class person extends basis_db public function getFullNameFromBenutzer($uid) { $qry = "SELECT - * + vorname, nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) From 9d2c004c6d5915b13164e1fc22832218de68f499 Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 18 Nov 2020 08:51:48 +0100 Subject: [PATCH 091/106] Checks if the benutzer exists MessageLib->_sendNoticeEmails --- application/libraries/MessageLib.php | 30 ++++++++++++++++++---------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index 1180de9fd..8c58d1a90 100644 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -602,13 +602,17 @@ class MessageLib if (isError($benutzerResult)) return $benutzerResult; // if an error occured then return it - // Checks if the user was NOT created in the last 24 hours - if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('+1 day'))) + // If an active user for the given organization unit was found + if (hasData($benutzerResult)) { - // Use the uid + domain email - if (hasData($benutzerResult)) $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; + // Checks if the user was NOT created in the last 24 hours + if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('+1 day'))) + { + // Use the uid + domain email + $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; + } + // otherwise do NOT use the internal email account } - // otherwise do NOT use the internal email account } // Otherwise try with the private email @@ -692,14 +696,18 @@ class MessageLib ); if (isError($benutzerResult)) return $benutzerResult; // if an error occured then return it - // For each benutzer found for this person - foreach (getData($benutzerResult) as $benutzer) + // If an active user for the given organization unit was found + if (hasData($benutzerResult)) { - // Checks if the user was NOT created in the last 24 hours - if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('+1 day'))) + // For each benutzer found for this person + foreach (getData($benutzerResult) as $benutzer) { - // Use the uid + domain as email address - $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; + // Checks if the user was NOT created in the last 24 hours + if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('+1 day'))) + { + // Use the uid + domain as email address + $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; + } } } From b31585af985675be6127070f681b826af0e3d1cd Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 18 Nov 2020 17:40:35 +0100 Subject: [PATCH 092/106] Bugfix ical_coodle Leeres VEVENT entfernt, wenn kein Termin vorhanden --- cis/public/ical_coodle.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cis/public/ical_coodle.php b/cis/public/ical_coodle.php index a4be8b52f..fd9d408b5 100644 --- a/cis/public/ical_coodle.php +++ b/cis/public/ical_coodle.php @@ -62,11 +62,15 @@ TZOFFSETTO:+0100 END:STANDARD END:VTIMEZONE\n"; //echo 'URL:',APP_ROOT,'cis/public/ical_coodle.php/',$uid,"\n"; -echo "BEGIN:VEVENT"; + // Alle Umfragen holen an denen der User beteiligt ist $umfragen = new coodle(); $umfragen->getCoodleFromUser($uid); $i = 0; +if (count($umfragen->result) > 0) +{ + //echo "BEGIN:VEVENT"; +} foreach($umfragen->result as $umfrage) { if($umfrage->coodle_status_kurzbz=='laufend') @@ -88,10 +92,7 @@ foreach($umfragen->result as $umfrage) $uhrzeit_ende = $date->format('H:i:s'); $dtende = $date->format('Ymd\THis'); - if ($i > 0) - { - echo "\nBEGIN:VEVENT"; - } + echo "\nBEGIN:VEVENT"; echo "\nUID:Coodle_Terminoption".$dtstart."_".$dtende.""; echo "\nSUMMARY:Coodle Terminoption"; echo "\nDTSTART;TZID=Europe/Vienna:$dtstart"; From 73a38a08356726990224f98c3d974acd1e0c4652 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 18 Nov 2020 17:41:30 +0100 Subject: [PATCH 093/106] Formatierung XML-Output --- soap/datenverbund_client.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php index f751e2498..a3b0982f8 100644 --- a/soap/datenverbund_client.php +++ b/soap/datenverbund_client.php @@ -469,7 +469,14 @@ if (isset($_REQUEST['submit'])) break; } if (isset($_POST['debug'])) - echo '
    '.nl2br(htmlentities($dvb->debug_output)).'
    '; + { + $output = nl2br(htmlentities($dvb->debug_output)); + $output = str_replace('><','>
    <',$output); + $output = preg_replace('/(<uni:.*?>)/','$1',$output); + $output = preg_replace('/(<\/uni:.*?>)/','$1',$output); + + echo '
    '.$output.'
    '; + } } ?> From 798ff3db24c4f6293c30d0fa0d64459cb7fdfe57 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 18 Nov 2020 17:44:15 +0100 Subject: [PATCH 094/106] Bugfix Abfrage Rechte --- .../lvplan/stpl_week_anzahl_studenten.php | 902 +++++++++--------- 1 file changed, 451 insertions(+), 451 deletions(-) diff --git a/cis/private/lvplan/stpl_week_anzahl_studenten.php b/cis/private/lvplan/stpl_week_anzahl_studenten.php index afd24773e..eeec45145 100644 --- a/cis/private/lvplan/stpl_week_anzahl_studenten.php +++ b/cis/private/lvplan/stpl_week_anzahl_studenten.php @@ -1,456 +1,456 @@ -, - * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Simane-Sequens . - */ - require_once('../../../config/cis.config.inc.php'); - require_once('../../../include/functions.inc.php'); - require_once('../../../include/datum.class.php'); - require_once('../../../include/benutzer.class.php'); - require_once('../../../include/student.class.php'); - require_once('../../../include/studiengang.class.php'); - require_once('../../../include/benutzerberechtigung.class.php'); - require_once('../../../include/studiensemester.class.php'); - - if (!$db = new basis_db()) - die('Fehler beim Oeffnen der Datenbankverbindung'); - $uid=isset($_GET['uid'])?$_GET['uid']:(isset($_POST['uid'])?$_POST['uid']:get_uid()); - $uid=trim($uid); - - $rechte = new benutzerberechtigung(); - $rechte->getBerechtigungen($uid); - - if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 's') || !$rechte->isBerechtigt('admin')) - die($rechte->errormsg); - unset($rechte); - - header('Content-Type: text/html;charset=UTF-8'); -?> - - - - - Anzahl Studenten Lehrveranstaltungsplan FH Technikum-Wien - +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Simane-Sequens . + */ + require_once('../../../config/cis.config.inc.php'); + require_once('../../../include/functions.inc.php'); + require_once('../../../include/datum.class.php'); + require_once('../../../include/benutzer.class.php'); + require_once('../../../include/student.class.php'); + require_once('../../../include/studiengang.class.php'); + require_once('../../../include/benutzerberechtigung.class.php'); + require_once('../../../include/studiensemester.class.php'); + + if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); + $uid=isset($_GET['uid'])?$_GET['uid']:(isset($_POST['uid'])?$_POST['uid']:get_uid()); + $uid=trim($uid); + + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($uid); + + if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 's') && !$rechte->isBerechtigt('admin')) + die($rechte->errormsg); + unset($rechte); + + header('Content-Type: text/html;charset=UTF-8'); +?> + + + + + Anzahl Studenten Lehrveranstaltungsplan FH Technikum-Wien + - - - - - - - -
    -
    -
    -
    -
    -
    - - - -
    -
    drucken
    - -
    -
    schliessen  
    - -
    -
    -
    -
    -
    -
    -getaktorNext(); - $objSS->load($ss); - $datum_obj = new datum(); - $ss_begin=$datum_obj->mktime_fromdate($objSS->start); - $ss_ende=$datum_obj->mktime_fromdate($objSS->ende); - - - $sql_query=' select tbl_adresse.plz,tbl_adresse.name, sum(tbl_ort.max_person) as summe '; - $sql_query.=' from public.tbl_ort,public.tbl_standort, public.tbl_adresse '; - $sql_query.=" where tbl_standort.standort_id=tbl_ort.standort_id "; - $sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id "; - $sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." "; - $sql_query.=" and tbl_ort.aktiv and tbl_ort.lehre "; - $sql_query.=" group by tbl_adresse.plz,tbl_adresse.name "; - // Gibt es fuer das Datum und Stunde einen Stundenplaneintrag - if(!$results_anzahl=$db->db_query($sql_query)) - die($db->db_last_error()); - $raum_max_anz=0; - $fh_name='FH lese fehler'; - if ($num_rows_anzahl=$db->db_num_rows($results_anzahl)) - { - $fh_name = $db->db_result($results_anzahl,0,"name").', '.$db->db_result($results_anzahl,0,"plz"); - $raum_max_anz = $db->db_result($results_anzahl,0,"summe"); - } - - $stg=array(); - echo '

    -  Lehrveranstaltungsplan >> Wochenplan - Anzahl Studenten -    << - Wochenplan  Kw '.$kw.' -  >> -    Heute -

    '; - - // Stundentafel abfragen - $sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde"; - if(!$results=$db->db_query($sql_query)) - die($db->db_last_error()); - - - echo ''; - echo ''; - echo ''; - echo ''; - for ($i=0; $i'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.date('d M',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).''; - } - echo ''; - - $max_person_array=array(); - $num_rows_stunde=$db->db_num_rows($results); - echo ''; - for ($k=0; $k<$num_rows_stunde; $k++) - { - $row = $db->db_fetch_object($results, $k); - $row->show_beginn=substr($row->beginn,0,5); - $row->show_ende=substr($row->ende,0,5); - $row->check_beginn=str_replace(':','',substr($row->beginn,0,5)); - $row->check_ende=str_replace(':','',substr($row->ende,0,5)); - - echo ''; - $lehreinheiten=array(); - - for ($i=0; $i= $row->check_beginn && date('Hi')<=$row->check_ende ) - $aktiv=true; - - echo ''; - else - $tooltip.=''; - $tooltip.=''; - $gefunden_anz+=$row_anz->anz; - } - - if (!empty($gefunden_anz)) - { - $tooltip.=''; - - echo '
    Gesamt: '.$gefunden_anz; - echo ''; - } - echo ''; - - - if (!isset($max_person_array[$i]['tag'])) - $max_person_array[$i]['tag']=0; - $max_person_array[$i]['tag']=$max_person_array[$i]['tag']+$gefunden_anz; - if (!isset($max_person_array[$i]['tag_max'])) - $max_person_array[$i]['tag_max']=0; - $max_person_array[$i]['tag_max']=$max_person_array[$i]['tag_max']+$max_person; - - if (!isset($max_person_array[$k]['stunde'])) - $max_person_array[$k]['stunde']=0; - $max_person_array[$k]['stunde']=$max_person_array[$k]['stunde']+$gefunden_anz; - if (!isset($max_person_array[$k]['stunde_max'])) - $max_person_array[$k]['stunde_max']=0; - $max_person_array[$k]['stunde_max']=$max_person_array[$k]['stunde_max']+$max_person; - - if (!isset($max_person_array[$i][$k]['tag_stunde'])) - $max_person_array[$i][$k]['tag_stunde']=0; - $max_person_array[$i][$k]['tag_stunde']=$max_person_array[$i][$k]['tag_stunde']+$gefunden_anz; - if (!isset($max_person_array[$i][$k]['tag_stunde_max'])) - $max_person_array[$i][$k]['tag_stunde_max']=0; - $max_person_array[$i][$k]['tag_stunde_max']=$max_person_array[$i][$k]['tag_stunde_max']+$max_person; - - } - echo ''; - - } - echo '
    '. $fh_name .'      '. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'
    Stunde
    '.$row->show_beginn.'
    '.$row->show_ende.'
    '; - - $sql_query=' select distinct vw_'.$stpl_table.'.stg_bezeichnung as bezeichnung,vw_'.$stpl_table.'.stg_kurzbzlang as kurzbzlang,vw_'.$stpl_table.'.stg_kurzbz as kurzbz, vw_'.$stpl_table.'.'.$stpl_table.'_id,vw_'.$stpl_table.'.lehrform, vw_'.$stpl_table.'.gruppe, vw_'.$stpl_table.'.gruppe_kurzbz, vw_'.$stpl_table.'.unr,vw_'.$stpl_table.'.verband,vw_'.$stpl_table.'.ort_kurzbz,vw_'.$stpl_table.'.lehreinheit_id,vw_'.$stpl_table.'.studiengang_kz,vw_'.$stpl_table.'.semester,tbl_ort.max_person,tbl_standort.adresse_id,tbl_adresse.plz,tbl_adresse.name '; - $sql_query.=' from lehre.vw_'.$stpl_table.', public.tbl_ort,public.tbl_standort, public.tbl_adresse '; - $sql_query.=" where vw_".$stpl_table.".datum=".$db->db_add_param(date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))))." "; - $sql_query.=" and vw_".$stpl_table.".stunde=".$db->db_add_param($row->stunde, FHC_INTEGER)." "; - $sql_query.=" and tbl_ort.ort_kurzbz=vw_".$stpl_table.".ort_kurzbz "; - $sql_query.=" and tbl_standort.standort_id=tbl_ort.standort_id "; - $sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id "; - $sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." "; - $sql_query.=" order by tbl_adresse.plz,vw_".$stpl_table.".ort_kurzbz "; - - // Gibt es fuer das Datum und Stunde einen Stundenplaneintrag - if(!$results_anzahl=$db->db_query($sql_query)) - die($db->db_last_error()); - $num_rows_anzahl=$db->db_num_rows($results_anzahl); - - $gefunden_anz=0; - $tooltip=''; - for ($k_anz=0; $k_anz<$num_rows_anzahl; $k_anz++) - { - $row_anz = $db->db_fetch_object($results_anzahl, $k_anz); - // Lehreinheit wird aufgeteilt in zwei Raeume - nicht verarbeiten , das sind die selben Personen - if (isset($lehreinheiten[trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz)])) - continue; - $lehreinheiten[$row_anz->lehreinheit_id]=trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz); - - $max_person=$row_anz->max_person+$max_person; - $row_anz->verband=trim($row_anz->verband); - $row_anz->gruppe=trim($row_anz->gruppe); - $row_anz->gruppe_kurzbz=trim($row_anz->gruppe_kurzbz); - - $stsem=$ss; - - $gruppe=($row_anz->gruppe_kurzbz?$row_anz->gruppe_kurzbz:null); - $student=new student(); - - $row_anz->anz=0; - if ($result=$student->getStudents($row_anz->studiengang_kz,$row_anz->semester,$row_anz->verband,$row_anz->gruppe,$gruppe, $stsem)) - $row_anz->anz=count($result); - - - if (empty($row_anz->anz)) - $fehler=true; - - $lvb=$row_anz->kurzbzlang.'-'.$row_anz->semester; - if (!is_null($row_anz->verband) && !empty($row_anz->verband)) - { - $lvb.=$row_anz->verband; - if (!is_null($row_anz->gruppe) && !empty($row_anz->gruppe) ) - $lvb.=$row_anz->gruppe; - } - if (!empty($k_anz)) - $tooltip.='
    '. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.$row->show_beginn.' - '.$row->show_ende.'Anzahl
    stundenplan_id:$row_anz->stundenplandev_id).'\'>'.trim($row_anz->ort_kurzbz).' ort_kurzbz).'\' target=\'_blank\' titel=\'Studiengang Kz '.$row_anz->studiengang_kz.'\'>'.$lvb.' '.$row_anz->gruppe_kurzbz.' '.(!$row_anz->anz?'':'').$row_anz->bezeichnung.(!$row_anz->anz?'':'').' '.$row_anz->anz.'
    max.Personen:'.$max_person.' Belegung:'. number_format($gefunden_anz / $max_person,2)*100 .'% Ges.:'.$gefunden_anz.'
    '; - - - $rechte = new benutzerberechtigung(); - $rechte->getBerechtigungen($uid); - if($rechte->isBerechtigt('admin')) - { - echo ''; - echo ''; - - echo ''; - echo ''; - for ($i=0; $i'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).''; - } - echo ''; - $stunde_proz=0; - $stunde=0; - $stunde_max=0; - for ($k=0; $k<$num_rows_stunde; $k++) - { - $row = $db->db_fetch_object($results, $k); - $row->show_beginn=substr($row->beginn,0,5); - $row->show_ende=substr($row->ende,0,5); - $row->check_beginn=str_replace(':','',substr($row->beginn,0,5)); - $row->check_ende=str_replace(':','',substr($row->ende,0,5)); - echo ''; - echo ''; - echo ''; - - $stunde=$stunde+$max_person_array[$k]['stunde']; - $stunde_max=$stunde_max+$max_person_array[$k]['stunde_max']; - - for ($i=0; $i'; - echo 'anz.:'.$max_person_array[$i][$k]['tag_stunde']; - echo '
    '; - echo 'FH   max.:'. $raum_max_anz; - echo '
    '; - echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $raum_max_anz,2)*100:0).'%'; - echo '
    '; - echo 'Raum max.:'. $max_person_array[$i][$k]['tag_stunde_max']; - echo '
    '; - echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $max_person_array[$i][$k]['tag_stunde_max'],2)*100:0).'%'; - echo ''; - } - echo '
    '; - } - - - echo ''; - echo ''; - - echo ''; - - - for ($i=0; $i'; - echo 'FH      Ø '.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / ($raum_max_anz *$num_rows_stunde),2)*100:0).'%'; - echo '
    '; - echo 'Raum Ø '.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / $max_person_array[$i]['tag_max'],2)*100:0).'%'; - echo ''; - } - - echo '
    '; - - - echo '
    '. $fh_name .'      '. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'
    Zeit / Datum – 
    '.$row->show_beginn.'
    '.$row->show_ende.'
    '; - echo 'anz.:'.$max_person_array[$k]['stunde']; - echo '
    '; - echo 'FH   '.($raum_max_anz*TAGE_PRO_WOCHE); - echo '
    '; - echo ' Ø '.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde'])/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%'; - echo '
    '; - echo 'Raum '.$max_person_array[$k]['stunde_max']; - echo '
    '; - echo ' Ø '.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde']/TAGE_PRO_WOCHE) / ($max_person_array[$k]['stunde_max']/TAGE_PRO_WOCHE),2)*100:0).'%'; - echo '
    Ø'; - echo 'FH      Ø '.($stunde?number_format(($stunde)/$num_rows_stunde/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%'; - echo '
    '; - echo 'Raum Ø '.($stunde_max?number_format(($stunde/$num_rows_stunde/TAGE_PRO_WOCHE) / ($stunde_max/$num_rows_stunde/TAGE_PRO_WOCHE),2)*100:0).'%'; - echo '
    '; - } -?> - - + + + + + + + +
    +
    +
    +
    +
    +
    + + + +
    +
    drucken
    + +
    +
    schliessen  
    + +
    +
    +
    +
    +
    +
    +getaktorNext(); + $objSS->load($ss); + $datum_obj = new datum(); + $ss_begin=$datum_obj->mktime_fromdate($objSS->start); + $ss_ende=$datum_obj->mktime_fromdate($objSS->ende); + + + $sql_query=' select tbl_adresse.plz,tbl_adresse.name, sum(tbl_ort.max_person) as summe '; + $sql_query.=' from public.tbl_ort,public.tbl_standort, public.tbl_adresse '; + $sql_query.=" where tbl_standort.standort_id=tbl_ort.standort_id "; + $sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id "; + $sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." "; + $sql_query.=" and tbl_ort.aktiv and tbl_ort.lehre "; + $sql_query.=" group by tbl_adresse.plz,tbl_adresse.name "; + // Gibt es fuer das Datum und Stunde einen Stundenplaneintrag + if(!$results_anzahl=$db->db_query($sql_query)) + die($db->db_last_error()); + $raum_max_anz=0; + $fh_name='FH lese fehler'; + if ($num_rows_anzahl=$db->db_num_rows($results_anzahl)) + { + $fh_name = $db->db_result($results_anzahl,0,"name").', '.$db->db_result($results_anzahl,0,"plz"); + $raum_max_anz = $db->db_result($results_anzahl,0,"summe"); + } + + $stg=array(); + echo '

    +  Lehrveranstaltungsplan >> Wochenplan - Anzahl Studenten +    << + Wochenplan  Kw '.$kw.' +  >> +    Heute +

    '; + + // Stundentafel abfragen + $sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde"; + if(!$results=$db->db_query($sql_query)) + die($db->db_last_error()); + + + echo ''; + echo ''; + echo ''; + echo ''; + for ($i=0; $i'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.date('d M',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).''; + } + echo ''; + + $max_person_array=array(); + $num_rows_stunde=$db->db_num_rows($results); + echo ''; + for ($k=0; $k<$num_rows_stunde; $k++) + { + $row = $db->db_fetch_object($results, $k); + $row->show_beginn=substr($row->beginn,0,5); + $row->show_ende=substr($row->ende,0,5); + $row->check_beginn=str_replace(':','',substr($row->beginn,0,5)); + $row->check_ende=str_replace(':','',substr($row->ende,0,5)); + + echo ''; + $lehreinheiten=array(); + + for ($i=0; $i= $row->check_beginn && date('Hi')<=$row->check_ende ) + $aktiv=true; + + echo ''; + else + $tooltip.=''; + $tooltip.=''; + $gefunden_anz+=$row_anz->anz; + } + + if (!empty($gefunden_anz)) + { + $tooltip.=''; + + echo '
    Gesamt: '.$gefunden_anz; + echo ''; + } + echo ''; + + + if (!isset($max_person_array[$i]['tag'])) + $max_person_array[$i]['tag']=0; + $max_person_array[$i]['tag']=$max_person_array[$i]['tag']+$gefunden_anz; + if (!isset($max_person_array[$i]['tag_max'])) + $max_person_array[$i]['tag_max']=0; + $max_person_array[$i]['tag_max']=$max_person_array[$i]['tag_max']+$max_person; + + if (!isset($max_person_array[$k]['stunde'])) + $max_person_array[$k]['stunde']=0; + $max_person_array[$k]['stunde']=$max_person_array[$k]['stunde']+$gefunden_anz; + if (!isset($max_person_array[$k]['stunde_max'])) + $max_person_array[$k]['stunde_max']=0; + $max_person_array[$k]['stunde_max']=$max_person_array[$k]['stunde_max']+$max_person; + + if (!isset($max_person_array[$i][$k]['tag_stunde'])) + $max_person_array[$i][$k]['tag_stunde']=0; + $max_person_array[$i][$k]['tag_stunde']=$max_person_array[$i][$k]['tag_stunde']+$gefunden_anz; + if (!isset($max_person_array[$i][$k]['tag_stunde_max'])) + $max_person_array[$i][$k]['tag_stunde_max']=0; + $max_person_array[$i][$k]['tag_stunde_max']=$max_person_array[$i][$k]['tag_stunde_max']+$max_person; + + } + echo ''; + + } + echo '
    '. $fh_name .'      '. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'
    Stunde
    '.$row->show_beginn.'
    '.$row->show_ende.'
    '; + + $sql_query=' select distinct vw_'.$stpl_table.'.stg_bezeichnung as bezeichnung,vw_'.$stpl_table.'.stg_kurzbzlang as kurzbzlang,vw_'.$stpl_table.'.stg_kurzbz as kurzbz, vw_'.$stpl_table.'.'.$stpl_table.'_id,vw_'.$stpl_table.'.lehrform, vw_'.$stpl_table.'.gruppe, vw_'.$stpl_table.'.gruppe_kurzbz, vw_'.$stpl_table.'.unr,vw_'.$stpl_table.'.verband,vw_'.$stpl_table.'.ort_kurzbz,vw_'.$stpl_table.'.lehreinheit_id,vw_'.$stpl_table.'.studiengang_kz,vw_'.$stpl_table.'.semester,tbl_ort.max_person,tbl_standort.adresse_id,tbl_adresse.plz,tbl_adresse.name '; + $sql_query.=' from lehre.vw_'.$stpl_table.', public.tbl_ort,public.tbl_standort, public.tbl_adresse '; + $sql_query.=" where vw_".$stpl_table.".datum=".$db->db_add_param(date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))))." "; + $sql_query.=" and vw_".$stpl_table.".stunde=".$db->db_add_param($row->stunde, FHC_INTEGER)." "; + $sql_query.=" and tbl_ort.ort_kurzbz=vw_".$stpl_table.".ort_kurzbz "; + $sql_query.=" and tbl_standort.standort_id=tbl_ort.standort_id "; + $sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id "; + $sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." "; + $sql_query.=" order by tbl_adresse.plz,vw_".$stpl_table.".ort_kurzbz "; + + // Gibt es fuer das Datum und Stunde einen Stundenplaneintrag + if(!$results_anzahl=$db->db_query($sql_query)) + die($db->db_last_error()); + $num_rows_anzahl=$db->db_num_rows($results_anzahl); + + $gefunden_anz=0; + $tooltip=''; + for ($k_anz=0; $k_anz<$num_rows_anzahl; $k_anz++) + { + $row_anz = $db->db_fetch_object($results_anzahl, $k_anz); + // Lehreinheit wird aufgeteilt in zwei Raeume - nicht verarbeiten , das sind die selben Personen + if (isset($lehreinheiten[trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz)])) + continue; + $lehreinheiten[$row_anz->lehreinheit_id]=trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz); + + $max_person=$row_anz->max_person+$max_person; + $row_anz->verband=trim($row_anz->verband); + $row_anz->gruppe=trim($row_anz->gruppe); + $row_anz->gruppe_kurzbz=trim($row_anz->gruppe_kurzbz); + + $stsem=$ss; + + $gruppe=($row_anz->gruppe_kurzbz?$row_anz->gruppe_kurzbz:null); + $student=new student(); + + $row_anz->anz=0; + if ($result=$student->getStudents($row_anz->studiengang_kz,$row_anz->semester,$row_anz->verband,$row_anz->gruppe,$gruppe, $stsem)) + $row_anz->anz=count($result); + + + if (empty($row_anz->anz)) + $fehler=true; + + $lvb=$row_anz->kurzbzlang.'-'.$row_anz->semester; + if (!is_null($row_anz->verband) && !empty($row_anz->verband)) + { + $lvb.=$row_anz->verband; + if (!is_null($row_anz->gruppe) && !empty($row_anz->gruppe) ) + $lvb.=$row_anz->gruppe; + } + if (!empty($k_anz)) + $tooltip.='
    '. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.$row->show_beginn.' - '.$row->show_ende.'Anzahl
    stundenplan_id:$row_anz->stundenplandev_id).'\'>'.trim($row_anz->ort_kurzbz).' ort_kurzbz).'\' target=\'_blank\' titel=\'Studiengang Kz '.$row_anz->studiengang_kz.'\'>'.$lvb.' '.$row_anz->gruppe_kurzbz.' '.(!$row_anz->anz?'':'').$row_anz->bezeichnung.(!$row_anz->anz?'':'').' '.$row_anz->anz.'
    max.Personen:'.$max_person.' Belegung:'. number_format($gefunden_anz / $max_person,2)*100 .'% Ges.:'.$gefunden_anz.'
    '; + + + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($uid); + if($rechte->isBerechtigt('admin')) + { + echo ''; + echo ''; + + echo ''; + echo ''; + for ($i=0; $i'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).''; + } + echo ''; + $stunde_proz=0; + $stunde=0; + $stunde_max=0; + for ($k=0; $k<$num_rows_stunde; $k++) + { + $row = $db->db_fetch_object($results, $k); + $row->show_beginn=substr($row->beginn,0,5); + $row->show_ende=substr($row->ende,0,5); + $row->check_beginn=str_replace(':','',substr($row->beginn,0,5)); + $row->check_ende=str_replace(':','',substr($row->ende,0,5)); + echo ''; + echo ''; + echo ''; + + $stunde=$stunde+$max_person_array[$k]['stunde']; + $stunde_max=$stunde_max+$max_person_array[$k]['stunde_max']; + + for ($i=0; $i'; + echo 'anz.:'.$max_person_array[$i][$k]['tag_stunde']; + echo '
    '; + echo 'FH   max.:'. $raum_max_anz; + echo '
    '; + echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $raum_max_anz,2)*100:0).'%'; + echo '
    '; + echo 'Raum max.:'. $max_person_array[$i][$k]['tag_stunde_max']; + echo '
    '; + echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $max_person_array[$i][$k]['tag_stunde_max'],2)*100:0).'%'; + echo ''; + } + echo '
    '; + } + + + echo ''; + echo ''; + + echo ''; + + + for ($i=0; $i'; + echo 'FH      Ø '.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / ($raum_max_anz *$num_rows_stunde),2)*100:0).'%'; + echo '
    '; + echo 'Raum Ø '.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / $max_person_array[$i]['tag_max'],2)*100:0).'%'; + echo ''; + } + + echo '
    '; + + + echo '
    '. $fh_name .'      '. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'
    Zeit / Datum – 
    '.$row->show_beginn.'
    '.$row->show_ende.'
    '; + echo 'anz.:'.$max_person_array[$k]['stunde']; + echo '
    '; + echo 'FH   '.($raum_max_anz*TAGE_PRO_WOCHE); + echo '
    '; + echo ' Ø '.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde'])/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%'; + echo '
    '; + echo 'Raum '.$max_person_array[$k]['stunde_max']; + echo '
    '; + echo ' Ø '.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde']/TAGE_PRO_WOCHE) / ($max_person_array[$k]['stunde_max']/TAGE_PRO_WOCHE),2)*100:0).'%'; + echo '
    Ø'; + echo 'FH      Ø '.($stunde?number_format(($stunde)/$num_rows_stunde/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%'; + echo '
    '; + echo 'Raum Ø '.($stunde_max?number_format(($stunde/$num_rows_stunde/TAGE_PRO_WOCHE) / ($stunde_max/$num_rows_stunde/TAGE_PRO_WOCHE),2)*100:0).'%'; + echo '
    '; + } +?> + + From 1cf06681d3efa138706769b623304d73658a6a7f Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 18 Nov 2020 17:45:37 +0100 Subject: [PATCH 095/106] =?UTF-8?q?bpk=20vorr=C3=BCbergehend=20auskommenti?= =?UTF-8?q?ert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/lehrgangsmeldung.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vilesci/bis/lehrgangsmeldung.php b/vilesci/bis/lehrgangsmeldung.php index 07a62a9ae..9cc560d32 100644 --- a/vilesci/bis/lehrgangsmeldung.php +++ b/vilesci/bis/lehrgangsmeldung.php @@ -379,7 +379,7 @@ if($result = $db->db_query($qry)) } } } - if($row->bpk == '' || $row->bpk == null) + /*if($row->bpk == '' || $row->bpk == null) { $error_log .= (!empty($error_log) ? ', ' : '') . "bPK fehlt"; } @@ -395,7 +395,7 @@ if($result = $db->db_query($qry)) { $error_log.=(!empty($error_log) ? ', ' : ''). "bPK ist nicht 28 Zeichen lang"; } - } + }*/ if ($zustell_plz == '' || $zustell_plz == null) { @@ -626,9 +626,9 @@ if($result = $db->db_query($qry)) ".$row->ersatzkennzeichen.""; } - $datei.=" + /*$datei.=" ".$row->bpk." - "; + ";*/ $datei.=" ".$row->staatsbuergerschaft." From 451e0e784382c82088bde507477036186f932008 Mon Sep 17 00:00:00 2001 From: Paolo Date: Thu, 19 Nov 2020 00:09:53 +0100 Subject: [PATCH 096/106] Fixed MessageLib->_sendNoticeEmails: date and array comparisons --- application/libraries/MessageLib.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index 8c58d1a90..2970fbd6d 100644 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -606,7 +606,7 @@ class MessageLib if (hasData($benutzerResult)) { // Checks if the user was NOT created in the last 24 hours - if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('+1 day'))) + if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('-1 day'))) { // Use the uid + domain email $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; @@ -657,7 +657,7 @@ class MessageLib // If there are presetudent if (hasData($prestudentResults)) { - $inArray = true; + $privateOnly = false; $organisationUnits = getData($prestudentResults); // Look if any of the organization units of this prestudent are in the list of the @@ -665,16 +665,21 @@ class MessageLib foreach ($organisationUnits as $organisationUnit) { // If the recipient organisation unit is NOT in the list of organisation units that sent only to private emails + // NOTE: done in this way because it is easyer to check the result of array_search if (array_search($organisationUnit, $this->_ci->config->item(self::CFG_OU_RECEIVERS_PRIVATE)) === false) { - $inArray = false; + // NOP + } + else // otherwise If the recipient organisation unit is the list of organisation units that sent only to private emails + { + $privateOnly = true; break; } } // If the recipient prestudent organization unit is not in in the list of the // organization units that will not send the notice email to the internal account - if (!$inArray) + if ($privateOnly) { // Then use the private email $privateEmailResult = $this->_getPrivateEmail($message->receiver_id); @@ -703,7 +708,7 @@ class MessageLib foreach (getData($benutzerResult) as $benutzer) { // Checks if the user was NOT created in the last 24 hours - if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('+1 day'))) + if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('-1 day'))) { // Use the uid + domain as email address $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; From 119d5d99df73ca398e689bd7f50b926ab497307b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 23 Nov 2020 16:18:43 +0100 Subject: [PATCH 097/106] Fixed Query to get User for Messages by PersonID and OrganisationUnit --- application/models/person/Benutzer_model.php | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/application/models/person/Benutzer_model.php b/application/models/person/Benutzer_model.php index 3c5a6d08a..c1e76ce38 100644 --- a/application/models/person/Benutzer_model.php +++ b/application/models/person/Benutzer_model.php @@ -23,14 +23,17 @@ class Benutzer_model extends DB_Model */ public function getActiveUserByPersonIdAndOrganisationUnit($person_id, $oe_kurzbz) { - $sql = 'SELECT b.uid, - b.insertamum - FROM public.tbl_benutzer b - JOIN public.tbl_prestudent ps USING (person_id) - JOIN public.tbl_studiengang sg USING (studiengang_kz) - WHERE ps.person_id = ? - AND sg.oe_kurzbz = ? - AND b.aktiv = TRUE'; + $sql = 'SELECT + b.uid, + b.insertamum + FROM + public.tbl_prestudent ps + JOIN public.tbl_studiengang sg USING (studiengang_kz) + JOIN public.tbl_student USING(prestudent_id) + JOIN public.tbl_benutzer b ON(uid = student_uid) + WHERE ps.person_id = ? + AND sg.oe_kurzbz = ? + AND b.aktiv = TRUE'; return $this->execQuery($sql, array($person_id, $oe_kurzbz)); } @@ -98,4 +101,3 @@ class Benutzer_model extends DB_Model return mb_strtolower(str_replace(' ','_', $str)); } } - From 6e5c555a40dcc9b2e28d512e5b8cf2aaf149fc22 Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 23 Nov 2020 16:19:23 +0100 Subject: [PATCH 098/106] Fixed MessageLib->_sendNoticeEmail --- application/libraries/MessageLib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index 2970fbd6d..db760ec03 100644 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -606,7 +606,7 @@ class MessageLib if (hasData($benutzerResult)) { // Checks if the user was NOT created in the last 24 hours - if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('-1 day'))) + if (getData($benutzerResult)[0]->insertamum < date('Y-m-d H:i:s', strtotime('-1 day'))) { // Use the uid + domain email $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; @@ -708,7 +708,7 @@ class MessageLib foreach (getData($benutzerResult) as $benutzer) { // Checks if the user was NOT created in the last 24 hours - if (getData($benutzerResult)[0]->insertamum > date('Y-m-d H:i:s', strtotime('-1 day'))) + if (getData($benutzerResult)[0]->insertamum < date('Y-m-d H:i:s', strtotime('-1 day'))) { // Use the uid + domain as email address $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; From 562fab9281de94d22265eee2f3dfd0e446e1490e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 25 Nov 2020 14:43:22 +0100 Subject: [PATCH 099/106] ZGV-Nation in Infocenter Filter per Default sichtbar --- system/filtersupdate.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/system/filtersupdate.php b/system/filtersupdate.php index 9fbaf936f..2a9b26d1c 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -33,6 +33,7 @@ $filters = array( {"name": "Vorname"}, {"name": "Nachname"}, {"name": "Nation"}, + {"name": "ZGVNation"}, {"name": "StgAbgeschickt"}, {"name": "Studiensemester"}, {"name": "LastAction"}, @@ -66,6 +67,7 @@ $filters = array( {"name": "Vorname"}, {"name": "Nachname"}, {"name": "Nation"}, + {"name": "ZGVNation"}, {"name": "StgAbgeschickt"}, {"name": "Studiensemester"}, {"name": "LastAction"}, @@ -105,6 +107,7 @@ $filters = array( {"name": "Vorname"}, {"name": "Nachname"}, {"name": "Nation"}, + {"name": "ZGVNation"}, {"name": "LastAction"}, {"name": "LastActionType"}, {"name": "User/Operator"}, @@ -140,6 +143,7 @@ $filters = array( {"name": "Vorname"}, {"name": "Nachname"}, {"name": "Nation"}, + {"name": "ZGVNation"}, {"name": "LastAction"}, {"name": "User/Operator"}, {"name": "LockUser"}, @@ -180,6 +184,7 @@ $filters = array( {"name": "Vorname"}, {"name": "Nachname"}, {"name": "Nation"}, + {"name": "ZGVNation"}, {"name": "StgAbgeschickt"}, {"name": "Studiensemester"}, {"name": "LastAction"}, @@ -218,6 +223,7 @@ $filters = array( {"name": "Vorname"}, {"name": "Nachname"}, {"name": "Nation"}, + {"name": "ZGVNation"}, {"name": "LastAction"}, {"name": "User/Operator"}, {"name": "LockUser"}, From 9b6cb231c0b68acb52dbff2ea2901e51d94230bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 25 Nov 2020 16:54:44 +0100 Subject: [PATCH 100/106] Messages in FAS show the Date of the last Status change (read/unread-status) --- content/messages.xul.php | 5 +++++ rdf/messages.rdf.php | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/content/messages.xul.php b/content/messages.xul.php index eb3ace222..2ee733c82 100644 --- a/content/messages.xul.php +++ b/content/messages.xul.php @@ -122,6 +122,10 @@ echo ']> class="sortDirectionIndicator" sort="rdf:http://www.technikum-wien.at/messages/rdf#status"/> +