diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index 1a4322c6b..2650401d3 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -863,6 +863,106 @@ if(!$error) } } } + elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_lektor_del_lvplan') + { + //Pruefen ob dieser Lektor im Stundenplan schon verplant wurde + $qry = "SELECT tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.lehrveranstaltung_id + FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach + WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND + tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER); + if($db->db_query($qry)) + { + if($row = $db->db_fetch_object()) + { + $lva = new lehrveranstaltung($row->lehrveranstaltung_id); + + if(!$rechte->isBerechtigtMultipleOe('lv-plan/lektorentfernen', $lva->getAllOe(), 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Keine Berechtigung'; + } + } + else + { + $error = true; + $return = false; + $errormsg = 'Lehreinheit wurde nicht gefunden'; + } + } + else + { + $error = true; + $return = false; + $errormsg = 'Lehreinheit wurde nicht gefunden'; + } + + // Wenn nur noch dieser Lektor im LVPlan verplant ist, dann wird das loeschen verhindert + // da sonst der gesamte LVPlan der Lehreinheit weg ist + $qry = "SELECT + distinct mitarbeiter_uid + FROM + lehre.tbl_stundenplandev + WHERE + lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER); + + if($result = $db->db_query($qry)) + { + if($db->db_num_rows($result)<2) + { + $error = true; + $return = false; + $errormsg='Dieser Lektor kann nicht aus dem LVPlan entfernt werden da dies der letzte verplante Lektor ist'; + } + } + + // Wenn Ressourcen an einem der Stundenplaneintraege haengen die geloescht werden wuerden + // dann wird das loeschen verhindert + $qry = "SELECT + 1 + FROM + lehre.tbl_stundenplandev + JOIN lehre.tbl_stundenplan_betriebsmittel USING(stundenplandev_id) + WHERE + tbl_stundenplandev.lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." + AND tbl_stundenplandev.mitarbeiter_uid=".$db->db_add_param($_POST['mitarbeiter_uid']); + + if($result = $db->db_query($qry)) + { + if($db->db_num_rows($result)>0) + { + $return = false; + $error = true; + $errormsg = 'Gruppe kann nicht entfernt werden da bereits Ressourcen zugeordnet wurden'; + } + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler bei Datenbankabfrage'; + } + + if(!$error) + { + $qry = "DELETE 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']); + + if($db->db_query($qry)) + { + $error = false; + $return = true; + } + else + { + $errormsg = 'Fehler beim Entfernen des LV-Plans: '.$db->db_last_error(); + $return = false; + $error = true; + } + } + } elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_del_lvplan') { //Pruefen ob diese Gruppe im Stundenplan schon verplant wurde diff --git a/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php b/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php index 0d25c7c5b..e77a5c86d 100644 --- a/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php +++ b/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php @@ -57,6 +57,13 @@ echo ''; + isBerechtigt('lv-plan/lektorentfernen')) + { + echo ''; + echo ''; + } + ?> @@ -329,6 +336,10 @@ echo ''; class="sortDirectionIndicator" sort="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#lehreinheit_id"/> +