From 6a403a7fc35ea2fcf830be44f1b3ab240fc2dc69 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 11 Apr 2022 08:40:57 +0200 Subject: [PATCH 1/9] =?UTF-8?q?Logik=20Generierung=20MA-Nummer=20im=20Fas?= =?UTF-8?q?=20ge=C3=A4ndert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/mitarbeiter.class.php | 34 +++++++++++++++++++ include/tw/generateuid.inc.php | 14 ++++++++ system/dbupdate_3.3.php | 31 +++++++++++++++++ vilesci/personen/import/mitarbeiterimport.php | 14 ++++---- 4 files changed, 87 insertions(+), 6 deletions(-) diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index 5d63c9989..00c131f35 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1655,5 +1655,39 @@ class mitarbeiter extends benutzer return false; } + + /** + * Generiert mitarbeiter_uid anhand sequence tbl_mitarbeiter_personalnummer_seq + * @return string $mitarbeiter_uid im Formate maXXXX (zum Bsp. ma0207) + */ + public function getMitarbeiterMaNr() + { + $qry = "SELECT last_value FROM tbl_mitarbeiter_personalnummer_seq"; + + if ($result = $this->db_query($qry)) + { + while ($row = $this->db_fetch_object()) + { + if ($row->last_value != '') + { + $maNr = $row->last_value; + $maNr = $maNr - 9999; + $maNr = 'ma'. $maNr; + return $maNr; + } + else + { + $this->errormsg = 'Fehler bei einer Datenbankabfrage!'; + $return = false; + } + } + } + else + { + $this->errormsg = "Fehler bei der Abfrage aufgetreten"; + return false; + } + } + } ?> diff --git a/include/tw/generateuid.inc.php b/include/tw/generateuid.inc.php index 78e9eae69..9205633cc 100644 --- a/include/tw/generateuid.inc.php +++ b/include/tw/generateuid.inc.php @@ -23,6 +23,7 @@ * Funktionen zum Generieren der UIDs */ require_once(dirname(__FILE__).'/../addon.class.php'); +require_once(dirname(__FILE__).'/../mitarbeiter.class.php'); // die aktiven Addons werden durchsucht, ob eines davon eine eigene UID Generierung vorsieht // falls ja, wird die Version des Addons genommen, ansonsten die Default Generierung @@ -109,5 +110,18 @@ if(!$generateuid_addon_found) return $uid; } } + + /** + * Neue Logik Generierung Mitarbeiter UID + * fortlaufende ma_number a la ma0200; + * @return string $maNr maNr im Format maXXXX + **/ + function generateMaNumberUID() + { + $mitarbeiter = new mitarbeiter(); + $maNr = $mitarbeiter->getMitarbeiterMaNr(); + + return $maNr; + } } ?> diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index fa073bcba..fae594851 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -5979,6 +5979,37 @@ if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_webservic } } +//ALTER Sequence tbl_mitarbeiter_personalnummer_seq +if ($result = @$db->db_query("SELECT last_value FROM tbl_mitarbeiter_personalnummer_seq")) +{ + $json = $db->db_getResultJSON($result); + $last = json_decode($json); + $last = $last[0]->{'last_value'}; + + if ($last <= 10000) + { + $count = @$db->db_query(" + SELECT personalnummer FROM public.tbl_mitarbeiter + order by personalnummer DESC + Limit 1 + "); + + $count = $db->db_getResultJSON($count); + $count = json_decode($count); + $count = $count[0]->{'personalnummer'} + 1; + $qry = 'ALTER SEQUENCE tbl_mitarbeiter_personalnummer_seq restart with '; + $qry .= $count; + if (!$db->db_query($qry)) + { + echo ' tbl_mitarbeiter_personalnummer_seq '.$db->db_last_error().'
'; + } + else + { + echo '
tbl_mitarbeiter_personalnummer_seq auf neuen Startwert '. $count . ' geändert.'; + } + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; diff --git a/vilesci/personen/import/mitarbeiterimport.php b/vilesci/personen/import/mitarbeiterimport.php index 14081986c..c589f8669 100644 --- a/vilesci/personen/import/mitarbeiterimport.php +++ b/vilesci/personen/import/mitarbeiterimport.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl , + * Manuela Thamer . */ require_once('../../../config/vilesci.config.inc.php'); @@ -621,7 +622,7 @@ if(isset($_POST['save'])) $vorname_clean = mb_strtolower(convertProblemChars($vorname)); $uid=''; - $uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt); + $uid = generateMaNumberUID(); if ($wunschUid != '') { @@ -872,10 +873,10 @@ if(isset($_POST['save'])) } } - if(!$error) + if (!$error) { $db->db_query('COMMIT'); - die("MitarbeiterIn $vorname $vornamen $nachname wurde erfolgreich angelegt

