Datenverbund

- Added new Page to Manage missing bPK
- Improved Error Handling on DVB Class
This commit is contained in:
Andreas Österreicher
2018-11-20 17:36:24 +01:00
parent 412c05c7e3
commit 6a26609aef
10 changed files with 718 additions and 129 deletions
+52 -12
View File
@@ -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'
)
)
)
)
);
@@ -0,0 +1,199 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Page for checking Persons where no bPK was found automatically
*/
class BPKWartung extends Auth_Controller
{
private $_uid; // contains the UID of the logged user
/**
* Constructor
*/
public function __construct()
{
parent::__construct(
array(
'index' => '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
)
)
);
}
}
@@ -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));
}
}
+58
View File
@@ -0,0 +1,58 @@
<?php
$filterWidgetArray = array(
'query' => '
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(
'<a href="%s?person_id=%s&origin_page=%s&fhc_controller_id=%s">Details</a>',
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);
?>
+153
View File
@@ -0,0 +1,153 @@
<?php
$this->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'
)
)
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<input type="hidden" id="hiddenpersonid" value="<?php echo $stammdaten->person_id ?>">
<div class="row">
<div class="col-lg-8">
<h3 class="page-header">
bPK Details: <?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?>
</h3>
</div>
</div>
<br/>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<h4><?php echo ucfirst($this->p->t('global', 'stammdaten')) ?></h4>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6 table-responsive">
<table class="table">
<?php if (!empty($stammdaten->titelpre)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpre')) ?></strong></td>
<td><?php echo $stammdaten->titelpre ?></td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','vorname')) ?></strong></td>
<td><?php echo $stammdaten->vorname ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','nachname')) ?></strong></td>
<td>
<?php echo $stammdaten->nachname ?></td>
</tr>
<?php if (!empty($stammdaten->titelpost)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpost')) ?></strong></td>
<td><?php echo $stammdaten->titelpost ?></td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geburtsdatum')) ?></strong></td>
<td>
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','svnr')) ?></strong></td>
<td>
<?php echo $stammdaten->svnr ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','ersatzkennzeichen')) ?></strong></td>
<td>
<?php echo $stammdaten->ersatzkennzeichen ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','staatsbuergerschaft')) ?></strong></td>
<td>
<?php echo $stammdaten->staatsbuergerschaft ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geschlecht')) ?></strong></td>
<td>
<?php echo $stammdaten->geschlecht ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','bpk')) ?></strong></td>
<td>
<?php echo $stammdaten->bpk ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','postleitzahl')) ?></strong></td>
<td>
<?php echo $adresse->plz ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','strasse')) ?></strong></td>
<td>
<?php echo $adresse->strasse ?></td>
</tr>
</table>
</div>
<div class="col-lg-4 table-responsive">
<form action="<?php echo base_url('soap/datenverbund_client.php?action=pruefeBPK');?>" method="POST" target="_blank">
<input type="hidden" name="vorname" value="<?php echo $stammdaten->vorname; ?>"/>
<input type="hidden" name="nachname" value="<?php echo $stammdaten->nachname; ?>"/>
<input type="hidden" name="geburtsdatum" value="<?php echo mb_str_replace('-','',$stammdaten->gebdatum); ?>"/>
<input type="hidden" name="geschlecht" value="<?php echo mb_strtoupper($stammdaten->geschlecht); ?>"/>
<input type="submit" value="Namenssuche starten" class="btn btn-default"/>
</form>
<br><br>
<form action="<?php echo site_url('person/BPKWartung/saveBPK');?>" method="POST">
<strong>bPK</strong><input type="text" name="bpk" value="" class="form-control"/>
<input type="hidden" name="person_id" value="<?php echo $stammdaten->person_id;?>"/>
<input type="submit" value="Speichern" class="btn btn-default"/>
</form>
</div>
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./main column -->
</div> <!-- ./main row -->
</section>
</div> <!-- ./container-fluid-->
</div> <!-- ./page-wrapper-->
</div> <!-- ./wrapper -->
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,51 @@
<?php
$this->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')
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">
bPK <?php echo ucfirst($this->p->t('global', 'uebersicht')); ?>
</h3>
</div>
</div>
<div>
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.
<br /><br />
<?php $this->load->view('person/bpk/bpkData.php'); ?>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
+64 -69
View File
@@ -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);
}
}
+3 -1
View File
@@ -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;
}
+9 -9
View File
@@ -210,7 +210,7 @@ if (isset($_REQUEST['submit']))
}
else
{
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$dvb->errormsg;
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$data->errormsg;
}
break;
@@ -220,7 +220,7 @@ if (isset($_REQUEST['submit']))
if (ErrorHandler::isSuccess($data) && ErrorHandler::hasData($data))
echo '<br><b>Matrikelnummer vorhanden:</b>'.$data->retval->matrikelnummer;
else
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$dvb->errormsg;
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$data->errormsg;
break;
case 'getByNachname':
@@ -240,7 +240,7 @@ if (isset($_REQUEST['submit']))
}
else
{
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$dvb->errormsg;
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$data->errormsg;
}
break;
case 'getReservations':
@@ -251,7 +251,7 @@ if (isset($_REQUEST['submit']))
if ($reservierteNummern !== false)
echo '<br><b>Reservierte Nummern:</b>'.print_r($reservierteNummern, true);
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
}
break;
@@ -264,7 +264,7 @@ if (isset($_REQUEST['submit']))
if ($kontingent !== false)
echo '<br><b>Kontingent:</b>'.print_r($kontingent, true);
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
}
break;
@@ -285,7 +285,7 @@ if (isset($_REQUEST['submit']))
if (ErrorHandler::isSuccess($result))
echo '<br><b>Erfolgreich gemeldet</b>';
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break;
case 'assignMatrikelnummer':
@@ -295,7 +295,7 @@ if (isset($_REQUEST['submit']))
echo '<br><b>OK</b>';
}
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break;
case 'getBPK':
@@ -305,7 +305,7 @@ if (isset($_REQUEST['submit']))
echo '<br><b>OK BPK:</b> '.$data->retval->bpk;
}
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break;
case 'pruefeBPK':
@@ -315,7 +315,7 @@ if (isset($_REQUEST['submit']))
echo '<br><b>OK BPK:</b> '.$data->retval->bpk;
}
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break;
default:
echo "Unknown action";
+118 -38
View File
@@ -18,7 +18,7 @@
* Authors: Cristina Hainberger <hainberg@technikum-wien.at>
*
* 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.<br/>
Alle nicht gespeicherten Zgvdaten gehen verloren.<br/>
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.<br>';
}
//*** 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']). ','.