From efbdb02b2c135536f2c890033194546940ecbc7b Mon Sep 17 00:00:00 2001 From: ma0048 Date: Mon, 31 May 2021 12:59:59 +0200 Subject: [PATCH 01/27] beim vorruecken wird pre-wiederholer auf wiederholer gesetzt und wird ein semester zurueckgestuft --- content/student/studentrolledialog.js.php | 6 +++- include/statusgrund.class.php | 14 ++++++++ vilesci/personen/student_vorrueckung.php | 41 ++++++++++++----------- 3 files changed, 40 insertions(+), 21 deletions(-) diff --git a/content/student/studentrolledialog.js.php b/content/student/studentrolledialog.js.php index ef0291fe4..6f058f526 100644 --- a/content/student/studentrolledialog.js.php +++ b/content/student/studentrolledialog.js.php @@ -118,7 +118,11 @@ function StudentRolleLoadStatusgrund(status_kurzbz, statusgrund_id) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var menulistgrund = document.getElementById('student-rolle-menulist-statusgrund'); - url='rdf/statusgrund.rdf.php?status_kurzbz='+status_kurzbz+'&include_id='+statusgrund_id+'&ts'+gettimestamp(); + + if (typeof statusgrund_id !== 'undefined') + url='rdf/statusgrund.rdf.php?status_kurzbz='+status_kurzbz+'&include_id='+statusgrund_id+'&ts'+gettimestamp(); + else + url='rdf/statusgrund.rdf.php?status_kurzbz='+status_kurzbz+'&ts'+gettimestamp(); try { diff --git a/include/statusgrund.class.php b/include/statusgrund.class.php index aa084b8c6..c0a2aa3a0 100644 --- a/include/statusgrund.class.php +++ b/include/statusgrund.class.php @@ -179,5 +179,19 @@ class statusgrund extends basis_db return true; } + + public function getByBezeichnung($beschreibung) + { + $qry = " + SELECT + * + FROM + public.tbl_status_grund + WHERE beschreibung[1] = '" . $beschreibung . "' + + "; + $this->db_query($qry); + return $this->db_fetch_object(); + } } ?> diff --git a/vilesci/personen/student_vorrueckung.php b/vilesci/personen/student_vorrueckung.php index 960413c2a..25f1dcbb6 100644 --- a/vilesci/personen/student_vorrueckung.php +++ b/vilesci/personen/student_vorrueckung.php @@ -32,6 +32,7 @@ require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/lehrverband.class.php'); require_once('../../include/studienordnung.class.php'); require_once('../../include/studienplan.class.php'); +require_once('../../include/statusgrund.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -301,6 +302,15 @@ if (isset($_POST['vorr'])) } } + $statusgrundObj = new statusgrund($row_status->statusgrund_id); + $newStatusgrund = null; + if ($statusgrundObj->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE] === "Pre-Wiederholer" && $row_status->ausbildungssemester > 1) + { + $s = $row->semester_stlv - 1; + $ausbildungssemester = $row_status->ausbildungssemester - 1; + $newStatusgrund = $statusgrundObj->getByBezeichnung('Wiederholer')->statusgrund_id; + } + $lvb = new lehrverband(); //Lehrverbandgruppe anlegen, wenn noch nicht vorhanden @@ -364,14 +374,15 @@ if (isset($_POST['vorr'])) //Eintragen des neuen Status $sql .= "INSERT INTO public.tbl_prestudentstatus (prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester, datum, insertamum, - insertvon, updateamum, updatevon, ext_id, orgform_kurzbz, studienplan_id) + insertvon, updateamum, updatevon, ext_id, orgform_kurzbz, studienplan_id, statusgrund_id) VALUES (".$db->db_add_param($row->prestudent_id).", ". $db->db_add_param($row_status->status_kurzbz).", ". $db->db_add_param($next_ss).", ". $db->db_add_param($ausbildungssemester).", now(), now(), ". $db->db_add_param($user).", NULL, NULL, NULL, ". $db->db_add_param($row_status->orgform_kurzbz).", ". - $db->db_add_param($studienplan_id).");"; + $db->db_add_param($studienplan_id).", ". + $db->db_add_param($newStatusgrund).");"; } if ($sql != '') { @@ -408,7 +419,7 @@ $outp .= ' Studiengang: - '; //Auswahl Studiengang foreach ($studiengang as $stg) @@ -420,7 +431,7 @@ foreach ($studiengang as $stg) $url .= "&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt"; $url .= "&studiensemester_kurzbz_zk=$studiensemester_kurzbz_zk"; - $outp .= ""; if (!isset($s[$stg->studiengang_kz])) $s[$stg->studiengang_kz] = new stdClass(); @@ -435,17 +446,12 @@ $outp .= ' $outp .= " Angezeigtes Studiensemester: - \n"; if (isset($ss_arr) && is_array($ss_arr)) { foreach ($ss_arr as $sts) { - if ($studiensemester_kurzbz == $sts) - $sel = " selected "; - else - $sel = ''; - $url = $_SERVER['PHP_SELF']."?stg_kz=$stg_kz"; $url .= "&semester=$semester"; $url .= "&semesterv=$semesterv"; @@ -453,7 +459,7 @@ if (isset($ss_arr) && is_array($ss_arr)) $url .= "&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt"; $url .= "&studiensemester_kurzbz_zk=$studiensemester_kurzbz_zk"; - $outp .= ""; + $outp .= ""; } } $outp .= " @@ -493,17 +499,12 @@ $outp .= ' Ausgangs-Studiensemester: - '; if (isset($ss_arr) && is_array($ss_arr)) { foreach ($ss_arr as $sts2) { - if ($studiensemester_kurzbz_akt == $sts2) - $sel2 = " selected "; - else - $sel2 = ''; - $url = $_SERVER['PHP_SELF']."?stg_kz=$stg_kz"; $url .= "&semester=$semester"; $url .= "&semesterv=$semesterv"; @@ -511,7 +512,7 @@ if (isset($ss_arr) && is_array($ss_arr)) $url .= "&studiensemester_kurzbz_akt=$sts2"; $url .= "&studiensemester_kurzb_zk=$studiensemester_kurzbz_zk"; - $outp .= ""; + $outp .= ""; } } $outp .= " @@ -547,7 +548,7 @@ $outp .= 'alle -- $outp .= " Ziel-Studiensemester: - \n"; if (isset($ss_arr) && is_array($ss_arr)) { @@ -565,7 +566,7 @@ if (isset($ss_arr) && is_array($ss_arr)) $url .= "&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt"; $url .= "&studiensemester_kurzbz_zk=$sts3"; - $outp .= ""; + $outp .= ""; } } $outp .= " \n From fd4740e7e0d81c001507d464b3f9c58e9596f60c Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Mon, 14 Jun 2021 14:46:14 +0200 Subject: [PATCH 02/27] Added Note 'intern angerechnet' Signed-off-by: cris-technikum --- system/dbupdate_3.3.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index e658d7a97..fc5a6fd83 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -532,6 +532,26 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'ue' } } +// Note "intern angerechnet" hinzufügen +if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'iar' AND (bezeichnung = 'intern angerechnet' OR bezeichnung = 'Intern angerechnet');")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = " + INSERT INTO + lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre, offiziell, bezeichnung_mehrsprachig, lkt_ueberschreibbar) + VALUES( + (SELECT max(note)+1 FROM lehre.tbl_note),'intern angerechnet', 'iar', NULL, TRUE, NULL, TRUE, FALSE, FALSE, '{\"intern angerechnet\",\"internally credited\"}', FALSE + ); + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note: '.$db->db_last_error().'
'; + else + echo '
lehre.tbl_note: Note intern angerechnet hinzugefuegt!
'; + } +} + // Spalte offiziell in lehre.tbl_note if(!$result = @$db->db_query("SELECT offiziell FROM lehre.tbl_note LIMIT 1;")) { From 5765be1ab89093e7886ca6a0a9c906aab3d368aa Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Mon, 14 Jun 2021 14:46:38 +0200 Subject: [PATCH 03/27] Added Note 'nicht zugelassen' Signed-off-by: cris-technikum --- system/dbupdate_3.3.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index fc5a6fd83..5a91e5e33 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -552,6 +552,26 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'iar } } +// Note "nicht zugelassen" hinzufügen +if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'nz' AND (bezeichnung = 'nicht zugelassen' OR bezeichnung = 'Nicht zugelassen');")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = " + INSERT INTO + lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre, offiziell, bezeichnung_mehrsprachig, lkt_ueberschreibbar) + VALUES( + (SELECT max(note)+1 FROM lehre.tbl_note), 'nicht zugelassen', 'nz', NULL, TRUE, NULL, TRUE, FALSE, FALSE, '{\"nicht zugelassen\",\"not admitted\"}', FALSE + ); + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note: '.$db->db_last_error().'
'; + else + echo '
lehre.tbl_note: Note nicht zugelassen hinzugefuegt!
'; + } +} + // Spalte offiziell in lehre.tbl_note if(!$result = @$db->db_query("SELECT offiziell FROM lehre.tbl_note LIMIT 1;")) { From 31957b813fc27c51d2eb31caf668771c445c9246 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Mon, 14 Jun 2021 15:29:26 +0200 Subject: [PATCH 04/27] Anwesenheitsliste: Intern angerechnete als 'Angerechnet' markieren (ar) Signed-off-by: cris-technikum --- cis/private/lehre/anwesenheitsliste.pdf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index eef40ff3f..b49ce83ac 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -213,7 +213,7 @@ if($result = $db->db_query($qry)) if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; - if($row->note==6) //angerechnet + if($row->note==6 || $row->note == 19) //angerechnet oder intern angerechnet $zusatz.='(ar)'; if($row->mitarbeiter_uid!='') //mitarbeiter From 7aa32dff8314863ff890c2feb944731d3bbe59e4 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 16 Jun 2021 08:18:49 +0200 Subject: [PATCH 05/27] status zum studenten aendern auch mit menupopup --- content/student/studentenoverlay.xul.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index 9865f2719..a41693240 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -126,6 +126,10 @@ else echo ' '; + + if ($id == 'student-toolbar-student') + echo ''; + foreach($gruende[$status_kurzbz] as $row) { $commandWithID = str_replace('STATUSGRUNDID',$row['statusgrund_id'],$command); From 45e1bfd5e9fe094eea71e2287e0b47adbe5ffb37 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Wed, 16 Jun 2021 16:30:50 +0200 Subject: [PATCH 06/27] Anwesenheitsliste: Kuerzel 'nicht zugelassen ergaenzt' Signed-off-by: cris-technikum --- cis/private/lehre/anwesenheitsliste.pdf.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index b49ce83ac..790e5291d 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -215,6 +215,9 @@ if($result = $db->db_query($qry)) if($row->note==6 || $row->note == 19) //angerechnet oder intern angerechnet $zusatz.='(ar)'; + + if($row->note == 20) // nicht zugelassen + $zusatz.='(nz)'; if($row->mitarbeiter_uid!='') //mitarbeiter $zusatz.='(ma)'; From b5fcfb7b091ee84043c89a0f833c275a086a1728 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Fri, 25 Jun 2021 14:26:07 +0200 Subject: [PATCH 07/27] first guess, TODO check statusgrund_id --- content/student/studentenoverlay.xul.php | 1 + rdf/student.rdf.php | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index 9865f2719..41010e0f5 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -204,6 +204,7 @@ else + db_add_param($studiensemester_kurzbz)." AND + person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND + status_kurzbz='Student' AND statusgrund_id = 14"; + if ( $db->db_query($qry) && ($row_filter = $db->db_fetch_object()) && ($row_filter->anzahl > 0) ) + { + return false; + } + } return true; } From 7295523af575a5bd7add63c62b8b222c13ad8865 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Fri, 25 Jun 2021 19:08:02 +0200 Subject: [PATCH 08/27] add filter for any statusgrund not only wiederholer --- content/student/studentenoverlay.xul.php | 16 ++++++++++++++- rdf/student.rdf.php | 26 ++++++++++++++---------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index 41010e0f5..70bbfcc22 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -204,7 +204,21 @@ else - + + + getAll(true); + + foreach($statusgrund->result as $row) + { + ?> + + + + db_add_param($studiensemester_kurzbz)." AND - person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND - status_kurzbz='Student' AND statusgrund_id = 14"; - if ( $db->db_query($qry) && ($row_filter = $db->db_fetch_object()) && ($row_filter->anzahl > 0) ) - { - return false; - } + // Alle Studenten mit Statusgrund in tbl_prestudentstatus + $qry = "SELECT count(*) AS anzahl FROM public.tbl_prestudentstatus ps JOIN + public.tbl_prestudent p ON p.prestudent_id = ps.prestudent_id AND + ps. studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND + p. person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND + p.studiengang_kz=" . $db->db_add_param($studiengang_kz, FHC_INTEGER) . " AND + ps.statusgrund_id = " . $db->db_add_param($studstatusgrund[1], FHC_INTEGER); + //echo $qry . "\n"; + $filtered = ( $db->db_query($qry) && ($row_filter = $db->db_fetch_object()) && ($row_filter->anzahl > 0) ) + ? true + : false; + return $filtered; } return true; } From cba638db9f63c2b8f5ff54dd46d1aca186daf4ab Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Mon, 12 Jul 2021 12:06:49 +0200 Subject: [PATCH 09/27] Changed: Now grades are retrieved more dynamically in Anwesenheitsliste Signed-off-by: cris-technikum --- cis/private/lehre/anwesenheitsliste.pdf.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 790e5291d..01ec1c93f 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -166,13 +166,14 @@ $qry = 'SELECT tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, - tbl_zeugnisnote.note, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang + tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang FROM campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) + LEFT JOIN lehre.tbl_note USING (note) LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) WHERE @@ -213,11 +214,8 @@ if($result = $db->db_query($qry)) if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; - if($row->note==6 || $row->note == 19) //angerechnet oder intern angerechnet - $zusatz.='(ar)'; - - if($row->note == 20) // nicht zugelassen - $zusatz.='(nz)'; + if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen + $zusatz.= '('. $row->anmerkung. ')'; if($row->mitarbeiter_uid!='') //mitarbeiter $zusatz.='(ma)'; From 36d09813313f2eaad3241cd34bcd4acaaaf6f995 Mon Sep 17 00:00:00 2001 From: manu Date: Fri, 23 Jul 2021 12:57:28 +0200 Subject: [PATCH 10/27] =?UTF-8?q?neuer=20Branch=20+=20Korrektur=20Fehlerme?= =?UTF-8?q?ldung=20bei=20=C3=84nderung=20Status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/crm/Statusgrund.php | 8 ++++++-- application/models/crm/Statusgrund_model.php | 4 +++- application/views/crm/statusGrundList.php | 4 +++- application/views/crm/statusgrundEdit.php | 15 +++++++++++++++ application/views/crm/statusgrundNew.php | 10 ++++++++++ 5 files changed, 37 insertions(+), 4 deletions(-) diff --git a/application/controllers/crm/Statusgrund.php b/application/controllers/crm/Statusgrund.php index 344ac06dc..3c7e43736 100644 --- a/application/controllers/crm/Statusgrund.php +++ b/application/controllers/crm/Statusgrund.php @@ -129,6 +129,7 @@ class Statusgrund extends Auth_Controller $aktiv = $this->input->post("aktiv") != null && $this->input->post("aktiv") == "on" ? true : false; $bezeichnung_mehrsprachig = $this->input->post("bezeichnung_mehrsprachig"); $beschreibung = $this->input->post("beschreibung"); + $statusgrund_kurzbz = $this->input->post("statusgrund_kurzbz"); for ($i = 0; $i < count($bezeichnung_mehrsprachig); $i++) { @@ -177,7 +178,8 @@ class Statusgrund extends Auth_Controller $data = array( "aktiv" => $aktiv, "bezeichnung_mehrsprachig" => $bezeichnung_mehrsprachig, - "beschreibung" => $beschreibung + "beschreibung" => $beschreibung, + "statusgrund_kurzbz" => $statusgrund_kurzbz ); $statusgrund = $this->StatusgrundModel->update($statusgrund_id, $data); @@ -196,6 +198,7 @@ class Statusgrund extends Auth_Controller $bezeichnung_mehrsprachig = $this->input->post("bezeichnung_mehrsprachig"); $beschreibung = $this->input->post("beschreibung"); $status_kurzbz = $this->input->post("status_kurzbz"); + $statusgrund_kurzbz = $this->input->post("statusgrund_kurzbz"); for ($i = 0; $i < count($bezeichnung_mehrsprachig); $i++) { @@ -245,7 +248,8 @@ class Statusgrund extends Auth_Controller "status_kurzbz" => $status_kurzbz, "aktiv" => $aktiv, "bezeichnung_mehrsprachig" => $bezeichnung_mehrsprachig, - "beschreibung" => $beschreibung + "beschreibung" => $beschreibung, + "statusgrund_kurzbz" => $statusgrund_kurzbz ); $statusgrund = $this->StatusgrundModel->insert($data); diff --git a/application/models/crm/Statusgrund_model.php b/application/models/crm/Statusgrund_model.php index 7ab17a45b..d488e12d1 100644 --- a/application/models/crm/Statusgrund_model.php +++ b/application/models/crm/Statusgrund_model.php @@ -12,7 +12,7 @@ class Statusgrund_model extends DB_Model $this->pk = "statusgrund_id"; } - public function getStatus($status_kurzbz = null, $aktiv = null) + public function getStatus($status_kurzbz = null, $aktiv = null, $statusgrund_kurzbz = null) { $this->addOrder('bezeichnung_mehrsprachig'); $where = array(); @@ -20,6 +20,8 @@ class Statusgrund_model extends DB_Model $where['status_kurzbz'] = $status_kurzbz; if (!is_null($aktiv)) $where['aktiv'] = $aktiv; + if (!is_null($statusgrund_kurzbz)) + $where['statusgrund_kurzbz'] = $statusgrund_kurzbz; $status = $this->loadWhere($where); diff --git a/application/views/crm/statusGrundList.php b/application/views/crm/statusGrundList.php index e128856d3..ab8f096bb 100644 --- a/application/views/crm/statusGrundList.php +++ b/application/views/crm/statusGrundList.php @@ -15,6 +15,7 @@ Aktiv Bezeichnung mehrsprachig Beschreibung + Statusgrund @@ -25,6 +26,7 @@ aktiv); ?> bezeichnung_mehrsprachig); ?> beschreibung); ?> + statusgrund_kurzbz); ?> Edit @@ -33,4 +35,4 @@ - \ No newline at end of file + diff --git a/application/views/crm/statusgrundEdit.php b/application/views/crm/statusgrundEdit.php index 9fa91b6d5..fc001d92a 100644 --- a/application/views/crm/statusgrundEdit.php +++ b/application/views/crm/statusgrundEdit.php @@ -81,6 +81,21 @@   + + + StatusGrund: + + + + +
+ + + + +   + + diff --git a/application/views/crm/statusgrundNew.php b/application/views/crm/statusgrundNew.php index ffcd18429..1c3a5f9e0 100644 --- a/application/views/crm/statusgrundNew.php +++ b/application/views/crm/statusgrundNew.php @@ -51,6 +51,16 @@   + + + StatusGrund: + + + + +
+ + From ccfd038d8a8d729f7a7b03e0d5f36032426e2596 Mon Sep 17 00:00:00 2001 From: manu Date: Fri, 23 Jul 2021 13:32:53 +0200 Subject: [PATCH 11/27] =?UTF-8?q?13938=20Vorr=C3=BCckung=20von=20bezeichnu?= =?UTF-8?q?ng=5Fmehrsprachig=20auf=20statusgrund=5Fkurzbz=20umgebaut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/student/studentrolledialog.js.php | 314 +++++++++++----------- include/statusgrund.class.php | 28 ++ vilesci/personen/student_vorrueckung.php | 47 ++-- 3 files changed, 213 insertions(+), 176 deletions(-) diff --git a/content/student/studentrolledialog.js.php b/content/student/studentrolledialog.js.php index ef0291fe4..60c247781 100644 --- a/content/student/studentrolledialog.js.php +++ b/content/student/studentrolledialog.js.php @@ -1,155 +1,159 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../../config/vilesci.config.inc.php'); - -?> -var StudentRolleStudiensemester_old; -var StudentRolleAusbildungssemester_old; -var StudentRolleStatusgrundDatasource; - -// **** -// * Laedt die Rolle -// **** -function StudentRolleInit(prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - if(status_kurzbz!='') - { - document.getElementById('student-rolle-grid-row-textbox').hidden=false; - document.getElementById('student-rolle-grid-row-menulist').hidden=true; - - StudentRolleStudiensemester_old=studiensemester_kurzbz; - StudentRolleAusbildungssemester_old=ausbildungssemester; - - //Daten holen - var url = 'rdf/prestudentrolle.rdf.php?prestudent_id='+prestudent_id+'&status_kurzbz='+status_kurzbz+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&ausbildungssemester='+ausbildungssemester+'&'+gettimestamp(); - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. - getService(Components.interfaces.nsIRDFService); - - var dsource = rdfService.GetDataSourceBlocking(url); - - var subject = rdfService.GetResource("http://www.technikum-wien.at/prestudentrolle/" + prestudent_id+"/"+status_kurzbz+"/"+studiensemester_kurzbz+"/"+ausbildungssemester); - - var predicateNS = "http://www.technikum-wien.at/prestudentrolle/rdf"; - - //RDF parsen - var datum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum" )); - var bestaetigt_datum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bestaetigt_am" )); - var bewerbung_abgeschicktamum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bewerbung_abgeschicktamum" )); - var orgform_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#orgform_kurzbz" )); - var studienplan_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studienplan_id" )); - var anmerkung= getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" )); - var statusgrund_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#statusgrund_id" )); - var rt_stufe = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rt_stufe" )); - var neu = false; - StudentRolleLoadStatusgrund(status_kurzbz, statusgrund_id); - } - else - { - StudentRolleStudiensemester_old=''; - StudentRolleAusbildungssemester_old=''; - - document.getElementById('student-rolle-grid-row-textbox').hidden=true; - document.getElementById('student-rolle-grid-row-menulist').hidden=false; - - //Defaultwerte bei Neuem Datensatz - var status_kurzbz = 'Interessent'; - var studiensemester_kurzbz=window.opener.getStudiensemester(); - var ausbildungssemester='1'; - var datum = ''; - var bestaetigt_datum = ''; - var bewerbung_abgeschicktamum = ''; - var orgform_kurzbz = ''; - var studienplan_id = ''; - var anmerkung = ''; - var statusgrund_id = ''; - var rt_stufe = ''; - StudentRolleLoadStatusgrund(status_kurzbz); - } - - document.getElementById('student-rolle-textbox-prestudent_id').value=prestudent_id; - document.getElementById('student-rolle-textbox-status_kurzbz').value=status_kurzbz; - document.getElementById('student-rolle-menulist-studiensemester').value=studiensemester_kurzbz; - document.getElementById('student-rolle-menulist-ausbildungssemester').value=ausbildungssemester; - document.getElementById('student-rolle-datum-datum').value=datum; - document.getElementById('student-rolle-datum-bestaetigt_datum').value=bestaetigt_datum; - document.getElementById('student-rolle-datum-bewerbung_abgeschicktamum').value=bewerbung_abgeschicktamum; - document.getElementById('student-rolle-menulist-orgform_kurzbz').value=orgform_kurzbz; - MenulistSelectItemOnValue('student-rolle-menulist-studienplan', studienplan_id); - document.getElementById('student-rolle-textbox-anmerkung').value=anmerkung; - MenulistSelectItemOnValue('student-rolle-menulist-statusgrund', statusgrund_id); - MenulistSelectItemOnValue('student-rolle-menulist-stufe', rt_stufe); -} - -// **** -// * Speichern der Rolle -// * Hierzu wird eine Funktion vom Aufrufenden Fenster gestartet weil -// * es dann nicht zu Problemen mit den Zugriffen auf die anderen Fkt -// * kommt. -// **** -function StudentRolleSpeichern() -{ - if(window.opener.StudentRolleSpeichern(document, StudentRolleStudiensemester_old, StudentRolleAusbildungssemester_old)) - window.close(); -} - -function StudentRolleLoadStatusgrund(status_kurzbz, statusgrund_id) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - var menulistgrund = document.getElementById('student-rolle-menulist-statusgrund'); - url='rdf/statusgrund.rdf.php?status_kurzbz='+status_kurzbz+'&include_id='+statusgrund_id+'&ts'+gettimestamp(); - - try - { - StudentRolleStatusgrundDatasource.removeXMLSinkObserver(StudentDetailRolleTreeSinkObserver); - } - catch(e) - {} - - //Alte DS entfernen - var oldDatasources = menulistgrund.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - menulistgrund.database.RemoveDataSource(oldDatasources.getNext()); - } - //Refresh damit die entfernten DS auch wirklich entfernt werden - menulistgrund.builder.rebuild(); - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - StudentRolleStatusgrundDatasource = rdfService.GetDataSourceBlocking(url); - StudentRolleStatusgrundDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - StudentRolleStatusgrundDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - menulistgrund.database.AddDataSource(StudentRolleStatusgrundDatasource); - menulistgrund.builder.rebuild(); -} - -/** - * Wenn das Dropdown fuer den Status geaendert wird, dann - * werden die Statusgruende zu diesem Status geladen - */ -function StudentRolleChangeStatus() -{ - var status = document.getElementById('student-rolle-menulist-status_kurzbz').value; - StudentRolleLoadStatusgrund(status); -} \ No newline at end of file +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +require_once('../../config/vilesci.config.inc.php'); + +?> +var StudentRolleStudiensemester_old; +var StudentRolleAusbildungssemester_old; +var StudentRolleStatusgrundDatasource; + +// **** +// * Laedt die Rolle +// **** +function StudentRolleInit(prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + if(status_kurzbz!='') + { + document.getElementById('student-rolle-grid-row-textbox').hidden=false; + document.getElementById('student-rolle-grid-row-menulist').hidden=true; + + StudentRolleStudiensemester_old=studiensemester_kurzbz; + StudentRolleAusbildungssemester_old=ausbildungssemester; + + //Daten holen + var url = 'rdf/prestudentrolle.rdf.php?prestudent_id='+prestudent_id+'&status_kurzbz='+status_kurzbz+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&ausbildungssemester='+ausbildungssemester+'&'+gettimestamp(); + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. + getService(Components.interfaces.nsIRDFService); + + var dsource = rdfService.GetDataSourceBlocking(url); + + var subject = rdfService.GetResource("http://www.technikum-wien.at/prestudentrolle/" + prestudent_id+"/"+status_kurzbz+"/"+studiensemester_kurzbz+"/"+ausbildungssemester); + + var predicateNS = "http://www.technikum-wien.at/prestudentrolle/rdf"; + + //RDF parsen + var datum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum" )); + var bestaetigt_datum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bestaetigt_am" )); + var bewerbung_abgeschicktamum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bewerbung_abgeschicktamum" )); + var orgform_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#orgform_kurzbz" )); + var studienplan_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studienplan_id" )); + var anmerkung= getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" )); + var statusgrund_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#statusgrund_id" )); + var rt_stufe = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rt_stufe" )); + var neu = false; + StudentRolleLoadStatusgrund(status_kurzbz, statusgrund_id); + } + else + { + StudentRolleStudiensemester_old=''; + StudentRolleAusbildungssemester_old=''; + + document.getElementById('student-rolle-grid-row-textbox').hidden=true; + document.getElementById('student-rolle-grid-row-menulist').hidden=false; + + //Defaultwerte bei Neuem Datensatz + var status_kurzbz = 'Interessent'; + var studiensemester_kurzbz=window.opener.getStudiensemester(); + var ausbildungssemester='1'; + var datum = ''; + var bestaetigt_datum = ''; + var bewerbung_abgeschicktamum = ''; + var orgform_kurzbz = ''; + var studienplan_id = ''; + var anmerkung = ''; + var statusgrund_id = ''; + var rt_stufe = ''; + StudentRolleLoadStatusgrund(status_kurzbz); + } + + document.getElementById('student-rolle-textbox-prestudent_id').value=prestudent_id; + document.getElementById('student-rolle-textbox-status_kurzbz').value=status_kurzbz; + document.getElementById('student-rolle-menulist-studiensemester').value=studiensemester_kurzbz; + document.getElementById('student-rolle-menulist-ausbildungssemester').value=ausbildungssemester; + document.getElementById('student-rolle-datum-datum').value=datum; + document.getElementById('student-rolle-datum-bestaetigt_datum').value=bestaetigt_datum; + document.getElementById('student-rolle-datum-bewerbung_abgeschicktamum').value=bewerbung_abgeschicktamum; + document.getElementById('student-rolle-menulist-orgform_kurzbz').value=orgform_kurzbz; + MenulistSelectItemOnValue('student-rolle-menulist-studienplan', studienplan_id); + document.getElementById('student-rolle-textbox-anmerkung').value=anmerkung; + MenulistSelectItemOnValue('student-rolle-menulist-statusgrund', statusgrund_id); + MenulistSelectItemOnValue('student-rolle-menulist-stufe', rt_stufe); +} + +// **** +// * Speichern der Rolle +// * Hierzu wird eine Funktion vom Aufrufenden Fenster gestartet weil +// * es dann nicht zu Problemen mit den Zugriffen auf die anderen Fkt +// * kommt. +// **** +function StudentRolleSpeichern() +{ + if(window.opener.StudentRolleSpeichern(document, StudentRolleStudiensemester_old, StudentRolleAusbildungssemester_old)) + window.close(); +} + +function StudentRolleLoadStatusgrund(status_kurzbz, statusgrund_id) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var menulistgrund = document.getElementById('student-rolle-menulist-statusgrund'); + + if (typeof statusgrund_id !== 'undefined') + url='rdf/statusgrund.rdf.php?status_kurzbz='+status_kurzbz+'&include_id='+statusgrund_id+'&ts'+gettimestamp(); + else + url='rdf/statusgrund.rdf.php?status_kurzbz='+status_kurzbz+'&ts'+gettimestamp(); + + try + { + StudentRolleStatusgrundDatasource.removeXMLSinkObserver(StudentDetailRolleTreeSinkObserver); + } + catch(e) + {} + + //Alte DS entfernen + var oldDatasources = menulistgrund.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + menulistgrund.database.RemoveDataSource(oldDatasources.getNext()); + } + //Refresh damit die entfernten DS auch wirklich entfernt werden + menulistgrund.builder.rebuild(); + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + StudentRolleStatusgrundDatasource = rdfService.GetDataSourceBlocking(url); + StudentRolleStatusgrundDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + StudentRolleStatusgrundDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + menulistgrund.database.AddDataSource(StudentRolleStatusgrundDatasource); + menulistgrund.builder.rebuild(); +} + +/** + * Wenn das Dropdown fuer den Status geaendert wird, dann + * werden die Statusgruende zu diesem Status geladen + */ +function StudentRolleChangeStatus() +{ + var status = document.getElementById('student-rolle-menulist-status_kurzbz').value; + StudentRolleLoadStatusgrund(status); +} diff --git a/include/statusgrund.class.php b/include/statusgrund.class.php index aa084b8c6..6b2c12e03 100644 --- a/include/statusgrund.class.php +++ b/include/statusgrund.class.php @@ -16,6 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Andreas Oesterreicher , + Manuela Thamer */ require_once('basis_db.class.php'); @@ -30,6 +31,7 @@ class statusgrund extends basis_db public $aktiv = true; // boolean public $bezeichnung_mehrsprachig; // varchar(255)[] public $bezeichnung; // text[] + public $statusgrund_kurzbz; //varchar(32) /** * Konstruktor - Laedt optional einen Statusgrund @@ -71,6 +73,7 @@ class statusgrund extends basis_db $this->aktiv = $this->db_parse_bool($row->aktiv); $this->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row); $this->beschreibung = $sprache->parseSprachResult('beschreibung', $row); + $this->statusgrund_kurzbz = $row->statusgrund_kurzbz; } else { @@ -120,6 +123,7 @@ class statusgrund extends basis_db $obj->aktiv = $this->db_parse_bool($row->aktiv); $obj->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row); $obj->beschreibung = $sprache->parseSprachResult('beschreibung', $row); + $obj->statusgrund_kurzbz = $row->statusgrund_kurzbz; $this->result[] = $obj; } @@ -166,6 +170,7 @@ class statusgrund extends basis_db $obj->aktiv = $this->db_parse_bool($row->aktiv); $obj->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row); $obj->beschreibung = $sprache->parseSprachResult('beschreibung', $row); + $obj->statusgrund_kurzbz = $row->statusgrund_kurzbz; $this->result[] = $obj; } @@ -179,5 +184,28 @@ class statusgrund extends basis_db return true; } + + /** + * Laedt das Klassenobjekt anhand der kurzbz + * + * @param string $statusgrund_kurzbz Statusgrund zu dem das Objekt geladen werden soll. + * @return object classobject + */ + public function getByStatusgrundKurzbz($statusgrund_kurzbz) + { + $qry = " + SELECT + * + FROM + public.tbl_status_grund + WHERE + statusgrund_kurzbz ='". $statusgrund_kurzbz. "' + "; + + $this->db_query($qry); + + return + $this->db_fetch_object(); + } } ?> diff --git a/vilesci/personen/student_vorrueckung.php b/vilesci/personen/student_vorrueckung.php index 960413c2a..b32ba06ad 100644 --- a/vilesci/personen/student_vorrueckung.php +++ b/vilesci/personen/student_vorrueckung.php @@ -19,6 +19,7 @@ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Manuela Thamer < manuela.thamer@technikum-wien.at > */ /** * Vorrückung aller AKTIVEN Studenten. @@ -32,6 +33,7 @@ require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/lehrverband.class.php'); require_once('../../include/studienordnung.class.php'); require_once('../../include/studienplan.class.php'); +require_once('../../include/statusgrund.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -301,6 +303,16 @@ if (isset($_POST['vorr'])) } } + //auf statusgrund_kurzbz abfragen + $statusgrundObj = new statusgrund($row_status->statusgrund_id); + $statusgrundId = null; + if ($statusgrundObj->statusgrund_kurzbz === "prewiederholer" && $row_status->ausbildungssemester > 1) + { + $s = $row->semester_stlv - 1; + $ausbildungssemester = $row_status->ausbildungssemester - 1; + $statusgrundId = $statusgrundObj->getByStatusgrundKurzbz('wiederholer')->statusgrund_id; + } + $lvb = new lehrverband(); //Lehrverbandgruppe anlegen, wenn noch nicht vorhanden @@ -364,14 +376,15 @@ if (isset($_POST['vorr'])) //Eintragen des neuen Status $sql .= "INSERT INTO public.tbl_prestudentstatus (prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester, datum, insertamum, - insertvon, updateamum, updatevon, ext_id, orgform_kurzbz, studienplan_id) + insertvon, updateamum, updatevon, ext_id, orgform_kurzbz, studienplan_id, statusgrund_id) VALUES (".$db->db_add_param($row->prestudent_id).", ". $db->db_add_param($row_status->status_kurzbz).", ". $db->db_add_param($next_ss).", ". $db->db_add_param($ausbildungssemester).", now(), now(), ". $db->db_add_param($user).", NULL, NULL, NULL, ". $db->db_add_param($row_status->orgform_kurzbz).", ". - $db->db_add_param($studienplan_id).");"; + $db->db_add_param($studienplan_id).", ". + $db->db_add_param($statusgrundId).");"; } if ($sql != '') { @@ -408,7 +421,7 @@ $outp .= ' Studiengang: - '; //Auswahl Studiengang foreach ($studiengang as $stg) @@ -420,7 +433,7 @@ foreach ($studiengang as $stg) $url .= "&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt"; $url .= "&studiensemester_kurzbz_zk=$studiensemester_kurzbz_zk"; - $outp .= ""; if (!isset($s[$stg->studiengang_kz])) $s[$stg->studiengang_kz] = new stdClass(); @@ -435,17 +448,12 @@ $outp .= ' $outp .= " Angezeigtes Studiensemester: - \n"; if (isset($ss_arr) && is_array($ss_arr)) { foreach ($ss_arr as $sts) { - if ($studiensemester_kurzbz == $sts) - $sel = " selected "; - else - $sel = ''; - $url = $_SERVER['PHP_SELF']."?stg_kz=$stg_kz"; $url .= "&semester=$semester"; $url .= "&semesterv=$semesterv"; @@ -453,7 +461,7 @@ if (isset($ss_arr) && is_array($ss_arr)) $url .= "&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt"; $url .= "&studiensemester_kurzbz_zk=$studiensemester_kurzbz_zk"; - $outp .= ""; + $outp .= ""; } } $outp .= " @@ -493,17 +501,12 @@ $outp .= ' Ausgangs-Studiensemester: - '; if (isset($ss_arr) && is_array($ss_arr)) { foreach ($ss_arr as $sts2) { - if ($studiensemester_kurzbz_akt == $sts2) - $sel2 = " selected "; - else - $sel2 = ''; - $url = $_SERVER['PHP_SELF']."?stg_kz=$stg_kz"; $url .= "&semester=$semester"; $url .= "&semesterv=$semesterv"; @@ -511,7 +514,7 @@ if (isset($ss_arr) && is_array($ss_arr)) $url .= "&studiensemester_kurzbz_akt=$sts2"; $url .= "&studiensemester_kurzb_zk=$studiensemester_kurzbz_zk"; - $outp .= ""; + $outp .= ""; } } $outp .= " @@ -547,7 +550,7 @@ $outp .= 'alle -- $outp .= " Ziel-Studiensemester: - \n"; if (isset($ss_arr) && is_array($ss_arr)) { @@ -565,7 +568,7 @@ if (isset($ss_arr) && is_array($ss_arr)) $url .= "&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt"; $url .= "&studiensemester_kurzbz_zk=$sts3"; - $outp .= ""; + $outp .= ""; } } $outp .= " \n @@ -617,11 +620,12 @@ if ($result_std != 0) $row = $db->db_fetch_object($result_std, $i); $qry_status = " SELECT - status_kurzbz, ausbildungssemester, tbl_studienplan.studienplan_id, tbl_studienplan.bezeichnung + tbl_prestudentstatus.status_kurzbz, statusgrund_kurzbz, ausbildungssemester, tbl_studienplan.studienplan_id, tbl_studienplan.bezeichnung FROM public.tbl_prestudentstatus JOIN public.tbl_prestudent USING(prestudent_id) LEFT JOIN lehre.tbl_studienplan USING(studienplan_id) + LEFT JOIN public.tbl_status_grund USING (statusgrund_id) WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)." @@ -638,6 +642,7 @@ if ($result_std != 0) if ($row_status = $db->db_fetch_object($result_status)) { $status_kurzbz = $row_status->status_kurzbz; + $statusgrund_kurzbz = $row_status->statusgrund_kurzbz; $ausbildungssemester = $row_status->ausbildungssemester; $studienplan_id = $row_status->studienplan_id; $studienplan_bezeichnung = $row_status->bezeichnung; From 7bd68775e9638674138326c37b3881c5c75ff574 Mon Sep 17 00:00:00 2001 From: manu Date: Fri, 23 Jul 2021 13:44:28 +0200 Subject: [PATCH 12/27] =?UTF-8?q?statusgrund=5Fkurzbz=20in=20dbupdate=20er?= =?UTF-8?q?g=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/dbupdate_3.3.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 407a4aa24..39be74dfb 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4781,6 +4781,19 @@ if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_pruef } } +//Add Column statusgrund_kurzbz to public.tbl_status_grund +if(!@$db->db_query("SELECT statusgrund_kurzbz FROM public.tbl_status_grund LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_status_grund ADD COLUMN statusgrund_kurzbz varchar(32); + ALTER TABLE public.tbl_status_grund ADD CONSTRAINT uk_tbl_statusgrund_kurzbz UNIQUE (statusgrund_kurzbz); + "; + + if(!$db->db_query($qry)) + echo 'public.tbl_status_grund '.$db->db_last_error().'
'; + else + echo '
Neue Spalte statusgrund_kurzbz zu Tabelle public.tbl_status_grund hinzugefügt'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -5002,7 +5015,7 @@ $tabellen=array( "public.tbl_rt_person" => array("rt_person_id","person_id","rt_id","studienplan_id","anmeldedatum","teilgenommen","ort_kurzbz","punkte","insertamum","insertvon","updateamum","updatevon"), "public.tbl_rt_studienplan" => array("reihungstest_id","studienplan_id"), "public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id","bezeichnung_mehrsprachig"), - "public.tbl_status_grund" => array("statusgrund_id","status_kurzbz","aktiv","bezeichnung_mehrsprachig","beschreibung"), + "public.tbl_status_grund" => array("statusgrund_id","status_kurzbz","aktiv","bezeichnung_mehrsprachig","beschreibung","statusgrund_kurzbz"), "public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"), "public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id","design_uid","betrieb_uid","operativ_uid","servicekategorie_kurzbz"), "public.tbl_servicekategorie" => array("servicekategorie_kurzbz", "bezeichnung","sort"), From 9180930e64be46e7088bc4912878d11dddeb5c0e Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Thu, 29 Jul 2021 09:09:29 +0200 Subject: [PATCH 13/27] functions for student.rdf urls to add orgform parameter if needed --- content/student/studentoverlay.js.php | 87 +++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 5 deletions(-) diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index f034ae473..3830ae21b 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -1034,7 +1034,13 @@ function StudentAuswahl() StudentGesamtNotenTreeloaded=false; stsem = getStudiensemester(); - var url = 'rdf/student.rdf.php?prestudent_id='+prestudent_id+'&studiensemester_kurzbz='+stsem+'&'+gettimestamp(); + //var url = 'rdf/student.rdf.php?prestudent_id='+prestudent_id+'&studiensemester_kurzbz='+stsem+'&'+gettimestamp(); + var url = buildStudentRDFURI({ + 'prestudent_id': prestudent_id, + 'studiensemester_kurzbz': stsem + }); + + console.log(url); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. getService(Components.interfaces.nsIRDFService); @@ -2564,11 +2570,49 @@ function StudentKontoFilter() kontotree.builder.addListener(StudentKontoTreeListener); } +// **** +// * Generiert eine student.rdf URI +// **** +function buildStudentRDFURI(queryparams, tree) +{ + var baseurl = "rdf/student.rdf.php"; + console.log(JSON.stringify(tree)); + if ( typeof tree !== "undefined" ) + { + var col = tree.columns ? tree.columns["tree-verband-col-orgform"] : "tree-verband-col-orgform"; + queryparams.orgform = tree.view.getCellText(tree.currentIndex,col); + } + return _buildURI(baseurl, queryparams); +} + +// **** +// * Generiert aus einer BasisURL und einem Dictionary von Parametern eine URI +// **** +function _buildURI(baseurl, queryparams) +{ + var str = []; + var url = baseurl; + for (var p in queryparams) + { + if ( queryparams.hasOwnProperty(p) && queryparams[p].length > 0 ) + { + str.push(encodeURIComponent(p) + "=" + encodeURIComponent(queryparams[p])); + } + } + var querystring = str.join("&"); + if ( querystring.length > 0 ) + { + url = url + '?' + querystring + '&' + gettimestamp(); + } + return url; +} + // **** // * Setzt im Studententree einen vordefinierten Filter // **** function StudentKontoFilterStudenten(filter) { + //alert(filter); netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree=document.getElementById('tree-verband'); @@ -2591,12 +2635,26 @@ function StudentKontoFilterStudenten(filter) var gruppe = getTreeCellText(tree, 'gruppe', tree.currentIndex); var typ = getTreeCellText(tree, 'typ', tree.currentIndex); var stsem = getTreeCellText(tree, 'stsem', tree.currentIndex); - + if(stsem=='') stsem = getStudiensemester(); if(typ=='') typ='student'; - url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2="+filter+"&buchungstyp="+buchungstyp+"&"+gettimestamp(); + + var url = buildStudentRDFURI({ + 'studiengang_kz': stg_kz, + 'semester': sem, + 'verband': ver, + 'gruppe': grp, + 'gruppe_kurzbz': gruppe, + 'studiensemester_kurzbz': stsem, + 'typ': typ, + 'filter2': filter, + 'buchungstyp': buchungstyp + }, tree); + + console.log(url); + var treeStudent=document.getElementById('student-tree'); try @@ -2614,6 +2672,7 @@ function StudentKontoFilterStudenten(filter) treeStudent.database.RemoveDataSource(oldDatasources.getNext()); } + //alert(url); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); StudentTreeDatasource = rdfService.GetDataSource(url); StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); @@ -2655,7 +2714,20 @@ function StudentKontoFilterBuchungstyp() stsem = getStudiensemester(); if(typ=='') typ='student'; - url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=buchungstyp;"+filter+"&"+gettimestamp(); + //url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=buchungstyp;"+filter+"&"+gettimestamp(); + var url = buildStudentRDFURI({ + 'studiengang_kz': stg_kz, + 'semester': sem, + 'verband': ver, + 'gruppe': grp, + 'gruppe_kurzbz': gruppe, + 'studiensemester_kurzbz': stsem, + 'typ': typ, + 'filter2': 'buchungstyp;' + filter + }, tree); + + console.log(url); + var treeStudent=document.getElementById('student-tree'); try @@ -5436,8 +5508,13 @@ function StudentSuche() document.getElementById('tree-verband').view.selection.clearSelection(); //Datasource setzten und Felder deaktivieren - url = "rdf/student.rdf.php?filter="+encodeURIComponent(filter)+"&"+gettimestamp(); + //url = "rdf/student.rdf.php?filter="+encodeURIComponent(filter)+"&"+gettimestamp(); + var url = buildStudentRDFURI({ + 'filter': filter + }); + console.log(url); + var treeStudent=document.getElementById('student-tree'); try From de1c532ca9d43af5f80107fc950c0fe8de794f9f Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Thu, 29 Jul 2021 09:11:31 +0200 Subject: [PATCH 14/27] dead code and console.logs removed --- content/student/studentoverlay.js.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 3830ae21b..57e14083a 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -1034,13 +1034,11 @@ function StudentAuswahl() StudentGesamtNotenTreeloaded=false; stsem = getStudiensemester(); - //var url = 'rdf/student.rdf.php?prestudent_id='+prestudent_id+'&studiensemester_kurzbz='+stsem+'&'+gettimestamp(); + var url = buildStudentRDFURI({ 'prestudent_id': prestudent_id, 'studiensemester_kurzbz': stsem }); - - console.log(url); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. getService(Components.interfaces.nsIRDFService); @@ -2576,7 +2574,6 @@ function StudentKontoFilter() function buildStudentRDFURI(queryparams, tree) { var baseurl = "rdf/student.rdf.php"; - console.log(JSON.stringify(tree)); if ( typeof tree !== "undefined" ) { var col = tree.columns ? tree.columns["tree-verband-col-orgform"] : "tree-verband-col-orgform"; @@ -2714,7 +2711,7 @@ function StudentKontoFilterBuchungstyp() stsem = getStudiensemester(); if(typ=='') typ='student'; - //url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=buchungstyp;"+filter+"&"+gettimestamp(); + var url = buildStudentRDFURI({ 'studiengang_kz': stg_kz, 'semester': sem, @@ -2726,8 +2723,6 @@ function StudentKontoFilterBuchungstyp() 'filter2': 'buchungstyp;' + filter }, tree); - console.log(url); - var treeStudent=document.getElementById('student-tree'); try @@ -5508,12 +5503,9 @@ function StudentSuche() document.getElementById('tree-verband').view.selection.clearSelection(); //Datasource setzten und Felder deaktivieren - //url = "rdf/student.rdf.php?filter="+encodeURIComponent(filter)+"&"+gettimestamp(); var url = buildStudentRDFURI({ 'filter': filter }); - - console.log(url); var treeStudent=document.getElementById('student-tree'); From 9f5a8e4eb9709640e56fd6ba1d5f995544df66c6 Mon Sep 17 00:00:00 2001 From: Manfred Date: Tue, 7 Sep 2021 15:01:12 +0200 Subject: [PATCH 15/27] =?UTF-8?q?Updateaktiv-Datum=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/fhausweis/kartenruecknahme.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vilesci/fhausweis/kartenruecknahme.php b/vilesci/fhausweis/kartenruecknahme.php index f51cb0347..00518a293 100644 --- a/vilesci/fhausweis/kartenruecknahme.php +++ b/vilesci/fhausweis/kartenruecknahme.php @@ -178,7 +178,7 @@ if ($action == 'kartenabfrage' || $action == 'kartenruecknahme') } elseif ($mitarbeiter->load($bmp->uid)) { - echo '
Letzter Status: '.($benutzer->bnaktiv ? 'Mitarbeiter*in aktiv' : 'Mitarbeiter*in inaktiv').'
'; + echo '
Letzter Status: '.($benutzer->bnaktiv ? 'Mitarbeiter*in aktiv' : 'Mitarbeiter*in inaktiv seit '.$datum_obj->formatDatum($benutzer->updateaktivam,'d.m.Y').'').'
'; } else { @@ -197,7 +197,7 @@ if ($action == 'kartenabfrage' || $action == 'kartenruecknahme')
'; } - if(!$rechte->isBerechtigt('basis/fhausweis', 'suid')) + if($rechte->isBerechtigt('basis/fhausweis', 'suid')) { echo '
From 261e4066c80cfa8da1a65ad498c5f83c0c64d32f Mon Sep 17 00:00:00 2001 From: Manfred Date: Tue, 7 Sep 2021 15:05:35 +0200 Subject: [PATCH 16/27] Beginn- und Enddatum bei der Funktion Rektor beruecksichtigen --- rdf/abschlusspruefung.rdf.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/rdf/abschlusspruefung.rdf.php b/rdf/abschlusspruefung.rdf.php index f28319599..8c2764d86 100644 --- a/rdf/abschlusspruefung.rdf.php +++ b/rdf/abschlusspruefung.rdf.php @@ -129,7 +129,19 @@ function draw_content_xml($row) if($person->load($row->pruefer3)) $pruefer3 = trim($person->titelpre.' '.$person->vorname.' '.$person->nachname.' '.$person->titelpost); - $qry = "SELECT * FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) WHERE funktion_kurzbz='rek'"; + $qry = "SELECT * + FROM PUBLIC.tbl_benutzerfunktion + JOIN campus.vw_mitarbeiter USING (uid) + WHERE funktion_kurzbz = 'rek' + AND ( + tbl_benutzerfunktion.datum_von <= now() + OR tbl_benutzerfunktion.datum_von IS NULL + ) + AND ( + tbl_benutzerfunktion.datum_bis >= now() + OR tbl_benutzerfunktion.datum_bis IS NULL + ) + ORDER BY tbl_benutzerfunktion.insertamum DESC LIMIT 1"; $rektor = ''; $db = new basis_db(); $db2 = new basis_db(); From ebb7af1e59ec8f365c75093883a39b4fed1c0117 Mon Sep 17 00:00:00 2001 From: Manfred Date: Tue, 7 Sep 2021 15:11:12 +0200 Subject: [PATCH 17/27] Bei Abgewiesenen 0 als Prio anzeigen --- vilesci/stammdaten/auswertung_fhtw.php | 1 + 1 file changed, 1 insertion(+) diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index 752467913..1acfe1a55 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -3002,6 +3002,7 @@ else if ($erg->letzter_status == 'Abgewiesener') { $inaktiv = 'text-muted'; + $erg->prioritaet = 0; } echo " From d4a05c91e3ba0a7ef0e18754d915884a830c554e Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 8 Sep 2021 09:23:33 +0200 Subject: [PATCH 18/27] =?UTF-8?q?Vorr=C3=BCckung=20der=20Studienpl=C3=A4ne?= =?UTF-8?q?=20auch=20f=C3=BCrs=20SS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/lehre/studienplan_vorrueckung.php | 130 +++++++++++++--------- 1 file changed, 76 insertions(+), 54 deletions(-) diff --git a/vilesci/lehre/studienplan_vorrueckung.php b/vilesci/lehre/studienplan_vorrueckung.php index 940ac8d45..871656331 100644 --- a/vilesci/lehre/studienplan_vorrueckung.php +++ b/vilesci/lehre/studienplan_vorrueckung.php @@ -67,6 +67,13 @@ echo ' }); $("#t1").checkboxes("range", true); + + $("#select_studiensemester_kurzbz_from").change(function() + { + var index = $(this).prop("selectedIndex"); + index = index+3; + $("#select_studiensemester_kurzbz_to :nth-child("+index+")").prop("selected", true); + }); }); Studienplan Semester Vorrückung @@ -96,10 +103,10 @@ if($studiensemester_kurzbz_to == '') echo ''; -echo ' Quelle: '; $stsem = new studiensemester(); -$stsem->getAll(); +$stsem->getPlusMinus(null,10,'ende ASC'); foreach($stsem->studiensemester as $row) { @@ -113,10 +120,7 @@ foreach($stsem->studiensemester as $row) } echo ''; -echo ' Ziel:'; foreach($stsem->studiensemester as $row) { @@ -168,7 +172,7 @@ if(isset($_POST['show']) && $studiensemester_kurzbz_from != '' && $studiensemest studienplan.sprache FROM lehre.tbl_studienplan studienplan JOIN lehre.tbl_studienplan_semester USING (studienplan_id) - JOIN lehre.tbl_studienordnung USING (studienordnung_id) + JOIN lehre.tbl_studienordnung sto USING (studienordnung_id) JOIN PUBLIC.tbl_studiengang USING (studiengang_kz) WHERE tbl_studienplan_semester.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz_from, FHC_STRING)." AND NOT EXISTS ( @@ -179,60 +183,78 @@ if(isset($_POST['show']) && $studiensemester_kurzbz_from != '' && $studiensemest AND orgform_kurzbz = studienplan.orgform_kurzbz AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz_to, FHC_STRING)." ) + AND NOT EXISTS ( + SELECT 1 + FROM lehre.tbl_studienplan_semester + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN lehre.tbl_studienordnung USING (studienordnung_id) + WHERE orgform_kurzbz = studienplan.orgform_kurzbz + AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz_to, FHC_STRING)." + AND studiengang_kz = sto.studiengang_kz + ) AND tbl_studiengang.typ IN ('b', 'm', 'l') - AND studienplan.onlinebewerbung_studienplan = true - AND tbl_studienplan_semester.semester = 1 - ORDER BY studiengang"; + AND studienplan.onlinebewerbung_studienplan = true"; + if (substr($studiensemester_kurzbz_from,0,2) == 'SS') + { + $qry .= " AND tbl_studienplan_semester.semester = 2"; + } + else + { + $qry .= " AND tbl_studienplan_semester.semester = 1"; + } + $qry .= " ORDER BY studiengang"; if($result = $db->db_query($qry)) { echo '
Anzahl: '.$db->db_num_rows($result); - //$pruefling = new pruefling(); - - echo ''; - echo ''; - echo ''; - echo ''; - echo ' - - - - - - - - - - - '; - while($row = $db->db_fetch_object($result)) + + if ($db->db_num_rows($result) > 0) { - echo ' - - - - - - - - '; + echo ''; + echo ''; + echo ''; + echo ''; + echo '
- - - - - StudiengangOrganisationsformBezeichnungSpracheStudienplan ID
'.$row->studiengang.''.$row->orgform_kurzbz.''.$row->bezeichnung.''.$row->sprache.''.$row->studienplan_id.'
+ + + + + + + + + + + '; + while ($row = $db->db_fetch_object($result)) + { + echo ' + + + + + + + + '; + } + echo "
+ + + + + StudiengangOrganisationsformBezeichnungSpracheStudienplan ID
'.$row->studiengang.''.$row->orgform_kurzbz.''.$row->bezeichnung.''.$row->sprache.''.$row->studienplan_id.'
"; + if ($rechte->isBerechtigt('lehre/studienordnung', null, 'suid')) + { + echo ''; + } + else + { + echo ' Keine Berechtigung zum Vorrücken von Studienplänen'; + } + + echo ''; } - echo ""; - if($rechte->isBerechtigt('lehre/studienordnung', null, 'suid')) - { - echo ''; - } - else - { - echo ' Keine Berechtigung zum Vorrücken von Studienplänen'; - } - - echo ''; } } From 4e7da23bf5dfe09e88271c98497f05c15a1ac729 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 8 Sep 2021 09:24:18 +0200 Subject: [PATCH 19/27] =?UTF-8?q?Option=20auch=20Pr=C3=BCfling=20zu=20l?= =?UTF-8?q?=C3=B6schen=20in=20RT-Administration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reihungstest_administration.php | 53 ++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/vilesci/stammdaten/reihungstest_administration.php b/vilesci/stammdaten/reihungstest_administration.php index b1db58e5e..658f01b31 100644 --- a/vilesci/stammdaten/reihungstest_administration.php +++ b/vilesci/stammdaten/reihungstest_administration.php @@ -330,7 +330,7 @@ if($result = $db->db_query($qry)) } echo ''; } - +echo '   Auch Prüfling löschen  '; echo '        '; if(isset($_POST['deleteteilgebiet'])) { @@ -526,6 +526,57 @@ if(isset($_POST['delete_all'])) $db->errormsg = 'Fehler beim Loeschen der Daten'; $db->db_query('ROLLBACK'); } + + // Wenn Option angeklickt ist, auch den Prüfling löschen + if (isset($_POST['deletePruefling']) && $_POST['deletePruefling'] == 'on') + { + $qry = "SELECT * FROM testtool.tbl_pruefling WHERE prestudent_id=".$db->db_add_param($_POST['prestudent'])."; + "; + + if($db->db_query($qry)) + { + while($row = $db->db_fetch_object()) + { + $undo=" INSERT INTO testtool.tbl_pruefling(pruefling_id, studiengang_kz, idnachweis, registriert, prestudent_id, semester) VALUES (". + $db->db_add_param($row->pruefling_id, FHC_INTEGER).', '. + $db->db_add_param($row->studiengang_kz, FHC_INTEGER).', '. + $db->db_add_param($row->idnachweis).', '. + $db->db_add_param($row->registriert).', '. + $db->db_add_param($row->prestudent_id, FHC_INTEGER).', '. + $db->db_add_param($row->semester, FHC_INTEGER).');'; + } + } + else + { + $db->errormsg = 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_pruefling'; + $db->db_query('ROLLBACK'); + return false; + } + $qry = "DELETE FROM testtool.tbl_pruefling WHERE prestudent_id=".$db->db_add_param($_POST['prestudent']).";"; + + if($result = $db->db_query($qry)) + { + //Log schreiben + $log = new log(); + + $log->new = true; + $log->sql = $qry; + $log->sqlundo = $undo; + $log->executetime = date('Y-m-d H:i:s'); + $log->mitarbeiter_uid = $user; + $log->beschreibung = "Prüfling von Prestudent ".$_POST['prestudent']." geloescht"; + + if(!$log->save()) + { + $db->errormsg = 'Fehler beim Schreiben des Log-Eintrages'; + $db->db_query('ROLLBACK'); + return false; + } + + $db->db_query('COMMIT;'); + echo '
Prüfling wurde gelöscht'; + } + } } else echo 'Um alle Antworten eines Prüflings zu löschen, wählen Sie im DropDown bitte "Alle Gebiete" aus'; From 6cd81ac96e7be3b635d698b2b7fc20c45f1ae878 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 8 Sep 2021 09:27:32 +0200 Subject: [PATCH 20/27] Warnung im FAS, wenn inaktive BenutzerInnen gespeichert werden --- content/lvplanung/lehrveranstaltungDBDML.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index 9d9461c70..f764545a6 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -402,6 +402,20 @@ if(!$error) } } } + + //Pruefen, ob Benutzer inaktiv ist. Wenn ja, eine Warnung ausgeben + $benutzerAktiv = false; + if(!$error) + { + $benutzer = new benutzer($lem->mitarbeiter_uid); + $benutzerAktiv = $benutzer->bnaktiv; + if (!$benutzerAktiv) + { + $return = true; + $warnung = true; + $errormsg = "Achtung: Der/Die Benutzer*in ist inaktiv!\nBitte informieren Sie die Personalbteilung.\n\nDaten wurden gespeichert.\n\n"; + } + } } if(!$error) From b6ae992c3c560a0e13204d833d3580ec4d3abef4 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 8 Sep 2021 11:41:45 +0200 Subject: [PATCH 21/27] getrennte msg bei freigabe qualikurs und einstieg anderes semester --- .../views/system/infocenter/zgvpruefungen.php | 2 +- public/js/infocenter/infocenterDetails.js | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php index 05c94c384..a2b2f8da8 100644 --- a/application/views/system/infocenter/zgvpruefungen.php +++ b/application/views/system/infocenter/zgvpruefungen.php @@ -414,7 +414,7 @@ selected="selected">p->t('ui', 'freigabeart')) . '...' ?> - + diff --git a/public/js/infocenter/infocenterDetails.js b/public/js/infocenter/infocenterDetails.js index 70f5ed982..79129f3e2 100644 --- a/public/js/infocenter/infocenterDetails.js +++ b/public/js/infocenter/infocenterDetails.js @@ -10,6 +10,7 @@ const RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ = "InfocenterRTfreigegQuerKurz"; const STGFREIGABE_MESSAGE_VORLAGE = "InfocenterSTGfreigegeben"; const STGFREIGABE_MESSAGE_VORLAGE_MASTER = "InfocenterSTGfreigegebenM"; const STGFREIGABE_MESSAGE_VORLAGE_MASTER_ENGLISCH = "InfocenterSTGfreigegebenMEng"; +const STGFREIGABE_MESSAGE_VORLAGE_ANDERES_SEMESTER = "InfocenterSTGfreigegebenSemester"; //Statusgründe for which no Studiengang Freigabe Message should be sent const FIT_PROGRAMM_STUDIENGAENGE = [10021, 10027]; @@ -653,7 +654,7 @@ var InfocenterDetails = { } else { - if (receiverPrestudent.studiengangtyp === 'm' && (freigabedata.statusgrundbezeichnung === 'Ergänzungsprüfungen' || freigabedata.statusgrundbezeichnung === 'Supplementary exams')) + if (receiverPrestudent.studiengangtyp === 'm' && freigabedata.statuskurzbz === 'ergPruefung') { msgvars = { 'studiengangbezeichnung': studiengangbezeichnung, @@ -671,7 +672,11 @@ var InfocenterDetails = { //if Freigabe to Studiengang, send StgFreigabe Message if not already sent and allowed to send else if (!stgFreigegeben && receiverPrestudent.sendStgFreigabeMsg === true) { - InfocenterDetails.sendFreigabeMessage(prestudent_id, STGFREIGABE_MESSAGE_VORLAGE, msgvars); + if (receiverPrestudent.studiengangtyp === 'b' && freigabedata.statuskurzbz === 'anderesSemester') + vorlage = STGFREIGABE_MESSAGE_VORLAGE_ANDERES_SEMESTER + else + vorlage = STGFREIGABE_MESSAGE_VORLAGE + InfocenterDetails.sendFreigabeMessage(prestudent_id, vorlage, msgvars); } } }; @@ -847,7 +852,8 @@ var InfocenterDetails = { var statusgrundel = $("#frgstatusgrselect_" + prestudent_id + " select[name=frgstatusgrund]"); var statusgrund_id = statusgrundel.val(); var statusgrundbezeichnung = statusgrundel.find("option[value="+statusgrund_id+"]").text(); - var data = {"prestudent_id": prestudent_id, "statusgrund_id": statusgrund_id, "statusgrundbezeichnung": statusgrundbezeichnung}; + var statuskurzbz = statusgrundel.find(':selected').data('kurzbz'); + var data = {"prestudent_id": prestudent_id, "statusgrund_id": statusgrund_id, "statusgrundbezeichnung": statusgrundbezeichnung, "statuskurzbz" : statuskurzbz}; InfocenterDetails.saveFreigabe(data);//Studiengangfreigabe } ); From 602eb5873a69a969e7879c5649cb27d9b3d26c9c Mon Sep 17 00:00:00 2001 From: Manfred Date: Wed, 8 Sep 2021 19:16:39 +0200 Subject: [PATCH 22/27] =?UTF-8?q?Kopierbutton=20f=C3=BCr=20Funktionen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/funktionen.js.php | 6 +++++- content/funktionen.xul.php | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/content/funktionen.js.php b/content/funktionen.js.php index e77c47548..ae9edd2af 100644 --- a/content/funktionen.js.php +++ b/content/funktionen.js.php @@ -270,7 +270,7 @@ function FunktionDelete() // **** // * Speichert die Daten // **** -function FunktionDetailSpeichern() +function FunktionDetailSpeichern(kopie) { var funktion_kurzbz = document.getElementById('funktion-menulist-funktion').value; var oe_kurzbz = document.getElementById('funktion-menulist-oe_kurzbz').value; @@ -283,6 +283,9 @@ function FunktionDetailSpeichern() var bezeichnung = document.getElementById('funktion-textbox-bezeichnung').value; var wochenstunden = document.getElementById('funktion-textbox-wochenstunden').value; + if(kopie == true) + var neu = true; + //Bei Mitarbeitern wird kein Studiengang mitgeschickt if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) studiengang_kz_berecht=''; @@ -412,6 +415,7 @@ function FunktionDetailDisableFields(val) document.getElementById('funktion-menulist-semester').disabled=val; document.getElementById('funktion-menulist-funktion').disabled=val; document.getElementById('funktion-button-speichern').disabled=val; + document.getElementById('funktion-button-kopiespeichern').disabled=val; document.getElementById('funktion-box-datum_von').disabled=val; document.getElementById('funktion-box-datum_bis').disabled=val; document.getElementById('funktion-textbox-bezeichnung').disabled=val; diff --git a/content/funktionen.xul.php b/content/funktionen.xul.php index 9bbe10686..b80cdd455 100644 --- a/content/funktionen.xul.php +++ b/content/funktionen.xul.php @@ -289,7 +289,8 @@ else -