mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Neue Spalte bpk zu Tabelle public.tbl_person hinzugefügt
Cronjob für automatische Abfrage von Matrikelnummern hinzugefügt Script für import der Matriklenummer Clearing Daten hinzugefügt
This commit is contained in:
@@ -28,12 +28,13 @@ require_once(dirname(__FILE__).'/student.class.php');
|
||||
require_once(dirname(__FILE__).'/studiensemester.class.php');
|
||||
require_once(dirname(__FILE__).'/adresse.class.php');
|
||||
require_once(dirname(__FILE__).'/webservicelog.class.php');
|
||||
require_once(dirname(__FILE__).'/prestudent.class.php');
|
||||
|
||||
class dvb extends basis_db
|
||||
{
|
||||
const DVB_URL_WEBSERVICE_OAUTH = 'https://stubei-q.portal.at/dvb/oauth/token';
|
||||
const DVB_URL_WEBSERVICE_SVNR = 'https://stubei-q.portal.at/rws/0.1/simpleStudentBySozialVersicherungsnummer.xml';
|
||||
const DVB_URL_WEBSERVICE_ERSATZKZ = 'https://stubei-q.portal.at/rws/0.1/simpleStudentByErsatzKennzeichen.xml';
|
||||
const DVB_URL_WEBSERVICE_SVNR = 'https://stubei-q.portal.at/rws/0.2/simpleStudentBySozialVersicherungsnummer.xml';
|
||||
const DVB_URL_WEBSERVICE_ERSATZKZ = 'https://stubei-q.portal.at/rws/0.2/simpleStudentByErsatzKennzeichen.xml';
|
||||
const DVB_URL_WEBSERVICE_RESERVIERUNG = 'https://stubei-q.portal.at/dvb/matrikelnummern/1.0/reservierung.xml';
|
||||
const DVB_URL_WEBSERVICE_MELDUNG = 'https://stubei-q.portal.at/dvb/matrikelnummern/1.0/meldung.xml';
|
||||
|
||||
@@ -175,7 +176,7 @@ class dvb extends basis_db
|
||||
$person_meldung->vorname = $person->vorname;
|
||||
$person_meldung->nachname = $person->nachname;
|
||||
$person_meldung->geburtsdatum = $person->gebdatum;
|
||||
$person_meldung->geschlecht = UPPER($person->geschlecht);
|
||||
$person_meldung->geschlecht = mb_strtoupper($person->geschlecht);
|
||||
$person_meldung->staat = $person->staatsbuergerschaft;
|
||||
if ($person->svnr != '')
|
||||
$person_meldung->svnr = $person->svnr;
|
||||
@@ -183,18 +184,18 @@ class dvb extends basis_db
|
||||
// PLZ der Meldeadresse laden
|
||||
$adresse = new adresse();
|
||||
if ($adresse->loadZustellAdresse($person->person_id))
|
||||
$person_meldung->plz = $row->plz;
|
||||
$person_meldung->plz = $adresse->plz;
|
||||
|
||||
// ZGV Datum laden falls vorhanden
|
||||
$prestudent = new prestudent();
|
||||
if ($prestudent->load($prestudent_id) && $prestudent->zgvdatum != '')
|
||||
{
|
||||
$datum_obj = new datum();
|
||||
$person->matura = $datum_obj->formatDatum($matura, 'Ymd');
|
||||
$person_meldung->matura = $datum_obj->formatDatum($prestudent->zgvdatum, 'Ymd');
|
||||
}
|
||||
|
||||
// Meldung der Vergabe der Matrikelnummer
|
||||
if ($this->setMatrikelnummer(DVB_BILDUNGSEINRICHTUNG_CODE, $person))
|
||||
if ($this->setMatrikelnummer(DVB_BILDUNGSEINRICHTUNG_CODE, $person_meldung))
|
||||
{
|
||||
// Matrikelnummer bei Person speichern
|
||||
$person->matr_nr = $matrikelnummer;
|
||||
@@ -434,7 +435,7 @@ class dvb extends basis_db
|
||||
$curl_info = curl_getinfo($curl);
|
||||
curl_close($curl);
|
||||
$this->debug('ResponseCode: '.$curl_info['http_code']);
|
||||
$this->debug('ResponseData: '.print_r($response, true));
|
||||
$this->debug('ResponseData: '.print_r($xml_response, true));
|
||||
|
||||
if ($curl_info['http_code'] == '200')
|
||||
{
|
||||
|
||||
@@ -63,6 +63,7 @@ class person extends basis_db
|
||||
public $zugangscode = null; // varchar(32)
|
||||
public $foto_sperre = false; // boolean
|
||||
public $matr_nr; //varchar(32)
|
||||
public $bpk; //varchar(255)
|
||||
|
||||
/**
|
||||
* Konstruktor - Uebergibt die Connection und laedt optional eine Person
|
||||
@@ -89,7 +90,8 @@ class person extends basis_db
|
||||
$qry = "SELECT person_id, sprache, anrede, titelpost, titelpre, nachname, vorname, vornamen,
|
||||
gebdatum, gebort, gebzeit, foto, anmerkung, homepage, svnr, ersatzkennzeichen,
|
||||
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon, ext_id,
|
||||
geschlecht, staatsbuergerschaft, geburtsnation, kurzbeschreibung, zugangscode, foto_sperre, matr_nr
|
||||
geschlecht, staatsbuergerschaft, geburtsnation, kurzbeschreibung, zugangscode, foto_sperre,
|
||||
matr_nr, bpk
|
||||
FROM public.tbl_person
|
||||
WHERE person_id = " . $this->db_add_param($personId, FHC_INTEGER);
|
||||
|
||||
@@ -132,6 +134,7 @@ class person extends basis_db
|
||||
$this->zugangscode = $row->zugangscode;
|
||||
$this->foto_sperre = $this->db_parse_bool($row->foto_sperre);
|
||||
$this->matr_nr = $row->matr_nr;
|
||||
$this->bpk = $row->bpk;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -278,6 +281,12 @@ class person extends basis_db
|
||||
$this->errormsg = 'SVNR ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mb_strlen($this->bpk) > 255)
|
||||
{
|
||||
$this->errormsg = 'BPK darf nicht laenger als 255 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->svnr != '')
|
||||
@@ -425,7 +434,8 @@ class person extends basis_db
|
||||
$qry = 'INSERT INTO public.tbl_person (sprache, anrede, titelpost, titelpre, nachname, vorname, vornamen,
|
||||
gebdatum, gebort, gebzeit, foto, anmerkung, homepage, svnr, ersatzkennzeichen,
|
||||
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon,
|
||||
geschlecht, geburtsnation, staatsbuergerschaft, kurzbeschreibung, zugangscode, foto_sperre, matr_nr)
|
||||
geschlecht, geburtsnation, staatsbuergerschaft, kurzbeschreibung, zugangscode,
|
||||
foto_sperre, matr_nr, bpk)
|
||||
VALUES('.$this->db_add_param($this->sprache).','.
|
||||
$this->db_add_param($this->anrede).','.
|
||||
$this->db_add_param($this->titelpost).','.
|
||||
@@ -454,7 +464,8 @@ class person extends basis_db
|
||||
$this->db_add_param($this->kurzbeschreibung).','.
|
||||
$this->db_add_param($this->zugangscode).','.
|
||||
$this->db_add_param($this->foto_sperre, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->matr_nr).');';
|
||||
$this->db_add_param($this->matr_nr).','.
|
||||
$this->db_add_param($this->bpk).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -492,7 +503,8 @@ class person extends basis_db
|
||||
' kurzbeschreibung='.$this->db_add_param($this->kurzbeschreibung).','.
|
||||
' foto_sperre='.$this->db_add_param($this->foto_sperre, FHC_BOOLEAN).','.
|
||||
' zugangscode='.$this->db_add_param($this->zugangscode).','.
|
||||
' matr_nr ='.$this->db_add_param($this->matr_nr).
|
||||
' matr_nr ='.$this->db_add_param($this->matr_nr).','.
|
||||
' bpk = '.$this->db_add_param($this->bpk).
|
||||
' WHERE person_id='.$this->person_id.';';
|
||||
}
|
||||
|
||||
@@ -592,6 +604,7 @@ class person extends basis_db
|
||||
$l->kurzbeschreibung = $row->kurzbeschreibung;
|
||||
$l->foto_sperre = $this->db_parse_bool($row->foto_sperre);
|
||||
$l->matr_nr = $row->matr_nr;
|
||||
$l->bpk = $row->bpk;
|
||||
$this->personen[] = $l;
|
||||
}
|
||||
}
|
||||
@@ -848,6 +861,7 @@ class person extends basis_db
|
||||
$this->zugangscode = $row->zugangscode;
|
||||
$this->foto_sperre = $this->db_parse_bool($row->foto_sperre);
|
||||
$this->matr_nr = $row->matr_nr;
|
||||
$this->bpk = $row->bpk;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -965,6 +979,7 @@ class person extends basis_db
|
||||
$this->updateaktivvon = $row->updateaktivvon;
|
||||
$this->updateaktivam = $row->updateaktivam;
|
||||
$this->aktivierungscode = $row->aktivierungscode;
|
||||
$this->bpk = $row->bpk;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
||||
+13
-1
@@ -2235,6 +2235,18 @@ if ($result = $db->db_query("SELECT * FROM system.tbl_webservicetyp WHERE webser
|
||||
}
|
||||
}
|
||||
|
||||
//Spalte bpk in public.tbl_person
|
||||
if(!$result = @$db->db_query("SELECT bpk FROM public.tbl_person LIMIT 1"))
|
||||
{
|
||||
$qry = "ALTER TABLE public.tbl_person ADD COLUMN bpk varchar(255);
|
||||
COMMENT ON COLUMN public.tbl_person.bpk IS 'Bereichsspezifisches Personenkennzeichen';";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_person: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>public.tbl_person: Spalte bpk hinzugefuegt';
|
||||
}
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -2428,7 +2440,7 @@ $tabellen=array(
|
||||
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
|
||||
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix","standort_id"),
|
||||
"public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"),
|
||||
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr","zugangscode_timestamp","udf_values"),
|
||||
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr","zugangscode_timestamp","udf_values","bpk"),
|
||||
"public.tbl_person_fotostatus" => array("person_fotostatus_id","person_id","fotostatus_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),
|
||||
"public.tbl_personfunktionstandort" => array("personfunktionstandort_id","funktion_kurzbz","person_id","standort_id","position","anrede"),
|
||||
"public.tbl_preincoming" => array("preincoming_id","person_id","mobilitaetsprogramm_code","zweck_code","firma_id","universitaet","aktiv","bachelorthesis","masterthesis","von","bis","uebernommen","insertamum","insertvon","updateamum","updatevon","anmerkung","zgv","zgv_ort","zgv_datum","zgv_name","zgvmaster","zgvmaster_datum","zgvmaster_ort","zgvmaster_name","program_name","bachelor","master","jahre","person_id_emergency","person_id_coordinator_dep","person_id_coordinator_int","code","deutschkurs1","deutschkurs2","research_area","deutschkurs3","ext_id"),
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
<?php
|
||||
/* Copyright (C) 2018 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
|
||||
*/
|
||||
/**
|
||||
* Clearing Import
|
||||
* Importiert Daten aus dem Matrikelnummer Clearing
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/person.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if(!$rechte->isBerechtigt('admin', null, 'suid'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Matrikelnummer Clearing Import</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Matrikelnummer Clearing Import</h1>
|
||||
Über diese Seite kann das Ergebnis des Matrikelnummer Clearings importiert werden.
|
||||
Wähle dazu das Antwort-XML des Matrikelnummer clearings aus, das importiert werden soll.
|
||||
Matrikelnummer und BPK wird aus dem XML importiert.<br><br>';
|
||||
echo '<form method="POST" enctype="multipart/form-data">
|
||||
<input type="file" name="datei">
|
||||
<input type="submit" value="Importieren" />';
|
||||
|
||||
if(isset($_FILES['datei']))
|
||||
{
|
||||
$db = new basis_db();
|
||||
$dom = new DOMDocument();
|
||||
$dom->load($_FILES['datei']['tmp_name']);
|
||||
$studierende = $dom->getElementsByTagName('studierende');
|
||||
if(isset($studierende[0]))
|
||||
{
|
||||
$domnodes_personen = $studierende[0]->getElementsByTagName('personen');
|
||||
foreach($domnodes_personen as $row_person)
|
||||
{
|
||||
$personid_node = $row_person->getElementsByTagName('personId');
|
||||
if(isset($personid_node[0]))
|
||||
{
|
||||
$node_bpk = $personid_node[0]->getElementsByTagName('bpk');
|
||||
$node_personenkennzeichen = $personid_node[0]->getElementsByTagName('personenkennzeichen');
|
||||
$node_matrikelnr = $personid_node[0]->getElementsByTagName('matrikelnummer');
|
||||
|
||||
$bpk = '';
|
||||
$personenkennzeichen = '';
|
||||
$matrikelnr = '';
|
||||
|
||||
if (isset($node_bpk[0]))
|
||||
$bpk = $node_bpk[0]->textContent;
|
||||
if (isset($node_personenkennzeichen[0]))
|
||||
$personenkennzeichen = $node_personenkennzeichen[0]->textContent;
|
||||
if (isset($node_matrikelnr[0]))
|
||||
$matrikelnr = $node_matrikelnr[0]->textContent;
|
||||
|
||||
if($personenkennzeichen != '')
|
||||
{
|
||||
$qry = "
|
||||
SELECT
|
||||
person_id
|
||||
FROM
|
||||
campus.vw_student
|
||||
WHERE
|
||||
matrikelnr=".$db->db_add_param($personenkennzeichen);
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($db->db_num_rows($result) == 1)
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$person_id = $row->person_id;
|
||||
$person = new person();
|
||||
if($person->load($person_id))
|
||||
{
|
||||
$person->matr_nr = $matrikelnr;
|
||||
|
||||
if($bpk != '' && $bpk != '****************************')
|
||||
$person->bpk = $bpk;
|
||||
|
||||
if($person->save())
|
||||
{
|
||||
echo '<br>Daten von '.$personenkennzeichen.' importiert';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br>Fehler beim Import von '.$personenkennzeichen.':'.$person->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br>Person mit PersonID '.$person_id.' konnte nicht geladen werden';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br>Failed to get Results';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Person mit Perskz: '.$personenkennzeichen.' konnte nicht eindeutig gefunden werden';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler beim Laden der Person mit Perskz: '.$personenkennzeichen.'';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br>Failed to get Personenkennzeichen';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br>personID Tag no present -> wrong xml?';
|
||||
}
|
||||
}
|
||||
echo '<br>Import abgeschlossen';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br>studierende Tag not present -> wrong xml?';
|
||||
}
|
||||
}
|
||||
|
||||
echo '</body>
|
||||
</html>';
|
||||
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/* Copyright (C) 2018 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
/**
|
||||
* Erfragt die Matrikelnummern von Personen beim Datenverbund
|
||||
* Wenn keine bestehende Matrikelnummer gefunden wird, wird eine neue Matrikelnummer angefordert
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../include/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/dvb.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/datum.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$limit = '';
|
||||
$debug = false;
|
||||
|
||||
// Wenn das Script nicht ueber Commandline gestartet wird, muss eine
|
||||
// Authentifizierung stattfinden
|
||||
if (php_sapi_name() != 'cli')
|
||||
{
|
||||
// Benutzerdefinierte Variablen laden
|
||||
$user = get_uid();
|
||||
loadVariables($user);
|
||||
|
||||
// Berechtigungen pruefen
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if (!$rechte->isBerechtigt('admin', null, 'suid'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if(isset($_GET['debug']))
|
||||
$debug = ($_GET['debug']=='true'?true:false);
|
||||
|
||||
if(isset($_GET['limit']) && is_numeric($_GET['limit']))
|
||||
$limit = $_GET['limit'];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Commandline Paramter parsen bei Aufruf ueber Cronjob
|
||||
// zb php matrikelnummer.php --limit 100 --debug true
|
||||
$longopt = array(
|
||||
"limit:",
|
||||
"debug:"
|
||||
);
|
||||
$commandlineparams = getopt('', $longopt);
|
||||
if (isset($commandlineparams['limit']) && is_numeric($commandlineparams['limit']))
|
||||
$limit = $commandlineparams['limit'];
|
||||
if (isset($commandlineparams['debug']))
|
||||
$debug = ($commandlineparams['debug']=='true'?true:false);
|
||||
}
|
||||
|
||||
$matrikelnummer_added = 0;
|
||||
$webservice = new dvb(DVB_USERNAME, DVB_PASSWORD, $debug);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
distinct person_id
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
JOIN public.tbl_student ON(tbl_student.student_uid=tbl_benutzer.uid)
|
||||
WHERE
|
||||
public.tbl_benutzer.aktiv = true
|
||||
AND tbl_person.matr_nr is null
|
||||
AND studiengang_kz<10000
|
||||
AND EXISTS(SELECT 1 FROM public.tbl_prestudent WHERE person_id=tbl_person.person_id AND bismelden=true)";
|
||||
|
||||
if ($limit != '')
|
||||
$qry.=" LIMIT ".$limit;
|
||||
|
||||
$db = new basis_db();
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($webservice->assignMatrikelnummer($row->person_id))
|
||||
echo "\n<br>".$row->person_id.' OK';
|
||||
else
|
||||
echo "\n<br>".$row->person_id.' Failed:'.$webservice->errormsg;
|
||||
}
|
||||
}
|
||||
if($debug)
|
||||
echo $webservice->debug_output;
|
||||
Reference in New Issue
Block a user