diff --git a/application/config/navigation.php b/application/config/navigation.php index 7f1b29932..d123399b6 100644 --- a/application/config/navigation.php +++ b/application/config/navigation.php @@ -9,20 +9,60 @@ $config['navigation_header'] = array( 'link' => site_url(''), 'icon' => '', 'description' => 'FH-Complete', - 'sort' => 1 + 'sort' => 10 ), - 'vilesci' => array( - 'link' => base_url('vilesci'), - 'icon' => '', - 'description' => 'Vilesci', - 'sort' => 2, - 'requiredPermissions' => 'basis/vilesci:r' + 'Organisation' => array( + 'link' => '#', + 'icon' => 'sitemap', + 'description' => 'Organisation', + 'sort' => 20, + 'children'=> array( + 'vilesci' => array( + 'link' => base_url('vilesci'), + 'icon' => '', + 'description' => 'Vilesci', + 'expand' => true, + 'sort' => 1, + 'requiredPermissions' => 'basis/vilesci:r' + ) + ) ), - 'cis' => array( - 'link' => CIS_ROOT, - 'icon' => '', - 'description' => 'CIS', - 'sort' => 3 + 'Lehre' => array( + 'link' => '#', + 'icon' => 'graduation-cap', + 'description' => 'Lehre', + 'sort' => 30, + 'children'=> array( + 'cis' => array( + 'link' => CIS_ROOT, + 'icon' => '', + 'description' => 'CIS', + 'sort' => 10 + ), + 'infocenter' => array( + 'link' => site_url('system/infocenter/InfoCenter'), + 'icon' => 'info', + 'description' => 'Infocenter', + 'expand' => true, + 'sort' => 20, + 'requiredPermissions' => 'infocenter:r' + ), + ) + ), + 'Personen' => array( + 'link' => '#', + 'icon' => 'user', + 'description' => 'Personen', + 'sort' => 40, + 'children'=> array( + 'bpk' => array( + 'link' => site_url('person/BPKWartung'), + 'icon' => '', + 'description' => 'BPK Wartung', + 'sort' => 10, + 'requiredPermissions' => 'admin:r' + ) + ) ) ) ); diff --git a/application/controllers/person/BPKWartung.php b/application/controllers/person/BPKWartung.php new file mode 100644 index 000000000..a8e9b8829 --- /dev/null +++ b/application/controllers/person/BPKWartung.php @@ -0,0 +1,199 @@ + 'admin:r', + 'showDetails' => 'admin:r', + 'saveBPK' => 'admin:rw', + ) + ); + + // Loads models + $this->load->model('crm/akte_model', 'AkteModel'); + $this->load->model('person/person_model', 'PersonModel'); + $this->load->model('person/adresse_model', 'AdressModel'); + + $this->load->library('WidgetLib'); + $this->loadPhrases( + array( + 'global', + 'person', + 'lehre', + 'ui', + 'infocenter', + 'filter' + ) + ); + + $this->setControllerId(); // sets the controller id + } + + // ----------------------------------------------------------------------------------------------------------------- + // Public methods + + /** + * Main page of the InfoCenter tool + */ + public function index() + { + $this->_setNavigationMenuIndex(); // define the navigation menu for this page + + $this->load->view('person/bpk/bpkwartung.php'); + } + + /** + * Personal details page of the InfoCenter tool + * Initialization function, gets person and prestudent data and loads the view with the data + * @param $person_id + */ + public function showDetails() + { + $this->_setNavigationMenuShowDetails(); + $person_id = $this->input->get('person_id'); + + if (!is_numeric($person_id)) + show_error('person id is not numeric!'); + + $personexists = $this->PersonModel->load($person_id); + + if (isError($personexists)) + show_error($personexists->retval); + + if (!hasData($personexists)) + show_error('Person does not exist!'); + + $persondata = $this->_loadPersonData($person_id); + + + $data[self::FHC_CONTROLLER_ID] = $this->getControllerId(); + + $this->load->view('person/bpk/bpkDetails.php', $persondata); + } + + /** + * Saves a ZGV for a prestudent, includes Ort, Datum, Nation for bachelor and master + * @param $prestudent_id + */ + public function saveBPK() + { + $person_id = $this->input->post('person_id'); + $bpk = $this->input->post('bpk'); + + if (isEmptyString($person_id)) + $result = error('PersonID missing'); + else + { + $result = $this->PersonModel->update( + $person_id, + array( + 'bpk' => $bpk, + 'updateamum' => date('Y-m-d H:i:s') + ) + ); + redirect('person/BPKWartung/index'); + } + } + + // ----------------------------------------------------------------------------------------------------------------- + // Private methods + + /** + * Loads all necessary Person data: Stammdaten (name, svnr, contact, ...), Dokumente, Logs and Notizen + * @param $person_id + * @return array + */ + private function _loadPersonData($person_id) + { + $stammdaten = $this->PersonModel->getPersonStammdaten($person_id, true); + + if (isError($stammdaten)) + { + show_error($stammdaten->retval); + } + + if (!isset($stammdaten->retval)) + return null; + + $adresse = $this->AdressModel->getZustellAdresse($person_id); + + if (isError($adresse)) + { + show_error($adresse->retval); + } + + $data = array( + 'stammdaten' => $stammdaten->retval, + 'adresse' => $adresse->retval[0] + ); + + return $data; + } + + /** + * Define the navigation menu for the showDetails page + */ + private function _setNavigationMenuShowDetails() + { + $this->load->library('NavigationLib', array('navigation_page' => 'person/BPKWartung/showDetails')); + + $link = site_url('person/BPKWartung'); + + $this->navigationlib->setSessionMenu( + array( + 'back' => $this->navigationlib->oneLevel( + 'Zurück', // description + $link, // link + array(), // children + 'angle-left', // icon + true, // expand + null, // subscriptDescription + null, // subscriptLinkClass + null, // subscriptLinkValue + '', // target + 1 // sort + ) + ) + ); + } + + /** + * Define the navigation menu for the showDetails page + */ + private function _setNavigationMenuIndex() + { + $this->load->library('NavigationLib', array('navigation_page' => 'person/BPKWartung/index')); + + $link = site_url(); + + $this->navigationlib->setSessionMenu( + array( + 'back' => $this->navigationlib->oneLevel( + 'Zurück', // description + $link, // link + array(), // children + 'angle-left', // icon + true, // expand + null, // subscriptDescription + null, // subscriptLinkClass + null, // subscriptLinkValue + '', // target + 1 // sort + ) + ) + ); + } +} diff --git a/application/core/DB_Model.php b/application/core/DB_Model.php index 6273cb962..b636c3fe5 100644 --- a/application/core/DB_Model.php +++ b/application/core/DB_Model.php @@ -26,6 +26,8 @@ class DB_Model extends FHC_Model private $executedQueryMetaData; private $executedQueryListFields; + private $debugMode; + /** * Constructor */ @@ -42,6 +44,10 @@ class DB_Model extends FHC_Model // Loads the UDF library $this->load->library('UDFLib'); + // Loads the logs library + $this->load->library('LogLib'); + + $this->debugMode = isset($this->db->db_debug) && $this->db->db_debug === true; } // ------------------------------------------------------------------------------------------ @@ -62,7 +68,11 @@ class DB_Model extends FHC_Model if (isError($validate = $this->_manageUDFs($data, $this->dbTable))) return $validate; // DB-INSERT - if ($this->db->insert($this->dbTable, $data)) + $insert = $this->db->insert($this->dbTable, $data); + + $this->_logLastQuery(); + + if ($insert) { // If the table has a primary key that uses a sequence if ($this->hasSequence === true) @@ -126,7 +136,11 @@ class DB_Model extends FHC_Model $this->db->where($tmpId); // DB-UPDATE - if ($this->db->update($this->dbTable, $data)) + $update = $this->db->update($this->dbTable, $data); + + $this->_logLastQuery(); + + if ($update) { return success($id); } @@ -164,7 +178,11 @@ class DB_Model extends FHC_Model } // DB-DELETE - if ($this->db->delete($this->dbTable, $tmpId)) + $delete = $this->db->delete($this->dbTable, $tmpId); + + $this->_logLastQuery(); + + if ($delete) { return success($id); } @@ -201,15 +219,7 @@ class DB_Model extends FHC_Model $tmpId = array($this->pk => $id); } - // DB-SELECT - if ($result = $this->db->get_where($this->dbTable, $tmpId)) - { - return success($this->_toPhp($result)); - } - else - { - return error($this->db->error(), FHC_DB_ERROR); - } + return $this->loadWhere($tmpId); } /** @@ -223,7 +233,11 @@ class DB_Model extends FHC_Model if (is_null($this->dbTable)) return error(FHC_MODEL_ERROR, FHC_NODBTABLE); // Execute query - if ($result = $this->db->get_where($this->dbTable, $where)) + $result = $this->db->get_where($this->dbTable, $where); + + $this->_logLastQuery(); + + if ($result) { return success($this->_toPhp($result)); } @@ -292,6 +306,9 @@ class DB_Model extends FHC_Model // Execute the query $resultDB = $this->db->get_where($this->dbTable, $where); + + $this->_logLastQuery(); + // If everything went ok... if ($resultDB) { @@ -603,7 +620,6 @@ class DB_Model extends FHC_Model // Workaround to get metadata from this table $result = $this->db->query(sprintf(DB_Model::QUERY_LIST_FIELDS, $this->dbTable)); - if (is_object($result)) { $listFields = $result->list_fields(); @@ -736,6 +752,8 @@ class DB_Model extends FHC_Model $resultDB = $this->db->query($query); } + $this->_logLastQuery(); + // If no errors occurred if ($resultDB) { @@ -940,4 +958,12 @@ class DB_Model extends FHC_Model return $this->execQuery($query, array(strtolower($schema), strtolower($table))); } + + /** + * + */ + private function _logLastQuery() + { + if ($this->debugMode) $this->loglib->logDebug($this->db->last_query()); + } } diff --git a/application/libraries/LogLib.php b/application/libraries/LogLib.php index a42132644..cb0541003 100644 --- a/application/libraries/LogLib.php +++ b/application/libraries/LogLib.php @@ -16,27 +16,48 @@ class LogLib const CLASS_POSTFIX = '->'; const LINE_SEPARATOR = ':'; + // -------------------------------------------------------------------------------------------------------------- + // Public methods + /** - * format + * logDebug */ - private function format($class, $function, $line) + public function logDebug($message) { - $formatted = LogLib::CALLER_PREFIX; - - if (!is_null($class) && $class != '') - { - $formatted .= $class.LogLib::CLASS_POSTFIX; - } - - $formatted .= $function.LogLib::LINE_SEPARATOR.$line.LogLib::CALLER_POSTFIX.' '; - - return $formatted; + $this->_log(LogLib::DEBUG, $message); } /** - * getCaller + * logInfo */ - private function getCaller() + public function logInfo($message) + { + $this->_log(LogLib::INFO, $message); + } + + /** + * logError + */ + public function logError($message) + { + $this->_log(LogLib::ERROR, $message); + } + + // -------------------------------------------------------------------------------------------------------------- + // Private methods + + /** + * log + */ + private function _log($level, $message) + { + log_message($level, $this->_getCaller().$message); + } + + /** + * _getCaller + */ + private function _getCaller() { $classIndex = 3; $functionIndex = 3; @@ -60,38 +81,23 @@ class LogLib $line = $backtrace_arr[$lineIndex]['line']; } - return $this->format($class, $function, $line); + return $this->_format($class, $function, $line); } /** - * log + * format */ - private function log($level, $message) + private function _format($class, $function, $line) { - log_message($level, $this->getCaller().$message); - } + $formatted = LogLib::CALLER_PREFIX; - /** - * logDebug - */ - public function logDebug($message) - { - $this->log(LogLib::DEBUG, $message); - } + if (!is_null($class) && $class != '') + { + $formatted .= $class.LogLib::CLASS_POSTFIX; + } - /** - * logInfo - */ - public function logInfo($message) - { - $this->log(LogLib::INFO, $message); - } + $formatted .= $function.LogLib::LINE_SEPARATOR.$line.LogLib::CALLER_POSTFIX.' '; - /** - * logError - */ - public function logError($message) - { - $this->log(LogLib::ERROR, $message); + return $formatted; } } diff --git a/application/models/person/Adresse_model.php b/application/models/person/Adresse_model.php index 3b17ce956..e049f5ad6 100644 --- a/application/models/person/Adresse_model.php +++ b/application/models/person/Adresse_model.php @@ -11,4 +11,15 @@ class Adresse_model extends DB_Model $this->dbTable = 'public.tbl_adresse'; $this->pk = 'adresse_id'; } + + + /** + * gets person data from uid + * @param $uid + * @return array + */ + public function getZustellAdresse($person_id) + { + return $this->loadWhere(array('person_id' => $person_id, 'zustelladresse'=> true)); + } } diff --git a/application/views/person/bpk/bpkData.php b/application/views/person/bpk/bpkData.php new file mode 100644 index 000000000..f7bf75b50 --- /dev/null +++ b/application/views/person/bpk/bpkData.php @@ -0,0 +1,58 @@ + ' + SELECT + person_id, vorname, nachname, geschlecht, svnr, ersatzkennzeichen, matr_nr, + staatsbuergerschaft, gebdatum + FROM + public.tbl_person + WHERE + matr_nr is not null + AND bpk is null + AND EXISTS(SELECT 1 FROM public.tbl_benutzer JOIN public.tbl_student ON(uid=student_uid) AND + person_id=tbl_person.person_id AND tbl_benutzer.aktiv=true) + ', + 'requiredPermissions' => 'admin', + 'additionalColumns' => array('Details'), + 'columnsAliases' => array( + 'PersonID', + ucfirst($this->p->t('person', 'vorname')) , + ucfirst($this->p->t('person', 'nachname')), + ucfirst($this->p->t('person', 'geschlecht')), + ucfirst($this->p->t('person', 'svnr')), + ucfirst($this->p->t('person', 'ersatzkennzeichen')), + ucfirst($this->p->t('person', 'matrikelnummer')), + ucfirst($this->p->t('person', 'staatsbuergerschaft')), + ucfirst($this->p->t('person', 'geburtsdatum')), + ), + 'formatRow' => function($datasetRaw) { + + /* NOTE: Dont use $this here for PHP Version compatibility */ + $datasetRaw->{'Details'} = sprintf( + 'Details', + site_url('person/BPKWartung/showDetails'), + $datasetRaw->{'person_id'}, + 'index', + (isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'') + ); + + if ($datasetRaw->{'ersatzkennzeichen'} == null) + { + $datasetRaw->{'ersatzkennzeichen'} = '-'; + } + if ($datasetRaw->{'svnr'} == null) + { + $datasetRaw->{'svnr'} = '-'; + } + + return $datasetRaw; + } + ); + + $filterWidgetArray['app'] = 'core'; + $filterWidgetArray['datasetName'] = 'overview'; + $filterWidgetArray['filterKurzbz'] = 'BPKWartung'; + $filterWidgetArray['filter_id'] = $this->input->get('filter_id'); + + echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray); +?> diff --git a/application/views/person/bpk/bpkDetails.php b/application/views/person/bpk/bpkDetails.php new file mode 100644 index 000000000..e771cb7f5 --- /dev/null +++ b/application/views/person/bpk/bpkDetails.php @@ -0,0 +1,153 @@ +load->view( + 'templates/FHC-Header', + array( + 'title' => 'bPK Details', + 'jquery' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'jqueryui' => true, + 'ajaxlib' => true, + 'tablesorter' => true, + 'tinymce' => true, + 'sbadmintemplate' => true, + 'addons' => true, + 'navigationwidget' => true, + 'customCSSs' => array( + 'public/css/sbadmin2/admintemplate.css', + 'public/css/sbadmin2/tablesort_bootstrap.css', + 'public/css/infocenter/infocenterDetails.css' + ), + 'customJSs' => array( + 'public/js/bootstrapper.js', + 'public/js/tablesort/tablesort.js' + ), + 'phrases' => array( + 'ui' => array( + 'gespeichert', + 'fehlerBeimSpeichern' + ), + 'global' => array( + 'bis', + 'zeilen' + ) + ) + ) + ); +?> + +
+ + widgetlib->widget('NavigationWidget'); ?> + +
+
+ +
+
+ +
+
+
+
+
+
+
+
+

