From 6a26609aef596e016e80c7799beeb889cde7949c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 20 Nov 2018 17:36:24 +0100 Subject: [PATCH] Datenverbund - Added new Page to Manage missing bPK - Improved Error Handling on DVB Class --- application/config/navigation.php | 64 ++++-- application/controllers/person/BPKWartung.php | 199 ++++++++++++++++++ application/models/person/Adresse_model.php | 11 + application/views/person/bpk/bpkData.php | 58 +++++ application/views/person/bpk/bpkDetails.php | 153 ++++++++++++++ application/views/person/bpk/bpkwartung.php | 51 +++++ include/dvb.class.php | 133 ++++++------ include/errorhandler.class.php | 4 +- soap/datenverbund_client.php | 18 +- system/phrasesupdate.php | 156 ++++++++++---- 10 files changed, 718 insertions(+), 129 deletions(-) create mode 100644 application/controllers/person/BPKWartung.php create mode 100644 application/views/person/bpk/bpkData.php create mode 100644 application/views/person/bpk/bpkDetails.php create mode 100644 application/views/person/bpk/bpkwartung.php 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/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/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/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/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']). ','.