diff --git a/cis/menu.html b/cis/menu.html index 0fab5565f..ebe9365e2 100644 --- a/cis/menu.html +++ b/cis/menu.html @@ -128,7 +128,7 @@ -  Weiterbildung +  Weiterbildung @@ -298,7 +298,7 @@ echo '';*/ '; } - if($rechte->isBerechtigt('admin','0') || $rechte->isBerechtigt('mitarbeiter')) + if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter')) { echo ''; } diff --git a/content/funktionen.js.php b/content/funktionen.js.php index bfb4e0dbc..739935e21 100644 --- a/content/funktionen.js.php +++ b/content/funktionen.js.php @@ -161,6 +161,12 @@ function FunktionDelete() var col = tree.columns ? tree.columns["funktion-treecol-benutzerfunktion_id"] : "funktion-treecol-benutzerfunktion_id"; var benutzerfunktion_id=tree.view.getCellText(tree.currentIndex,col); + //Bei Mitarbeitern wird kein Studiengang mitgeschickt + if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) + studiengang_kz=''; + else + studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if(confirm('Soll diese Funktion wirklich geloescht werden?')) { var url = 'content/fasDBDML.php'; @@ -169,6 +175,7 @@ function FunktionDelete() req.add('type', 'funktiondelete'); req.add('benutzerfunktion_id', benutzerfunktion_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -204,6 +211,12 @@ function FunktionDetailSpeichern() neu = document.getElementById('funktion-checkbox-neu').checked; benutzerfunktion_id = document.getElementById('funktion-textbox-benutzerfunktion_id').value; + //Bei Mitarbeitern wird kein Studiengang mitgeschickt + if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) + studiengang_kz_berecht=''; + else + studiengang_kz_berecht = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; + var url = 'content/fasDBDML.php'; var req = new phpRequest(url,'',''); @@ -215,6 +228,7 @@ function FunktionDetailSpeichern() req.add('funktion_kurzbz', funktion_kurzbz); req.add('studiengang_kz', studiengang_kz); + req.add('studiengang_kz_berecht', studiengang_kz_berecht); req.add('fachbereich_kurzbz', fachbereich_kurzbz); req.add('uid', FunktionenUID); req.add('neu', neu); diff --git a/content/kontakt.js.php b/content/kontakt.js.php index e0a835e48..e43eb9369 100644 --- a/content/kontakt.js.php +++ b/content/kontakt.js.php @@ -261,7 +261,13 @@ function KontaktAdresseSpeichern(dialog) heimatadresse = dialog.getElementById('adresse-checkbox-heimatadresse').checked; zustelladresse = dialog.getElementById('adresse-checkbox-zustelladresse').checked; firma_id = dialog.getElementById('adresse-menulist-firma').value; - + + //Bei Mitarbeitern wird kein Studiengang mitgeschickt + if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) + studiengang_kz=''; + else + studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; + var url = 'content/fasDBDML.php'; var req = new phpRequest(url,'',''); @@ -280,6 +286,7 @@ function KontaktAdresseSpeichern(dialog) req.add('heimatadresse', heimatadresse); req.add('zustelladresse', zustelladresse); req.add('firma_id', firma_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -339,6 +346,12 @@ function KontaktAdresseDelete() var col = tree.columns ? tree.columns["kontakt-adressen-treecol-adresse_id"] : "kontakt-adressen-treecol-adresse_id"; var adresse_id=tree.view.getCellText(tree.currentIndex,col); + //Bei Mitarbeitern wird kein Studiengang mitgeschickt + if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) + studiengang_kz=''; + else + studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if(confirm('Diese Adresse wirklich loeschen?')) { var url = 'content/fasDBDML.php'; @@ -347,6 +360,7 @@ function KontaktAdresseDelete() req.add('type', 'adressedelete'); req.add('adresse_id', adresse_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -433,6 +447,13 @@ function KontaktKontaktSpeichern(dialog) typ = dialog.getElementById('kontakt-menulist-typ').value; firma_id = dialog.getElementById('kontakt-menulist-firma').value; + //Bei Mitarbeitern wird kein Studiengang mitgeschickt + if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) + studiengang_kz=''; + else + studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; + + var url = 'content/fasDBDML.php'; var req = new phpRequest(url,'',''); @@ -446,6 +467,7 @@ function KontaktKontaktSpeichern(dialog) req.add('typ', typ); req.add('zustellung', zustellung); req.add('firma_id', firma_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -504,7 +526,13 @@ function KontaktKontaktDelete() //Ausgewaehlte ID holen var col = tree.columns ? tree.columns["kontakt-kontakt-treecol-kontakt_id"] : "kontakt-kontakt-treecol-kontakt_id"; var kontakt_id=tree.view.getCellText(tree.currentIndex,col); - + + //Bei Mitarbeitern wird kein Studiengang mitgeschickt + if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) + studiengang_kz=''; + else + studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if(confirm('Diesen Kontakt wirklich loeschen?')) { var url = 'content/fasDBDML.php'; @@ -513,6 +541,7 @@ function KontaktKontaktDelete() req.add('type', 'kontaktdelete'); req.add('kontakt_id', kontakt_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -602,6 +631,12 @@ function KontaktBankverbindungSpeichern(dialog) typ = dialog.getElementById('bankverbindung-menulist-typ').value; verrechnung = dialog.getElementById('bankverbindung-checkbox-verrechnung').checked; + //Bei Mitarbeitern wird kein Studiengang mitgeschickt + if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) + studiengang_kz=''; + else + studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; + var url = 'content/fasDBDML.php'; var req = new phpRequest(url,'',''); @@ -618,6 +653,7 @@ function KontaktBankverbindungSpeichern(dialog) req.add('kontonr', kontonr); req.add('typ', typ); req.add('verrechnung', verrechnung); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -677,6 +713,12 @@ function KontaktBankverbindungDelete() var col = tree.columns ? tree.columns["kontakt-bankverbindung-treecol-bankverbindung_id"] : "kontakt-bankverbindung-treecol-bankverbindung_id"; var bankverbindung_id=tree.view.getCellText(tree.currentIndex,col); + //Bei Mitarbeitern wird kein Studiengang mitgeschickt + if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter')) + studiengang_kz=''; + else + studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if(confirm('Diese Bankverbindung wirklich loeschen?')) { var url = 'content/fasDBDML.php'; @@ -685,6 +727,7 @@ function KontaktBankverbindungDelete() req.add('type', 'bankverbindungdelete'); req.add('bankverbindung_id', bankverbindung_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index a0169979e..985b8696d 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -60,7 +60,7 @@ $error = false; //Berechtigungen laden $rechte = new benutzerberechtigung($conn); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('admin')) +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz')) { $return = false; $errormsg = 'Keine Berechtigung'; @@ -74,7 +74,32 @@ if(!$error) if(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_save') { //Lehreinheitmitarbeiter Zuteilung - + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".addslashes($_POST['lehreinheit_id'])."'"; + if($result = pg_query($conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + if(!$rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $row->studiengang_kz, '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'; + } + if(!$error) { $lem = new lehreinheitmitarbeiter($conn, null, null, true); @@ -82,7 +107,7 @@ if(!$error) if(!$lem->load($_POST['lehreinheit_id'],$_POST['mitarbeiter_uid_old'])) { $return = false; - $errormsg = 'Fehler beim laden:'.$lem->errormsg; + $errormsg = 'Fehler beim Laden:'.$lem->errormsg; $error = true; } @@ -124,271 +149,404 @@ if(!$error) elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_add') { //neue Lehreinheitmitarbeiterzuteilung anlegen - - if(isset($_POST['lehreinheit_id']) && isset($_POST['mitarbeiter_uid'])) + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".addslashes($_POST['lehreinheit_id'])."'"; + if($result = pg_query($conn, $qry)) { - $lem = new lehreinheitmitarbeiter($conn, null, null, true); - - $lem->lehreinheit_id = $_POST['lehreinheit_id']; - $lem->lehrfunktion_kurzbz = 'Lektor'; - $lem->mitarbeiter_uid = $_POST['mitarbeiter_uid']; - - $lem->semesterstunden = '0'; - $lem->planstunden = '0'; - $lem->anmerkung = ''; - $lem->bismelden = true; - $lem->updateamum = date('Y-m-d H:i:s'); - $lem->updatevon = $user; - $lem->insertamum = date('Y-m-d H:i:s'); - $lem->insertvon = $user; - $lem->new=true; - - //Stundensatz aus tbl_mitarbeiter holen - $qry = "SELECT stundensatz FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."'"; - if($result = pg_query($conn, $qry)) + if($row = pg_fetch_object($result)) { - if($row = pg_fetch_object($result)) - { - if($row->stundensatz!='') - $lem->stundensatz = $row->stundensatz; - else - $lem->stundensatz = '0'; - } - else - { - $error=true; - $return=false; - $errormsg='Mitarbeiter '.addslashes($_POST['mitarbeiter_uid']).' wurde nicht gefunden'; - } - } - else - { - $error=true; - $return=false; - $errormsg='Fehler bei einer Datenbankabfrage:'.pg_errormessage($conn); - } - - //Faktor aus tbl_lehrveranstaltung holen - $qry = "SELECT planfaktor FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".$_POST['lehreinheit_id']."';"; - if($result = pg_query($conn, $qry)) - { - if($row = pg_fetch_object($result)) - { - if($row->planfaktor!='') - $lem->faktor = $row->planfaktor; - else - $lem->faktor = '0'; - } - else + if(!$rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid')) { $error = true; $return = false; - $errormsg = 'Lehrveranstaltung wurde nicht gefunden'; + $errormsg = 'Keine Berechtigung'; } } else { $error = true; $return = false; - $errormsg = 'Fehler in einer Datenbankabfrage:'.pg_errormessage($conn); - } - - if(!$error) - { - if($lem->save()) - { - $return = true; - $error = false; - } - else - { - $return = false; - $errormsg = $lem->errormsg; - $error = true; - } + $errormsg = 'Lehreinheit wurde nicht gefunden'; } } else { + $error = true; $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; + $errormsg = 'Lehreinheit wurde nicht gefunden'; } - } - elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_del') - { - //Lehreinheitmitarbeiterzuteilung loeschen - if(isset($_POST['lehreinheit_id']) && is_numeric($_POST['lehreinheit_id']) && isset($_POST['mitarbeiter_uid'])) + + if(!$error) { - //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='".$_POST['lehreinheit_id']."' AND mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."' - UNION - SELECT stundenplan_id as id FROM lehre.tbl_stundenplan WHERE lehreinheit_id='".$_POST['lehreinheit_id']."' AND mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."'"; - if($result = pg_query($conn, $qry)) + if(isset($_POST['lehreinheit_id']) && isset($_POST['mitarbeiter_uid'])) { - if(pg_num_rows($result)>0) + $lem = new lehreinheitmitarbeiter($conn, null, null, true); + + $lem->lehreinheit_id = $_POST['lehreinheit_id']; + $lem->lehrfunktion_kurzbz = 'Lektor'; + $lem->mitarbeiter_uid = $_POST['mitarbeiter_uid']; + + $lem->semesterstunden = '0'; + $lem->planstunden = '0'; + $lem->anmerkung = ''; + $lem->bismelden = true; + $lem->updateamum = date('Y-m-d H:i:s'); + $lem->updatevon = $user; + $lem->insertamum = date('Y-m-d H:i:s'); + $lem->insertvon = $user; + $lem->new=true; + + //Stundensatz aus tbl_mitarbeiter holen + $qry = "SELECT stundensatz FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."'"; + if($result = pg_query($conn, $qry)) { - $return = false; - $errormsg = 'Dieser Lektor kann nicht geloescht werden da er schon verplant ist'; + if($row = pg_fetch_object($result)) + { + if($row->stundensatz!='') + $lem->stundensatz = $row->stundensatz; + else + $lem->stundensatz = '0'; + } + else + { + $error=true; + $return=false; + $errormsg='Mitarbeiter '.addslashes($_POST['mitarbeiter_uid']).' wurde nicht gefunden'; + } } else - { - $leg = new lehreinheitmitarbeiter($conn); - if($leg->delete($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid'])) + { + $error=true; + $return=false; + $errormsg='Fehler bei einer Datenbankabfrage:'.pg_errormessage($conn); + } + + //Faktor aus tbl_lehrveranstaltung holen + $qry = "SELECT planfaktor FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".$_POST['lehreinheit_id']."';"; + if($result = pg_query($conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + if($row->planfaktor!='') + $lem->faktor = $row->planfaktor; + else + $lem->faktor = '0'; + } + else + { + $error = true; + $return = false; + $errormsg = 'Lehrveranstaltung wurde nicht gefunden'; + } + } + else + { + $error = true; + $return = false; + $errormsg = 'Fehler in einer Datenbankabfrage:'.pg_errormessage($conn); + } + + if(!$error) + { + if($lem->save()) { $return = true; + $error = false; } else { $return = false; - $errormsg = $leg->errormsg; + $errormsg = $lem->errormsg; + $error = true; } } } else { $return = false; - $errormsg = 'Fehler:'.$qry; + $errormsg = 'Fehlerhafte Parameteruebergabe'; } } - else + } + elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_del') + { + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".addslashes($_POST['lehreinheit_id'])."'"; + if($result = pg_query($conn, $qry)) { + if($row = pg_fetch_object($result)) + { + if(!$rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Keine Berechtigung'; + } + } + else + { + $error = true; + $return = false; + $errormsg = 'Lehreinheit wurde nicht gefunden'; + } + } + else + { + $error = true; $return = false; - $errormsg = 'Fehler beim loeschen der Zuordnung'; + $errormsg = 'Lehreinheit wurde nicht gefunden'; + } + + 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='".$_POST['lehreinheit_id']."' AND mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."' + UNION + SELECT stundenplan_id as id FROM lehre.tbl_stundenplan WHERE lehreinheit_id='".$_POST['lehreinheit_id']."' AND mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."'"; + if($result = pg_query($conn, $qry)) + { + if(pg_num_rows($result)>0) + { + $return = false; + $errormsg = 'Dieser Lektor kann nicht geloescht werden da er schon verplant ist'; + } + else + { + $leg = new lehreinheitmitarbeiter($conn); + if($leg->delete($_POST['lehreinheit_id'], $_POST['mitarbeiter_uid'])) + { + $return = true; + } + else + { + $return = false; + $errormsg = $leg->errormsg; + } + } + } + else + { + $return = false; + $errormsg = 'Fehler:'.$qry; + } + } + else + { + $return = false; + $errormsg = 'Fehler beim loeschen der Zuordnung'; + } } } elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_del') { - //Lehreinheitgruppezuteilung loeschen - if(isset($_POST['lehreinheitgruppe_id']) && is_numeric($_POST['lehreinheitgruppe_id'])) - { - $leg = new lehreinheitgruppe($conn); - if($leg->delete($_POST['lehreinheitgruppe_id'])) - { - $return = true; - } - else - { - $return = false; - $errormsg = $leg->errormsg; - } - } - else + $qry = "SELECT tbl_lehrveranstaltung.studiengang_kz FROM lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) WHERE lehreinheitgruppe_id='".addslashes($_POST['lehreinheitgruppe_id'])."'"; + if($result = pg_query($conn, $qry)) { - $return = false; - $errormsg = 'Fehler beim loeschen der Zuordnung'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_add') - { - //Lehreinheitgruppezuteilung anlegen - if(isset($_POST['lehreinheit_id']) && is_numeric($_POST['lehreinheit_id'])) - { - $leg = new lehreinheitgruppe($conn); - $leg->lehreinheit_id = $_POST['lehreinheit_id']; - $leg->studiengang_kz = $_POST['studiengang_kz']; - $leg->semester = $_POST['semester']; - $leg->verband = $_POST['verband']; - $leg->gruppe = $_POST['gruppe']; - $leg->gruppe_kurzbz = $_POST['gruppe_kurzbz']; - $leg->insertamum = date('Y-m-d H:i:s'); - $leg->insertvon = $user; - - if($leg->save(true)) + if($row = pg_fetch_object($result)) { - $return = true; - } - else - { - $return = false; - $errormsg = $leg->errormsg; - } - } - else - { - $return = false; - $errormsg = 'Bitte zuerst eine Lehreinheit auswaehlen'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit') - { - //Lehreinheit anlegen/aktualisieren - $leDAO=new lehreinheit($conn, null, true); - if ($_POST['do']=='create' || ($_POST['do']=='update')) - { - if($_POST['do']=='update') - { - if(!$leDAO->load($_POST['lehreinheit_id'])) + if(!$rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid')) { - $return = false; $error = true; - $errormsg = 'Fehler beim laden der lehreinheit'; + $return = false; + $errormsg = 'Keine Berechtigung'; } } - - if(!$error) + else { - $leDAO->lehrveranstaltung_id=$_POST['lehrveranstaltung']; - $leDAO->studiensemester_kurzbz=$_POST['studiensemester_kurzbz']; - $leDAO->lehrfach_id=$_POST['lehrfach_id']; - $leDAO->lehrform_kurzbz=$_POST['lehrform']; - $leDAO->stundenblockung=$_POST['stundenblockung']; - $leDAO->wochenrythmus=$_POST['wochenrythmus']; - if (isset($_POST['start_kw'])) $leDAO->start_kw=$_POST['start_kw']; - $leDAO->raumtyp=$_POST['raumtyp']; - $leDAO->raumtypalternativ=$_POST['raumtypalternativ']; - $leDAO->sprache=$_POST['sprache']; - if (isset($_POST['lehre'])) $leDAO->lehre=($_POST['lehre']=='true'?true:false); - if (isset($_POST['anmerkung'])) $leDAO->anmerkung=$_POST['anmerkung']; - $leDAO->lvnr=(isset($_POST['lvnr'])?$_POST['lvnr']:''); - $leDAO->unr=(isset($_POST['unr'])?$_POST['unr']:''); - if($leDAO->unr=='') + $error = true; + $return = false; + $errormsg = 'Lehreinheit wurde nicht gefunden'; + } + } + else + { + $error = true; + $return = false; + $errormsg = 'Lehreinheit wurde nicht gefunden'; + } + + if(!$error) + { + //Lehreinheitgruppezuteilung loeschen + if(isset($_POST['lehreinheitgruppe_id']) && is_numeric($_POST['lehreinheitgruppe_id'])) + { + $leg = new lehreinheitgruppe($conn); + if($leg->delete($_POST['lehreinheitgruppe_id'])) { - $leDAO->unr = $_POST['lehreinheit_id']; - } - $leDAO->updateamum=date('Y-m-d H:i:s'); - $leDAO->updatevon=$user; - - if ($_POST['do']=='create') - { - // LE neu anlegen - $leDAO->new=true; - $leDAO->insertamum=date('Y-m-d H:i:s'); - $leDAO->insertvon=$user; - } - else if ($_POST['do']=='update') - { - // LE aktualisieren - $leDAO->new=false; - } - if ($leDAO->save()) - { - $data = $leDAO->lehreinheit_id; $return = true; } else { $return = false; - $errormsg = $leDAO->errormsg; + $errormsg = $leg->errormsg; } } - } - else if ($_POST['do']=='delete') //Lehreinheit loeschen - { - // LE loeschen - $qry = "SELECT stundenplandev_id as id FROM lehre.tbl_stundenplandev WHERE lehreinheit_id='".$_POST['lehreinheit_id']."' - UNION - SELECT stundenplan_id as id FROM lehre.tbl_stundenplan WHERE lehreinheit_id='".$_POST['lehreinheit_id']."'"; - if($result = pg_query($conn, $qry)) + else { - if(pg_num_rows($result)>0) + $return = false; + $errormsg = 'Fehler beim loeschen der Zuordnung'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_add') + { + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".addslashes($_POST['lehreinheit_id'])."'"; + if($result = pg_query($conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + if(!$rechte->isBerechtigt('admin', $row->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $row->studiengang_kz, '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'; + } + + if(!$error) + { + //Lehreinheitgruppezuteilung anlegen + if(isset($_POST['lehreinheit_id']) && is_numeric($_POST['lehreinheit_id'])) + { + $leg = new lehreinheitgruppe($conn); + $leg->lehreinheit_id = $_POST['lehreinheit_id']; + $leg->studiengang_kz = $_POST['studiengang_kz']; + $leg->semester = $_POST['semester']; + $leg->verband = $_POST['verband']; + $leg->gruppe = $_POST['gruppe']; + $leg->gruppe_kurzbz = $_POST['gruppe_kurzbz']; + $leg->insertamum = date('Y-m-d H:i:s'); + $leg->insertvon = $user; + + if($leg->save(true)) + { + $return = true; + } + else { $return = false; - $errormsg = 'Diese Lehreinheit ist bereits im LV-Plan verplant und kann daher nicht geloescht werden!'; + $errormsg = $leg->errormsg; + } + } + else + { + $return = false; + $errormsg = 'Bitte zuerst eine Lehreinheit auswaehlen'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit') + { + //Lehreinheit anlegen/aktualisieren + if($_POST['lehreinheit_id']!='') + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".addslashes($_POST['lehreinheit_id'])."'"; + else + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id='".addslashes($_POST['lehrveranstaltung'])."'"; + + if($result = pg_query($conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + $studiengang_kz = $row->studiengang_kz; + } + else + { + $error = true; + $return = false; + $errormsg = 'Lehreinheit wurde nicht gefunden'; + } + } + else + { + $error = true; + $return = false; + $errormsg = 'Lehreinheit wurde nicht gefunden'; + } + + if(!$error) + { + $leDAO=new lehreinheit($conn, null, true); + if ($_POST['do']=='create' || ($_POST['do']=='update')) + { + if($_POST['do']=='update') + { + if(!$leDAO->load($_POST['lehreinheit_id'])) + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Laden der Lehreinheit'; + } + + if(!$rechte->isBerechtigt('admin', $studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Keine Berechtigung'; + } } else { - if ($leDAO->delete($_POST['lehreinheit_id'])) + if(!$rechte->isBerechtigt('admin', $studiengang_kz, 'si') && !$rechte->isBerechtigt('assistenz', $studiengang_kz, 'si') && + !$rechte->isBerechtigt('admin', $studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid')) { + $error = true; + $return = false; + $errormsg = 'Keine Berechtigung'; + } + } + + if(!$error) + { + $leDAO->lehrveranstaltung_id=$_POST['lehrveranstaltung']; + $leDAO->studiensemester_kurzbz=$_POST['studiensemester_kurzbz']; + $leDAO->lehrfach_id=$_POST['lehrfach_id']; + $leDAO->lehrform_kurzbz=$_POST['lehrform']; + $leDAO->stundenblockung=$_POST['stundenblockung']; + $leDAO->wochenrythmus=$_POST['wochenrythmus']; + if (isset($_POST['start_kw'])) $leDAO->start_kw=$_POST['start_kw']; + $leDAO->raumtyp=$_POST['raumtyp']; + $leDAO->raumtypalternativ=$_POST['raumtypalternativ']; + $leDAO->sprache=$_POST['sprache']; + if (isset($_POST['lehre'])) $leDAO->lehre=($_POST['lehre']=='true'?true:false); + if (isset($_POST['anmerkung'])) $leDAO->anmerkung=$_POST['anmerkung']; + $leDAO->lvnr=(isset($_POST['lvnr'])?$_POST['lvnr']:''); + $leDAO->unr=(isset($_POST['unr'])?$_POST['unr']:''); + if($leDAO->unr=='') + { + $leDAO->unr = $_POST['lehreinheit_id']; + } + $leDAO->updateamum=date('Y-m-d H:i:s'); + $leDAO->updatevon=$user; + + if ($_POST['do']=='create') + { + // LE neu anlegen + $leDAO->new=true; + $leDAO->insertamum=date('Y-m-d H:i:s'); + $leDAO->insertvon=$user; + } + else if ($_POST['do']=='update') + { + // LE aktualisieren + $leDAO->new=false; + } + if ($leDAO->save()) + { + $data = $leDAO->lehreinheit_id; $return = true; } else @@ -398,10 +556,46 @@ if(!$error) } } } - else + else if ($_POST['do']=='delete') //Lehreinheit loeschen { - $return = false; - $errormsg = 'unbekannter Fehler'; + if(!$rechte->isBerechtigt('admin', $studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Keine Berechtigung'; + } + else + { + // LE loeschen + $qry = "SELECT stundenplandev_id as id FROM lehre.tbl_stundenplandev WHERE lehreinheit_id='".$_POST['lehreinheit_id']."' + UNION + SELECT stundenplan_id as id FROM lehre.tbl_stundenplan WHERE lehreinheit_id='".$_POST['lehreinheit_id']."'"; + if($result = pg_query($conn, $qry)) + { + if(pg_num_rows($result)>0) + { + $return = false; + $errormsg = 'Diese Lehreinheit ist bereits im LV-Plan verplant und kann daher nicht geloescht werden!'; + } + else + { + if ($leDAO->delete($_POST['lehreinheit_id'])) + { + $return = true; + } + else + { + $return = false; + $errormsg = $leDAO->errormsg; + } + } + } + else + { + $return = false; + $errormsg = 'unbekannter Fehler'; + } + } } } } diff --git a/content/mitarbeiter/mitarbeiterDBDML.php b/content/mitarbeiter/mitarbeiterDBDML.php index c4a7f9bb6..d872cb014 100644 --- a/content/mitarbeiter/mitarbeiterDBDML.php +++ b/content/mitarbeiter/mitarbeiterDBDML.php @@ -88,6 +88,7 @@ if(!$error) $mitarbeiter->ersatzkennzeichen = $_POST['ersatzkennzeichen']; $mitarbeiter->familienstand = $_POST['familienstand']; $mitarbeiter->geschlecht = $_POST['geschlecht']; + $aktiv_alt = $mitarbeiter->bnaktiv; $mitarbeiter->bnaktiv = ($_POST['aktiv']=='true'?true:false); $mitarbeiter->anzahlkinder = $_POST['anzahlderkinder']; $mitarbeiter->staatsbuergerschaft = $_POST['staatsbuergerschaft']; @@ -107,6 +108,27 @@ if(!$error) if($mitarbeiter->save()) { + if($aktiv_alt==true && $_POST['aktiv']=='false') + { + $message = "Dies ist eine automatische Mail!\n"; + $message .= "Ihr Benutzerdatensatz wurde von einem unserer Mitarbeiter deaktiviert. Was bedeutet das nun für Sie?\n\n"; + $message .= "Vorerst werden Sie aus allen Mail-Verteilern gelöscht.\n"; + $message .= "Wenn der Datensatz in den nächsten 12 Monaten nicht mehr aktiviert wird, führt das System automatisch folgende Aktionen durch:\n"; + $message .= "- Ihr Account wird gelöscht.\n"; + $message .= "- Ihre Mailbox mit sämtlichen Mails wird gelöscht.\n"; + $message .= "- Ihr Home-Verzeichnis mit allen enthaltenen Dateien wird gelöscht.\n\n"; + $message .= "Sollte es sich hierbei um einen Irrtum handeln, wenden sie sich bitte an die Mitarbeiter unserer Personalabteillung.\n"; + $message .= "Adelheit Schaaf - schaaf@technikum-wien.at\n"; + $message .= "Orestis Kazamias - kazamias@technikum-wien.at\n\n"; + $message .= "Mit freundlichen Grüßen,\n"; + $message .= "FACHHOCHSCHULE TECHNIKUM WIEN\n"; + $message .= "Höchstädtplatz 5\n"; + $message .= "A-1200 Wien \n"; + + $to = 'oesi@technikum-wien.at'; + //$to = $_POST['uid'].'@'.DOMAIN; + mail($to,'Ihr Datensatz wurde deaktiviert! '.$_POST['uid'], $message, 'From: vilesci@'.DOMAIN); + } $return = true; } else diff --git a/content/pdfExport.php b/content/pdfExport.php index 77685bcab..75bb6ac89 100644 --- a/content/pdfExport.php +++ b/content/pdfExport.php @@ -164,26 +164,10 @@ if (!isset($_REQUEST["archive"])) else { - $filename = $user; - if (!$fo2pdf->generatePdf($buffer, $filename, 'F')) - { - echo('Failed to generate PDF'); - } - $file = "/tmp/".$filename.".pdf"; - $handle = fopen($file, "rb"); - $string = fread($handle, filesize($file)); - fclose($handle); - unlink($file); - - $hex=""; - for ($i=0;$iperson_id; $titel = "Zeugnis_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$row->semester; $bezeichnung = "Zeugnis ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$row->semester.". Semester"; + $studiengang_kz = $row->studiengang_kz; } else { @@ -199,27 +184,47 @@ else } } - - - $akte = new akte($conn); - $akte->person_id = $person_id; - $akte->dokument_kurzbz = "Zeugnis"; - $akte->inhalt = $hex; - $akte->mimetype = "application/octet-stream"; - $akte->erstelltam = $heute; - $akte->gedruckt = true; - $akte->titel = $titel.".pdf"; - $akte->bezeichnung = $bezeichnung; - $akte->updateamum = ""; - $akte->updatevon = ""; - $akte->insertamum = date('Y-m-d h:m:s'); - $akte->insertvon = $user; - $akte->ext_id = ""; - $akte->uid = $_REQUEST["uid"]; - $akte->new = true; - if (!$akte->save('new')) - return true; - else - return false; + + if($rechte->isBerechtigt('admin', $studiengang_kz, 'suid') || $rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid')) + { + + $filename = $user; + if (!$fo2pdf->generatePdf($buffer, $filename, 'F')) + { + echo('Failed to generate PDF'); + } + $file = "/tmp/".$filename.".pdf"; + $handle = fopen($file, "rb"); + $string = fread($handle, filesize($file)); + fclose($handle); + unlink($file); + + $hex=""; + for ($i=0;$iperson_id = $person_id; + $akte->dokument_kurzbz = "Zeugnis"; + $akte->inhalt = $hex; + $akte->mimetype = "application/octet-stream"; + $akte->erstelltam = $heute; + $akte->gedruckt = true; + $akte->titel = $titel.".pdf"; + $akte->bezeichnung = $bezeichnung; + $akte->updateamum = ""; + $akte->updatevon = ""; + $akte->insertamum = date('Y-m-d h:m:s'); + $akte->insertvon = $user; + $akte->ext_id = ""; + $akte->uid = $_REQUEST["uid"]; + $akte->new = true; + if (!$akte->save('new')) + return true; + else + return false; + } + else + echo 'Keine Berechtigung zum Speichern'; } ?> \ No newline at end of file diff --git a/content/student/interessentdokumenteoverlay.js.php b/content/student/interessentdokumenteoverlay.js.php index 94f3a22d1..7ce0ffe57 100644 --- a/content/student/interessentdokumenteoverlay.js.php +++ b/content/student/interessentdokumenteoverlay.js.php @@ -142,6 +142,8 @@ function InteressentDokumenteAdd() //Prestudent_id holen prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value + if(paramList!='') { var url = 'content/student/studentDBDML.php'; @@ -151,6 +153,7 @@ function InteressentDokumenteAdd() req.add('prestudent_id', prestudent_id); req.add('dokumente', paramList); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -208,8 +211,9 @@ function InteressentDokumenteRemove() } //Prestudent_id holen - prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value - + prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if(paramList!='') { var url = 'content/student/studentDBDML.php'; @@ -219,6 +223,7 @@ function InteressentDokumenteRemove() req.add('prestudent_id', prestudent_id); req.add('dokumente', paramList); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); diff --git a/content/student/interessentoverlay.js.php b/content/student/interessentoverlay.js.php index a8a708fe2..fc042ac35 100644 --- a/content/student/interessentoverlay.js.php +++ b/content/student/interessentoverlay.js.php @@ -219,8 +219,7 @@ function InteressentzuBewerber() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - StudentSelectId=prestudent_id; - StudentTreeDatasource.Refresh(false); //non blocking + StudentTreeRefresh(); SetStatusBarText('Daten wurden gespeichert'); } } @@ -266,8 +265,7 @@ function InteressentzuStudent() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - StudentSelectId=prestudent_id; - StudentTreeDatasource.Refresh(false); //non blocking + StudentTreeRefresh(); SetStatusBarText('Daten wurden gespeichert'); } } @@ -309,8 +307,7 @@ function InteressentAddRolle(rolle) } else { - StudentSelectId=prestudent_id; - StudentTreeDatasource.Refresh(false); //non blocking + StudentTreeRefresh(); SetStatusBarText('Rolle hinzugefuegt'); } } diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 0a9e45b46..fa108ebc9 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -53,6 +53,7 @@ require_once('../../include/abschlusspruefung.class.php'); require_once('../../include/projektarbeit.class.php'); require_once('../../include/projektbetreuer.class.php'); require_once('../../include/lehrverband.class.php'); +require_once('../../include/gruppe.class.php'); $user = get_uid(); @@ -69,7 +70,7 @@ loadVariables($conn, $user); //Berechtigungen laden $rechte = new benutzerberechtigung($conn); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('admin')) +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('mitarbeiter')) { $return = false; $errormsg = 'Keine Berechtigung'; @@ -174,8 +175,14 @@ if(!$error) if(isset($_POST['type']) && $_POST['type']=='savestudent') { - //Studentendaten Speichern - + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) + { + $error = true; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + + //Studentendaten speichern if(!$error) { $student = new student($conn, null, true); @@ -282,6 +289,13 @@ if(!$error) } elseif(isset($_POST['type']) && $_POST['type']=='saveperson') { + + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) + { + $error = true; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } //Personendaten Speichern if(!$error) @@ -343,8 +357,14 @@ if(!$error) } elseif(isset($_POST['type']) && $_POST['type']=='saveprestudent') { - //Studentendaten Speichern - + //PreStudentdaten Speichern + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) + { + $error = true; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + if(!$error) { $prestudent = new prestudent($conn, null, true); @@ -411,84 +431,102 @@ if(!$error) if(isset($_POST['prestudent_id'])) { $prestd = new prestudent($conn); - if($prestd->getLastStatus($_POST['prestudent_id'])) + if(!$prestd->load($_POST['prestudent_id'])) { - if($_POST['rolle_kurzbz']=='Absolvent' || $_POST['rolle_kurzbz']=='Diplomand') - $studiensemester = $semester_aktuell; - else - $studiensemester = $prestd->studiensemester_kurzbz; - $hlp = new prestudent($conn); - - if($_POST['rolle_kurzbz']=='Unterbrecher' || $_POST['rolle_kurzbz']=='Abbrecher') - $sem='0'; - elseif($_POST['rolle_kurzbz']=='Student') - $sem=$_POST['semester']; - else - $sem=$prestd->ausbildungssemester; - - $hlp->getPrestudentRolle($_POST['prestudent_id'], $_POST['rolle_kurzbz'], $studiensemester, "datum, insertamum", $sem); - if(count($hlp->result)>0) - { - $errormsg = 'Diese Rolle ist bereits vorhanden'; - $return = false; - } - else - { - $prestd_neu = new prestudent($conn); - $prestd_neu->prestudent_id = $_POST['prestudent_id']; - $prestd_neu->rolle_kurzbz = $_POST['rolle_kurzbz']; - $prestd_neu->studiensemester_kurzbz = $studiensemester; - $prestd_neu->datum = date('Y-m-d'); - $prestd_neu->ausbildungssemester = $sem; - $prestd_neu->insertamum = date('Y-m-d H:i:s'); - $prestd_neu->insertvon = $user; - $prestd_neu->new = true; - - if($prestd_neu->save_rolle()) - { - //Unterbrecher und Abbrecher werden ins 0. Semester verschoben - if($_POST['rolle_kurzbz']=='Unterbrecher' || $_POST['rolle_kurzbz']=='Abbrecher') - { - $student = new student($conn); - $uid = $student->getUid($_POST['prestudent_id']); - $student->load($uid); - $student->studiensemester_kurzbz=$semester_aktuell; - $student->semester = '0'; - $student->save(false, false); - $student->save_studentlehrverband(false); - } - - //Wenn Unterbrecher zu Studenten werden, dann wird das Semester mituebergeben - if($_POST['rolle_kurzbz']=='Student') - { - $student = new student($conn); - $uid = $student->getUid($_POST['prestudent_id']); - $student->load($uid); - $student->studiensemester_kurzbz=$semester_aktuell; - $student->semester = $_POST['semester']; - $student->save(false, false); - $student->save_studentlehrverband(false); - //Aktiv Status setzen - $benutzer = new benutzer($conn); - if($benutzer->load($uid)) - { - $benutzer->bnaktiv=true; - $benutzer->save(false, false); - } - } - $return = true; - } - else - { - $return = false; - $errormsg = $prestd_neu->errormsg; - } - } + $error = true; + $errormsg = 'Fehler beim Laden des Prestudenten'; } else { - $return = false; - $errormsg = 'Es ist keine Rolle fuer diesen Prestudent vorhanden'; + if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid')) + { + $error = true; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + } + + if(!$error) + { + if($prestd->getLastStatus($_POST['prestudent_id'])) + { + if($_POST['rolle_kurzbz']=='Absolvent' || $_POST['rolle_kurzbz']=='Diplomand') + $studiensemester = $semester_aktuell; + else + $studiensemester = $prestd->studiensemester_kurzbz; + $hlp = new prestudent($conn); + + if($_POST['rolle_kurzbz']=='Unterbrecher' || $_POST['rolle_kurzbz']=='Abbrecher') + $sem='0'; + elseif($_POST['rolle_kurzbz']=='Student') + $sem=$_POST['semester']; + else + $sem=$prestd->ausbildungssemester; + + $hlp->getPrestudentRolle($_POST['prestudent_id'], $_POST['rolle_kurzbz'], $studiensemester, "datum, insertamum", $sem); + if(count($hlp->result)>0) + { + $errormsg = 'Diese Rolle ist bereits vorhanden'; + $return = false; + } + else + { + $prestd_neu = new prestudent($conn); + $prestd_neu->prestudent_id = $_POST['prestudent_id']; + $prestd_neu->rolle_kurzbz = $_POST['rolle_kurzbz']; + $prestd_neu->studiensemester_kurzbz = $studiensemester; + $prestd_neu->datum = date('Y-m-d'); + $prestd_neu->ausbildungssemester = $sem; + $prestd_neu->insertamum = date('Y-m-d H:i:s'); + $prestd_neu->insertvon = $user; + $prestd_neu->new = true; + + if($prestd_neu->save_rolle()) + { + //Unterbrecher und Abbrecher werden ins 0. Semester verschoben + if($_POST['rolle_kurzbz']=='Unterbrecher' || $_POST['rolle_kurzbz']=='Abbrecher') + { + $student = new student($conn); + $uid = $student->getUid($_POST['prestudent_id']); + $student->load($uid); + $student->studiensemester_kurzbz=$semester_aktuell; + $student->semester = '0'; + $student->save(false, false); + $student->save_studentlehrverband(false); + } + + //Wenn Unterbrecher zu Studenten werden, dann wird das Semester mituebergeben + if($_POST['rolle_kurzbz']=='Student') + { + $student = new student($conn); + $uid = $student->getUid($_POST['prestudent_id']); + $student->load($uid); + $student->studiensemester_kurzbz=$semester_aktuell; + $student->semester = $_POST['semester']; + $student->save(false, false); + $student->save_studentlehrverband(false); + //Aktiv Status setzen + $benutzer = new benutzer($conn); + if($benutzer->load($uid)) + { + $benutzer->bnaktiv=true; + $benutzer->save(false, false); + } + } + $return = true; + } + else + { + $return = false; + $errormsg = $prestd_neu->errormsg; + } + } + } + else + { + $return = false; + $errormsg = 'Es ist keine Rolle fuer diesen Prestudent vorhanden'; + } } } else @@ -501,14 +539,12 @@ if(!$error) elseif(isset($_POST['type']) && $_POST['type']=='deleterolle') { //Loescht eine Prestudentrolle - //Kann nur geloescht werden wenn die Berechtigung ADMIN ist oder der - //Datensatz selbst angelegt wurde - + if(isset($_POST['studiensemester_kurzbz']) && isset($_POST['rolle_kurzbz']) && isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']) && isset($_POST['ausbildungssemester']) && is_numeric($_POST['ausbildungssemester'])) { - if($_POST['rolle_kurzbz']=='Student') + if($_POST['rolle_kurzbz']=='Student' && !$rechte->isBerechtigt('admin', null, 'suid')) { $return = false; $errormsg = 'Studentenrolle kann nur durch den Administrator geloescht werden'; @@ -518,7 +554,7 @@ if(!$error) $rolle = new prestudent($conn, null, true); if($rolle->load_rolle($_POST['prestudent_id'],$_POST['rolle_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'])) { - if($rechte->isBerechtigt('admin',0) || $rolle->insertvon == $user) + if($rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') || $rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) { if($rolle->delete_rolle($_POST['prestudent_id'],$_POST['rolle_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'])) { @@ -533,7 +569,7 @@ if(!$error) else { $return = false; - $errormsg = 'Sie haben keine Berechtigung zum Loeschen dieser Rolle'; + $errormsg = 'Sie haben keine Berechtigung zum Loeschen dieser Rolle:'.$_POST['studiengang_kz']; } } else @@ -557,26 +593,45 @@ if(!$error) if(isset($_POST['prestudent_id'])) { $rolle = new prestudent($conn); - if(!$rolle->load_rolle($_POST['prestudent_id'], $_POST['rolle_kurzbz'], $_POST['studiensemester_old'], $_POST['ausbildungssemester_old'])) + if(!$rolle->load($_POST['prestudent_id'])) { - $errormsg = 'Rolle konnte nicht geladen werden'; - $return = false; + $error = true; + $errormsg = 'Prestudent wurde nicht gefunden'; } else - { - $rolle->ausbildungssemester = $_POST['ausbildungssemester']; - $rolle->ausbildungssemester_old = $_POST['ausbildungssemester_old']; - $rolle->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; - $rolle->studiensemester_old = $_POST['studiensemester_old']; - $rolle->datum = $_POST['datum']; - $rolle->new = false; - - if($rolle->save_rolle()) - $return = true; - else + { + //Berechtigung pruefen + if(!$rechte->isBerechtigt('assistenz',$rolle->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$rolle->studiengang_kz, 'suid')) { + $error = true; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + } + + if(!$error) + { + if(!$rolle->load_rolle($_POST['prestudent_id'], $_POST['rolle_kurzbz'], $_POST['studiensemester_old'], $_POST['ausbildungssemester_old'])) + { + $errormsg = 'Rolle konnte nicht geladen werden'; $return = false; - $errormsg = $rolle->errormsg; + } + else + { + $rolle->ausbildungssemester = $_POST['ausbildungssemester']; + $rolle->ausbildungssemester_old = $_POST['ausbildungssemester_old']; + $rolle->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + $rolle->studiensemester_old = $_POST['studiensemester_old']; + $rolle->datum = $_POST['datum']; + $rolle->new = false; + + if($rolle->save_rolle()) + $return = true; + else + { + $return = false; + $errormsg = $rolle->errormsg; + } } } } @@ -604,147 +659,158 @@ if(!$error) $prestd = new prestudent($conn); if($prestd->load($_POST['prestudent_id'])) { - if($prestd->zgv_code!='') + //Berechtigung pruefen + if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid')) { - $stg = new studiengang($conn); - $stg->load($prestd->studiengang_kz); - - if($stg->typ=='m' && $prestd->zgvmas_code=='') + $error = true; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + + if(!$error) + { + if($prestd->zgv_code!='') { - $return = false; - $errormsg = 'ZGV Master muss eingegeben werden'; - } - else - { - //Pruefen ob die Rolle Bewerber existiert - $hlp = new prestudent($conn); - $hlp->getPrestudentRolle($_POST['prestudent_id'], 'Bewerber',null,'datum DESC, insertamum DESC'); - - if(count($hlp->result)>0) + $stg = new studiengang($conn); + $stg->load($prestd->studiengang_kz); + + if($stg->typ=='m' && $prestd->zgvmas_code=='') { - //pruefen ob schon eine Studentenrolle Existiert - $hlp1 = new prestudent($conn); - $hlp1->getPrestudentRolle($_POST['prestudent_id'], 'Student', $hlp->result[0]->studiensemester_kurzbz); - if(count($hlp1->result)>0) + $return = false; + $errormsg = 'ZGV Master muss eingegeben werden'; + } + else + { + //Pruefen ob die Rolle Bewerber existiert + $hlp = new prestudent($conn); + $hlp->getPrestudentRolle($_POST['prestudent_id'], 'Bewerber',null,'datum DESC, insertamum DESC'); + + if(count($hlp->result)>0) { - $return = false; - $errormsg = 'Diese Person ist bereits Student'; - } - else - { - //pruefen ob die Kaution bezahlt wurde - //?? - - pg_query($conn, 'BEGIN;'); - - //Matrikelnummer und UID generieren - $matrikelnr = generateMatrikelnummer($conn, $prestd->studiengang_kz, $hlp->result[0]->studiensemester_kurzbz); - $uid = generateUID($conn, $matrikelnr); - - $return = false; - $errormsg = "Matrikelnummer: $matrikelnr, UID: $uid"; - - //Benutzerdatensatz anlegen - $benutzer = new benutzer($conn); - $benutzer->uid = $uid; - $benutzer->person_id = $prestd->person_id; - $benutzer->aktiv = true; - - $qry_alias = "SELECT * FROM public.tbl_benutzer WHERE alias=LOWER('".clean_string($prestd->vorname).".".clean_string($prestd->nachname)."')"; - $result_alias = pg_query($conn, $qry_alias); - if(pg_num_rows($result_alias)==0) - $benutzer->alias = strtolower(clean_string($prestd->vorname).'.'.clean_string($prestd->nachname)); - else - $benutzer->alias = ''; - - $benutzer->insertamum = date('Y-m-d H:i:s'); - $benutzer->insertvon = $user; - - if($benutzer->save(true, false)) + //pruefen ob schon eine Studentenrolle Existiert + $hlp1 = new prestudent($conn); + $hlp1->getPrestudentRolle($_POST['prestudent_id'], 'Student', $hlp->result[0]->studiensemester_kurzbz); + if(count($hlp1->result)>0) { - //Studentendatensatz anlegen - $student = new student($conn); - $student->uid = $uid; - $student->matrikelnr = $matrikelnr; - $student->prestudent_id = $prestd->prestudent_id; - $student->studiengang_kz = $prestd->studiengang_kz; - $student->semester = $hlp->result[0]->ausbildungssemester; - $student->verband = ' '; - $student->gruppe = ' '; - $student->insertamum = date('Y-m-d H:i:s'); - $student->insertvon = $user; + $return = false; + $errormsg = 'Diese Person ist bereits Student'; + } + else + { + //pruefen ob die Kaution bezahlt wurde + //?? - if($student->save(true, false)) + pg_query($conn, 'BEGIN;'); + + //Matrikelnummer und UID generieren + $matrikelnr = generateMatrikelnummer($conn, $prestd->studiengang_kz, $hlp->result[0]->studiensemester_kurzbz); + $uid = generateUID($conn, $matrikelnr); + + $return = false; + $errormsg = "Matrikelnummer: $matrikelnr, UID: $uid"; + + //Benutzerdatensatz anlegen + $benutzer = new benutzer($conn); + $benutzer->uid = $uid; + $benutzer->person_id = $prestd->person_id; + $benutzer->aktiv = true; + + $qry_alias = "SELECT * FROM public.tbl_benutzer WHERE alias=LOWER('".clean_string($prestd->vorname).".".clean_string($prestd->nachname)."')"; + $result_alias = pg_query($conn, $qry_alias); + if(pg_num_rows($result_alias)==0) + $benutzer->alias = strtolower(clean_string($prestd->vorname).'.'.clean_string($prestd->nachname)); + else + $benutzer->alias = ''; + + $benutzer->insertamum = date('Y-m-d H:i:s'); + $benutzer->insertvon = $user; + + if($benutzer->save(true, false)) { - //Prestudentrolle hinzugfuegen - $rolle = new prestudent($conn); - $rolle->prestudent_id = $prestd->prestudent_id; - $rolle->rolle_kurzbz = 'Student'; - $rolle->studiensemester_kurzbz = $hlp->result[0]->studiensemester_kurzbz; - $rolle->ausbildungssemester = $hlp->result[0]->ausbildungssemester; - $rolle->datum = date('Y-m-d'); - $rolle->insertamum = date('Y-m-d H:i:s'); - $rolle->insertvon = $user; - $rolle->new = true; + //Studentendatensatz anlegen + $student = new student($conn); + $student->uid = $uid; + $student->matrikelnr = $matrikelnr; + $student->prestudent_id = $prestd->prestudent_id; + $student->studiengang_kz = $prestd->studiengang_kz; + $student->semester = $hlp->result[0]->ausbildungssemester; + $student->verband = ' '; + $student->gruppe = ' '; + $student->insertamum = date('Y-m-d H:i:s'); + $student->insertvon = $user; - if($rolle->save_rolle()) + if($student->save(true, false)) { - //StudentLehrverband anlegen - $studentlehrverband = new student($conn); - $studentlehrverband->uid = $uid; - $studentlehrverband->studiensemester_kurzbz = $hlp->result[0]->studiensemester_kurzbz; - $studentlehrverband->studiengang_kz = $prestd->studiengang_kz; - $studentlehrverband->semester = $hlp->result[0]->ausbildungssemester; - $studentlehrverband->verband = ' '; - $studentlehrverband->gruppe = ' '; - $studentlehrverband->insertamum = date('Y-m-d H:i:s'); - $studentlehrverband->insertvon = $user; + //Prestudentrolle hinzugfuegen + $rolle = new prestudent($conn); + $rolle->prestudent_id = $prestd->prestudent_id; + $rolle->rolle_kurzbz = 'Student'; + $rolle->studiensemester_kurzbz = $hlp->result[0]->studiensemester_kurzbz; + $rolle->ausbildungssemester = $hlp->result[0]->ausbildungssemester; + $rolle->datum = date('Y-m-d'); + $rolle->insertamum = date('Y-m-d H:i:s'); + $rolle->insertvon = $user; + $rolle->new = true; - if($studentlehrverband->save_studentlehrverband(true)) + if($rolle->save_rolle()) { - $return = true; - pg_query($conn, 'COMMIT;'); + //StudentLehrverband anlegen + $studentlehrverband = new student($conn); + $studentlehrverband->uid = $uid; + $studentlehrverband->studiensemester_kurzbz = $hlp->result[0]->studiensemester_kurzbz; + $studentlehrverband->studiengang_kz = $prestd->studiengang_kz; + $studentlehrverband->semester = $hlp->result[0]->ausbildungssemester; + $studentlehrverband->verband = ' '; + $studentlehrverband->gruppe = ' '; + $studentlehrverband->insertamum = date('Y-m-d H:i:s'); + $studentlehrverband->insertvon = $user; + + if($studentlehrverband->save_studentlehrverband(true)) + { + $return = true; + pg_query($conn, 'COMMIT;'); + } + else + { + $errormsg = 'Fehler beim Speichern des Studentlehrverbandes: '.$studentlehrverband->errormsg; + $return = false; + pg_query($conn, 'ROLLBACK;'); + } } else { - $errormsg = 'Fehler beim Speichern des Studentlehrverbandes: '.$studentlehrverband->errormsg; + $errormsg = 'Fehler beim Speichern des Rolle: '.$rolle->errormsg; $return = false; pg_query($conn, 'ROLLBACK;'); } } else { - $errormsg = 'Fehler beim Speichern des Rolle: '.$rolle->errormsg; + $errormsg = 'Fehler beim Speichern des Studenten: '.$student->errormsg; $return = false; pg_query($conn, 'ROLLBACK;'); } } else { - $errormsg = 'Fehler beim Speichern des Studenten: '.$student->errormsg; + $errormsg = 'Fehler beim Speichern des Benutzers: '.$benutzer->errormsg; $return = false; pg_query($conn, 'ROLLBACK;'); } } - else - { - $errormsg = 'Fehler beim Speichern des Benutzers: '.$benutzer->errormsg; - $return = false; - pg_query($conn, 'ROLLBACK;'); - } + } + else + { + $return = false; + $errormsg = 'Die Person muss zuerst Bewerber sein bevor Sie zum Studenten gemacht werden kann'; } } - else - { - $return = false; - $errormsg = 'Die Person muss zuerst Bewerber sein bevor Sie zum Studenten gemacht werden kann'; - } } - } - else - { - $return = false; - $errormsg = 'ZGV muss eingegeben werden'; + else + { + $return = false; + $errormsg = 'ZGV muss eingegeben werden'; + } } } else @@ -764,6 +830,22 @@ if(!$error) { if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz'])) { + $gruppe = new gruppe($conn); + if(!$gruppe->load($_POST['gruppe_kurzbz'])) + { + $error = true; + $errormsg='Gruppe wurde nicht gefunden'; + } + else + { + //Berechtigung pruefen + if(!$rechte->isBerechtigt('assistenz',$gruppe->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$gruppe->studiengang_kz, 'suid')) + { + $error = true; + $errormsg = 'Sie haben keine Schreibrechte fuer diese Gruppe'; + } + } $benutzergruppe = new benutzergruppe($conn); $uids = explode(';',$_POST['uid']); @@ -805,21 +887,57 @@ if(!$error) { if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz'])) { - $uids = explode(';',$_POST['uid']); - $errormsg = ''; - foreach ($uids as $uid) + $gruppe = new gruppe($conn); + if($gruppe->load($_POST['gruppe_kurzbz'])) { - $benutzergruppe = new benutzergruppe($conn); - - if(!$benutzergruppe->delete($uid, $_POST['gruppe_kurzbz'])) + $uids = explode(';',$_POST['uid']); + $errormsg = ''; + foreach ($uids as $uid) { - $errormsg .= "$uid konnte nicht aus der Gruppe geloescht werden\n"; + if($uid!='') + { + $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid='".addslashes($uid)."'"; + if($result = pg_query($conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + //Berechtigung pruefen + if(!$rechte->isBerechtigt('assistenz',$gruppe->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$gruppe->studiengang_kz, 'suid') && + !$rechte->isBerechtigt('admin',$row->studiengang_kz, 'suid') && + !$rechte->isBerechtigt('assistenz',$row->studiengang_kz, 'suid')) + { + $error = true; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + + if(!$error) + { + $benutzergruppe = new benutzergruppe($conn); + + if(!$benutzergruppe->delete($uid, $_POST['gruppe_kurzbz'])) + { + $errormsg .= "$uid konnte nicht aus der Gruppe geloescht werden\n"; + } + } + } + else + $errormsg .= "Studiengang von $uid konnte nicht ermittelt werden\n"; + } + else + $errormsg .= "Studiengang von $uid konnte nicht ermittelt werden\n"; + } } + if($errormsg=='') + $return = true; + else + $return = false; } - if($errormsg=='') - $return = true; - else + else + { $return = false; + $errormsg = "Gruppe wurde nicht gefunden"; + } } else { @@ -831,17 +949,28 @@ if(!$error) { if(isset($_POST['akte_id']) && is_numeric($_POST['akte_id'])) { - $akte = new akte($conn); - - if($akte->delete($_POST['akte_id'])) - { - $return = true; - } - else + //Berechtigung pruefen + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) { + $error = true; $return = false; - $errormsg = $akte->errormsg; - } + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + if(!$error) + { + $akte = new akte($conn); + + if($akte->delete($_POST['akte_id'])) + { + $return = true; + } + else + { + $return = false; + $errormsg = $akte->errormsg; + } + } } else { @@ -858,24 +987,34 @@ if(!$error) if($buchung->load($_POST['buchungsnr'])) { - $buchung->betrag = $_POST['betrag']; - $buchung->buchungsdatum = $_POST['buchungsdatum']; - $buchung->buchungstext = $_POST['buchungstext']; - $buchung->mahnspanne = $_POST['mahnspanne']; - $buchung->buchungstyp_kurzbz = $_POST['buchungstyp_kurzbz']; - $buchung->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; - $buchung->new = false; - $buchung->updateamum = date('Y-m-d H:i:s'); - $buchung->updatevon = $user; - - if($buchung->save()) + if(!$rechte->isBerechtigt('assistenz',$buchung->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$buchung->studiengang_kz, 'suid')) { - $return = true; + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; } else { - $return = false; - $errormsg = 'Fehler beim Speichern:'.$buchung->errormsg; + $buchung->betrag = $_POST['betrag']; + $buchung->buchungsdatum = $_POST['buchungsdatum']; + $buchung->buchungstext = $_POST['buchungstext']; + $buchung->mahnspanne = $_POST['mahnspanne']; + $buchung->buchungstyp_kurzbz = $_POST['buchungstyp_kurzbz']; + $buchung->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + $buchung->new = false; + $buchung->updateamum = date('Y-m-d H:i:s'); + $buchung->updatevon = $user; + + if($buchung->save()) + { + $return = true; + } + else + { + $return = false; + $errormsg = 'Fehler beim Speichern:'.$buchung->errormsg; + } } } else @@ -905,34 +1044,45 @@ if(!$error) if($buchung->load($buchungsnr)) { - if($buchung->buchungsnr_verweis=='') + //Berechtigung pruefen + if(!$rechte->isBerechtigt('assistenz',$buchung->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$buchung->studiengang_kz, 'suid')) { - $kto = new konto($conn, null, true); - //$buchung->betrag*(-1); - $buchung->betrag = $kto->getDifferenz($buchungsnr); - $buchung->buchungsdatum = date('Y-m-d'); - $buchung->mahnspanne = '0'; - $buchung->buchungsnr_verweis = $buchung->buchungsnr; - $buchung->new = true; - $buchung->insertamum = date('Y-m-d H:i:s'); - $buchung->insertvon = $user; - - if($buchung->save()) + $error = true; + $return = false; + $errormsg = "\nSie haben keine Schreibrechte fuer diese Buchung: ".$buchung->buchungsnr; + } + else + { + if($buchung->buchungsnr_verweis=='') { - //$data = $buchung->buchungsnr; - $return = true; + $kto = new konto($conn, null, true); + //$buchung->betrag*(-1); + $buchung->betrag = $kto->getDifferenz($buchungsnr); + $buchung->buchungsdatum = date('Y-m-d'); + $buchung->mahnspanne = '0'; + $buchung->buchungsnr_verweis = $buchung->buchungsnr; + $buchung->new = true; + $buchung->insertamum = date('Y-m-d H:i:s'); + $buchung->insertvon = $user; + + if($buchung->save()) + { + //$data = $buchung->buchungsnr; + $return = true; + } + else + { + $return = false; + $errormsg .= "\n".'Fehler beim Speichern:'.$buchung->errormsg; + } } else { $return = false; - $errormsg .= "\n".'Fehler beim Speichern:'.$buchung->errormsg; + $errormsg .= "\n".'Gegenbuchungen koennen nur auf die obersten Buchungen getaetigt werden'; } } - else - { - $return = false; - $errormsg .= "\n".'Gegenbuchungen koennen nur auf die obersten Buchungen getaetigt werden'; - } } else { @@ -963,13 +1113,31 @@ if(!$error) { $buchung = new konto($conn, null, true); - if($buchung->delete($_POST['buchungsnr'])) + if($buchung->load($_POST['buchungsnr'])) { - $return = true; + if(!$rechte->isBerechtigt('assistenz',$buchung->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$buchung->studiengang_kz, 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + else + { + if($buchung->delete($_POST['buchungsnr'])) + { + $return = true; + } + else + { + $errormsg = $buchung->errormsg; + $return = false; + } + } } else { - $errormsg = $buchung->errormsg; + $errormsg = 'Buchung wurde nicht gefunden'; $return = false; } } @@ -986,31 +1154,41 @@ if(!$error) //Personen werden durch ';' getrennt $person_ids = explode(';',$_POST['person_ids']); $errormsg = ''; - foreach ($person_ids as $person_id) + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) { - if($person_id!='') + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + else + { + foreach ($person_ids as $person_id) { - $buchung = new konto($conn, null, true); - $buchung->person_id = $person_id; - $buchung->studiengang_kz = $_POST['studiengang_kz']; - $buchung->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; - $buchung->buchungsnr_verweis=''; - $buchung->betrag = $_POST['betrag']; - $buchung->buchungsdatum = $_POST['buchungsdatum']; - $buchung->buchungstext = $_POST['buchungstext']; - $buchung->mahnspanne = $_POST['mahnspanne']; - $buchung->buchungstyp_kurzbz = $_POST['buchungstyp_kurzbz']; - $buchung->insertamum = date('Y-m-d H:i:s'); - $buchung->insertvon = $user; - $buchung->new = true; - - if($buchung->save()) + if($person_id!='') { - $data = $buchung->buchungsnr; - } - else - { - $errormsg .= "Fehler bei $person_id: $buchung->errormsg\n"; + $buchung = new konto($conn, null, true); + $buchung->person_id = $person_id; + $buchung->studiengang_kz = $_POST['studiengang_kz']; + $buchung->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + $buchung->buchungsnr_verweis=''; + $buchung->betrag = $_POST['betrag']; + $buchung->buchungsdatum = $_POST['buchungsdatum']; + $buchung->buchungstext = $_POST['buchungstext']; + $buchung->mahnspanne = $_POST['mahnspanne']; + $buchung->buchungstyp_kurzbz = $_POST['buchungstyp_kurzbz']; + $buchung->insertamum = date('Y-m-d H:i:s'); + $buchung->insertvon = $user; + $buchung->new = true; + + if($buchung->save()) + { + $data = $buchung->buchungsnr; + } + else + { + $errormsg .= "Fehler bei $person_id: $buchung->errormsg\n"; + } } } } @@ -1024,270 +1202,347 @@ if(!$error) //Speichert die Zuordnung von Dokumenten zu einem Prestudent //Gleichzeitiges zuteilen mehrerer Dokumente auf einmal ist moeglich //Dokumente werden durch ';' getrennt uebergeben - $dokumente = explode(';',$_POST['dokumente']); - $errormsg = ''; - foreach ($dokumente as $dokument_kurzbz) + + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) { - if($dokument_kurzbz!='') + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + else + { + $dokumente = explode(';',$_POST['dokumente']); + $errormsg = ''; + foreach ($dokumente as $dokument_kurzbz) { - $dok = new dokument($conn, null, null, true); - $dok->dokument_kurzbz = $dokument_kurzbz; - $dok->prestudent_id = $_POST['prestudent_id']; - $dok->mitarbeiter_uid = $user; - $dok->datum = date('Y-m-d'); - $dok->insertamum = date('Y-m-d H:i:s'); - $dok->insertvon = $user; - $dok->new = true; - - if(!$dok->save()) + if($dokument_kurzbz!='') { - $errormsg .= "Fehler bei $dokument_kurzbz: $dok->errormsg\n"; + $dok = new dokument($conn, null, null, true); + $dok->dokument_kurzbz = $dokument_kurzbz; + $dok->prestudent_id = $_POST['prestudent_id']; + $dok->mitarbeiter_uid = $user; + $dok->datum = date('Y-m-d'); + $dok->insertamum = date('Y-m-d H:i:s'); + $dok->insertvon = $user; + $dok->new = true; + + if(!$dok->save()) + { + $errormsg .= "Fehler bei $dokument_kurzbz: $dok->errormsg\n"; + } } } + if($errormsg=='') + $return = true; + else + $return = false; } - if($errormsg=='') - $return = true; - else - $return = false; } elseif(isset($_POST['type']) && $_POST['type']=='dokumentprestudentdel') { //Loescht die Zuordnung von Dokumenten zu einem Prestudent //Gleichzeitiges loeschen mehrerer Dokumente auf einmal ist moeglich //Dokumente werden durch ';' getrennt uebergeben - $dokumente = explode(';',$_POST['dokumente']); - $errormsg = ''; - foreach ($dokumente as $dokument_kurzbz) + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) { - if($dokument_kurzbz!='') + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + else + { + $dokumente = explode(';',$_POST['dokumente']); + $errormsg = ''; + foreach ($dokumente as $dokument_kurzbz) { - $dok = new dokument($conn, null, null, true); - if($dok->load($dokument_kurzbz, $_POST['prestudent_id'])) + if($dokument_kurzbz!='') { - if($dok->mitarbeiter_uid==$user) + $dok = new dokument($conn, null, null, true); + if($dok->load($dokument_kurzbz, $_POST['prestudent_id'])) { - if(!$dok->delete($dokument_kurzbz, $_POST['prestudent_id'])) + if($dok->mitarbeiter_uid==$user) { - $errormsg .= "Fehler bei $dokument_kurzbz: $dok->errormsg\n"; + if(!$dok->delete($dokument_kurzbz, $_POST['prestudent_id'])) + { + $errormsg .= "Fehler bei $dokument_kurzbz: $dok->errormsg\n"; + } + } + else + { + $errormsg.="Fehler bei $dokument_kurzbz: Loeschen nur durch $mitarbeiter_uid moeglich\n"; } } else { - $errormsg.="Fehler bei $dokument_kurzbz: Loeschen nur durch $mitarbeiter_uid moeglich\n"; + $errormsg.="Dokumentenzuteilung existiert nicht: $dokument_kurzbz\n"; } } - else - { - $errormsg.="Dokumentenzuteilung existiert nicht: $dokument_kurzbz\n"; - } } + if($errormsg=='') + $return = true; + else + $return = false; } - if($errormsg=='') - $return = true; - else - $return = false; } elseif(isset($_POST['type']) && $_POST['type']=='deletebetriebsmittel') { - //Loescht eine Buchung - if(isset($_POST['betriebsmittel_id']) && is_numeric($_POST['betriebsmittel_id']) && - isset($_POST['person_id']) && is_numeric($_POST['person_id'])) + //Loescht ein Betriebsmittel + //Wenn studiengang_kz uebergeben wird, dann handelt es sich um die Betriebsmittel eines Studenten + //Wenn studiengang_kz='' dann werden Mitarbeiterrechte benoetigt + if(($_POST['studiengang_kz']!='' && + !$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') + ) || + ($_POST['studiengang_kz']=='' && + !$rechte->isBerechtigt('admin', null, 'suid') && + !$rechte->isBerechtigt('mitarbeiter', null, 'suid') + )) { - $btm = new betriebsmittelperson($conn, null,null, true); - - if($btm->delete($_POST['betriebsmittel_id'], $_POST['person_id'])) + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + if(isset($_POST['betriebsmittel_id']) && is_numeric($_POST['betriebsmittel_id']) && + isset($_POST['person_id']) && is_numeric($_POST['person_id'])) { - $return = true; + $btm = new betriebsmittelperson($conn, null,null, true); + + if($btm->delete($_POST['betriebsmittel_id'], $_POST['person_id'])) + { + $return = true; + } + else + { + $errormsg = $btm->errormsg; + $return = false; + } } else { - $errormsg = $btm->errormsg; $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; } } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } } elseif(isset($_POST['type']) && $_POST['type']=='savebetriebsmittel') { //Speichert eine Betriebsmittelzuordnung - $bm = new betriebsmittel($conn, null, true); - - //Nachschauen ob dieses Betriebsmittel schon existiert - if($bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummerold'])) + //Wenn studiengang_kz uebergeben wird, dann handelt es sich um die Betriebsmittel eines Studenten + //Wenn studiengang_kz='' dann werden Mitarbeiterrechte benoetigt + if(($_POST['studiengang_kz']!='' && + !$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') + ) || + ($_POST['studiengang_kz']=='' && + !$rechte->isBerechtigt('admin', null, 'suid') && + !$rechte->isBerechtigt('mitarbeiter', null, 'suid') + )) { - if(count($bm->result)>0) + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $bm = new betriebsmittel($conn, null, true); + + //Nachschauen ob dieses Betriebsmittel schon existiert + if($bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummerold'])) { - //Wenn ein Eintrag gefunden wurde, dann wird die Beschreibung aktualisiert - if($bm->load($bm->result[0]->betriebsmittel_id)) + if(count($bm->result)>0) { - $bm->beschreibung = $_POST['beschreibung']; - $bm->nummer = $_POST['nummer']; - if(!$bm->save(false)) + //Wenn ein Eintrag gefunden wurde, dann wird die Beschreibung aktualisiert + if($bm->load($bm->result[0]->betriebsmittel_id)) { - $return = false; - $error = true; - $errormsg = 'Fehler beim Speichern des Betriebsmittels'; + $bm->beschreibung = $_POST['beschreibung']; + $bm->nummer = $_POST['nummer']; + if(!$bm->save(false)) + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Speichern des Betriebsmittels'; + } + else + { + $betriebsmittel_id = $bm->betriebsmittel_id; + } } else + { + $return = false; + $error = true; + $errormsg = 'Gefundener Eintrag konnte nicht geladen werden!?!?'; + } + } + else + { + //Wenn kein Eintrag gefunden wurde, dann wird ein neuer Eintrag angelegt + $bm->betriebsmitteltyp = $_POST['betriebsmitteltyp']; + $bm->nummer = $_POST['nummer']; + $bm->beschreibung = $_POST['beschreibung']; + $bm->reservieren = false; + $bm->ort_kurzbz = null; + $bm->insertamum = date('Y-m-d H:i:s'); + $bm->insertvon = $user; + + if($bm->save(true)) { $betriebsmittel_id = $bm->betriebsmittel_id; } + else + { + $error = true; + $return = false; + $errormsg = 'Fehler beim Anlegen des Betriebsmittels'; + } + } + + //Zuordnung Betriebsmittel-Person anlegen + $bmp = new betriebsmittelperson($conn, null, null, true); + if($_POST['neu']!='true') + { + if($bmp->load($betriebsmittel_id, $_POST['person_id'])) + { + $bmp->updateamum = date('Y-m-d H:i:s'); + $bmp->updatevon = $user; + $bmp->new = false; + } + else + { + $error = true; + $return = false; + $errormsg = 'Fehler beim Laden der Betriebmittelperson Zuordnung'; + } } else { - $return = false; - $error = true; - $errormsg = 'Gefundener Eintrag konnte nicht geladen werden!?!?'; + $bmp->insertamum = date('Y-m-d H:i:s'); + $bmp->insertvon = $user; + $bmp->new = true; } - } - else - { - //Wenn kein Eintrag gefunden wurde, dann wird ein neuer Eintrag angelegt - $bm->betriebsmitteltyp = $_POST['betriebsmitteltyp']; - $bm->nummer = $_POST['nummer']; - $bm->beschreibung = $_POST['beschreibung']; - $bm->reservieren = false; - $bm->ort_kurzbz = null; - $bm->insertamum = date('Y-m-d H:i:s'); - $bm->insertvon = $user; - - if($bm->save(true)) + + if(!$error) { - $betriebsmittel_id = $bm->betriebsmittel_id; - } - else - { - $error = true; - $return = false; - $errormsg = 'Fehler beim Anlegen des Betriebsmittels'; - } - } - - //Zuordnung Betriebsmittel-Person anlegen - $bmp = new betriebsmittelperson($conn, null, null, true); - if($_POST['neu']!='true') - { - if($bmp->load($betriebsmittel_id, $_POST['person_id'])) - { - $bmp->updateamum = date('Y-m-d H:i:s'); - $bmp->updatevon = $user; - $bmp->new = false; - } - else - { - $error = true; - $return = false; - $errormsg = 'Fehler beim Laden der Betriebmittelperson Zuordnung'; + $bmp->person_id = $_POST['person_id']; + $bmp->betriebsmittel_id=$betriebsmittel_id; + $bmp->anmerkung = $_POST['anmerkung']; + $bmp->kaution = trim(str_replace(',','.',$_POST['kaution'])); + $bmp->ausgegebenam = $_POST['ausgegebenam']; + $bmp->retouram = $_POST['retouram']; + + if($bmp->save()) + { + $return = true; + $data = $betriebsmittel_id; + } + else + { + $return = false; + $errormsg = $bmp->errormsg; + } } } else { - $bmp->insertamum = date('Y-m-d H:i:s'); - $bmp->insertvon = $user; - $bmp->new = true; + $errormsg = 'Fehler:'.$bm->errormsg; + $return = false; } - - if(!$error) - { - $bmp->person_id = $_POST['person_id']; - $bmp->betriebsmittel_id=$betriebsmittel_id; - $bmp->anmerkung = $_POST['anmerkung']; - $bmp->kaution = trim(str_replace(',','.',$_POST['kaution'])); - $bmp->ausgegebenam = $_POST['ausgegebenam']; - $bmp->retouram = $_POST['retouram']; - - if($bmp->save()) - { - $return = true; - $data = $betriebsmittel_id; - } - else - { - $return = false; - $errormsg = $bmp->errormsg; - } - } - } - else - { - $errormsg = 'Fehler:'.$bm->errormsg; - $return = false; } } elseif(isset($_POST['type']) && $_POST['type']=='deletebisio') { - //Loescht einen BisIO Eintrag - if(isset($_POST['bisio_id']) && is_numeric($_POST['bisio_id'])) + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) { - $bisio = new bisio($conn); - - if($bisio->delete($_POST['bisio_id'])) + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + //Loescht einen BisIO Eintrag + if(isset($_POST['bisio_id']) && is_numeric($_POST['bisio_id'])) { - $return = true; + $bisio = new bisio($conn); + + if($bisio->delete($_POST['bisio_id'])) + { + $return = true; + } + else + { + $errormsg = $bisio->errormsg; + $return = false; + } } else { - $errormsg = $bisio->errormsg; $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; } } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } } elseif(isset($_POST['type']) && $_POST['type']=='savebisio') { //Speichert einen BisIO Eintrag - - $bisio = new bisio($conn); - - if($_POST['neu']=='true') + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) { - $bisio->insertamum = date('Y-m-d H:i:s'); - $bisio->insertvon = $user; - $bisio->new = true; + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; } - else + else { - if($bisio->load($_POST['bisio_id'])) - $bisio->new = false; - else + + $bisio = new bisio($conn); + + if($_POST['neu']=='true') { - $error = true; - $errormsg = $bisio->errormsg; - $return = false; - } - } - - $bisio->bisio_id = (isset($_POST['bisio_id'])?$_POST['bisio_id']:''); - $bisio->mobilitaetsprogramm_code = $_POST['mobilitaetsprogramm_code']; - $bisio->nation_code = $_POST['nation_code']; - $bisio->von = $_POST['von']; - $bisio->bis = $_POST['bis']; - $bisio->zweck_code = $_POST['zweck_code']; - $bisio->student_uid = $_POST['student_uid']; - $bisio->updateamum = date('Y-m-d H:i:s'); - $bisio->updatevon = $user; - - if(!$error) - { - if($bisio->save()) - { - $return = true; - $data = $bisio->bisio_id; + $bisio->insertamum = date('Y-m-d H:i:s'); + $bisio->insertvon = $user; + $bisio->new = true; } else { - $errormsg = $bisio->errormsg; - $return = false; + if($bisio->load($_POST['bisio_id'])) + $bisio->new = false; + else + { + $error = true; + $errormsg = $bisio->errormsg; + $return = false; + } } - } + + $bisio->bisio_id = (isset($_POST['bisio_id'])?$_POST['bisio_id']:''); + $bisio->mobilitaetsprogramm_code = $_POST['mobilitaetsprogramm_code']; + $bisio->nation_code = $_POST['nation_code']; + $bisio->von = $_POST['von']; + $bisio->bis = $_POST['bis']; + $bisio->zweck_code = $_POST['zweck_code']; + $bisio->student_uid = $_POST['student_uid']; + $bisio->updateamum = date('Y-m-d H:i:s'); + $bisio->updatevon = $user; + + if(!$error) + { + if($bisio->save()) + { + $return = true; + $data = $bisio->bisio_id; + } + else + { + $errormsg = $bisio->errormsg; + $return = false; + } + } + } } elseif(isset($_POST['type']) && $_POST['type']=='savenote') { @@ -1297,33 +1552,90 @@ if(!$error) if(isset($_POST['lehrveranstaltung_id']) && isset($_POST['student_uid']) && isset($_POST['studiensemester_kurzbz'])) { - if($noten->load($_POST['lehrveranstaltung_id'], $_POST['student_uid'], $_POST['studiensemester_kurzbz'])) + //Berechtigung pruefen + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id='".addslashes($_POST['lehrveranstaltung_id'])."'"; + if($result = pg_query($conn, $qry)) { - $noten->new = false; - $noten->updateamum = date('Y-m-d H:i:s'); - $noten->updatevon = $user; + if($row = pg_fetch_object($result)) + { + $stg_lva = $row->studiengang_kz; + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der LVA'; + } } else { - $noten->new = true; - $noten->insertamum = date('Y-m-d H:i:s'); - $noten->insertvon = $user; + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der LVA'; } - $noten->lehrveranstaltung_id = $_POST['lehrveranstaltung_id']; - $noten->student_uid = $_POST['student_uid']; - $noten->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; - $noten->benotungsdatum = date('Y-m-d H:i:s'); - $noten->note = $_POST['note']; - - if($noten->save()) + $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid='".addslashes($_POST['student_uid'])."'"; + if($result = pg_query($conn, $qry)) { - $return = true; + if($row = pg_fetch_object($result)) + { + $stg_std = $row->studiengang_kz; + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln des Studenten'; + } } else { - $errormsg = $noten->errormsg; $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln des Studenten'; + } + + if(!$error) + { + if(!$rechte->isBerechtigt('admin', $stg_lva, 'suid') && !$rechte->isBerechtigt('admin', $stg_std, 'suid') && + !$rechte->isBerechtigt('assistenz', $stg_lva, 'suid') && !$rechte->isBerechtigt('assistenz', $stg_std, 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + + if($noten->load($_POST['lehrveranstaltung_id'], $_POST['student_uid'], $_POST['studiensemester_kurzbz'])) + { + $noten->new = false; + $noten->updateamum = date('Y-m-d H:i:s'); + $noten->updatevon = $user; + } + else + { + $noten->new = true; + $noten->insertamum = date('Y-m-d H:i:s'); + $noten->insertvon = $user; + } + + $noten->lehrveranstaltung_id = $_POST['lehrveranstaltung_id']; + $noten->student_uid = $_POST['student_uid']; + $noten->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + $noten->benotungsdatum = date('Y-m-d H:i:s'); + $noten->note = $_POST['note']; + + if($noten->save()) + { + $return = true; + } + else + { + $errormsg = $noten->errormsg; + $return = false; + } + } } } else @@ -1344,37 +1656,93 @@ if(!$error) $lvgesamtnote = new lvgesamtnote($conn, null, true); $zeugnisnote = new zeugnisnote($conn, null, true); - if($lvgesamtnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['student_uid_'.$i], $_POST['studiensemester_kurzbz_'.$i])) - { - if($zeugnisnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['student_uid_'.$i], $_POST['studiensemester_kurzbz_'.$i])) + //Berechtigung pruefen + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id='".addslashes($_POST['lehrveranstaltung_id_'.$i])."'"; + if($result = pg_query($conn, $qry)) + { + if($row = pg_fetch_object($result)) { - $zeugnisnote->new = false; - $zeugnisnote->updateamum = date('Y-m-d H:i:s'); - $zeugnisnote->updatevon = $user; + $stg_lva = $row->studiengang_kz; } else { - $zeugnisnote->new = true; - $zeugnisnote->insertamum = date('Y-m-d H:i:s'); - $zeugnisnote->insertvon = $user; - $zeugnisnote->lehrveranstaltung_id = $_POST['lehrveranstaltung_id_'.$i]; - $zeugnisnote->student_uid = $_POST['student_uid_'.$i]; - $zeugnisnote->studiensemester_kurzbz = $_POST['studiensemester_kurzbz_'.$i]; - } - - $zeugnisnote->note = $lvgesamtnote->note; - $zeugnisnote->uebernahmedatum = date('Y-m-d H:i:s'); - $zeugnisnote->benotungsdatum = $lvgesamtnote->benotungsdatum; - $zeugnisnote->bemerkung = $lvgesamtnote->bemerkung; - - if(!$zeugnisnote->save()) - { - $errormsg .= "\n".$zeugnisnote->errormsg; + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der LVA'; } } else { - $errormsg .= "\nLvGesamtNote wurde nicht gefunden"; + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der LVA'; + } + + $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid='".addslashes($_POST['student_uid_'.$i])."'"; + if($result = pg_query($conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + $stg_std = $row->studiengang_kz; + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln des Studenten'; + } + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln des Studenten'; + } + + if(!$error) + { + if(!$rechte->isBerechtigt('admin', $stg_lva, 'suid') && !$rechte->isBerechtigt('admin', $stg_std, 'suid') && + !$rechte->isBerechtigt('assistenz', $stg_lva, 'suid') && !$rechte->isBerechtigt('assistenz', $stg_std, 'suid')) + { + $return = false; + $error = true; + $errormsg .= 'Sie haben keine Berechtigung'; + } + else + { + if($lvgesamtnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['student_uid_'.$i], $_POST['studiensemester_kurzbz_'.$i])) + { + if($zeugnisnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['student_uid_'.$i], $_POST['studiensemester_kurzbz_'.$i])) + { + $zeugnisnote->new = false; + $zeugnisnote->updateamum = date('Y-m-d H:i:s'); + $zeugnisnote->updatevon = $user; + } + else + { + $zeugnisnote->new = true; + $zeugnisnote->insertamum = date('Y-m-d H:i:s'); + $zeugnisnote->insertvon = $user; + $zeugnisnote->lehrveranstaltung_id = $_POST['lehrveranstaltung_id_'.$i]; + $zeugnisnote->student_uid = $_POST['student_uid_'.$i]; + $zeugnisnote->studiensemester_kurzbz = $_POST['studiensemester_kurzbz_'.$i]; + } + + $zeugnisnote->note = $lvgesamtnote->note; + $zeugnisnote->uebernahmedatum = date('Y-m-d H:i:s'); + $zeugnisnote->benotungsdatum = $lvgesamtnote->benotungsdatum; + $zeugnisnote->bemerkung = $lvgesamtnote->bemerkung; + + if(!$zeugnisnote->save()) + { + $errormsg .= "\n".$zeugnisnote->errormsg; + } + } + else + { + $errormsg .= "\nLvGesamtNote wurde nicht gefunden"; + } + } } } if($errormsg=='') @@ -1404,12 +1772,13 @@ if(!$error) if(!$error) { - $qry = "SELECT student_uid FROM public.tbl_student WHERE trim(matrikelnr)='".trim($_POST['matrikelnummer_'.$i])."'"; + $qry = "SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE trim(matrikelnr)='".trim($_POST['matrikelnummer_'.$i])."'"; if($result = pg_query($conn, $qry)) { if($row = pg_fetch_object($result)) { $uid = $row->student_uid; + $stg_std = $row->studiengang_kz; } else { @@ -1423,31 +1792,63 @@ if(!$error) $errormsg.="\nFehler beim ermitteln der UID"; } + //Berechtigung pruefen + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id='".addslashes($_POST['lehrveranstaltung_id'])."'"; + if($result = pg_query($conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + $stg_lva = $row->studiengang_kz; + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der LVA'; + } + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der LVA'; + } + if(!$error) { - if($zeugnisnote->load($_POST['lehrveranstaltung_id'], $uid, $semester_aktuell)) + if(!$rechte->isBerechtigt('admin', $stg_lva, 'suid') && !$rechte->isBerechtigt('admin', $stg_std, 'suid') && + !$rechte->isBerechtigt('assistenz', $stg_lva, 'suid') && !$rechte->isBerechtigt('assistenz', $stg_std, 'suid')) { - $zeugnisnote->new = false; - $zeugnisnote->updateamum = date('Y-m-d H:i:s'); - $zeugnisnote->updatevon = $user; + $return = false; + $error = true; + $errormsg .= 'Sie haben keine Berechtigung'; } else { - $zeugnisnote->new = true; - $zeugnisnote->insertamum = date('Y-m-d H:i:s'); - $zeugnisnote->insertvon = $user; - $zeugnisnote->lehrveranstaltung_id = $_POST['lehrveranstaltung_id']; - $zeugnisnote->student_uid = $uid; - $zeugnisnote->studiensemester_kurzbz = $semester_aktuell; - } - - $zeugnisnote->note = $_POST['note_'.$i]; - $zeugnisnote->uebernahmedatum = date('Y-m-d H:i:s'); - $zeugnisnote->benotungsdatum = date('Y-m-d H:i:s'); - - if(!$zeugnisnote->save()) - { - $errormsg .= "\n".$zeugnisnote->errormsg; + if($zeugnisnote->load($_POST['lehrveranstaltung_id'], $uid, $semester_aktuell)) + { + $zeugnisnote->new = false; + $zeugnisnote->updateamum = date('Y-m-d H:i:s'); + $zeugnisnote->updatevon = $user; + } + else + { + $zeugnisnote->new = true; + $zeugnisnote->insertamum = date('Y-m-d H:i:s'); + $zeugnisnote->insertvon = $user; + $zeugnisnote->lehrveranstaltung_id = $_POST['lehrveranstaltung_id']; + $zeugnisnote->student_uid = $uid; + $zeugnisnote->studiensemester_kurzbz = $semester_aktuell; + } + + $zeugnisnote->note = $_POST['note_'.$i]; + $zeugnisnote->uebernahmedatum = date('Y-m-d H:i:s'); + $zeugnisnote->benotungsdatum = date('Y-m-d H:i:s'); + + if(!$zeugnisnote->save()) + { + $errormsg .= "\n".$zeugnisnote->errormsg; + } } } } @@ -1464,16 +1865,25 @@ if(!$error) //Loescht einen Pruefungs Eintrag if(isset($_POST['pruefung_id']) && is_numeric($_POST['pruefung_id'])) { - $pruefung = new pruefung($conn); - - if($pruefung->delete($_POST['pruefung_id'])) + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) { - $return = true; - } - else - { - $errormsg = $pruefung->errormsg; $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $pruefung = new pruefung($conn); + + if($pruefung->delete($_POST['pruefung_id'])) + { + $return = true; + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } } } else @@ -1484,310 +1894,373 @@ if(!$error) } elseif(isset($_POST['type']) && $_POST['type']=='savepruefung') // **** PRUEFUNGEN **** // { - $pruefung = new pruefung($conn, null, true); - - if($_POST['neu']=='false') + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) { - if($pruefung->load($_POST['pruefung_id'])) + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $pruefung = new pruefung($conn, null, true); + + if($_POST['neu']=='false') { - $pruefung->new = false; + if($pruefung->load($_POST['pruefung_id'])) + { + $pruefung->new = false; + } + else + { + $error = true; + $return = false; + $errormsg = $pruefung->errormsg; + } } else { - $error = true; - $return = false; - $errormsg = $pruefung->errormsg; + $pruefung->new = true; + $pruefung->insertamum = date('Y-m-d H:i:s'); + $pruefung->insertvon = $user; + } + + $pruefung->lehreinheit_id = $_POST['lehreinheit_id']; + $pruefung->student_uid = $_POST['student_uid']; + $pruefung->mitarbeiter_uid = $_POST['mitarbeiter_uid']; + $pruefung->note = $_POST['note']; + $pruefung->pruefungstyp_kurzbz = $_POST['pruefungstyp_kurzbz']; + $pruefung->datum = $_POST['datum']; + $pruefung->anmerkung = $_POST['anmerkung']; + $pruefung->updateamum = date('Y-m-d H:i:s'); + $pruefung->updatevon = $user; + + if(!$error) + { + if($pruefung->save()) + { + $return = true; + $data = $pruefung->pruefung_id; + } + else + { + $return = false; + $errormsg = $pruefung->errormsg; + } } } - else - { - $pruefung->new = true; - $pruefung->insertamum = date('Y-m-d H:i:s'); - $pruefung->insertvon = $user; - } - - $pruefung->lehreinheit_id = $_POST['lehreinheit_id']; - $pruefung->student_uid = $_POST['student_uid']; - $pruefung->mitarbeiter_uid = $_POST['mitarbeiter_uid']; - $pruefung->note = $_POST['note']; - $pruefung->pruefungstyp_kurzbz = $_POST['pruefungstyp_kurzbz']; - $pruefung->datum = $_POST['datum']; - $pruefung->anmerkung = $_POST['anmerkung']; - $pruefung->updateamum = date('Y-m-d H:i:s'); - $pruefung->updatevon = $user; - - if(!$error) - { - if($pruefung->save()) - { - $return = true; - $data = $pruefung->pruefung_id; - } - else - { - $return = false; - $errormsg = $pruefung->errormsg; - } - } } elseif(isset($_POST['type']) && $_POST['type']=='saveabschlusspruefung') // **** ABSCHLUSSPRUEFUNGEN **** // { - $pruefung = new abschlusspruefung($conn, null, true); - - if($_POST['neu']=='false') + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) { - if($pruefung->load($_POST['abschlusspruefung_id'])) + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $pruefung = new abschlusspruefung($conn, null, true); + + if($_POST['neu']=='false') { - $pruefung->new = false; + if($pruefung->load($_POST['abschlusspruefung_id'])) + { + $pruefung->new = false; + } + else + { + $error = true; + $return = false; + $errormsg = $pruefung->errormsg; + } } else { - $error = true; - $return = false; - $errormsg = $pruefung->errormsg; + $pruefung->new = true; + $pruefung->insertamum = date('Y-m-d H:i:s'); + $pruefung->insertvon = $user; + } + + $pruefung->student_uid = $_POST['student_uid']; + $pruefung->vorsitz = $_POST['vorsitz']; + $pruefung->pruefer1 = $_POST['pruefer1']; + $pruefung->pruefer2 = $_POST['pruefer2']; + $pruefung->pruefer3 = $_POST['pruefer3']; + $pruefung->abschlussbeurteilung_kurzbz = $_POST['abschlussbeurteilung_kurzbz']; + $pruefung->akadgrad_id = $_POST['akadgrad_id']; + $pruefung->pruefungstyp_kurzbz = $_POST['pruefungstyp_kurzbz']; + $pruefung->datum = $_POST['datum']; + $pruefung->sponsion = $_POST['sponsion']; + $pruefung->anmerkung = $_POST['anmerkung']; + $pruefung->updateamum = date('Y-m-d H:i:s'); + $pruefung->updatevon = $user; + + if(!$error) + { + if($pruefung->save()) + { + $return = true; + $data = $pruefung->abschlusspruefung_id; + } + else + { + $return = false; + $errormsg = $pruefung->errormsg; + } } } - else - { - $pruefung->new = true; - $pruefung->insertamum = date('Y-m-d H:i:s'); - $pruefung->insertvon = $user; - } - - $pruefung->student_uid = $_POST['student_uid']; - $pruefung->vorsitz = $_POST['vorsitz']; - $pruefung->pruefer1 = $_POST['pruefer1']; - $pruefung->pruefer2 = $_POST['pruefer2']; - $pruefung->pruefer3 = $_POST['pruefer3']; - $pruefung->abschlussbeurteilung_kurzbz = $_POST['abschlussbeurteilung_kurzbz']; - $pruefung->akadgrad_id = $_POST['akadgrad_id']; - $pruefung->pruefungstyp_kurzbz = $_POST['pruefungstyp_kurzbz']; - $pruefung->datum = $_POST['datum']; - $pruefung->sponsion = $_POST['sponsion']; - $pruefung->anmerkung = $_POST['anmerkung']; - $pruefung->updateamum = date('Y-m-d H:i:s'); - $pruefung->updatevon = $user; - - if(!$error) - { - if($pruefung->save()) - { - $return = true; - $data = $pruefung->abschlusspruefung_id; - } - else - { - $return = false; - $errormsg = $pruefung->errormsg; - } - } } elseif(isset($_POST['type']) && $_POST['type']=='deleteabschlusspruefung') { //Loescht einen Pruefungs Eintrag - if(isset($_POST['abschlusspruefung_id']) && is_numeric($_POST['abschlusspruefung_id'])) + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) { - $pruefung = new abschlusspruefung($conn); - - if($pruefung->delete($_POST['abschlusspruefung_id'])) + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + if(isset($_POST['abschlusspruefung_id']) && is_numeric($_POST['abschlusspruefung_id'])) { - $return = true; + $pruefung = new abschlusspruefung($conn); + + if($pruefung->delete($_POST['abschlusspruefung_id'])) + { + $return = true; + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } } else { - $errormsg = $pruefung->errormsg; $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; } } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } } elseif(isset($_POST['type']) && $_POST['type']=='saveprojektarbeit') // **** Projektarbeit **** // { - $projektarbeit = new projektarbeit($conn, null, true); - - if($_POST['neu']=='false') + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) { - if($projektarbeit->load($_POST['projektarbeit_id'])) + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $projektarbeit = new projektarbeit($conn, null, true); + + if($_POST['neu']=='false') { - $projektarbeit->new = false; + if($projektarbeit->load($_POST['projektarbeit_id'])) + { + $projektarbeit->new = false; + } + else + { + $error = true; + $return = false; + $errormsg = $projektarbeit->errormsg; + } } else { - $error = true; - $return = false; - $errormsg = $projektarbeit->errormsg; + $projektarbeit->new = true; + $projektarbeit->insertamum = date('Y-m-d H:i:s'); + $projektarbeit->insertvon = $user; } - } - else - { - $projektarbeit->new = true; - $projektarbeit->insertamum = date('Y-m-d H:i:s'); - $projektarbeit->insertvon = $user; - } - - $projektarbeit->projekttyp_kurzbz = $_POST['projekttyp_kurzbz']; - $projektarbeit->titel = $_POST['titel']; - $projektarbeit->lehreinheit_id = $_POST['lehreinheit_id']; - $projektarbeit->student_uid = $_POST['student_uid']; - $projektarbeit->firma_id = $_POST['firma_id']; - $projektarbeit->note = $_POST['note']; - $projektarbeit->punkte = str_replace(',','.',$_POST['punkte']); - $projektarbeit->beginn = $_POST['beginn']; - $projektarbeit->ende = $_POST['ende']; - $projektarbeit->faktor = str_replace(',','.',$_POST['faktor']); - $projektarbeit->freigegeben = ($_POST['freigegeben']=='true'?true:false); - $projektarbeit->gesperrtbis = $_POST['gesperrtbis']; - $projektarbeit->stundensatz = str_replace(',','.',$_POST['stundensatz']); - $projektarbeit->gesamtstunden = $_POST['gesamtstunden']; - $projektarbeit->themenbereich = $_POST['themenbereich']; - $projektarbeit->anmerkung = $_POST['anmerkung']; - $projektarbeit->updateamum = date('Y-m-d H:i:s'); - $projektarbeit->updatevon = $user; - - if(!$error) - { - if($projektarbeit->save()) + + $projektarbeit->projekttyp_kurzbz = $_POST['projekttyp_kurzbz']; + $projektarbeit->titel = $_POST['titel']; + $projektarbeit->lehreinheit_id = $_POST['lehreinheit_id']; + $projektarbeit->student_uid = $_POST['student_uid']; + $projektarbeit->firma_id = $_POST['firma_id']; + $projektarbeit->note = $_POST['note']; + $projektarbeit->punkte = str_replace(',','.',$_POST['punkte']); + $projektarbeit->beginn = $_POST['beginn']; + $projektarbeit->ende = $_POST['ende']; + $projektarbeit->faktor = str_replace(',','.',$_POST['faktor']); + $projektarbeit->freigegeben = ($_POST['freigegeben']=='true'?true:false); + $projektarbeit->gesperrtbis = $_POST['gesperrtbis']; + $projektarbeit->stundensatz = str_replace(',','.',$_POST['stundensatz']); + $projektarbeit->gesamtstunden = $_POST['gesamtstunden']; + $projektarbeit->themenbereich = $_POST['themenbereich']; + $projektarbeit->anmerkung = $_POST['anmerkung']; + $projektarbeit->updateamum = date('Y-m-d H:i:s'); + $projektarbeit->updatevon = $user; + + if(!$error) { - $return = true; - $data = $projektarbeit->projektarbeit_id; - } - else - { - $return = false; - $errormsg = $projektarbeit->errormsg; + if($projektarbeit->save()) + { + $return = true; + $data = $projektarbeit->projektarbeit_id; + } + else + { + $return = false; + $errormsg = $projektarbeit->errormsg; + } } } } elseif(isset($_POST['type']) && $_POST['type']=='deleteprojektarbeit') { - //Loescht einen Projektarbeit Eintrag - if(isset($_POST['projektarbeit_id']) && is_numeric($_POST['projektarbeit_id'])) + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) { - $projektarbeit = new projektarbeit($conn); - - $qry = "SELECT count(*) as anzahl FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id='".$_POST['projektarbeit_id']."'"; - if($result = pg_query($conn, $qry)) + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + //Loescht einen Projektarbeit Eintrag + if(isset($_POST['projektarbeit_id']) && is_numeric($_POST['projektarbeit_id'])) { - if($row = pg_fetch_object($result)) + $projektarbeit = new projektarbeit($conn); + + $qry = "SELECT count(*) as anzahl FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id='".$_POST['projektarbeit_id']."'"; + if($result = pg_query($conn, $qry)) { - if($row->anzahl>0) + if($row = pg_fetch_object($result)) { - $errormsg = 'Bitte zuerst alle Betreuer loeschen'; - $return = false; - } - else - { - if($projektarbeit->delete($_POST['projektarbeit_id'])) + if($row->anzahl>0) { - $return = true; + $errormsg = 'Bitte zuerst alle Betreuer loeschen'; + $return = false; } else { - $errormsg = $projektarbeit->errormsg; - $return = false; + if($projektarbeit->delete($_POST['projektarbeit_id'])) + { + $return = true; + } + else + { + $errormsg = $projektarbeit->errormsg; + $return = false; + } } } + else + { + $errormsg = 'Fehler beim Loeschen'; + $return = false; + } } else { $errormsg = 'Fehler beim Loeschen'; $return = false; - } + } } else { - $errormsg = 'Fehler beim Loeschen'; $return = false; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } } } elseif(isset($_POST['type']) && $_POST['type']=='saveprojektbetreuer') // **** Projektbetreuer **** // { - $projektbetreuer = new projektbetreuer($conn, null, null, true); - - if($_POST['neu']=='false') + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) { - if($projektbetreuer->load($_POST['person_id_old'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz_old'])) + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $projektbetreuer = new projektbetreuer($conn, null, null, true); + + if($_POST['neu']=='false') { - $projektbetreuer->new = false; + if($projektbetreuer->load($_POST['person_id_old'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz_old'])) + { + $projektbetreuer->new = false; + } + else + { + $error = true; + $return = false; + $errormsg = $projektbetreuer->errormsg; + } } else { - $error = true; - $return = false; - $errormsg = $projektbetreuer->errormsg; + if($projektbetreuer->load($_POST['person_id'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz'])) + { + $error = true; + $errormsg = 'Dieser Betreuer ist bereits zugeteilt'; + } + $projektbetreuer->new = true; + $projektbetreuer->insertamum = date('Y-m-d H:i:s'); + $projektbetreuer->insertvon = $user; + } + + $projektbetreuer->person_id = $_POST['person_id']; + $projektbetreuer->person_id_old = $_POST['person_id_old']; + $projektbetreuer->projektarbeit_id = $_POST['projektarbeit_id']; + $projektbetreuer->note = $_POST['note']; + $projektbetreuer->faktor = str_replace(',','.', $_POST['faktor']); + $projektbetreuer->name = $_POST['name']; + $projektbetreuer->punkte = str_replace(',','.', $_POST['punkte']); + $projektbetreuer->stunden = str_replace(',','.', $_POST['stunden']); + $projektbetreuer->stundensatz = str_replace(',','.', $_POST['stundensatz']); + $projektbetreuer->betreuerart_kurzbz = $_POST['betreuerart_kurzbz']; + $projektbetreuer->betreuerart_kurzbz_old = $_POST['betreuerart_kurzbz_old']; + $projektbetreuer->updateamum = date('Y-m-d H:i:s'); + $projektbetreuer->updatevon = $user; + + if(!$error) + { + if($projektbetreuer->save()) + { + $return = true; + } + else + { + $return = false; + $errormsg = $projektbetreuer->errormsg; + } } } - else - { - if($projektbetreuer->load($_POST['person_id'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz'])) - { - $error = true; - $errormsg = 'Dieser Betreuer ist bereits zugeteilt'; - } - $projektbetreuer->new = true; - $projektbetreuer->insertamum = date('Y-m-d H:i:s'); - $projektbetreuer->insertvon = $user; - } - - $projektbetreuer->person_id = $_POST['person_id']; - $projektbetreuer->person_id_old = $_POST['person_id_old']; - $projektbetreuer->projektarbeit_id = $_POST['projektarbeit_id']; - $projektbetreuer->note = $_POST['note']; - $projektbetreuer->faktor = str_replace(',','.', $_POST['faktor']); - $projektbetreuer->name = $_POST['name']; - $projektbetreuer->punkte = str_replace(',','.', $_POST['punkte']); - $projektbetreuer->stunden = str_replace(',','.', $_POST['stunden']); - $projektbetreuer->stundensatz = str_replace(',','.', $_POST['stundensatz']); - $projektbetreuer->betreuerart_kurzbz = $_POST['betreuerart_kurzbz']; - $projektbetreuer->betreuerart_kurzbz_old = $_POST['betreuerart_kurzbz_old']; - $projektbetreuer->updateamum = date('Y-m-d H:i:s'); - $projektbetreuer->updatevon = $user; - - if(!$error) - { - if($projektbetreuer->save()) - { - $return = true; - } - else - { - $return = false; - $errormsg = $projektbetreuer->errormsg; - } - } } elseif(isset($_POST['type']) && $_POST['type']=='deleteprojektbetreuer') { - //Loescht einen Projektbetreuer Eintrag - if(isset($_POST['person_id']) && is_numeric($_POST['person_id'])) + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) { - $projektbetreuer = new projektbetreuer($conn, null, null, true); - - if($projektbetreuer->delete($_POST['person_id'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz'])) + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + //Loescht einen Projektbetreuer Eintrag + if(isset($_POST['person_id']) && is_numeric($_POST['person_id'])) { - $return = true; + $projektbetreuer = new projektbetreuer($conn, null, null, true); + + if($projektbetreuer->delete($_POST['person_id'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz'])) + { + $return = true; + } + else + { + $errormsg = $projektbetreuer->errormsg; + $return = false; + } } else { - $errormsg = $projektbetreuer->errormsg; $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; } } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } } elseif(isset($_POST['type']) && $_POST['type']=='getprivatemailadress') { diff --git a/content/student/studentabschlusspruefung.js.php b/content/student/studentabschlusspruefung.js.php index 44ec16626..ef57e9961 100644 --- a/content/student/studentabschlusspruefung.js.php +++ b/content/student/studentabschlusspruefung.js.php @@ -381,6 +381,8 @@ function StudentAbschlusspruefungSpeichern() abschlusspruefung_id = document.getElementById('student-abschlusspruefung-textbox-abschlusspruefung_id').value; neu = document.getElementById('student-abschlusspruefung-checkbox-neu').checked; + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + var tree = document.getElementById('student-tree'); if (tree.currentIndex==-1) @@ -429,6 +431,7 @@ function StudentAbschlusspruefungSpeichern() req.add('anmerkung', anmerkung); req.add('abschlusspruefung_id', abschlusspruefung_id); req.add('neu', neu); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -504,6 +507,8 @@ function StudentAbschlusspruefungLoeschen() return false; } + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + //Ausgewaehlte Nr holen var col = tree.columns ? tree.columns["student-abschlusspruefung-treecol-abschlusspruefung_id"] : "student-abschlusspruefung-treecol-abschlusspruefung_id"; var abschlusspruefung_id=tree.view.getCellText(tree.currentIndex,col); @@ -514,6 +519,7 @@ function StudentAbschlusspruefungLoeschen() req.add('type', 'deleteabschlusspruefung'); req.add('abschlusspruefung_id', abschlusspruefung_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); diff --git a/content/student/studentkontoneudialog.js.php b/content/student/studentkontoneudialog.js.php index 9c57b1d3b..42ea7b4cb 100644 --- a/content/student/studentkontoneudialog.js.php +++ b/content/student/studentkontoneudialog.js.php @@ -70,7 +70,7 @@ function StudentKontoNeuInit() col = tree_vb.columns ? tree_vb.columns["stg_kz"] : "stg_kz"; //var stg_kz=tree_vb.view.getCellText(tree_vb.currentIndex,col); studiengang_kz=tree_vb.view.getCellText(tree_vb.currentIndex,col); - + debug('kz:'+studiengang_kz); person_ids = paramList; if(anzahl>1) diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 8069aa0a4..737cfef47 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -99,7 +99,7 @@ var StudentDetailRolleTreeSinkObserver = onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, - onError : function(pSink, pStatus, pError) {}, + onError : function(pSink, pStatus, pError) { }, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); @@ -319,7 +319,6 @@ function StudentTreeKeyPress(event) function StudentTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - //markierten Studenten global speichern damit dieser Student nach dem //refresh wieder markiert werden kann. var tree = document.getElementById('student-tree'); @@ -561,6 +560,10 @@ function StudentDetailSave() verband = document.getElementById('student-detail-textbox-verband').value; gruppe = document.getElementById('student-detail-textbox-gruppe').value; + //Wenn es noch kein Student ist, dann wird die Studiengang_kz vom Prestudent genommen + if(studiengang_kz=='') + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if(geburtsdatum!='' && !CheckDatum(geburtsdatum)) { alert('Geburtsdatum ist ungueltig'); @@ -839,6 +842,7 @@ function StudentAuswahl() document.getElementById('student-prestudent-textbox-prestudent_id').value=prestudent_id; document.getElementById('student-prestudent-checkbox-new').checked=false; document.getElementById('student-prestudent-menulist-studiengang_kz').value=studiengang_kz_prestudent; + document.getElementById('student-prestudent-textbox-anmerkung').value=anmerkung; document.getElementById('student-detail-groupbox-caption').label='Zugangsvoraussetzung für '+nachname+' '+vorname; @@ -1353,6 +1357,7 @@ function StudentPrestudentRolleDelete() var col = tree.columns ? tree.columns["student-prestudent-tree-rolle-ausbildungssemester"] : "student-prestudent-tree-rolle-ausbildungssemester"; var ausbildungssemester=tree.view.getCellText(tree.currentIndex,col); + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; if(confirm('Diese Rolle wirklich loeschen?')) { var url = 'content/student/studentDBDML.php'; @@ -1364,6 +1369,7 @@ function StudentPrestudentRolleDelete() req.add('prestudent_id', prestudent_id); req.add('studiensemester_kurzbz', studiensemester_kurzbz); req.add('ausbildungssemester', ausbildungssemester); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -1456,7 +1462,7 @@ function StudentRolleSpeichern(dialog, studiensemester_old, ausbildungssemester_ else { StudentDetailRolleTreeDatasource.Refresh(false); - SetStatusBarText('Daten wurden geloescht'); + SetStatusBarText('Daten wurden gespeichert'); return true; } } @@ -1964,7 +1970,7 @@ function StudentKontoDetailSpeichern() buchungstyp_kurzbz = document.getElementById('student-konto-menulist-buchungstyp').value; buchungsnr = document.getElementById('student-konto-textbox-buchungsnr').value; studiensemester_kurzbz = document.getElementById('student-konto-menulist-studiensemester').value; - + if(buchungsdatum!='' && !CheckDatum(buchungsdatum)) { alert('Buchungsdatum ist ungueltig'); @@ -2308,6 +2314,7 @@ function StudentAkteDel() return false; } + studiengang_kz = document.getElementById('student-detail-menulist-studiengang_kz').value; //Abfrage ob wirklich geloescht werden soll if (confirm('Zeugnis wirklich entfernen?')) { @@ -2316,6 +2323,7 @@ function StudentAkteDel() req.add('type','deleteAkte'); req.add('akte_id',akte_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -2360,7 +2368,8 @@ function StudentZeugnisArchivieren() var req = new phpRequest(url,'',''); var response = req.execute(); - + if(response!='') + alert(response); StudentAkteTreeDatasource.Refresh(false); } @@ -2466,6 +2475,8 @@ function StudentIODetailSpeichern() neu = document.getElementById('student-io-detail-checkbox-neu').checked; bisio_id = document.getElementById('student-io-detail-textbox-bisio_id').value; + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if(von!='' && !CheckDatum(von)) { alert('VON Datum ist ungueltig'); @@ -2493,6 +2504,7 @@ function StudentIODetailSpeichern() req.add('nation_code', nation_code); req.add('zweck_code', zweck_code); req.add('student_uid', uid); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -2531,15 +2543,16 @@ function StudentIODelete() //Ausgewaehlte Nr holen var col = tree.columns ? tree.columns["student-io-tree-bisio_id"] : "student-io-tree-bisio_id"; var bisio_id=tree.view.getCellText(tree.currentIndex,col); - + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if(confirm('Diesen Eintrag wirklich loeschen?')) { var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'deletebisio'); - req.add('bisio_id', bisio_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -2953,6 +2966,7 @@ function StudentPruefungDelete() //Ausgewaehlte Nr holen var col = tree.columns ? tree.columns["student-pruefung-tree-pruefung_id"] : "student-pruefung-tree-pruefung_id"; var pruefung_id=tree.view.getCellText(tree.currentIndex,col); + studiengang_kz=document.getElementById('student-prestudent-menulist-studiengang_kz').value; if(confirm('Diesen Eintrag wirklich loeschen?')) { @@ -2962,6 +2976,7 @@ function StudentPruefungDelete() req.add('type', 'deletepruefung'); req.add('pruefung_id', pruefung_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -3122,6 +3137,7 @@ function StudentPruefungDetailSpeichern() anmerkung = document.getElementById('student-pruefung-textbox-anmerkung').value; neu = document.getElementById('student-pruefung-checkbox-neu').checked; pruefung_id = document.getElementById('student-pruefung-textbox-pruefung_id').value; + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; if(lehreinheit_id=='') { @@ -3158,6 +3174,7 @@ function StudentPruefungDetailSpeichern() req.add('neu', neu); req.add('pruefung_id', pruefung_id); req.add('student_uid', student_uid); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -3322,6 +3339,7 @@ function StudentSuche() { //Bei der Suche wird die Markierung vom Verband Tree entfernt da //es sonst zu Problemen kommen kann + document.getElementById('tree-verband').currentIndex=-1; document.getElementById('tree-verband').view.selection.clearSelection(); //Export deaktivieren document.getElementById('student-toolbar-export').disabled=true; diff --git a/content/student/studentprojektarbeit.js.php b/content/student/studentprojektarbeit.js.php index 6059fcb44..63dfea9d4 100644 --- a/content/student/studentprojektarbeit.js.php +++ b/content/student/studentprojektarbeit.js.php @@ -444,6 +444,8 @@ function StudentProjektarbeitSpeichern() neu = document.getElementById('student-projektarbeit-checkbox-neu').checked; student_uid =document.getElementById('student-detail-textbox-uid').value; + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if(student_uid=='') { alert('UID dieser Person konnte nicht ermittelt werden'); @@ -500,7 +502,8 @@ function StudentProjektarbeitSpeichern() req.add('gesamtstunden', gesamtstunden); req.add('themenbereich', themenbereich); req.add('anmerkung', anmerkung); - req.add('neu', neu); + req.add('neu', neu); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -569,6 +572,8 @@ function StudentProjektarbeitLoeschen() netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('student-projektarbeit-tree'); + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + if (tree.currentIndex==-1) { alert('Bitte zuerst einen Eintrag markieren'); @@ -585,6 +590,7 @@ function StudentProjektarbeitLoeschen() req.add('type', 'deleteprojektarbeit'); req.add('projektarbeit_id', projektarbeit_id); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -636,6 +642,8 @@ function StudentProjektarbeitLVAChange() datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); LeDropDown.database.AddDataSource(datasource); + LeDropDown.selectedIndex=-1; + LeDropDown.builder.rebuild(); } @@ -851,6 +859,8 @@ function StudentProjektbetreuerSpeichern() person_id_old = document.getElementById('student-projektbetreuer-textbox-person_id').value; neu = document.getElementById('student-projektbetreuer-checkbox-neu').checked; + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + var tree = document.getElementById('student-projektarbeit-tree'); if(person_id=='') @@ -884,6 +894,7 @@ function StudentProjektbetreuerSpeichern() req.add('projektarbeit_id', projektarbeit_id); req.add('person_id_old', person_id_old); req.add('neu', neu); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); @@ -938,6 +949,8 @@ function StudentProjektbetreuerLoeschen() var col = tree.columns ? tree.columns["student-projektbetreuer-tree-betreuerart_kurzbz"] : "student-projektbetreuer-tree-betreuerart_kurzbz"; var betreuerart_kurzbz=tree.view.getCellText(tree.currentIndex,col); + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); @@ -946,6 +959,7 @@ function StudentProjektbetreuerLoeschen() req.add('person_id', person_id); req.add('projektarbeit_id', projektarbeit_id); req.add('betreuerart_kurzbz', betreuerart_kurzbz); + req.add('studiengang_kz', studiengang_kz); var response = req.executePOST(); diff --git a/content/student/studentprojektarbeitoverlay.xul.php b/content/student/studentprojektarbeitoverlay.xul.php index 69afba6fd..e9c2ccdaa 100644 --- a/content/student/studentprojektarbeitoverlay.xul.php +++ b/content/student/studentprojektarbeitoverlay.xul.php @@ -236,7 +236,7 @@ echo ''; diff --git a/rdf/lehrverbandsgruppe.rdf.php b/rdf/lehrverbandsgruppe.rdf.php index 35f322b45..f10d127f0 100644 --- a/rdf/lehrverbandsgruppe.rdf.php +++ b/rdf/lehrverbandsgruppe.rdf.php @@ -16,7 +16,9 @@ if (!$conn = pg_pconnect(CONN_STRING)) // Berechtigungen ermitteln $berechtigung=new benutzerberechtigung($conn); $berechtigung->getBerechtigungen($uid); -$berechtigt_studiengang=$berechtigung->getStgKz(); +$berechtigt_studiengang=$berechtigung->getStgKz('admin'); +$berechtigt_studiengang = array_merge($berechtigt_studiengang, $berechtigung->getStgKz('assistenz')); + //var_dump($berechtigung); $stg_kz_query=''; if (count($berechtigt_studiengang)>0) diff --git a/rdf/person.rdf.php b/rdf/person.rdf.php index 1fa4121c6..4541ec0ee 100644 --- a/rdf/person.rdf.php +++ b/rdf/person.rdf.php @@ -59,7 +59,7 @@ echo ' '; -$qry = "SET CLIENT_ENCODING TO 'UNICODE'; SELECT * FROM public.tbl_person WHERE nachname ~* '".addslashes($filter).".*'"; +$qry = "SET CLIENT_ENCODING TO 'UNICODE'; SELECT distinct person_id, vorname, nachname, titelpre, titelpost FROM public.tbl_person WHERE nachname ~* '".addslashes($filter).".*'"; if($result = pg_query($conn, $qry)) { while($row = pg_fetch_object($result)) @@ -70,7 +70,7 @@ if($result = pg_query($conn, $qry)) person_id.']]> vorname.']]> nachname.']]> - nachname.' '.$row->vorname.']]> + nachname.' '.$row->vorname.' '.$row->titelpre.' '.$row->titelpost.']]> '; diff --git a/rdf/zeugnis.rdf.php b/rdf/zeugnis.rdf.php index cec2afe72..4092d0342 100644 --- a/rdf/zeugnis.rdf.php +++ b/rdf/zeugnis.rdf.php @@ -232,7 +232,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") if($projektarbeit[$row->lehrveranstaltung_id]['themenbereich']!='') { $xml_fussnote .=" Themenbereich: "; - $xml_fussnote .=" ".$projektarbeit[$row->lehrveranstaltung_id]['themenbereich'].'\n'; + $xml_fussnote .=" <[!CDATA[".$projektarbeit[$row->lehrveranstaltung_id]['themenbereich'].'\n]]>'; $anzahl_nl++; $nl2='\n'; } @@ -245,7 +245,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $nl=''; $nl2=''; $xml_fussnote .=" $typ"; - $xml_fussnote .=" ".$projektarbeit[$row->lehrveranstaltung_id]['titel'].$nl2.""; + $xml_fussnote .=" lehrveranstaltung_id]['titel'].$nl2."]]>"; //$note = $note_arr[$projektarbeit[$row->lehrveranstaltung_id]['note']]; $note = $projektarbeit[$row->lehrveranstaltung_id]['note']; //$nl = str_repeat('\n',($anzahl_nl)); diff --git a/vilesci/admin/xslvorlagen/bachelorurkunde.xsl b/vilesci/admin/xslvorlagen/bachelorurkunde.xsl index 0e0e7b483..8b8c29823 100644 --- a/vilesci/admin/xslvorlagen/bachelorurkunde.xsl +++ b/vilesci/admin/xslvorlagen/bachelorurkunde.xsl @@ -34,7 +34,7 @@ - + diff --git a/vilesci/admin/xslvorlagen/bachelorurkundeEng.xsl b/vilesci/admin/xslvorlagen/bachelorurkundeEng.xsl index 6f6968466..8ace8f692 100644 --- a/vilesci/admin/xslvorlagen/bachelorurkundeEng.xsl +++ b/vilesci/admin/xslvorlagen/bachelorurkundeEng.xsl @@ -34,7 +34,7 @@ - + diff --git a/vilesci/admin/xslvorlagen/bakkzeugnis.xsl b/vilesci/admin/xslvorlagen/bakkzeugnis.xsl index 79b2207fb..53b24bdcd 100644 --- a/vilesci/admin/xslvorlagen/bakkzeugnis.xsl +++ b/vilesci/admin/xslvorlagen/bakkzeugnis.xsl @@ -107,7 +107,7 @@ Vorname(n), Familienname - \n + \n diff --git a/vilesci/admin/xslvorlagen/diplomurkunde.xsl b/vilesci/admin/xslvorlagen/diplomurkunde.xsl index 1cac03f04..6d970efbf 100644 --- a/vilesci/admin/xslvorlagen/diplomurkunde.xsl +++ b/vilesci/admin/xslvorlagen/diplomurkunde.xsl @@ -34,7 +34,7 @@ - + diff --git a/vilesci/admin/xslvorlagen/diplomurkundeEng.xsl b/vilesci/admin/xslvorlagen/diplomurkundeEng.xsl index f4247c123..595b4c5f7 100644 --- a/vilesci/admin/xslvorlagen/diplomurkundeEng.xsl +++ b/vilesci/admin/xslvorlagen/diplomurkundeEng.xsl @@ -34,7 +34,7 @@ - + diff --git a/vilesci/admin/xslvorlagen/diplomzeugnis.xsl b/vilesci/admin/xslvorlagen/diplomzeugnis.xsl index 6bea37fff..53817c557 100644 --- a/vilesci/admin/xslvorlagen/diplomzeugnis.xsl +++ b/vilesci/admin/xslvorlagen/diplomzeugnis.xsl @@ -107,7 +107,7 @@ Vorname(n), Familienname - \n + \n diff --git a/vilesci/admin/xslvorlagen/prprotokollbakk.xsl b/vilesci/admin/xslvorlagen/prprotokollbakk.xsl index e2147bb6b..391fc82cc 100644 --- a/vilesci/admin/xslvorlagen/prprotokollbakk.xsl +++ b/vilesci/admin/xslvorlagen/prprotokollbakk.xsl @@ -46,7 +46,7 @@ - + diff --git a/vilesci/admin/xslvorlagen/prprotokolldipl.xsl b/vilesci/admin/xslvorlagen/prprotokolldipl.xsl index 14ce9da1f..312e866b2 100644 --- a/vilesci/admin/xslvorlagen/prprotokolldipl.xsl +++ b/vilesci/admin/xslvorlagen/prprotokolldipl.xsl @@ -45,7 +45,7 @@ - + diff --git a/vilesci/left.php b/vilesci/left.php index 82f544fd1..a1dbf7669 100644 --- a/vilesci/left.php +++ b/vilesci/left.php @@ -204,7 +204,7 @@ - +