p->t('global', 'stammdaten')) ?>

+
+
+
+
+ + titelpre)): ?> + + + + + + + + + + + + + + titelpost)): ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
p->t('person','titelpre')) ?>titelpre ?>
p->t('person','vorname')) ?>vorname ?>
p->t('person','nachname')) ?> + nachname ?>
p->t('person','titelpost')) ?>titelpost ?>
p->t('person','geburtsdatum')) ?> + gebdatum), 'd.m.Y') ?>
p->t('person','svnr')) ?> + svnr ?>
p->t('person','ersatzkennzeichen')) ?> + ersatzkennzeichen ?>
p->t('person','staatsbuergerschaft')) ?> + staatsbuergerschaft ?>
p->t('person','geschlecht')) ?> + geschlecht ?>
p->t('person','bpk')) ?> + bpk ?>
p->t('person','postleitzahl')) ?> + plz ?>
p->t('person','strasse')) ?> + strasse ?>
+
+
+
+ + + + + +
+

+
+ bPK + + +
+
+
+
+
+
+
+
+
+
+ + +load->view('templates/FHC-Footer'); ?> diff --git a/application/views/person/bpk/bpkwartung.php b/application/views/person/bpk/bpkwartung.php new file mode 100644 index 000000000..53450a9d8 --- /dev/null +++ b/application/views/person/bpk/bpkwartung.php @@ -0,0 +1,51 @@ +load->view( + 'templates/FHC-Header', + array( + 'title' => 'bPK Wartung', + 'jquery' => true, + 'jqueryui' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'sbadmintemplate' => true, + 'tablesorter' => true, + 'ajaxlib' => true, + 'filterwidget' => true, + 'navigationwidget' => true, + 'phrases' => array( + 'ui' => array('bitteEintragWaehlen') + ), + 'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css', + 'customJSs' => array('public/js/bootstrapper.js') + ) + ); +?> + + +
+ + widgetlib->widget('NavigationWidget'); ?> + +
+
+
+
+ +
+
+
+ Bei folgenden Personen mit Matrikelnummer konnte kein bPK ermittelt werden. + Es ist die Namensschreibweise zu prüfen und ggf zu korrigieren. + Falls die Person keine Meldeadresse hat, ist eine Eintragung der + Person in das "Ergänzungsregister für natürliche Personen" notwendig. +

