Merge branch 'master' into feature-19171/Wahlname

This commit is contained in:
Andreas Österreicher
2022-05-27 13:30:19 +02:00
17 changed files with 260 additions and 31 deletions
+4 -4
View File
@@ -18,10 +18,10 @@ class Variables extends Auth_Controller
{
parent::__construct(
array(
'setVar' => 'basis/variable:rw',
'getVar' => 'basis/variable:rw',
'changeStudiensemesterVar' => 'basis/variable:rw',
'changeStudengangsTypVar' => 'basis/variable:rw'
'setVar' => array('basis/variable:rw','basis/variable_persoenlich:rw'),
'getVar' => array('basis/variable:rw','basis/variable_persoenlich:rw'),
'changeStudiensemesterVar' => array('basis/variable:rw','basis/variable_persoenlich:rw'),
'changeStudengangsTypVar' => array('basis/variable:rw','basis/variable_persoenlich:rw')
)
);
+7
View File
@@ -37,6 +37,7 @@ require_once('../../include/gebiet.class.php');
require_once('../../include/sprache.class.php');
require_once '../../include/phrasen.class.php';
require_once '../../include/reihungstest.class.php';
require_once '../../include/pruefling.class.php';
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -157,6 +158,12 @@ echo '
if(!isset($_SESSION['pruefling_id']))
die($p->t('testtool/bitteZuerstAnmelden'));
$pruefling = new pruefling();
$pruefling->load($_SESSION['pruefling_id']);
if ($pruefling->gesperrt === 't')
die("<script>document.location.href='prueflinggesperrt.php';</script>");
$gebiet = new gebiet($gebiet_id);
if($gebiet->level_start!='')
+39
View File
@@ -0,0 +1,39 @@
<?php
require_once('../../config/cis.config.inc.php');
require_once('../../include/basis_db.class.php');
require_once('../../include/sprache.class.php');
require_once '../../include/phrasen.class.php';
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
// Start session
session_start();
// If language is changed by language select menu, reset language variables
if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
{
$_SESSION['sprache_user'] = $_GET['sprache_user'];
$sprache_user = $_GET['sprache_user'];
}
// Set language variable
$sprache_user = (isset($_SESSION['sprache_user']) && !empty($_SESSION['sprache_user'])) ? $_SESSION['sprache_user'] : DEFAULT_LANGUAGE;
$p = new phrasen($sprache_user);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
</head>
<body>
<br><br><br><br><br>
<center><h2><?php echo $p->t('testtool/prueflingGesperrt');?></h2>
</center>
</body>
</html>
+1 -1
View File
@@ -154,7 +154,7 @@ class datum
public function checkDatum($datum)
{
//Format dd.mm.yyyy
if(mb_ereg("([0-9]{2}).([0-9]{2}).([0-9]{4})$", $datum))
if(mb_ereg("([0-9]{2})[.]([0-9]{2})[.]([0-9]{4})$", $datum))
{
$year = substr($datum, 6, 4);
+1 -2
View File
@@ -969,10 +969,9 @@ class konto extends basis_db
{
$qry = "SELECT betrag
FROM public.tbl_konto
JOIN public.tbl_benutzer benutzer USING(person_id)
WHERE person_id IN (".$this->implode4SQL(array_filter($person_ids)).")
AND studiensemester_kurzbz = ".$this->db_add_param($stsem)."
AND buchungstyp_kurzbz = ".$this->db_add_param($typ)."
AND buchungstyp_kurzbz = ".$this->db_add_param($typ)."
GROUP BY buchungsnr";
if ($result = $this->db_query($qry))
+32
View File
@@ -1673,5 +1673,37 @@ class mitarbeiter extends benutzer
return false;
}
/**
* Generiert nächste freie Personalnummer anhand der sequence tbl_mitarbeiter_personalnummer_seq
* @return string $personalnummer
*/
public function getNextPersonalnummer()
{
$qry = "SELECT nextval('tbl_mitarbeiter_personalnummer_seq') ";
if ($result = $this->db_query($qry))
{
while ($row = $this->db_fetch_object())
{
if ($row->nextval != '')
{
$personalnummer = $row->nextval;
return $personalnummer;
}
else
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage!';
$return = false;
}
}
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
}
?>
+4
View File
@@ -31,6 +31,7 @@ class pruefling extends basis_db
public $registriert;
public $prestudent_id;
public $semester;
public $gesperrt;
// ErgebnisArray
public $result=array();
@@ -67,6 +68,7 @@ class pruefling extends basis_db
$this->registriert = $row->registriert;
$this->prestudent_id = $row->prestudent_id;
$this->semester = $row->semester;
$this->gesperrt = $row->gesperrt;
return true;
}
else
@@ -184,6 +186,7 @@ class pruefling extends basis_db
$this->registriert = $row->registriert;
$this->prestudent_id = $row->prestudent_id;
$this->semester = $row->semester;
$this->gesperrt = $row->gesperrt;
return true;
}
else
@@ -221,6 +224,7 @@ class pruefling extends basis_db
$obj->registriert = $row->registriert;
$obj->prestudent_id = $row->prestudent_id;
$obj->semester = $row->semester;
$obj->gesperrt = $row->gesperrt;
$this->result[] = $obj;
}
+2 -1
View File
@@ -73,7 +73,7 @@ if(!$generateuid_addon_found)
// ****
// * Gerneriert die Mitarbeiter UID
// ****
function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true)
function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true, $personalnummer=null)
{
$bn = new benutzer();
$reserviert = array();
@@ -110,4 +110,5 @@ if(!$generateuid_addon_found)
}
}
}
?>
+2
View File
@@ -78,4 +78,6 @@ $this->phrasen['testtool/einfuehrungsText']='
<a href="../public/testtool_test/testseite.php" target="_blank" class="btn btn-default">Display testpage</a>
</div>
</div>';
$this->phrasen['testtool/prueflingGesperrt']='Bitte kontaktieren Sie die Reihungstestaufsicht!';
?>
+1
View File
@@ -50,4 +50,5 @@ $this->phrasen['testtool/startDrueckenUmZuBeginnen']='To start this section, ple
$this->phrasen['testtool/keinPrueflingseintragVorhanden']='No candidate entry available.';
$this->phrasen['testtool/fuerFolgendeStgAngemeldet']='You have applied for the following degree programs:';
$this->phrasen['testtool/invalideGebiete']='One or more question areas incorrect!<br>Please inform an assisting person.';
$this->phrasen['testtool/prueflingGesperrt']='Please contact the placement test supervisor!';
?>
+1
View File
@@ -139,6 +139,7 @@ $berechtigungen = array(
array('basis/tempus','Tempus zugriff'),
array('basis/testtool','Administrationseite, Gebiete löschen/zurücksetzen'),
array('basis/variable','Variablenverwaltung'),
array('basis/variable_persoenlich','Verwaltung eigener Variablen'),
array('basis/vilesci','Grundrecht, um in VileSci irgendwelche Menüpunkte zu sehen'),
array('basis/servicezeitaufzeichnung','Erlaubt Erfassung von servicebezogenen (Service, OE, Kunde) Daten in der Zeitaufzeichnung'),
array('buchung/typen','Verwaltung von Buchungstypen'),
+14 -1
View File
@@ -2990,6 +2990,19 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
}
}
// Spalte gesperrt in testtool.tbl_pruefling
if(!$result = @$db->db_query("SELECT gesperrt FROM testtool.tbl_pruefling LIMIT 1;"))
{
$qry = "ALTER TABLE testtool.tbl_pruefling ADD COLUMN gesperrt boolean NOT NULL DEFAULT false;";
if(!$db->db_query($qry))
echo '<strong>testtool.tbl_pruefling: '.$db->db_last_error().'</strong><br>';
else
echo '<br>testtool.tbl_pruefling: Spalte gesperrt hinzugefuegt!<br>';
}
// Kategorisierung von Services
if(!$result = @$db->db_query("SELECT * FROM public.tbl_servicekategorie LIMIT 1"))
{
@@ -6407,7 +6420,7 @@ $tabellen=array(
"testtool.tbl_gebiet" => array("gebiet_id","kurzbz","bezeichnung","beschreibung","zeit","multipleresponse","kategorien","maxfragen","zufallfrage","zufallvorschlag","levelgleichverteilung","maxpunkte","insertamum", "insertvon", "updateamum", "updatevon", "level_start","level_sprung_auf","level_sprung_ab","antwortenprozeile","bezeichnung_mehrsprachig", "offsetpunkte"),
"testtool.tbl_kategorie" => array("kategorie_kurzbz","gebiet_id"),
"testtool.tbl_kriterien" => array("gebiet_id","kategorie_kurzbz","punkte","typ"),
"testtool.tbl_pruefling" => array("pruefling_id","prestudent_id","studiengang_kz","idnachweis","registriert","semester"),
"testtool.tbl_pruefling" => array("pruefling_id","prestudent_id","studiengang_kz","idnachweis","registriert","semester", "gesperrt"),
"testtool.tbl_vorschlag" => array("vorschlag_id","frage_id","nummer","punkte","insertamum","insertvon","updateamum","updatevon","aktiv"),
"testtool.tbl_pruefling_frage" => array("prueflingfrage_id","pruefling_id","frage_id","nummer","begintime","endtime"),
"testtool.tbl_frage_sprache" => array("frage_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
+5 -7
View File
@@ -1022,16 +1022,14 @@ $filters = array(
{
"name": "Projektübersicht",
"columns": [
{"name": "ProjectWorkID"},
{"name": "Studiengang"},
{"name": "StudentNachname"},
{"name": "Abgabedatum"},
{"name": "Note"},
{"name": "ErstNachname"},
{"name": "ErstAbgeschickt"},
{"name": "ZweitNachname"},
{"name": "ZweitAbgeschickt"},
{"name": "StudentNachname"},
{"name": "Note"},
{"name": "Abgabedatum"},
{"name": "Studiengang"},
{"name": "Kommissionsmitglieder"}
{"name": "ZweitAbgeschickt"}
],
"filters": []
}
+16 -6
View File
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Manuela Thamer <manuela.thamer@technikum-wien.at>.
*/
require_once('../../../config/vilesci.config.inc.php');
@@ -624,8 +625,16 @@ if(isset($_POST['save']))
$nachname_clean = mb_strtolower(convertProblemChars($nachname));
$vorname_clean = mb_strtolower(convertProblemChars($vorname));
$uid='';
$mitarbeiter = new mitarbeiter();
$uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt);
if ($_POST['personalnummer'])
{
$personalnummer = $_POST['personalnummer'];
}
else
$personalnummer = $mitarbeiter->getNextPersonalnummer();
$uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt, $personalnummer);
if ($wunschUid != '')
{
@@ -876,10 +885,10 @@ if(isset($_POST['save']))
}
}
if(!$error)
if (!$error)
{
$db->db_query('COMMIT');
die("<b>MitarbeiterIn $vorname $vornamen $nachname wurde erfolgreich angelegt</b><br><br><a href='mitarbeiterimport.php'>Neue Person anlegen</a><br>");
die("<b>MitarbeiterIn $vorname $vornamen $nachname ($uid) wurde erfolgreich angelegt</b><br><br><a href='mitarbeiterimport.php'>Neue Person anlegen</a><br>");
}
else
{
@@ -929,7 +938,8 @@ echo '<tr><td>Wunsch-UID</td><td><input type="text" name="wunschUid" id="wunschU
echo '<span style="padding: 0 3px" id="checkUID"></span>';
if ($showagain)
echo '<br>';
echo '<button type="button" title="Prüft, ob die UID schon vorhanden ist. Keine Sonderzeichen, Umlaute oder Leerzeichen in der UID" href="#" onclick="checkWunschUid()"> Check UID </button> (optional, max. 32)
echo '<button type="button" title="Prüft, ob die UID schon vorhanden ist. Keine Sonderzeichen, Umlaute oder Leerzeichen in der UID"
href="#" onclick="checkWunschUid()"> Check UID </button> (optional, max. 32)
</td></tr>';
echo '<tr><td>Anrede</td><td><input type="text" id="anrede" name="anrede" maxlength="16" size="30" value="'.$anrede.'" onblur="AnredeChange()"/></td></tr>';
echo '<tr><td>Titel(Pre)</td><td><input type="text" id="titel" name="titel" maxlength="64" size="30" value="'.$titel.'" /></td></tr>';
+106 -1
View File
@@ -440,6 +440,46 @@ if ($deleteAllResults)
}
}
$rtprueflingEntSperren = filter_input(INPUT_POST, 'rtprueflingEntSperren', FILTER_VALIDATE_BOOLEAN);
if ($rtprueflingEntSperren)
{
if (!$rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'su'))
{
echo json_encode(array(
'status' => 'fehler',
'msg' => $rechte->errormsg
));
exit();
}
if (isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])
&& isset($_POST['art']))
{
$qry = "UPDATE testtool.tbl_pruefling SET gesperrt =" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
WHERE prestudent_id IN
(SELECT prestudent_id FROM public.tbl_prestudent ps
JOIN public.tbl_person tp ON tp.person_id = ps.person_id
WHERE tp.person_id = (SELECT person_id FROM public.tbl_prestudent sps WHERE sps.prestudent_id = " . $db->db_add_param($_POST['prestudent_id']) . "));";
if ($result = $db->db_query($qry))
{
$msg = $_POST['art'] === 'false' ? 'Pruefling wurde gesperrt' : 'Pruefling wurde freigeschaltet';
echo json_encode(array(
'status' => 'ok',
'msg' => $msg));
exit();
}
else
{
echo json_encode(array(
'status' => 'fehler',
'msg' => 'Fehler beim speichern der Daten'
));
exit();
}
}
}
// Ajax-Request um einen Reihungstest freizuschalten
$rtFreischalten = filter_input(INPUT_POST, 'rtFreischalten', FILTER_VALIDATE_BOOLEAN);
if ($rtFreischalten)
@@ -1408,6 +1448,7 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
tbl_gebiet.bezeichnung AS gebiet,
tbl_pruefling.idnachweis,
tbl_pruefling.registriert,
tbl_pruefling.gesperrt,
get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) AS letzter_status
FROM PUBLIC.tbl_rt_person
JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id)
@@ -1530,6 +1571,7 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
$ergebnis[$row->prestudent_id]->geschlecht = $row->geschlecht;
$ergebnis[$row->prestudent_id]->idnachweis = $row->idnachweis;
$ergebnis[$row->prestudent_id]->registriert = $row->registriert;
$ergebnis[$row->prestudent_id]->gesperrt = $row->gesperrt;
$ergebnis[$row->prestudent_id]->stg_kurzbz = $row->stg_kurzbz;
$ergebnis[$row->prestudent_id]->stg_bez = $row->stg_bez;
$ergebnis[$row->prestudent_id]->ausbildungssemester = $row->ausbildungssemester;
@@ -2291,7 +2333,57 @@ else
});
}
}
function prueflingEntSperren(prestudent_id, name, art)
{
if (art === true)
var text = "sperren";
else if (art === false)
var text = "entsperren";
if (confirm("Wollen Sie den Studenten "+ name + " wirklich " + text + "?"))
{
data = {
prestudent_id: prestudent_id,
art: art,
rtprueflingEntSperren: true
};
$.ajax({
url: "auswertung_fhtw.php",
data: data,
type: "POST",
dataType: "json",
success: function(data)
{
if(data.status !== "ok")
{
$("#msgbox").attr("class","alert alert-danger");
$("#msgbox").show();
$("#msgbox").html(data["msg"]);
}
else
{
if (art === true)
{
$("#prueflingentsperren_" + prestudent_id).removeClass("hidden");
$("#prueflingsperren_" + prestudent_id).addClass("hidden");
}
else if (art === false)
{
$("#prueflingsperren_" + prestudent_id).removeClass("hidden");
$("#prueflingentsperren_" + prestudent_id).addClass("hidden");
}
}
},
error: function(data)
{
$("#msgbox").attr("class","alert alert-danger");
$("#msgbox").show();
$("#msgbox").html(data["msg"]);
}
});
}
}
function deleteAllResults(prestudent_id, name)
{
if (confirm("Wollen Sie ALLE Ergebnisse der Person "+name+" wirklich löschen"))
@@ -2955,6 +3047,7 @@ else
</th>
<th rowspan="2">PreId</th>
<th rowspan="2"><span class="glyphicon glyphicon-envelope"></span></th>
<th rowspan="2">Ent-/Sperren</th>
<th rowspan="2">Nachname</th>
<th rowspan="2">Vornamen</th>
<th rowspan="2">GebDatum</th>
@@ -3011,6 +3104,18 @@ else
<!--<td>$erg->prestudent_id <a href=".APP_ROOT."cis/testtool/admin/auswertung_detail_prestudent.php?prestudent_id=$erg->prestudent_id target='blank'>Details</a></td>-->
<td class='".$inaktiv."'>$erg->prestudent_id</td>
<td class='clm_email ".$inaktiv."'><a href='mailto:$erg->email'><span class='glyphicon glyphicon-envelope'></span></a></td>
";
echo "<td class='textcentered ".$inaktiv ."'>
<a href='#' id='prueflingsperren_".$erg->prestudent_id ."' class='" . ($erg->gesperrt === 't' ? "hidden" : "") ."' onclick='prueflingEntSperren(" . $erg->prestudent_id . ", \"" . $erg->vorname . " " . $erg->nachname ."\"" .", true)'>
<span class='glyphicon glyphicon-remove'></span>
</a>
<a href='#' id='prueflingentsperren_".$erg->prestudent_id ."' class='" . ($erg->gesperrt !== 't' ? "hidden" : "") ."' onclick='prueflingEntSperren(" . $erg->prestudent_id . ", \"" . $erg->vorname . " " . $erg->nachname ."\"" .", false);'>
<span class='glyphicon glyphicon-ok'></span>
</a>
</td>";
echo "
<td class='".$inaktiv."'>".$erg->nachname." ".($erg->qualifikationskurs == true ? "<span title='Qualifikationskurs' class='redcolor'>(Q)</span>" : "")."</td>
<td class='".$inaktiv."'>$erg->vorname</td>
<td class='".$inaktiv."'>" . $datum_obj->formatDatum($erg->gebdatum, 'd.m.Y') . "</td>
+8 -8
View File
@@ -44,11 +44,11 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<script type="text/javascript">
@@ -115,15 +115,15 @@ if($action=='new' || $action=='update')
<table>
<tr>
<td>Bezeichnung</td>
<td><input type="text" name="bezeichnung" value="',$basis->convert_html_chars($infoscreen->bezeichnung),'" /></td>
<td><input type="text" name="bezeichnung" size="60" maxlength="64" value="',$basis->convert_html_chars($infoscreen->bezeichnung),'" /></td>
</tr>
<tr>
<td>Beschreibung</td>
<td><input type="text" name="beschreibung" value="',$basis->convert_html_chars($infoscreen->beschreibung),'" /></td>
<td><input type="text" name="beschreibung" size="60" value="',$basis->convert_html_chars($infoscreen->beschreibung),'" /></td>
</tr>
<tr>
<td>IP Adresse</td>
<td><input type="text" name="ipadresse" value="',$basis->convert_html_chars($infoscreen->ipadresse),'" /></td>
<td><input type="text" name="ipadresse" size="50" maxlength="50" value="',$basis->convert_html_chars($infoscreen->ipadresse),'" /></td>
</tr>
<tr>
<td></td>
+17
View File
@@ -426,6 +426,20 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
else
$bpk = $personToKeep_obj->bpk;
// Beide Anmerkungen behalten, wenn vorhanden und Person_id der gelöschten Person in die Anmerkung schreiben
$anmerkung = '';
if ($personToDelete_obj->anmerkungen == '' && $personToKeep_obj->anmerkungen != '')
$anmerkung = $personToKeep_obj->anmerkungen;
if ($personToKeep_obj->anmerkungen == '' && $personToDelete_obj->anmerkungen != '')
$anmerkung = $personToDelete_obj->anmerkungen;
if ($personToKeep_obj->anmerkungen != '' && $personToDelete_obj->anmerkungen != '')
$anmerkung = $personToKeep_obj->anmerkungen."
Alte Anmerkungen: ".$personToDelete_obj->anmerkungen;
$anmerkung .= "
Zusammengelegt mit Person-ID ".$personToDelete_obj->person_id." am ".date('d.m.Y H:i:s');
// Letztbenutzten Zugangscode abfragen und übernehmen
$zugangscode = '';
$log = new personlog();
@@ -493,6 +507,9 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
// BPK erst setzen, wenn nur mehr eine Person vorhanden ist
$sql_query_upd1 .= "UPDATE public.tbl_person SET bpk=" . $db->db_add_param($bpk, FHC_STRING) . " WHERE person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . ";";
// Anmerkung erst setzen, wenn nur mehr eine Person vorhanden ist
$sql_query_upd1 .= "UPDATE public.tbl_person SET anmerkung=" . $db->db_add_param($anmerkung, FHC_STRING) . " WHERE person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . ";";
if ($personUDF)
$sql_query_upd1 .= "UPDATE public.tbl_person SET udf_values=" . $db->db_add_param(json_encode($udfToKeep)) . " WHERE person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . ";";