From 4b55f56b7efe461621dde2d36e4cbf3eb5f4c9c6 Mon Sep 17 00:00:00 2001 From: Martin Tatzber Date: Wed, 16 Apr 2014 12:55:51 +0000 Subject: [PATCH] =?UTF-8?q?Link=20zum=20L=C3=B6schen=20von=20Lehrveranstal?= =?UTF-8?q?tung=20im=20Vilesci=20Berechtigungsabfragen=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/lehrveranstaltung.class.php | 150 ++++++++++++++++++ vilesci/lehre/lehrveranstaltung.php | 57 +++++-- .../lehre/lehrveranstaltung_kompatibel.php | 7 + 3 files changed, 203 insertions(+), 11 deletions(-) diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index c58a35cbe..a3dd9fc66 100644 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -1607,6 +1607,156 @@ class lehrveranstaltung extends basis_db return true; } + /** + * Loescht eine Lehrveranstaltung + * @param $lvid + * @return true wenn ok, false wenn Fehler + */ +/* public function delete_lva($lvid) + { + if(!is_numeric($lvid)) + { + $this->errormsg = 'lvid ist ungueltig'; + return false; + } + + $qry = "DELETE FROM public.tbl_lehrveranstaltung + WHERE lehrveranstaltung_id=".$this->db_add_param($lvid, FHC_INTEGER); + + if($this->load($lvid)) + { + $this->db_query('BEGIN;'); + + $log = new log(); + + $log->executetime = date('Y-m-d H:i:s'); + $log->beschreibung = 'Loeschen der Lehrveranstaltung '.$lvid; + $log->mitarbeiter_uid = get_uid(); + $log->sql = $qry; + $log->sqlundo = 'INSERT INTO lehre.tbl_lehrveranstaltung (studiengang_kz, bezeichnung, kurzbz, lehrform_kurzbz, + semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, ext_id, insertamum, + insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort, + zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz, incoming, lehrtyp_kurzbz, oe_kurzbz, raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe) VALUES (' . + $this->db_add_param($this->studiengang_kz) . ', ' . + $this->db_add_param($this->bezeichnung) . ', ' . + $this->db_add_param($this->kurzbz) . ', ' . + $this->db_add_param($this->lehrform_kurzbz) . ', ' . + $this->db_add_param($this->semester) . ', ' . + $this->db_add_param($this->ects) . ', ' . + $this->db_add_param($this->semesterstunden) . ', ' . + $this->db_add_param($this->anmerkung) . ', ' . + $this->db_add_param($this->lehre, FHC_BOOLEAN) . ',' . + $this->db_add_param($this->lehreverzeichnis) . ', ' . + $this->db_add_param($this->aktiv, FHC_BOOLEAN) . ', ' . + $this->db_add_param($this->ext_id) . ', ' . + $this->db_add_param($this->insertamum) . ', ' . + $this->db_add_param($this->insertvon) . ', ' . + $this->db_add_param($this->planfaktor) . ', ' . + $this->db_add_param($this->planlektoren) . ', ' . + $this->db_add_param($this->planpersonalkosten) . ', ' . + $this->db_add_param($this->plankostenprolektor) . ', ' . + $this->db_add_param($this->updateamum) . ', ' . + $this->db_add_param($this->updatevon) . ',' . + $this->db_add_param($this->sort) . ',' . + $this->db_add_param($this->zeugnis, FHC_BOOLEAN) . ',' . + $this->db_add_param($this->projektarbeit, FHC_BOOLEAN) . ',' . + $this->db_add_param($this->sprache) . ',' . + $this->db_add_param($this->koordinator) . ',' . + $this->db_add_param($this->bezeichnung_english) . ',' . + $this->db_add_param($this->orgform_kurzbz) . ',' . + $this->db_add_param($this->incoming) . ',' . + $this->db_add_param($this->lehrtyp_kurzbz) . ',' . + $this->db_add_param($this->oe_kurzbz) . ',' . + $this->db_add_param($this->raumtyp_kurzbz) . ',' . + $this->db_add_param($this->anzahlsemester) . ',' . + $this->db_add_param($this->semesterwochen) . ',' . + $this->db_add_param($this->lvnr) .','. + $this->db_add_param($this->semester_alternativ).','. + $this->db_add_param($this->farbe).');'; + + if($log->save(true)) + { + + if($this->db_query($qry)) + { + $this->db_query('COMMIT'); + return true; + } + else + { + $this->db_query('ROLLBACK'); + $this->errormsg = 'Fehler beim Loeschen der Daten'; + return false; + } + } + else + { + $this->db_query('ROLLBACK'); + $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; + return false; + } + } + else + { + return false; + } + } */ + + /** + * Loescht den Datenensatz mit der ID die uebergeben wird + * @param $lvid ID die geloescht werden soll + * @return true wenn ok, false im Fehlerfall + */ + public function delete($lvid) + { + //Pruefen ob adresse_id eine gueltige Zahl ist + if(!is_numeric($lvid) || $lvid == '') + { + $this->errormsg = 'lvid muss eine gültige Zahl sein'."\n"; + return false; + } + + $qry = "SELECT count(*) as anzahl FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id=".$this->db_add_param($lvid, FHC_INTEGER)." + OR lehrfach_id=".$this->db_add_param($lvid, FHC_INTEGER); + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + if($row->anzahl>0) + { + $this->errormsg = 'Zu dieser Lehrveranstaltung existieren Lehreinheiten oder Lehrfächer in der Datenbank. Sie kann daher nicht gelöscht werden.'; + return false; + } + else + { + //loeschen des Datensatzes + $qry="DELETE FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$this->db_add_param($lvid, FHC_INTEGER, false); + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Löschen der Daten'."\n"; + return false; + } + } + } + else + { + $this->errormsg = 'Fehler beim Abfragen zugewiesener Lehreinheiten'."\n"; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Abfragen zugewiesener Lehreinheiten'."\n"; + return false; + } + } + /** * Sucht nach Lehrveranstaltungen * @param $filter Suchfilter diff --git a/vilesci/lehre/lehrveranstaltung.php b/vilesci/lehre/lehrveranstaltung.php index a5dac092e..6a74f2722 100644 --- a/vilesci/lehre/lehrveranstaltung.php +++ b/vilesci/lehre/lehrveranstaltung.php @@ -122,7 +122,28 @@ else $isaktiv=''; else $isaktiv='true'; - + +// Löschen der Daten +if(isset($_GET['delete_lvid'])) +{ + if($write_admin) + { + $lvid=$_GET['delete_lvid']; + $lehrveranstaltung=new lehrveranstaltung(); + if($lehrveranstaltung->load($lvid)) + { + if(!$lehrveranstaltung->delete($lvid)) + echo $lehrveranstaltung->errormsg; + } + else + { + echo 'Fehler beim Laden der Lehrveranstaltung: '.$lehrveranstaltung->errormsg."\n"; + } + } + else + echo "Keine Berechtigung, um Lehrveranstaltung zu löschen!\n"; +} + // Speichern der Daten if(isset($_POST['lvid']) && is_numeric($_POST['lvid'])) { @@ -764,6 +785,11 @@ echo ' .replace(/[^a-z_\s]/gi, ""); ele.value = string; } + function conf_del() + { + return confirm("Diese Lehrveranstaltung wirklich löschen?"); + } + @@ -823,9 +849,14 @@ if ($result_lv!=0) Zeugnis BA/DA Koordinator - LV-Info - LV-Angebot - kompatible LV"; + LV-Info\n"; + + if($write_admin) + { + echo "LV-Angebot + kompatible LV + Aktion"; + } echo ""; echo ""; @@ -977,13 +1008,17 @@ if ($result_lv!=0) else echo 'vorhanden'; echo ''; - echo ' - - LV-Angebot - '; - - echo 'Kompatible LV'; - echo "\n"; + if($write_admin) + { + echo ' + + LV-Angebot + '; + + echo 'Kompatible LV'; + echo 'löschen'; + echo "\n"; + } } } else diff --git a/vilesci/lehre/lehrveranstaltung_kompatibel.php b/vilesci/lehre/lehrveranstaltung_kompatibel.php index 0be49e616..6722a2e0c 100755 --- a/vilesci/lehre/lehrveranstaltung_kompatibel.php +++ b/vilesci/lehre/lehrveranstaltung_kompatibel.php @@ -246,6 +246,13 @@ $lehrveranstaltung_id = $_GET["lehrveranstaltung_id"]; $type = isset($_GET["type"]) ? $_GET["type"] : ""; $lv = new lehrveranstaltung(); $lv->load($lehrveranstaltung_id); +$stg_obj = new studiengang(); +$stg_obj->load($lv->studiengang_kz); +$oe_studiengang = $stg_obj->oe_kurzbz; + +if(!$rechte->isBerechtigt('lehre/lehrveranstaltung', $oe_studiengang, 'suid')) + die('Sie haben keine Berechtigung fuer diese Seite'); + echo '

Kompatible Lehrveranstaltungen - '.$lv->bezeichnung.'

'; $kompatibleLvs = $lv->loadLVkompatibel($lehrveranstaltung_id);