+ load->view('person/bpk/bpkData.php'); ?> +
+
+
+
+ + +load->view('templates/FHC-Footer'); ?> diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index a41e362fd..2a1a615e8 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -286,39 +286,39 @@ foreach ($noten_obj->result as $row) changedwarning.innerHTML = '
t('benotungstool/geaenderteNotenVorhanden'); ?>
'; } } - else - { - alert(resp); - document.getElementById(uid).note.value=""; + else + { + alert(resp); + document.getElementById(uid).note.value=""; } - }, + }, error:function(result) { alert('Speichern der Note fehlgeschlagen'); } }); - } - - // ************************************************* - // * Formular zum Eintragen einer Pruefung erstellen - // ************************************************* - function pruefungAnlegen(uid,datum,note,lehreinheit_id,punkte,typ) - { - if(typeof(typ)=='undefined') - typ = 'Termin2'; - var str = "
"; - str += ""; - - var anlegendiv = document.getElementById("nachpruefung_div"); - var y = getOffset('y'); y = y+50; - anlegendiv.style.top = y+"px"; - var x = getOffset('x'); x = x+300; - anlegendiv.style.left = x+"px"; - str += ""; - str += ""; - str += "
X
t('benotungstool/pruefungAnlegenFuer');?> "+uid+":
t('global/datum');?>:"; - str += ""; - str += ""; + } + + // ************************************************* + // * Formular zum Eintragen einer Pruefung erstellen + // ************************************************* + function pruefungAnlegen(uid,datum,note,lehreinheit_id,punkte,typ) + { + if(typeof(typ)=='undefined') + typ = 'Termin2'; + var str = " "; + str += ""; + + var anlegendiv = document.getElementById("nachpruefung_div"); + var y = getOffset('y'); y = y+50; + anlegendiv.style.top = y+"px"; + var x = getOffset('x'); x = x+300; + anlegendiv.style.left = x+"px"; + str += ""; + str += ""; + str += ""; result as $row) } echo ''; ?>'; - str += "
X
t('benotungstool/pruefungAnlegenFuer');?> "+uid+":
t('global/datum');?>:"; + str += ""; + str += ""; str += " [DD.MM.YYYY]
"; + str += "
"; str += "result as $row) if (resp == "update_f" || resp == "update") { - notenstatus.innerHTML = ""; + notenstatus.innerHTML = ""; if (warningdiv != null) warningdiv.parentNode.removeChild(warningdiv); // Entfernt das Warning-Div - changedwarning.innerHTML = '
t('benotungstool/geaenderteNotenVorhanden'); ?>
'; - } - document.getElementById("lvnoteneingabe_"+uid).style.visibility = "hidden"; - anlegendiv.innerHTML = ""; - anlegendiv.style.visibility = "hidden"; - var pruefhtml = ""; + changedwarning.innerHTML = '
t('benotungstool/geaenderteNotenVorhanden'); ?>
'; + } + document.getElementById("lvnoteneingabe_"+uid).style.visibility = "hidden"; + anlegendiv.innerHTML = ""; + anlegendiv.style.visibility = "hidden"; + var pruefhtml = "
"+datum+"
"; pruefhtml += ""; pruefhtml += "'; - + // Bereits eingetragene Note ermitteln if ($lvgesamtnote = new lvgesamtnote($lvid, $uid, $stsem)) { @@ -1147,7 +1152,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $note_lv = null; $punkte_lv = null; } - + $notensumme = 0; $notensumme_gewichtet = 0; $gewichtsumme = 0; @@ -1157,7 +1162,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $negativeteilnote = false; $note_zusatztext = ''; $note_zusatztext_tooltip = ''; - + if (isset($data['grades'])) { // Teilnoten summieren und Notenvorschlag berechnen @@ -1173,7 +1178,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $anzahlnoten += 1; } $note_zusatztext_tooltip .= $row_grades['text'] . "\n"; - + if (isset($noten_array[$row_grades['grade']]) && ! $noten_array[$row_grades['grade']]['positiv']) { $negativeteilnote = true; @@ -1186,7 +1191,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $note_zusatztext .= '
'; } } - + $punkte_vorschlag = ''; if (! is_null($note_lv)) { @@ -1226,23 +1231,23 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG { $note_vorschlag = null; } - + if ($zeugnisnote = new zeugnisnote($lvid, $uid, $stsem)) $znote = $zeugnisnote->note; else $znote = null; - + if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) { $htmlstring .= ''; } - + if (key_exists($uid, $studpruef_arr)) $hide = "style='display:none;visibility:hidden;'"; else $hide = "style='display:block;visibility:visible;'"; - + if (! defined('CIS_GESAMTNOTE_UEBERSCHREIBEN') || CIS_GESAMTNOTE_UEBERSCHREIBEN || (! CIS_GESAMTNOTE_UEBERSCHREIBEN && is_null($znote))) { $htmlstring .= "'; } - + if (isset($noten_array[$note_lv]) && $noten_array[$note_lv]['positiv'] == false) $negmarkier = ' class="negative"'; else $negmarkier = ""; - + // LV Note $htmlstring .= ''; - + // status $htmlstring .= ""; if (($znote) && ($note_lv != $znote)) $stylestr = " style='color:red; border-color:red; border-style:solid; border-width:1px;'"; else $stylestr = ""; - + // Zeugnisnote $htmlstring .= ""; if (isset($noten_array[$znote])) $htmlstring .= $noten_array[$znote]['bezeichnung_mehrsprachig'][$sprache]; $htmlstring .= ""; - + if (isset($noten_array[$znote]) && $noten_array[$znote]['positiv'] == false) $summe_ng ++; - + if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2) { // Pruefung 2. Termin @@ -1372,7 +1377,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $pr_punkte = $studpruef_arr[$uid][$le_id_stud]["punkte"]; $pr_datum = $studpruef_arr[$uid][$le_id_stud]["datum"]; $pr_le_id = $le_id_stud; - + if ($pr_punkte != '') { $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; @@ -1380,10 +1385,10 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG } else $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; - + $onclick = "pruefungAnlegen('" . $uid . "','" . $pr_datum . "','" . $pr_note . "',"; $onclick .= "'" . $pr_le_id . "','" . $pr_punkte . "')"; - + $htmlstring .= ' @@ -1425,7 +1430,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG } } } - + if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3) { // Pruefung 3. Termin @@ -1442,7 +1447,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $pr_punkte = $studpruef_arr_t3[$uid][$le_id_stud]["punkte"]; $pr_datum = $studpruef_arr_t3[$uid][$le_id_stud]["datum"]; $pr_le_id = $le_id_stud; - + if ($pr_punkte != '') { $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; @@ -1450,10 +1455,10 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG } else $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; - + $onclick = "pruefungAnlegen('" . $uid . "',"; $onclick .= "'" . $pr_datum . "','" . $pr_note . "','" . $pr_le_id . "','" . $pr_punkte . "','Termin3')"; - + $htmlstring .= ' @@ -1488,7 +1493,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $htmlstring .= ""; } } - + if (defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF) { // komm Pruefung @@ -1505,7 +1510,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $pr_punkte = $studpruef_komm[$uid][$le_id_stud]["punkte"]; $pr_datum = $studpruef_komm[$uid][$le_id_stud]["datum"]; $pr_le_id = $le_id_stud; - + if ($pr_punkte != '') { $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; @@ -1513,7 +1518,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG } else $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; - + $htmlstring .= ' @@ -1529,7 +1534,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $htmlstring .= ""; } } - + $htmlstring .= ""; $i ++; } diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index 18930b7b6..9899cf598 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -45,47 +45,47 @@ if(!check_lektor($uid)) if (!$db = new basis_db()) die('Fehler beim Herstellen der Datenbankverbindung'); - + if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) $lvid=$_GET['lvid']; else die("Fehlerhafte Parameteruebergabe"); - + if(isset($_GET['stg']) && is_numeric($_GET['stg'])) $stg=$_GET['stg']; -else +else die("Fehlerhafte Parameteruebergabe"); - + if(isset($_GET['gruppe_kurzbz'])) $gruppe_kurzbz = $_GET['gruppe_kurzbz']; -else +else $gruppe_kurzbz = ''; - + if(isset($_GET['sem']) && is_numeric($_GET['sem'])) $sem = $_GET['sem']; -else +else $sem = ''; - + if(isset($_GET['verband'])) $verband = $_GET['verband']; -else +else $verband = ''; - + if(isset($_GET['gruppe']) && is_numeric($_GET['gruppe'])) $gruppe = $_GET['gruppe']; else $gruppe = ''; - + if(isset($_GET['stsem'])) $stsem = $_GET['stsem']; else die('Studiensemester muss uebergeben werden'); - + if(isset($_GET['lehreinheit_id'])) $lehreinheit_id = $_GET['lehreinheit_id']; -else +else $lehreinheit_id = ''; - + /* * Create Excel File */ @@ -93,7 +93,7 @@ else // Creating a workbook $workbook = new Spreadsheet_Excel_Writer(); $workbook->setVersion(8); - + // sending HTTP headers $workbook->send($p->t('anwesenheitsliste/notenliste'). "_" . date("d_m_Y") . ".xls"); $workbook->setCustomColor (15,192,192,192); //Setzen der HG-Farbe Hellgrau @@ -105,12 +105,12 @@ else $format_bold =& $workbook->addFormat(); $format_bold->setBold(); - + $format_highlight =& $workbook->addFormat(); $format_highlight->setFgColor(15); $format_highlight->setBorder(1); $format_highlight->setBorderColor('white'); - + $format_border_bottom =& $workbook->addFormat(); $format_border_bottom ->setBottom(2); $format_border_bottom->setBold(); @@ -124,17 +124,17 @@ else $format_title->setAlign('merge'); $lvobj = new lehrveranstaltung($lvid); - + $worksheet->write(0,0,$p->t('anwesenheitsliste/notenliste')." ".($sprache=='English'?$lvobj->bezeichnung_english:$lvobj->bezeichnung),$format_bold); - + $stg_obj = new studiengang($stg); - + $qry = "SELECT - distinct on(kuerzel, semester, verband, gruppe, gruppe_kurzbz) UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, - semester, verband, gruppe, gruppe_kurzbz + distinct on(kuerzel, semester, verband, gruppe, gruppe_kurzbz) UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, + semester, verband, gruppe, gruppe_kurzbz FROM - campus.vw_lehreinheit - WHERE + campus.vw_lehreinheit + WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($stsem); if($lehreinheit_id!='') $qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); @@ -152,26 +152,26 @@ else $gruppen.=$row->gruppe_kurzbz; } } - + $worksheet->write(1,0,$p->t('global/studiengang').": $stg_obj->bezeichnung $gruppen"); $lines=2; //Lektoren ermitteln - - $qry = "SELECT - distinct vorname, nachname - FROM - campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter - WHERE - uid=mitarbeiter_uid AND - tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND + + $qry = "SELECT + distinct vorname, nachname + FROM + campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter + WHERE + uid=mitarbeiter_uid AND + tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND + lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($stsem); - + if($lehreinheit_id!='') $qry.=" AND tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); - + $qry.=' ORDER BY nachname, vorname'; - + if($result = $db->db_query($qry)) { while($row=$db->db_fetch_object($result)) @@ -183,10 +183,11 @@ else //Studenten holen $lines++; - $worksheet->write($lines,1,$p->t('global/nachname'),$format_border_bottom); - $worksheet->write($lines,2,$p->t('global/vorname'),$format_border_bottom); - $worksheet->write($lines,3,$p->t('global/gruppe'),$format_border_bottom); - $worksheet->write($lines,4,$p->t('global/personenkennzeichen'),$format_border_bottom); + $worksheet->write($lines,1,$p->t('global/uid'),$format_border_bottom); + $worksheet->write($lines,2,$p->t('global/nachname'),$format_border_bottom); + $worksheet->write($lines,3,$p->t('global/vorname'),$format_border_bottom); + $worksheet->write($lines,4,$p->t('global/gruppe'),$format_border_bottom); + $worksheet->write($lines,5,$p->t('global/personenkennzeichen'),$format_border_bottom); if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) $worksheet->write($lines,5,$p->t('benotungstool/punkte'),$format_border_bottom); @@ -196,29 +197,29 @@ else $stsem_obj = new studiensemester(); $stsem_obj->load($stsem); $stsemdatumvon = $stsem_obj->start; - $stsemdatumbis = $stsem_obj->ende; - - $qry = "SELECT + $stsemdatumbis = $stsem_obj->ende; + + $qry = "SELECT distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, tbl_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von, - tbl_zeugnisnote.note - FROM - campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid) + tbl_zeugnisnote.note + FROM + campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid) LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) - WHERE - vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND + WHERE + vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem); if($lehreinheit_id!='') $qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); - + $qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; - + if($result = $db->db_query($qry)) { $i=1; @@ -226,36 +227,37 @@ else while($elem = $db->db_fetch_object($result)) { if(!preg_match('*dummy*',$elem->uid) && $elem->semester!=10) - { + { if($elem->status!='Abbrecher' && $elem->status!='Unterbrecher') { $worksheet->write($lines,0,$i); if($elem->status=='Incoming') $inc=' (i)'; - else + else $inc=''; if($elem->bisio_id!='' && $elem->status!='Incoming' && ($elem->bis > $stsemdatumvon || $elem->bis=='') && $elem->von < $stsemdatumbis) //Outgoing $inc.=' (o)'; - + if($elem->note==6) //angerechnet { $inc.=' (ar)'; $note='ar'; } - else + else $note=''; - $worksheet->write($lines,1,$elem->nachname.$inc); - $worksheet->write($lines,2,$elem->vorname); - $worksheet->write($lines,3,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"'); - $worksheet->write($lines,4,'="'.trim($elem->matrikelnr).'"',$format_highlight); - $worksheet->write($lines,5,$note,$format_highlight); + $worksheet->write($lines,1,$elem->uid); + $worksheet->write($lines,2,$elem->nachname.$inc); + $worksheet->write($lines,3,$elem->vorname); + $worksheet->write($lines,4,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"'); + $worksheet->write($lines,5,'="'.trim($elem->matrikelnr).'"',$format_highlight); + $worksheet->write($lines,6,$note,$format_highlight); $i++; $lines++; } } } } - + //Noten $note = new note(); $note->getAll(); @@ -266,8 +268,8 @@ else $aufteilung = array(); foreach($notenschluessel->result as $row) - $aufteilung[$row->note]=$row->punkte; - + $aufteilung[$row->note]=$row->punkte; + $worksheet->write(++$lines,0,$p->t('benotungstool/note').":"); foreach($note->result as $row) { @@ -285,19 +287,20 @@ else $worksheet->write(++$lines,0,$row->bezeichnung.' ('.$row->anmerkung.')'); } } - + $worksheet->writeBlank(++$lines,0,0); $worksheet->writeBlank(++$lines,0,$format_highlight); $worksheet->write($lines,1,'...'.$p->t('anwesenheitsliste/anleitungImportFunktion')); $lines++; - $worksheet->write(++$lines,0,'(i) ... Incoming'); + $worksheet->write(++$lines,0,'(i) ... Incoming'); $worksheet->write(++$lines,0,'(o) ... Outgoing'); $worksheet->write(++$lines,0,'(ar) ... '.$p->t('anwesenheitsliste/angerechnet')); - + $worksheet->setColumn(0, 0, 5); - $worksheet->setColumn(1, 1, 25); - $worksheet->setColumn(2, 2, 25); - $worksheet->setColumn(3, 3, 7); - $worksheet->setColumn(4, 4, 21); + $worksheet->setColumn(0, 1, 16); + $worksheet->setColumn(0, 2, 25); + $worksheet->setColumn(0, 3, 25); + $worksheet->setColumn(0, 4, 7); + $worksheet->setColumn(0, 5, 21); $workbook->close(); ?> diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 59715d4fa..f044c1472 100755 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1087,7 +1087,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) $summe=0; $dr = new zeitaufzeichnung(); - $dr->getDienstreisenUser($user); + $dr->getDienstreisenUser($user, 180); $dr_arr = $dr->result; //var_dump($dr->result); diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index dca284e7c..07501ce86 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -89,6 +89,10 @@ define('CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE', true); // Vertraege fuer Pruefungshonorare anzulegen define('FAS_GESAMTNOTE_PRUEFUNGSHONORAR',false); +// Gibt an ob die Note im Notenfreigabemail enthalten ist oder nicht +// Aus Datenschutzgründen ist dies per default deaktiviert +define('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE', false); + // Grenzwerte für Anwesenheit define('FAS_ANWESENHEIT_ROT', 70); define('FAS_ANWESENHEIT_GELB', 90); diff --git a/content/statistik/lvplanung.xls.php b/content/statistik/lvplanung.xls.php index c46f695dc..c8644f9e9 100644 --- a/content/statistik/lvplanung.xls.php +++ b/content/statistik/lvplanung.xls.php @@ -97,7 +97,7 @@ foreach($oe->result as $row) { $oe_arr[$row->oe_kurzbz] = $oetyp_arr[$row->organisationseinheittyp_kurzbz].' '.$row->bezeichnung; } - +$oe_arr[''] = ''; $stg_obj = new studiengang(); $stg_obj->getAll('typ, kurzbz', false); @@ -206,8 +206,8 @@ $maxlength[$spalte]=9; $worksheet->write($zeile,++$spalte,"LV-Nummer", $format_bold); $maxlength[$spalte]=9; -$worksheet->write($zeile,++$spalte,"ALVS", $format_bold); -$maxlength[$spalte]=9; +$worksheet->write($zeile,++$spalte,"Semesterstunden", $format_bold); +$maxlength[$spalte]=15; $worksheet->write($zeile,++$spalte,"ECTS", $format_bold); $maxlength[$spalte]=9; diff --git a/include/dvb.class.php b/include/dvb.class.php index fb2f97afd..886b40eea 100644 --- a/include/dvb.class.php +++ b/include/dvb.class.php @@ -74,8 +74,7 @@ class dvb extends basis_db $person = new person(); if (!$person->load($person_id)) { - $this->errormsg = $person->errormsg; - return ErrorHandler::error(); + return ErrorHandler::error($person->errormsg); } $matrikelnummer = false; @@ -85,9 +84,9 @@ class dvb extends basis_db { $data = $this->getMatrikelnrBySVNR($person->svnr); - if(ErrorHandler::isSuccess($data)) + if (ErrorHandler::isSuccess($data)) { - if(ErrorHandler::hasData($data)) + if (ErrorHandler::hasData($data)) { $matrikelnummer = $data->retval->matrikelnummer; $bpk = $data->retval->bpk; @@ -95,16 +94,15 @@ class dvb extends basis_db } else { - $this->logRequest($person, 'getMatrikelnrBySVNR', false); return ErrorHandler::error(); } } elseif ($person->ersatzkennzeichen != '') { $data = $this->getMatrikelnrByErsatzkennzeichen($person->ersatzkennzeichen); - if(ErrorHandler::isSuccess($data)) + if (ErrorHandler::isSuccess($data)) { - if(ErrorHandler::hasData($data)) + if (ErrorHandler::hasData($data)) { $matrikelnummer = $data->retval->matrikelnummer; $bpk = $data->retval->bpk; @@ -112,14 +110,13 @@ class dvb extends basis_db } else { - $this->logRequest($person, 'getMatrikelnrByErsatzkennzeichen', false); return ErrorHandler::error(); } } else { - $this->errormsg = 'Person braucht SVNR oder Ersatzkennzeichen'; - return ErrorHandler::error(); + $errormsg = 'Person braucht SVNR oder Ersatzkennzeichen'; + return ErrorHandler::error($errormsg); } // Wenn nicht gefunden, wird zusaetzlich noch eine Namenssuche gestartet @@ -135,13 +132,13 @@ class dvb extends basis_db { $this->debug('Nachnamensuche erfolgreich'); $matrikelnummer = $nachnameresult->retval->matrikelnummer; - if(isset($nachnameresult->retval->bpk)) + if (isset($nachnameresult->retval->bpk)) $bpk = $nachnameresult->retval->bpk; } else { - $this->errormsg = 'Namenssuche ergab nicht eindeutige Treffer -> manuelle Pruefung ist erforderlich'; - return ErrorHandler::error(); + $errormsg = 'Namenssuche ergab nicht eindeutige Treffer -> manuelle Pruefung ist erforderlich'; + return ErrorHandler::error($errormsg); } } } @@ -160,16 +157,15 @@ class dvb extends basis_db if ($person->save()) { - $this->logRequest($person, 'assignExistingMatrikelnummer', true, $matrikelnummer); return ErrorHandler::success(); } } else { - if($softrun == true) + if ($softrun == true) { - $this->errormsg = 'Nicht gefunden Softrun enabled keine Meldung'; - return ErrorHandler::error(); + $errormsg = 'Nicht gefunden Softrun enabled keine Meldung'; + return ErrorHandler::error($errormsg); } // Es wurde noch keine Matrikelnummer zu dieser Person zugeordnet @@ -206,15 +202,15 @@ class dvb extends basis_db else { $this->logRequest($person, 'assignNewMatrikelnummer', false); - $this->errormsg = 'Fehler beim Ermitteln des Studienjahrs für diese Person'; - return ErrorHandler::error(); + $errormsg = 'Fehler beim Ermitteln des Studienjahrs für diese Person'; + return ErrorHandler::error($errormsg); } } else { $this->logRequest($person, 'assignNewMatrikelnummer', false); - $this->errormsg = 'Fehler beim Ermitteln des Studienjahrs für diese Person'; - return ErrorHandler::error(); + $errormsg = 'Fehler beim Ermitteln des Studienjahrs für diese Person'; + return ErrorHandler::error($errormsg); } $studienjahr = substr($studiensemester_kurzbz, 4); @@ -229,7 +225,7 @@ class dvb extends basis_db // Neue Matrikelnummer aus Kontingent anfordern $data = $this->getKontingent(DVB_BILDUNGSEINRICHTUNG_CODE, $studienjahr); - if(ErrorHandler::isSuccess($data) && ErrorHandler::hasdata($data)) + if (ErrorHandler::isSuccess($data) && ErrorHandler::hasdata($data)) { $kontingent = $data->retval->kontingent; @@ -244,7 +240,7 @@ class dvb extends basis_db $person_meldung->staat = $person->staatsbuergerschaft; if ($person->svnr != '') $person_meldung->svnr = $person->svnr; - else if($person->ersatzkennzeichen != '') + else if ($person->ersatzkennzeichen != '') $person_meldung->svnr = $person->ersatzkennzeichen; // PLZ der Meldeadresse laden @@ -268,28 +264,27 @@ class dvb extends basis_db $person->matr_nr = $data->retval->matrikelnummer; // Wenn ein BPK bei der Meldung ermittelt wurde, dann dieses auch speichern - if(ErrorHandler::hasData($data) && isset($data->retval->bpk) && $data->retval->bpk!='') + if (ErrorHandler::hasData($data) && isset($data->retval->bpk) && $data->retval->bpk != '') { $person->bpk = $data->retval->bpk; } if ($person->save()) { - $this->logRequest($person, 'assignNewMatrikelnummer', true, $matrikelnummer); return ErrorHandler::success(); } } else { $this->logRequest($person, 'assignNewMatrikelnummer', false, $person_meldung); - $this->errormsg .= 'Vergabe fehlgeschlagen'; - return ErrorHandler::error(); + $errormsg = 'Vergabe fehlgeschlagen'; + return ErrorHandler::error($errormsg); } } else { $this->logRequest($person, 'assignNewMatrikelnummer', false, $studienjahr); - $this->errormsg .= 'Failed to get Kontingent'; - return ErrorHandler::error(); + $errormsg = 'Failed to get Kontingent'; + return ErrorHandler::error($errormsg); } } } @@ -473,7 +468,7 @@ class dvb extends basis_db } } - if($matrikelnr !== false) + if ($matrikelnr !== false) { $retval = new stdClass(); $retval->matrikelnummer = $matrikelnr; @@ -489,8 +484,8 @@ class dvb extends basis_db } else { - $this->errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; - return ErrorHandler::error(); + $errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; + return ErrorHandler::error($errormsg); } } @@ -631,7 +626,7 @@ class dvb extends basis_db } } - if($matrikelnr != '') + if ($matrikelnr != '') { $retval = new stdClass(); $retval->matrikelnummer = $matrikelnr; @@ -646,8 +641,8 @@ class dvb extends basis_db } else { - $this->errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$xml_response; - return ErrorHandler::error(); + $errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$xml_response; + return ErrorHandler::error($errormsg); } } @@ -725,8 +720,8 @@ class dvb extends basis_db } else { - $this->errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; - return ErrorHandler::error(); + $errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; + return ErrorHandler::error($errormsg); } } @@ -806,8 +801,8 @@ class dvb extends basis_db } else { - $this->errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; - return ErrorHandler::error(); + $errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; + return ErrorHandler::error($errormsg); } } @@ -970,11 +965,11 @@ class dvb extends basis_db * Das BPK wurde vom Datenverbund versucht zu ermitteln und wird in der Fehlermeldung * zurückgeliefert. Dieses sollte dann gespeichert werden. */ - if($fehlernummer->length>0 && $fehlernummer->item(0)->textContent == 'ED10065') + if ($fehlernummer->length>0 && $fehlernummer->item(0)->textContent == 'ED10065') { $this->debug('ED10065 Response'); $domnodes_feldinhalt = $row->getElementsByTagName('feldinhalt'); - if($domnodes_feldinhalt->length > 0 && $domnodes_feldinhalt->item(0)->textContent!='') + if ($domnodes_feldinhalt->length > 0 && $domnodes_feldinhalt->item(0)->textContent!='') { $bpk = $domnodes_feldinhalt->item(0)->textContent; $retval = new stdClass(); @@ -998,8 +993,8 @@ class dvb extends basis_db } else { - $this->errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; - return ErrorHandler::error(); + $errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; + return ErrorHandler::error($errormsg); } } @@ -1023,20 +1018,20 @@ class dvb extends basis_db if ($person->gebdatum == '') { - $this->errormsg = 'Geburtsdatum ist nicht gesetzt'; - return ErrorHandler::error(); + $errormsg = 'Geburtsdatum ist nicht gesetzt'; + return ErrorHandler::error($errormsg); } if ($person->vorname == '') { - $this->errormsg = 'Vorname ist nicht gesetzt'; - return ErrorHandler::error(); + $errormsg = 'Vorname ist nicht gesetzt'; + return ErrorHandler::error($errormsg); } if ($person->nachname == '') { - $this->errormsg = 'Nachname ist nicht gesetzt'; - return ErrorHandler::error(); + $errormsg = 'Nachname ist nicht gesetzt'; + return ErrorHandler::error($errormsg); } $geburtsdatum = str_replace("-", "", $person->gebdatum); @@ -1136,10 +1131,10 @@ class dvb extends basis_db $url .= '&nachname='.curl_escape($curl, $nachname); $url .= '&geschlecht='.curl_escape($curl, $geschlecht); - if(!is_null($plz)) + if (!is_null($plz)) $url .= '&plz='.curl_escape($curl, $plz); - if(!is_null($strasse)) + if (!is_null($strasse)) $url .= '&strasse='.curl_escape($curl, $strasse); curl_setopt($curl, CURLOPT_URL, $url); @@ -1212,10 +1207,10 @@ class dvb extends basis_db $dom->loadXML($response); $namespace = 'http://www.brz.gv.at/datenverbund-unis'; $domnodes_fehlernummer = $dom->getElementsByTagNameNS($namespace, 'fehlernummer'); - if($domnodes_fehlernummer->length > 0) + if ($domnodes_fehlernummer->length > 0) { $fehlercode = $domnodes_fehlernummer->item(0)->textContent; - if($fehlercode == 'ZD00001') + if ($fehlercode == 'ZD00001') { // Zu viele Requests pro Minute $this->debug('Zu viele Requests pro Minute -> Pause'); @@ -1224,7 +1219,7 @@ class dvb extends basis_db } $domnodes_bpk = $dom->getElementsByTagNameNS($namespace, 'personenkennzeichen'); - if($domnodes_bpk->length > 0) + if ($domnodes_bpk->length > 0) { $retval = new stdClass(); $retval->bpk = $domnodes_bpk->item(0)->textContent; @@ -1234,19 +1229,19 @@ class dvb extends basis_db { $retval = new stdClass(); $domnodes_personen = $dom->getElementsByTagNameNS($namespace, 'personInfo'); - if($domnodes_personen->length > 1) + if ($domnodes_personen->length > 1) { $retval = new stdClass(); $retval->multiple = true; - return ErrorHandler::error($retval); + return ErrorHandler::error(null, $retval); } } return ErrorHandler::error(); } else { - $this->errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; - return ErrorHandler::error(); + $errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; + return ErrorHandler::error($errormsg); } } @@ -1259,22 +1254,22 @@ class dvb extends basis_db public function existsByNachname($person_id) { $person = new person(); - if($person->load($person_id)) + if ($person->load($person_id)) { $result = $this->getMatrikelnrByNachname($person->nachname, $person->gebdatum); - if(ErrorHandler::isSuccess($result) && ErrorHandler::hasData($result) + if (ErrorHandler::isSuccess($result) && ErrorHandler::hasData($result) && isset($result->retval->data) && is_array($result->retval->data) && count($result->retval->data)>0) { foreach($result->retval->data as $row) { - if(isset($row->vorname) && isset($row->nachname)) + if (isset($row->vorname) && isset($row->nachname)) { $this->debug('Eintrag gefunden -> Pruefe Eindeutigkeit'); // Vorpruefung des Datenverbund - if(mb_substr(mb_strtolower($row->vorname),0,5) == mb_substr(mb_strtolower($person->vorname),0,5) + if (mb_substr(mb_strtolower($row->vorname),0,5) == mb_substr(mb_strtolower($person->vorname),0,5) && mb_substr(mb_strtolower($row->nachname),0,10) == mb_substr(mb_strtolower($person->nachname),0,10)) { // Bei 100% eindeutiger Uebereinstimmung werden die Daten zurueckgeliefert @@ -1292,7 +1287,7 @@ class dvb extends basis_db { $this->debug('Uebereinstimmung gefunden'); $retval = new stdClass(); - if(isset($row->bpk) && $row->bpk!='') + if (isset($row->bpk) && $row->bpk!='') $retval->bpk = $row->bpk; $retval->matrikelnummer = $row->matrikelnummer; return ErrorHandler::success($retval); @@ -1413,16 +1408,16 @@ class dvb extends basis_db break; } $domnodes = $row_student->getElementsByTagNameNS($namespace, 'vorName'); - if($domnodes->length>0) + if ($domnodes->length>0) $data->vorname = $domnodes->item(0)->textContent; $domnodes = $row_student->getElementsByTagNameNS($namespace, 'nachName'); - if($domnodes->length>0) + if ($domnodes->length>0) $data->nachname = $domnodes->item(0)->textContent; $domnodes = $row_student->getElementsByTagNameNS($namespace, 'geschlecht'); - if($domnodes->length>0) + if ($domnodes->length>0) $data->geschlecht = $domnodes->item(0)->textContent; $domnodes = $row_student->getElementsByTagNameNS($namespace, 'staatsAngehoerigkeit'); - if($domnodes->length>0) + if ($domnodes->length > 0) $data->staatsangehoerigkeit = $domnodes->item(0)->textContent; $retval->data[] = $data; @@ -1434,8 +1429,8 @@ class dvb extends basis_db } else { - $this->errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; - return ErrorHandler::error(); + $errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response; + return ErrorHandler::error($errormsg); } } diff --git a/include/errorhandler.class.php b/include/errorhandler.class.php index 5ba74041b..05915832d 100644 --- a/include/errorhandler.class.php +++ b/include/errorhandler.class.php @@ -32,6 +32,7 @@ class ErrorHandler { $data = new stdClass(); $data->error = false; + $data->errormsg = ''; $data->retval = $retval; return $data; } @@ -41,10 +42,11 @@ class ErrorHandler * @param $retval object (optional) * @return result object */ - public static function error($retval = '') + public static function error($errormsg = '', $retval = '') { $data = new stdClass(); $data->error = true; + $data->errormsg = $errormsg; $data->retval = $retval; return $data; } diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index eb5498581..e6e9e6506 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1091,8 +1091,12 @@ class mitarbeiter extends benutzer /** * Gibt ein Array mit den UIDs der aktiv beschäftigten Untergebenen zurueck + * @param string $uid UID. + * @param boolean $include_OE_childs Wenn true, dann werden auch alle aktiv + * beschäftigten Untergebenen der Kind-OEs des Leiters zurückgegeben. + * @return boolean */ - public function getUntergebene($uid=null) + public function getUntergebene($uid=null, $include_OE_childs = false) { if (is_null($uid)) $uid=$this->uid; @@ -1113,6 +1117,70 @@ class mitarbeiter extends benutzer $oe.=$this->db_add_param($row->oe_kurzbz); } } + + // Kinder-Organisationseinheiten holen + if ($include_OE_childs == true) + { + if (!empty($oe)) + { + $child_oe_arr = array(); // array of string child oes + + $qry = ' + WITH RECURSIVE + oes (oe_kurzbz, oe_parent_kurzbz) AS + ( + SELECT + oe_kurzbz, + oe_parent_kurzbz + FROM + public.tbl_organisationseinheit + WHERE + oe_kurzbz IN ('. $oe. ') + + UNION ALL + + SELECT + o.oe_kurzbz, + o.oe_parent_kurzbz + FROM + public.tbl_organisationseinheit o, oes + WHERE + o.oe_parent_kurzbz = oes.oe_kurzbz + ) + SELECT + oe_kurzbz + FROM + oes + GROUP BY + oe_kurzbz'; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $child_oe_arr []= $this->db_add_param($row->oe_kurzbz); + } + } + + // eliminate duplicates + $child_oe_arr = array_unique($child_oe_arr); + + // check if leader has child oes by comparing the original + // string of oes with string of child oes. + if ($oe == implode(',', $child_oe_arr)) + { + $this->result ['isIndirectSupervisor']= false; + } + else + { + $this->result ['isIndirectSupervisor']= true; + } + + // overwrite $oe with child oes for further query + $oe = implode(',', $child_oe_arr); + } + } + //Alle Personen holen die dieser Organisationseinheit untergeordnet sind $qry = " diff --git a/public/js/FilterWidget.js b/public/js/FilterWidget.js index b87019a55..59cf59da1 100644 --- a/public/js/FilterWidget.js +++ b/public/js/FilterWidget.js @@ -744,7 +744,7 @@ var FHC_FilterWidget = { */ _renderTableDataset: function(data) { - if (data.hasOwnProperty("checkboxes") && data.checkboxes.trim() != "") + if (data.hasOwnProperty("checkboxes") && data.checkboxes!=null && data.checkboxes.trim() != "") { $("#filterTableDataset > thead > tr").append(""); } diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php index 4651c9f46..898e0f734 100644 --- a/soap/datenverbund_client.php +++ b/soap/datenverbund_client.php @@ -210,7 +210,7 @@ if (isset($_REQUEST['submit'])) } else { - echo '
Matrikelnummer nicht vorhanden:'.$dvb->errormsg; + echo '
Matrikelnummer nicht vorhanden:'.$data->errormsg; } break; @@ -220,7 +220,7 @@ if (isset($_REQUEST['submit'])) if (ErrorHandler::isSuccess($data) && ErrorHandler::hasData($data)) echo '
Matrikelnummer vorhanden:'.$data->retval->matrikelnummer; else - echo '
Matrikelnummer nicht vorhanden:'.$dvb->errormsg; + echo '
Matrikelnummer nicht vorhanden:'.$data->errormsg; break; case 'getByNachname': @@ -240,7 +240,7 @@ if (isset($_REQUEST['submit'])) } else { - echo '
Matrikelnummer nicht vorhanden:'.$dvb->errormsg; + echo '
Matrikelnummer nicht vorhanden:'.$data->errormsg; } break; case 'getReservations': @@ -251,7 +251,7 @@ if (isset($_REQUEST['submit'])) if ($reservierteNummern !== false) echo '
Reservierte Nummern:'.print_r($reservierteNummern, true); else - echo '
Fehlgeschlagen:'.$dvb->errormsg; + echo '
Fehlgeschlagen:'.$data->errormsg; } break; @@ -264,7 +264,7 @@ if (isset($_REQUEST['submit'])) if ($kontingent !== false) echo '
Kontingent:'.print_r($kontingent, true); else - echo '
Fehlgeschlagen:'.$dvb->errormsg; + echo '
Fehlgeschlagen:'.$data->errormsg; } break; @@ -285,7 +285,7 @@ if (isset($_REQUEST['submit'])) if (ErrorHandler::isSuccess($result)) echo '
Erfolgreich gemeldet'; else - echo '
Fehlgeschlagen:'.$dvb->errormsg; + echo '
Fehlgeschlagen:'.$data->errormsg; break; case 'assignMatrikelnummer': @@ -295,7 +295,7 @@ if (isset($_REQUEST['submit'])) echo '
OK'; } else - echo '
Fehlgeschlagen:'.$dvb->errormsg; + echo '
Fehlgeschlagen:'.$data->errormsg; break; case 'getBPK': @@ -305,7 +305,7 @@ if (isset($_REQUEST['submit'])) echo '
OK BPK: '.$data->retval->bpk; } else - echo '
Fehlgeschlagen:'.$dvb->errormsg; + echo '
Fehlgeschlagen:'.$data->errormsg; break; case 'pruefeBPK': @@ -315,7 +315,7 @@ if (isset($_REQUEST['submit'])) echo '
OK BPK: '.$data->retval->bpk; } else - echo '
Fehlgeschlagen:'.$dvb->errormsg; + echo '
Fehlgeschlagen:'.$data->errormsg; break; default: echo "Unknown action"; diff --git a/system/filtersupdate.php b/system/filtersupdate.php index 415dabc49..673cc9457 100644 --- a/system/filtersupdate.php +++ b/system/filtersupdate.php @@ -300,6 +300,28 @@ $filters = array( } ', 'oe_kurzbz' => null, + ), + array( + 'app' => 'core', + 'dataset_name' => 'overview', + 'filter_kurzbz' => 'BPKWartung', + 'description' => '{bPK Uebersicht}', + 'sort' => 1, + 'default_filter' => true, + 'filter' => ' + { + "name": "Fehlende bPK", + "columns": [ + {"name": "person_id"}, + {"name": "vorname"}, + {"name": "nachname"}, + {"name": "svnr"}, + {"name": "ersatzkennzeichen"} + ], + "filters": [] + } + ', + 'oe_kurzbz' => null, ) ); diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 636832b5a..959768932 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -18,7 +18,7 @@ * Authors: Cristina Hainberger * * Beschreibung: - * The script checks phrases and phrase-texts for actuality in the database. + * The script checks phrases and phrase-texts for actuality in the database. * Missing attributes are inserted. */ @@ -928,7 +928,7 @@ $phrases = array( ) ) ), - + array( 'app' => 'core', 'category' => 'global', @@ -949,7 +949,7 @@ $phrases = array( ) ) ), - + array( 'app' => 'core', 'category' => 'global', @@ -1374,8 +1374,8 @@ $phrases = array( ) ) ), - - + + //*************************** CORE/filter array( 'app' => 'core', @@ -1397,7 +1397,7 @@ $phrases = array( ) ) ), - + array( 'app' => 'core', 'category' => 'filter', @@ -1418,7 +1418,7 @@ $phrases = array( ) ) ), - + array( 'app' => 'core', 'category' => 'filter', @@ -1439,7 +1439,7 @@ $phrases = array( ) ) ), - + array( 'app' => 'core', 'category' => 'filter', @@ -1460,10 +1460,10 @@ $phrases = array( ) ) ), - - - - + + + + //**************************** CORE/person array( 'app' => 'core', @@ -1685,6 +1685,46 @@ $phrases = array( ) ) ), + array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'ersatzkennzeichen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ersatzkennzeichen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => 'Replacement Label', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'bpk', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'bPK', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => 'bPK', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'person', @@ -1845,6 +1885,46 @@ $phrases = array( ) ) ), + array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'postleitzahl', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Postleitzahl', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => 'ZIP-Code', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'person', + 'phrase' => 'strasse', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Strasse', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => '', + 'description' => 'Street', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'person', @@ -1885,7 +1965,7 @@ $phrases = array( ) ) ), - + //**************** CORE/lehre array( 'app' => 'core', @@ -2047,9 +2127,9 @@ $phrases = array( ) ) ), - - - + + + //********************** INFOCENTER/infocenter array( 'app' => 'infocenter', @@ -2681,7 +2761,7 @@ $phrases = array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Bei Freigabe von InteressentInnen wird deren Interessentenstatus bestätigt + 'text' => 'Bei Freigabe von InteressentInnen wird deren Interessentenstatus bestätigt und deren Zgvdaten können im Infocenter nicht mehr bearbeitet oder freigegeben werden.
Alle nicht gespeicherten Zgvdaten gehen verloren.
Fortfahren?', @@ -2996,19 +3076,19 @@ $phrases = array( ) ) ) - + ); -//***** CHECK PHRASES & PHRASENTEXTE in German and English. +//***** CHECK PHRASES & PHRASENTEXTE in German and English. //***** INSERT into phrase_tbl if new app + category + phrase found in phrasen-array. //***** INSERT into phrasentext_tbl if new text found in phrasen-phrases-array, conciders every language apart. foreach ($phrases as $phrase) { - $qry = "SELECT phrase_id + $qry = "SELECT phrase_id FROM system.tbl_phrase - WHERE + WHERE app=". $db->db_add_param($phrase['app']). " AND category=". $db->db_add_param($phrase['category']). " AND phrase=". $db->db_add_param($phrase['phrase']); @@ -3017,16 +3097,16 @@ foreach ($phrases as $phrase) if ($result = $db->db_query($qry)) { $phrase_id = ''; - + //phrase not existing -> insert phrase and get last inserted phrase_id if ($db->db_num_rows($result) === 0) { $qry_insert = "INSERT INTO system.tbl_phrase( - app, - phrase, - insertamum, - insertvon, - category) + app, + phrase, + insertamum, + insertvon, + category) VALUES(". $db->db_add_param($phrase['app']). ','. $db->db_add_param($phrase['phrase']). ','. @@ -3037,7 +3117,7 @@ foreach ($phrases as $phrase) if ($db->db_query($qry_insert)) { $new = true; - + $qry_lastId = "SELECT currval('system.tbl_phrase_phrase_id_seq') as id"; if ($db->db_query($qry_lastId)) { @@ -3061,37 +3141,37 @@ foreach ($phrases as $phrase) } echo 'Kategorie/Phrase: '. $phrase['category']. '/'. $phrase['phrase']. ' vorhanden.
'; } - - + + //*** CHECK PHRASENTEXT //loop through languages foreach ($phrase['phrases'] as $phrase_phrases) { $language = $phrase_phrases['sprache']; - + //query phrasentext in certain language $qry_language = "SELECT * FROM system.tbl_phrasentext - WHERE + WHERE phrase_id=". $phrase_id. " AND sprache='". $language. "'"; - - + + if ($result_language = $db->db_query($qry_language)) { //if phrasentext not existing in certain language -> insert if ($db->db_num_rows($result_language) === 0 && !empty($phrase_phrases['text'])) { $qry_insert = "INSERT INTO system.tbl_phrasentext( - phrase_id, - sprache, + phrase_id, + sprache, orgeinheit_kurzbz, orgform_kurzbz, text, description, - insertamum, - insertvon) + insertamum, + insertvon) VALUES(". $db->db_add_param($phrase_id, FHC_INTEGER). ','. $db->db_add_param($phrase_phrases['sprache']). ','. diff --git a/system/vorlage_zip/PrProtMAEng.odt b/system/vorlage_zip/PrProtMAEng.odt index bb12b1cc6..cda5e53ba 100644 Binary files a/system/vorlage_zip/PrProtMAEng.odt and b/system/vorlage_zip/PrProtMAEng.odt differ diff --git a/vilesci/personen/leistungsstipendium.php b/vilesci/personen/leistungsstipendium.php old mode 100644 new mode 100755 index f5c282064..693c44f0a --- a/vilesci/personen/leistungsstipendium.php +++ b/vilesci/personen/leistungsstipendium.php @@ -386,6 +386,17 @@ if (!$errorOccurred && $dataPosted)
"+datum+""+noten_array[note]+"result as $row) // **** function GradeImport() { - var str = "
"; - str += ""; - var anlegendiv = document.getElementById("nachpruefung_div"); - var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px"; - str += ''; - str += ''; - str += ""; - - if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE) { - $studlist .= "\n"; + if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + { + $studlist .= "\n"; + } + $studlist .= "\n"; } - $studlist .= "\n"; $studlist .= "\n"; - + // studentenquery $qry_stud = "SELECT DISTINCT uid, vorname, nachname, matrikelnr @@ -842,14 +844,17 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1)) $studlist .= ""; $studlist .= ""; $studlist .= ""; - if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE) { - $studlist .= "\n"; + if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) + { + $studlist .= "\n"; + } + $studlist .= ""; } - $studlist .= ""; $studlist .= "
X
t('benotungstool/importAnweisung');?>:
' onclick='saveGradeBulk();'>"; + var str = "
"; + str += ""; + var anlegendiv = document.getElementById("nachpruefung_div"); + var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px"; + str += ''; + str += ''; + str += "
X
t('benotungstool/importAnweisung');?>:
' onclick='saveGradeBulk();'>"; str += "
"; anlegendiv.innerHTML = str; anlegendiv.style.visibility = "visible"; @@ -749,7 +749,7 @@ foreach ($stsem_obj->studiensemester as $studiensemester) { $selected = ($stsem == $studiensemester->studiensemester_kurzbz ? 'selected' : ''); $optionvalue = "lvgesamtnoteverwalten.php?lvid=$lvid&stsem=$studiensemester->studiensemester_kurzbz"; - + $stsem_content .= "\n"; @@ -768,7 +768,7 @@ if (! $rechte->isBerechtigt('admin', 0) && ! $rechte->isBerechtigt('admin', $lv_ tbl_lehrveranstaltung.lehrveranstaltung_id=" . $db->db_add_param($lvid, FHC_INTEGER) . " AND tbl_lehreinheit.studiensemester_kurzbz=" . $db->db_add_param($stsem) . " AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=" . $db->db_add_param($user) . ';'; - + if ($result = $db->db_query($qry)) { if ($db->db_num_rows($result) == 0) @@ -808,14 +808,16 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
" . $p->t('global/personenkz') . " " . $p->t('global/nachname') . " " . $p->t('global/vorname') . "" . $p->t('benotungstool/punkte') . "" . $p->t('benotungstool/punkte') . "" . $p->t('benotungstool/note') . "" . $p->t('benotungstool/note') . "" . $p->t('benotungstool/bearbeitetvon') . "
" . trim($row_stud->matrikelnr) . "" . trim($row_stud->nachname) . "" . trim($row_stud->vorname) . ""; - if ($lvgesamtnote->punkte != '') - $studlist .= trim(number_format($lvgesamtnote->punkte, 2)); - $studlist .= ""; + if ($lvgesamtnote->punkte != '') + $studlist .= trim(number_format($lvgesamtnote->punkte, 2)); + $studlist .= "" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "" . $lvgesamtnote->mitarbeiter_uid; if ($lvgesamtnote->updatevon != '') $studlist .= " (" . $lvgesamtnote->updatevon . ")"; @@ -859,9 +864,9 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1)) } } } - + $studlist .= "
"; - + // mail an assistentin und den user selber verschicken if ($neuenoten > 0) { @@ -869,16 +874,16 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1)) $sg = new studiengang($lv->studiengang_kz); $lektor_adresse = $user . "@" . DOMAIN; $adressen = $sg->email . ", " . $user . "@" . DOMAIN; - + $studienplan = new studienplan(); $studienplan->getStudienplanLehrveranstaltung($lvid, $stsem); $studienplan_bezeichnung = ''; foreach ($studienplan->result as $row) $studienplan_bezeichnung .= $row->bezeichnung . ' '; - + $mit = new mitarbeiter(); $mit->load($user); - + $freigeber = "" . mb_strtoupper($user) . ""; $betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung; $mail = new mail($adressen, 'vilesci@' . DOMAIN, $betreff, ''); @@ -909,7 +914,7 @@ if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) $onclickpath = "notenschluessel.php?lehrveranstaltung_id=$lvid&stsem=$stsem"; $onclickoptions = "height=200, width=350, left=50, top=50, resizable=yes, status=no,"; $onclickoptions .= "scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes"; - + echo '
' . $p->t('gesamtnote/notenschluesselanzeigen') . ''; @@ -1078,7 +1083,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG studiensemester_kurzbz = " . $db->db_add_param($stsem) . " AND lehrveranstaltung_id = " . $db->db_add_param($lvid) . " ORDER BY nachname, vorname "; - + if ($result_stud = $db->db_query($qry_stud)) { $i = 1; @@ -1088,20 +1093,20 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG { $grades[$row_stud->uid]['vorname'] = $row_stud->vorname; $grades[$row_stud->uid]['nachname'] = $row_stud->nachname; - + // Noten aus Uebungstool $le = new lehreinheit(); $le->load_lehreinheiten($lvid, $stsem); foreach ($le->lehreinheiten as $l) { $legesamtnote = new legesamtnote($l->lehreinheit_id); - + if ($legesamtnote->load($row_stud->uid, $l->lehreinheit_id)) { $gewicht = $l->gewicht; if ($l->gewicht == '') $gewicht = 1; - + $grades[$row_stud->uid]['grades'][] = array( 'grade' => $legesamtnote->note, 'points' => null, @@ -1112,7 +1117,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG } } } - + // Load Addons to modify grades $addon_obj = new addon(); if ($addon_obj->loadAddons()) @@ -1126,7 +1131,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG } } } - + $anzahlChanged = 0; foreach ($grades as $uid => $data) { @@ -1135,7 +1140,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
' . $db->convert_html_chars($uid) . ' ' . $db->convert_html_chars($data['nachname']) . ' ' . $db->convert_html_chars($data['vorname']) . ''; $htmlstring .= $note_zusatztext . '  @@ -1289,7 +1294,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $selected = 'selected'; else $selected = ''; - + if ($row_note->lehre && $row_note->aktiv) $htmlstring .= ''; } @@ -1307,12 +1312,12 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG { $htmlstring .= ''; if (isset($noten_array[$note_lv])) @@ -1320,7 +1325,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG if ($punkte_lv != '') $htmlstring .= ' (' . number_format($punkte_lv, 2) . ')'; $htmlstring .= '"; if (! $lvgesamtnote->freigabedatum) @@ -1330,7 +1335,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $htmlstring .= ""; $anzahlChanged ++; } - else + else $htmlstring .= ""; } elseif ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum) @@ -1340,22 +1345,22 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG } else $htmlstring .= ""; - + $htmlstring .= "
' . $pr_datum . ' ' . $pr_notenbezeichnung . '
' . $pr_datum . ' ' . $pr_notenbezeichnung . '
' . $pr_datum . '
Select
+ + + +
CMS-Format + Zeichensatz: UTF-8
+ Feldtrenner: ;
+ Texttrenner: "
+ Felder:
+
Nachname;Vorname;UID/PersKZ;Studiengang;Betrag;Überweisungsdatum
+Dylan;Bob;1234567;MEE;750;03.10.2016
+