mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 18:02:18 +00:00
Datenverbund
- BPK Abfrage für mehrere Einträge wird verzögert wenn die maximale Anzahl an Requests pro Minute erreicht wurde - Manuelle Abfrage von BPKs zu Datenverbund Client hinzugefügt
This commit is contained in:
+13
-1
@@ -1117,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())
|
||||
{
|
||||
@@ -1211,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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user