mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-29 18:09:28 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
<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>
|
||||
@@ -10,6 +16,12 @@
|
||||
<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>
|
||||
|
||||
@@ -47,7 +47,8 @@ $widthColumn = $msgExists === true ? 8 : 12;
|
||||
autoresize_min_height: 140,
|
||||
autoresize_max_height: 495,
|
||||
//callback to avoid conflict with ajax (for getting body of first message)
|
||||
init_instance_callback: "initMsgBody"
|
||||
init_instance_callback: "initMsgBody",
|
||||
responsive: true
|
||||
});
|
||||
|
||||
function initMsgBody()
|
||||
|
||||
+76
-12
@@ -122,6 +122,30 @@ class dvb extends basis_db
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
|
||||
// Wenn nicht gefunden, wird zusaetzlich noch eine Namenssuche gestartet
|
||||
if ($matrikelnummer == false || $matrikelnummer == '')
|
||||
{
|
||||
$this->debug('Keine Matrikelnummer gefunden -> Suche per Nachname');
|
||||
$nachnameresult = $this->existsByNachname($person_id);
|
||||
if (ErrorHandler::isSuccess($nachnameresult))
|
||||
{
|
||||
if (ErrorHandler::hasData($nachnameresult)
|
||||
&& isset($nachnameresult->retval->matrikelnummer)
|
||||
&& $nachnameresult->retval->matrikelnummer != '')
|
||||
{
|
||||
$this->debug('Nachnamensuche erfolgreich');
|
||||
$matrikelnummer = $nachnameresult->retval->matrikelnummer;
|
||||
if(isset($nachnameresult->retval->bpk))
|
||||
$bpk = $nachnameresult->retval->bpk;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Namenssuche ergab nicht eindeutige Treffer -> manuelle Pruefung ist erforderlich';
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($matrikelnummer !== false && $matrikelnummer != '')
|
||||
{
|
||||
// Matrikelnummer wurde gefunden
|
||||
@@ -142,12 +166,6 @@ class dvb extends basis_db
|
||||
}
|
||||
else
|
||||
{
|
||||
if($this->existsByName($person_id))
|
||||
{
|
||||
$this->errormsg = 'Namenssuche ergab Treffer -> manuelle Pruefung erforderlich';
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
|
||||
if($softrun == true)
|
||||
{
|
||||
$this->errormsg = 'Nicht gefunden Softrun enabled keine Meldung';
|
||||
@@ -1099,7 +1117,7 @@ class dvb extends basis_db
|
||||
* @param $strasse Strasse der Person (optional).
|
||||
* @return BPK or false on error.
|
||||
*/
|
||||
private function pruefeBPK($geburtsdatum, $vorname, $nachname, $geschlecht, $plz = null, $strasse = null)
|
||||
public function pruefeBPK($geburtsdatum, $vorname, $nachname, $geschlecht, $plz = null, $strasse = null)
|
||||
{
|
||||
if ($this->tokenIsExpired())
|
||||
{
|
||||
@@ -1193,6 +1211,18 @@ class dvb extends basis_db
|
||||
$dom = new DOMDocument();
|
||||
$dom->loadXML($response);
|
||||
$namespace = 'http://www.brz.gv.at/datenverbund-unis';
|
||||
$domnodes_fehlernummer = $dom->getElementsByTagNameNS($namespace, 'fehlernummer');
|
||||
if($domnodes_fehlernummer->length > 0)
|
||||
{
|
||||
$fehlercode = $domnodes_fehlernummer->item(0)->textContent;
|
||||
if($fehlercode == 'ZD00001')
|
||||
{
|
||||
// Zu viele Requests pro Minute
|
||||
$this->debug('Zu viele Requests pro Minute -> Pause');
|
||||
sleep(30);
|
||||
}
|
||||
}
|
||||
|
||||
$domnodes_bpk = $dom->getElementsByTagNameNS($namespace, 'personenkennzeichen');
|
||||
if($domnodes_bpk->length > 0)
|
||||
{
|
||||
@@ -1220,7 +1250,13 @@ class dvb extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
public function existsByName($person_id)
|
||||
/**
|
||||
* Prueft ob eine Person aufgrund Nachname und Geburtsdatum gefunden wird
|
||||
* @param $person_id PersonID der gesuchten Person.
|
||||
* @return Success wenn gefunden, error wenn nicht gefunden. Hat die Person 100% Uebereinstimmung der Daten
|
||||
* dann wird auch MatrNr und BPK als Retrun geliefert.
|
||||
*/
|
||||
public function existsByNachname($person_id)
|
||||
{
|
||||
$person = new person();
|
||||
if($person->load($person_id))
|
||||
@@ -1236,18 +1272,46 @@ class dvb extends basis_db
|
||||
{
|
||||
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)
|
||||
&& mb_substr(mb_strtolower($row->nachname),0,10) == mb_substr(mb_strtolower($person->nachname),0,10))
|
||||
{
|
||||
return true;
|
||||
// Bei 100% eindeutiger Uebereinstimmung werden die Daten zurueckgeliefert
|
||||
if (mb_strtolower($row->geschlecht) == mb_strtolower($person->geschlecht)
|
||||
&& $row->staatsangehoerigkeit == $person->staatsbuergerschaft
|
||||
&& mb_strtolower($row->nachname) == mb_strtolower($person->nachname)
|
||||
&& (
|
||||
mb_strtolower($row->vorname) == mb_strtolower($person->vorname)
|
||||
||
|
||||
mb_strtolower($row->vorname) == mb_strtolower($person->vorname.' '.$person->vornamen)
|
||||
)
|
||||
&& $row->matrikelnummer != ''
|
||||
&& count($result->retval->data) == 1
|
||||
)
|
||||
{
|
||||
$this->debug('Uebereinstimmung gefunden');
|
||||
$retval = new stdClass();
|
||||
if(isset($row->bpk) && $row->bpk!='')
|
||||
$retval->bpk = $row->bpk;
|
||||
$retval->matrikelnummer = $row->matrikelnummer;
|
||||
return ErrorHandler::success($retval);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->debug('keine 100% Eindeutigkeit gegeben:'.print_r($result->retval->data,true));
|
||||
// Uebereinstimmung gefunden aber nicht 100% eindeutig
|
||||
return ErrorHandler::success();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
$this->debug('Keine Uebereinstimmung per Namenssuche');
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1338,7 +1402,7 @@ class dvb extends basis_db
|
||||
foreach ($domnodes_matrikelnummer as $row)
|
||||
{
|
||||
// MatrikelNr Found
|
||||
$data->matrikelnr = $row->textContent;
|
||||
$data->matrikelnummer = $row->textContent;
|
||||
break;
|
||||
}
|
||||
$domnodes_bpk = $row_student->getElementsByTagNameNS($namespace, 'personenkennzeichen');
|
||||
|
||||
@@ -55,6 +55,7 @@ $matura = filter_input(INPUT_POST, 'matura');
|
||||
$svnr = filter_input(INPUT_POST, 'svnr');
|
||||
$ersatzkennzeichen = filter_input(INPUT_POST, 'ersatzkennzeichen');
|
||||
$person_id = filter_input(INPUT_POST, 'person_id');
|
||||
$strasse = filter_input(INPUT_POST, 'strasse');
|
||||
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
@@ -78,6 +79,7 @@ $person_id = filter_input(INPUT_POST, 'person_id');
|
||||
<li><a href="datenverbund_client.php?action=setMatrikelnummer">Matrikelnummer Vergabe melden</a></li>
|
||||
<li><a href="datenverbund_client.php?action=assignMatrikelnummer">Gesamtprozess (Abfrage, ggf Vergabemeldung, Speichern bei Person)</a></li>
|
||||
<li><a href="datenverbund_client.php?action=getBPK">BPK ermitteln</a></li>
|
||||
<li><a href="datenverbund_client.php?action=pruefeBPK">BPK ermitteln manuell</a></li>
|
||||
</ul>
|
||||
<?php
|
||||
echo "<br>Portal: ".DVB_PORTAL;
|
||||
@@ -152,6 +154,16 @@ $person_id = filter_input(INPUT_POST, 'person_id');
|
||||
printrow('person_id', 'PersonID', $person_id);
|
||||
break;
|
||||
|
||||
case 'pruefeBPK':
|
||||
printrow('nachname', 'Nachname', $nachname, '', 255);
|
||||
printrow('vorname', 'Vorname', $vorname, '', 30);
|
||||
printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, 'Format: YYYYMMDD', 10);
|
||||
printrow('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1);
|
||||
printrow('postleitzahl', 'Postleitzahl', $postleitzahl, 'optional', 10);
|
||||
printrow('strasse', 'Strasse', $strasse, 'optional', 255);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
echo "Unknown action";
|
||||
break;
|
||||
@@ -296,6 +308,15 @@ if (isset($_REQUEST['submit']))
|
||||
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
|
||||
break;
|
||||
|
||||
case 'pruefeBPK':
|
||||
$data = $dvb->pruefeBPK($geburtsdatum, $vorname, $nachname, $geschlecht, $postleitzahl, $strasse);
|
||||
if(ErrorHandler::isSuccess($data))
|
||||
{
|
||||
echo '<br><b>OK BPK:</b> '.$data->retval->bpk;
|
||||
}
|
||||
else
|
||||
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
|
||||
break;
|
||||
default:
|
||||
echo "Unknown action";
|
||||
break;
|
||||
|
||||
@@ -609,7 +609,7 @@ $text .= "<br><br>Studierender hat keine Matrikelnummer<br><br>";
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
distinct on (person_id)
|
||||
distinct on (tbl_person.person_id)
|
||||
tbl_student.student_uid,
|
||||
tbl_prestudent.prestudent_id,
|
||||
tbl_prestudent.studiengang_kz as studiengang
|
||||
@@ -618,7 +618,7 @@ FROM
|
||||
JOIN public.tbl_prestudentstatus USING(prestudent_id)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_student USING(prestudent_id)
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
JOIN public.tbl_benutzer ON(tbl_student.student_uid=tbl_benutzer.uid)
|
||||
WHERE
|
||||
status_kurzbz in('Student', 'Diplomand', 'Absolvent', 'Abbrecher')
|
||||
AND tbl_prestudent.bismelden
|
||||
|
||||
@@ -1845,6 +1845,46 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'person',
|
||||
'phrase' => 'titelpre',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'TitelPre',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'TitlePre',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'person',
|
||||
'phrase' => 'titelpost',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'TitelPost',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'TitlePost',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
//**************** CORE/lehre
|
||||
array(
|
||||
|
||||
@@ -241,6 +241,7 @@ $qryall='
|
||||
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
|
||||
WHERE
|
||||
aktiv=false
|
||||
and bismelden=true
|
||||
AND (ende>now() OR ende IS NULL)
|
||||
GROUP BY uid, nachname, vorname
|
||||
ORDER by nachname, vorname;';
|
||||
|
||||
@@ -101,7 +101,7 @@ wird das Ende des Semesters letzten Lehrauftrages herangezogen.
|
||||
$qry = "SELECT ma.* FROM
|
||||
(
|
||||
SELECT
|
||||
vorname, nachname, uid, personalnummer, insertamum,anmerkung,
|
||||
vorname, nachname, uid, personalnummer, insertamum, anmerkung, aktiv,
|
||||
(
|
||||
SELECT studiensemester_kurzbz FROM (
|
||||
SELECT
|
||||
@@ -198,6 +198,7 @@ if ($result = $db->db_query($qry))
|
||||
<th>Nachname</th>
|
||||
<th>Vorname</th>
|
||||
<th>UID</th>
|
||||
<th>Aktiv</th>
|
||||
<th>Personalnummer</th>
|
||||
<th>Anlagedatum</th>
|
||||
<th>Letzer Lehrauftrag</th>
|
||||
@@ -216,6 +217,7 @@ if ($result = $db->db_query($qry))
|
||||
<td>'.$db->convert_html_chars($row->nachname).'</td>
|
||||
<td>'.$db->convert_html_chars($row->vorname).'</td>
|
||||
<td>'.$db->convert_html_chars($row->uid).'</td>
|
||||
<td>'.($db->db_parse_bool($row->aktiv)?'Ja':'<span style="color:red; font-weight:bold">Nein</span>').'</td>
|
||||
<td>'.$db->convert_html_chars($row->personalnummer).'</td>
|
||||
<td>'.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum,'d.m.Y')).'</td>
|
||||
<td>'.$db->convert_html_chars($row->letzter_lehrauftrag).'</td>
|
||||
|
||||
@@ -85,6 +85,7 @@ $qry = "
|
||||
WHERE
|
||||
public.tbl_benutzer.aktiv = true
|
||||
AND tbl_person.matr_nr is not null
|
||||
AND tbl_person.bpk is null
|
||||
AND studiengang_kz<10000
|
||||
AND EXISTS(SELECT 1 FROM public.tbl_prestudent WHERE person_id=tbl_person.person_id AND bismelden=true)
|
||||
AND gebdatum is not null";
|
||||
@@ -93,10 +94,17 @@ if ($limit != '')
|
||||
$qry .= " LIMIT ".$limit;
|
||||
|
||||
$db = new basis_db();
|
||||
$cnt = 0;
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$cnt++;
|
||||
// Nach jeweils 25 Requests eine Pause einlegen damit die
|
||||
// Anzahl Requests pro Minute nicht überschritten wird
|
||||
if($cnt%25 == 0)
|
||||
sleep(30);
|
||||
|
||||
echo $nl."Pruefe $row->person_id $row->vorname $row->nachname";
|
||||
$data = $webservice->getBPK($row->person_id);
|
||||
if (ErrorHandler::isSuccess($data))
|
||||
|
||||
@@ -152,7 +152,8 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
|
||||
}
|
||||
|
||||
// Wenn beide Personen eine Matr_nr haben, abbrechen
|
||||
if (($personToDelete_obj->matr_nr != '' && $personToKeep_obj->matr_nr != ''))
|
||||
if ($personToDelete_obj->matr_nr != '' && $personToKeep_obj->matr_nr != ''
|
||||
&& $personToDelete_obj->matr_nr != $personToKeep_obj->matr_nr)
|
||||
{
|
||||
$msg_error[] = 'Beide Personen haben eine Matrikelnummer und können nicht zusammengelegt werden.<br>
|
||||
Bitte wenden Sie sich an einen Administrator.';
|
||||
|
||||
Reference in New Issue
Block a user