Neue Person anlegen
"); + die("MitarbeiterIn $vorname $vornamen $nachname ($uid) wurde erfolgreich angelegt

Neue Person anlegen
"); } else { @@ -925,7 +926,8 @@ echo 'Wunsch-UID'; if ($showagain) echo '
'; -echo ' (optional, max. 32) +echo ' (optional, max. 32) '; echo 'Anrede'; echo 'Titel(Pre)'; From c8b23dbe124cccb938c6b812c903fcfbbf5421fc Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 12 Apr 2022 12:15:17 +0200 Subject: [PATCH 2/9] Generierung UID in Addon FHTW ausgelagert --- include/mitarbeiter.class.php | 16 +++++----- include/tw/generateuid.inc.php | 17 ++--------- system/dbupdate_3.3.php | 30 ------------------- vilesci/personen/import/mitarbeiterimport.php | 10 ++++++- 4 files changed, 18 insertions(+), 55 deletions(-) diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index 00c131f35..ac67c1ce5 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1657,23 +1657,21 @@ class mitarbeiter extends benutzer /** - * Generiert mitarbeiter_uid anhand sequence tbl_mitarbeiter_personalnummer_seq - * @return string $mitarbeiter_uid im Formate maXXXX (zum Bsp. ma0207) + * Generiert nächste freie Personalnummer anhand der sequence tbl_mitarbeiter_personalnummer_seq + * @return string $personalnummer */ - public function getMitarbeiterMaNr() + public function getNextPersonalnummer() { - $qry = "SELECT last_value FROM tbl_mitarbeiter_personalnummer_seq"; + $qry = "SELECT nextval('tbl_mitarbeiter_personalnummer_seq') "; if ($result = $this->db_query($qry)) { while ($row = $this->db_fetch_object()) { - if ($row->last_value != '') + if ($row->nextval != '') { - $maNr = $row->last_value; - $maNr = $maNr - 9999; - $maNr = 'ma'. $maNr; - return $maNr; + $personalnummer = $row->nextval; + return $personalnummer; } else { diff --git a/include/tw/generateuid.inc.php b/include/tw/generateuid.inc.php index 9205633cc..8c0a1ab80 100644 --- a/include/tw/generateuid.inc.php +++ b/include/tw/generateuid.inc.php @@ -23,7 +23,6 @@ * Funktionen zum Generieren der UIDs */ require_once(dirname(__FILE__).'/../addon.class.php'); -require_once(dirname(__FILE__).'/../mitarbeiter.class.php'); // die aktiven Addons werden durchsucht, ob eines davon eine eigene UID Generierung vorsieht // falls ja, wird die Version des Addons genommen, ansonsten die Default Generierung @@ -74,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,18 +109,6 @@ if(!$generateuid_addon_found) return $uid; } } - - /** - * Neue Logik Generierung Mitarbeiter UID - * fortlaufende ma_number a la ma0200; - * @return string $maNr maNr im Format maXXXX - **/ - function generateMaNumberUID() - { - $mitarbeiter = new mitarbeiter(); - $maNr = $mitarbeiter->getMitarbeiterMaNr(); - - return $maNr; - } } + ?> diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index fae594851..0f28e544a 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -5979,36 +5979,6 @@ if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_webservic } } -//ALTER Sequence tbl_mitarbeiter_personalnummer_seq -if ($result = @$db->db_query("SELECT last_value FROM tbl_mitarbeiter_personalnummer_seq")) -{ - $json = $db->db_getResultJSON($result); - $last = json_decode($json); - $last = $last[0]->{'last_value'}; - - if ($last <= 10000) - { - $count = @$db->db_query(" - SELECT personalnummer FROM public.tbl_mitarbeiter - order by personalnummer DESC - Limit 1 - "); - - $count = $db->db_getResultJSON($count); - $count = json_decode($count); - $count = $count[0]->{'personalnummer'} + 1; - $qry = 'ALTER SEQUENCE tbl_mitarbeiter_personalnummer_seq restart with '; - $qry .= $count; - if (!$db->db_query($qry)) - { - echo ' tbl_mitarbeiter_personalnummer_seq '.$db->db_last_error().'
'; - } - else - { - echo '
tbl_mitarbeiter_personalnummer_seq auf neuen Startwert '. $count . ' geändert.'; - } - } -} // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; diff --git a/vilesci/personen/import/mitarbeiterimport.php b/vilesci/personen/import/mitarbeiterimport.php index c589f8669..91d78d385 100644 --- a/vilesci/personen/import/mitarbeiterimport.php +++ b/vilesci/personen/import/mitarbeiterimport.php @@ -621,8 +621,16 @@ if(isset($_POST['save'])) $nachname_clean = mb_strtolower(convertProblemChars($nachname)); $vorname_clean = mb_strtolower(convertProblemChars($vorname)); $uid=''; + $mitarbeiter = new mitarbeiter(); - $uid = generateMaNumberUID(); + if ($_POST['personalnummer']) + { + $personalnummer = $_POST['personalnummer']; + } + else + $personalnummer = $mitarbeiter->getNextPersonalnummer(); + + $uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt, $personalnummer); if ($wunschUid != '') { From 7c6adaabebeda0792628f52bda21193eb4540616 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 13 Apr 2022 11:43:25 +0200 Subject: [PATCH 3/9] rt stoppen fuer einzelene personen --- cis/testtool/frage.php | 7 ++ cis/testtool/prueflinggesperrt.php | 39 ++++++++++ include/pruefling.class.php | 4 + locale/de-AT/testtool.php | 2 + locale/en-US/testtool.php | 1 + system/dbupdate_3.3.php | 15 +++- vilesci/stammdaten/auswertung_fhtw.php | 104 ++++++++++++++++++++++++- 7 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 cis/testtool/prueflinggesperrt.php diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php index 12d9d8d26..69dc9496c 100644 --- a/cis/testtool/frage.php +++ b/cis/testtool/frage.php @@ -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(""); + $gebiet = new gebiet($gebiet_id); if($gebiet->level_start!='') diff --git a/cis/testtool/prueflinggesperrt.php b/cis/testtool/prueflinggesperrt.php new file mode 100644 index 000000000..f0ab2b1ad --- /dev/null +++ b/cis/testtool/prueflinggesperrt.php @@ -0,0 +1,39 @@ + + + + + + + + + + +




+

t('testtool/prueflingGesperrt');?>

+
+ + diff --git a/include/pruefling.class.php b/include/pruefling.class.php index 17fe48789..fc64d90c4 100644 --- a/include/pruefling.class.php +++ b/include/pruefling.class.php @@ -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; } diff --git a/locale/de-AT/testtool.php b/locale/de-AT/testtool.php index a4d9e33fd..8e330dafe 100644 --- a/locale/de-AT/testtool.php +++ b/locale/de-AT/testtool.php @@ -78,4 +78,6 @@ $this->phrasen['testtool/einfuehrungsText']=' Display testpage '; +$this->phrasen['testtool/prueflingGesperrt']='Bitte kontaktieren Sie die Reihungstestaufsicht!'; + ?> diff --git a/locale/en-US/testtool.php b/locale/en-US/testtool.php index 1630c9251..473ac1e0d 100644 --- a/locale/en-US/testtool.php +++ b/locale/en-US/testtool.php @@ -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!
Please inform an assisting person.'; +$this->phrasen['testtool/prueflingGesperrt']='Please contact the placement test supervisor!'; ?> \ No newline at end of file diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index fa073bcba..d9098795f 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -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 'testtool.tbl_pruefling: '.$db->db_last_error().'
'; + else + echo '
testtool.tbl_pruefling: Spalte gesperrt hinzugefuegt!
'; +} + + // Kategorisierung von Services if(!$result = @$db->db_query("SELECT * FROM public.tbl_servicekategorie LIMIT 1")) { @@ -6233,7 +6246,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"), diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index 1acfe1a55..8c3e17d61 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -440,6 +440,43 @@ 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 = " . $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 +1445,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 +1568,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 +2330,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 +3044,7 @@ else PreId + Ent-/Sperren Nachname Vornamen GebDatum @@ -3011,6 +3101,18 @@ else $erg->prestudent_id + "; + + + echo " + + + + + + + "; + echo " ".$erg->nachname." ".($erg->qualifikationskurs == true ? "(Q)" : "")." $erg->vorname " . $datum_obj->formatDatum($erg->gebdatum, 'd.m.Y') . " From 398c04d0acf2ac325dbc9a0d6e9b9d1df9e94eaa Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 27 Apr 2022 08:13:56 +0200 Subject: [PATCH 4/9] sperrt alle prestudents von der person --- vilesci/stammdaten/auswertung_fhtw.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index 8c3e17d61..69d4dc7b9 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -456,7 +456,10 @@ if ($rtprueflingEntSperren) && isset($_POST['art'])) { $qry = "UPDATE testtool.tbl_pruefling SET gesperrt =" . $db->db_add_param($_POST['art'], 'BOOLEAN') . " - WHERE prestudent_id = " . $db->db_add_param($_POST['prestudent_id']) . ";"; + 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)) { From fddc0068e411806f6e25feeaa1a37ef245f52cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 29 Apr 2022 12:49:16 +0200 Subject: [PATCH 5/9] Fixed wrong RegEx on Date Check --- include/datum.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/datum.class.php b/include/datum.class.php index f09066009..950cd60ff 100644 --- a/include/datum.class.php +++ b/include/datum.class.php @@ -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); From a9ca16dddce7ddd7799ac6d1ccff174dc96207b0 Mon Sep 17 00:00:00 2001 From: Manfred Date: Wed, 11 May 2022 16:41:14 +0200 Subject: [PATCH 6/9] Beim Zusammenlegen von Personen werden beide Anmerkungen erhalten MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Außerdem wird eine Info über das Zusammenlegen in der Anmerkung ergänzt --- vilesci/stammdaten/personen_wartung.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php index 6e9f1cc21..44abb8daa 100644 --- a/vilesci/stammdaten/personen_wartung.php +++ b/vilesci/stammdaten/personen_wartung.php @@ -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) . ";"; From 4b3163b67da64a2eeb10d950847d2733af089771 Mon Sep 17 00:00:00 2001 From: Manfred Date: Wed, 11 May 2022 16:41:31 +0200 Subject: [PATCH 7/9] Anpassung der Breite der Inputfelder --- vilesci/stammdaten/infoscreen_uebersicht.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/vilesci/stammdaten/infoscreen_uebersicht.php b/vilesci/stammdaten/infoscreen_uebersicht.php index 24a89980f..e766b2bc1 100644 --- a/vilesci/stammdaten/infoscreen_uebersicht.php +++ b/vilesci/stammdaten/infoscreen_uebersicht.php @@ -44,11 +44,11 @@ echo ' - - - - - + + + + +