From fe94cfc35009b21ddd262aaceb362510b6253231 Mon Sep 17 00:00:00 2001 From: Cris Date: Fri, 25 Oct 2019 08:35:07 +0200 Subject: [PATCH] Avoided removing lector on Key-press 'Entf', when contract exists The remove of the lector was avoided by disabled 'Entfernen' in the context menu, but still possible on key press 'Entf'. Now this is prevented and a message is displayed. For lectors in LV and for Projektbetreuer. --- content/lvplanung/lehrveranstaltungDBDML.php | 74 ++++++++++--------- .../lvplanung/lehrveranstaltungoverlay.js.php | 1 + content/student/studentDBDML.php | 32 ++++---- content/student/studentprojektarbeit.js.php | 1 + 4 files changed, 60 insertions(+), 48 deletions(-) diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index f63d9f807..76d09f5c0 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -692,50 +692,58 @@ if(!$error) //Lehreinheitmitarbeiterzuteilung loeschen if(isset($_POST['lehreinheit_id']) && is_numeric($_POST['lehreinheit_id']) && isset($_POST['mitarbeiter_uid'])) { - //Wenn der Mitarbeiter im Stundenplan verplant ist, dann wird das Loeschen verhindert - $qry = "SELECT stundenplandev_id as id FROM lehre.tbl_stundenplandev WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND mitarbeiter_uid=".$db->db_add_param($_POST['mitarbeiter_uid'])." - UNION - SELECT stundenplan_id as id FROM lehre.tbl_stundenplan WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND mitarbeiter_uid=".$db->db_add_param($_POST['mitarbeiter_uid']); - if($db->db_query($qry)) + // Wenn der Mitarbeiter schon einen Vertrag hat, wird das Loeschen verhindert + if (isset($_POST['vertrag_id']) && is_numeric($_POST['vertrag_id'])) { - if($db->db_num_rows()>0) + $return = false; + $errormsg = 'Löschen nur nach Stornierung des Vertrags möglich.'; + } + else + { + //Wenn der Mitarbeiter im Stundenplan verplant ist, dann wird das Loeschen verhindert + $qry = "SELECT stundenplandev_id as id FROM lehre.tbl_stundenplandev WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND mitarbeiter_uid=".$db->db_add_param($_POST['mitarbeiter_uid'])." + UNION + SELECT stundenplan_id as id FROM lehre.tbl_stundenplan WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND mitarbeiter_uid=".$db->db_add_param($_POST['mitarbeiter_uid']); + if($db->db_query($qry)) { - $return = false; - $errormsg = 'Dieser Lektor kann nicht gelöscht werden da er schon verplant ist'; - } - else - { - $leg = new lehreinheitmitarbeiter(); - if($leg->load($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid'])) + if($db->db_num_rows()>0) { - // Wenn ein Vertrag dazu angelegt ist, dann diesen mitloeschen - if($leg->vertrag_id!='') + $return = false; + $errormsg = 'Dieser Lektor kann nicht gelöscht werden da er schon verplant ist'; + } + else + { + $leg = new lehreinheitmitarbeiter(); + if($leg->load($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid'])) { - $vertrag = new vertrag(); - $vertrag->delete($leg->vertrag_id); - } - - if($leg->delete($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid'])) - { - $return = true; + // Wenn ein Vertrag dazu angelegt ist, dann diesen mitloeschen + if($leg->vertrag_id!='') + { + $vertrag = new vertrag(); + $vertrag->delete($leg->vertrag_id); + } + if($leg->delete($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid'])) + { + $return = true; + } + else + { + $return = false; + $errormsg = $leg->errormsg; + } } else { $return = false; - $errormsg = $leg->errormsg; + $errormsg='Fehlgeschlagen:'.$leg->errormsg; } } - else - { - $return = false; - $errormsg='Fehlgeschlagen:'.$leg->errormsg; - } } - } - else - { - $return = false; - $errormsg = 'Fehler:'.$qry; + else + { + $return = false; + $errormsg = 'Fehler:'.$qry; + } } } else diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index 00f90b223..96d9d1c5b 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -1131,6 +1131,7 @@ function LeMitarbeiterDel() req.add('type', 'lehreinheit_mitarbeiter_del'); req.add('lehreinheit_id', lehreinheit_id); req.add('mitarbeiter_uid', uid); + req.add('vertrag_id', vertrag_id); var response = req.executePOST(); var val = new ParseReturnValue(response) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 5deced246..1d79919c7 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -3803,25 +3803,27 @@ if(!$error) } else { - //Loescht einen Projektbetreuer Eintrag - if(isset($_POST['person_id']) && is_numeric($_POST['person_id'])) + // Wenn der Projektbetreuer schon einen Vertrag hat, wird das Loeschen verhindert + if (isset($_POST['vertrag_id']) && is_numeric($_POST['vertrag_id'])) { - $projektbetreuer = new projektbetreuer(); - - if($projektbetreuer->delete($_POST['person_id'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz'])) - { - $return = true; - } - else - { - $errormsg = $projektbetreuer->errormsg; - $return = false; - } + $return = false; + $errormsg = 'Löschen nur nach Stornierung des Vertrags möglich.'; } else { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; + //Loescht einen Projektbetreuer Eintrag + if (isset($_POST['person_id']) && is_numeric($_POST['person_id'])) { + $projektbetreuer = new projektbetreuer(); + if ($projektbetreuer->delete($_POST['person_id'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz'])) { + $return = true; + } else { + $errormsg = $projektbetreuer->errormsg; + $return = false; + } + } else { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } } } } diff --git a/content/student/studentprojektarbeit.js.php b/content/student/studentprojektarbeit.js.php index ae0378232..14a4e788a 100644 --- a/content/student/studentprojektarbeit.js.php +++ b/content/student/studentprojektarbeit.js.php @@ -1321,6 +1321,7 @@ function StudentProjektbetreuerLoeschen() req.add('projektarbeit_id', projektarbeit_id); req.add('betreuerart_kurzbz', betreuerart_kurzbz); req.add('studiengang_kz', studiengang_kz); + req.add('vertrag_id', vertrag_id); var response = req.executePOST();