From e321163bb0ba64f3c2a584ef78e2517b9818af1f Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 30 Sep 2016 16:56:02 +0200 Subject: [PATCH 01/12] Fixed wrong comment --- system/dbupdate_3.2.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 28b018a91..39b69338d 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1206,7 +1206,7 @@ if(!$result = @$db->db_query("SELECT verpflichtend FROM public.tbl_ampel LIMIT 1 echo '
Neue Spalten "verpflichtend" und "buttontext" in Tabelle public.tbl_ampel hinzugefügt
'; } -// Neue Spalte studienplan_id in public.tbl_bewerbungstermine +// Neue Spalte lieferbedingungen in public.tbl_firma if(!$result = @$db->db_query("SELECT lieferbedingungen FROM public.tbl_firma LIMIT 1")) { $qry = "ALTER TABLE public.tbl_firma ADD COLUMN lieferbedingungen varchar(256);"; From 33d3697f2ff99126a6a01f5bb64c007a3caac436 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Mon, 3 Oct 2016 10:29:32 +0200 Subject: [PATCH 02/12] add statistik_kurzbz to errormsg --- include/statistik.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/statistik.class.php b/include/statistik.class.php index 85fb6e834..46fcef12f 100644 --- a/include/statistik.class.php +++ b/include/statistik.class.php @@ -108,7 +108,7 @@ class statistik extends basis_db } else { - $this->errormsg = 'Dieser Eintrag wurde nicht gefunden'; + $this->errormsg = 'Dieser Eintrag wurde nicht gefunden: ' . $statistik_kurzbz; return false; } } From b4ea35858caa8a3c2bc93f84c6eefe466d87159f Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Mon, 3 Oct 2016 13:11:51 +0200 Subject: [PATCH 03/12] fixed bug which end in an unterminated loop --- rdf/lehrveranstaltungszeugnis_ktu.rdf.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php index 28b3036c6..d560bbf27 100755 --- a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php +++ b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php @@ -371,10 +371,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") { $studienplan->loadStudienplanLehrveranstaltung($studienplan_lehrveranstaltung_id); $lv = new lehrveranstaltung(); - while($lv->lehrtyp_kurzbz != "modul") + while(($lv->lehrtyp_kurzbz != "modul") && ($studienplan->lehrveranstaltung_id != $studienplan_lehrveranstaltung_id)) { - $lv->load($studienplan->lehrveranstaltung_id); - $studienplan->loadStudienplanLehrveranstaltung($studienplan->studienplan_lehrveranstaltung_id_parent); + $lv->load($studienplan->lehrveranstaltung_id); + $studienplan_lehrveranstaltung_id = $studienplan->lehrveranstaltung_id; + $studienplan->loadStudienplanLehrveranstaltung($studienplan->studienplan_lehrveranstaltung_id_parent); } $lehrveranstaltung->lehrveranstaltungen = array(0 => $lv); } From ceb2ef0dbf70e329c0d64927b7bf8b9d89da5190 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Mon, 3 Oct 2016 13:48:21 +0200 Subject: [PATCH 04/12] updated phrasen --- cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php | 2 +- locale/de-AT/pruefung.php | 1 + locale/en-US/pruefung.php | 1 + locale/it-IT/pruefung.php | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php index ea07690bb..5810b0315 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php @@ -227,7 +227,7 @@ $rechte->getBerechtigungen($uid); # t('global/vorname'); ?> t('global/nachname'); ?> - t('global/matrikelnummer'); ?> + t('pruefung/matrikelnummer'); ?> t('global/datum'); ?> t('benotungstool/note'); ?> t('global/anmerkung'); ?> diff --git a/locale/de-AT/pruefung.php b/locale/de-AT/pruefung.php index 1f127dfea..59c342b0c 100755 --- a/locale/de-AT/pruefung.php +++ b/locale/de-AT/pruefung.php @@ -108,6 +108,7 @@ $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Keine Lehreinheiten vo $this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Keine Anmeldungen vorhanden.'; $this->phrasen['pruefung/derLektor'] = 'Lektor'; $this->phrasen['pruefung/dieKommission'] = 'Kommission'; +$this->phrasen['pruefung/matrikelnummer'] = 'Personenkennzeichen'; // anmeldungen Verwalten $this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Prüfungsanmeldung Verwaltung'; diff --git a/locale/en-US/pruefung.php b/locale/en-US/pruefung.php index e46fc9aef..8c586e854 100755 --- a/locale/en-US/pruefung.php +++ b/locale/en-US/pruefung.php @@ -108,6 +108,7 @@ $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Keine Lehreinheiten vo $this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Keine Anmeldungen vorhanden.'; $this->phrasen['pruefung/derLektor'] = 'Lektor'; $this->phrasen['pruefung/dieKommission'] = 'Kommission'; +$this->phrasen['pruefung/matrikelnummer'] = 'Personenkennzeichen'; // anmeldungen Verwalten $this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Prüfungsanmeldung Verwaltung'; diff --git a/locale/it-IT/pruefung.php b/locale/it-IT/pruefung.php index 476b14ec0..3f7ff66b1 100755 --- a/locale/it-IT/pruefung.php +++ b/locale/it-IT/pruefung.php @@ -108,6 +108,7 @@ $this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Nessun corso disponibi $this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Nessun studente iscritto.'; $this->phrasen['pruefung/derLektor'] = 'Docente'; $this->phrasen['pruefung/dieKommission'] = 'Commissione'; +$this->phrasen['pruefung/matrikelnummer']='Matricola'; // anmeldungen Verwalten $this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Gestione delle prenotazioni degli appelli'; From 3bb86f6f055ce59f393c855fddfa93841f2b6971 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Mon, 3 Oct 2016 14:53:02 +0200 Subject: [PATCH 05/12] fixed bug in calculation if course is completed --- cis/private/profile/studienplan.php | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 633da1faf..2343e780d 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -511,28 +511,40 @@ function drawTree($tree, $depth) if($found) { if($positiv) - echo ''.$p->t('studienplan/abgeschlossen').''; + { + echo ''.$p->t('studienplan/abgeschlossen').''; + } else + { echo ''.$p->t('studienplan/negativ').''; + } } elseif(!$found) { - if($abgeschlossen) - echo ''.$p->t('studienplan/regelabgeschlossen'),''; - elseif(!$row_tree->stpllv_pflicht) + if(!$row_tree->stpllv_pflicht) + { echo ''.$p->t('studienplan/optional').''; - else + } + else + { echo ''.$p->t('studienplan/offen').''; + } } } else { if($abgeschlossen) + { echo ''.$p->t('studienplan/regelabgeschlossen'),''; + } elseif(!$row_tree->stpllv_pflicht) + { echo ''.$p->t('studienplan/optional').''; + } else + { echo ''.$p->t('studienplan/offen').''; + } } echo ''; From a029a91789c1c8cdca1d0b41136730cff38f0a8d Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 4 Oct 2016 10:06:12 +0200 Subject: [PATCH 06/12] bug: registration not possible if rules are not fulfilled --- cis/private/profile/studienplan.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 2343e780d..26cb18cd8 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -19,6 +19,7 @@ * * * Authors: Andreas Österreicher + * Stefan Puraner * * Zeigt den Studienplan eines Studierenden an * und bietet die Möglichkeit zur Anmeldung zu Lehrveranstaltungen. @@ -366,7 +367,7 @@ drawTree($tree,0); function drawTree($tree, $depth) { - global $uid, $stsem_arr, $noten_arr, $lvangebot_arr; + global $uid, $stsem_arr, $noten_arr, $lvangebot_arr, $aktornext; global $datum_obj, $db, $lv_arr, $p, $note_pruef_arr, $student; foreach($tree as $row_tree) @@ -622,12 +623,16 @@ function drawTree($tree, $depth) } else { - if(!$lvregel->isZugangsberechtigt($uid, $row_tree->studienplan_lehrveranstaltung_id, $stsem)) + //check if rules are fulfilled just for actual or next studiensemester + if($stsem === $aktornext) { - $regelerfuellt=false; + if($lvregel->isZugangsberechtigt($uid, $row_tree->studienplan_lehrveranstaltung_id, $stsem) !== true) + { + $regelerfuellt=false; + } } } - + foreach($lvkompatibel_arr as $row_lvid) { // Angebot der LV pruefen @@ -681,7 +686,7 @@ function drawTree($tree, $depth) $tdinhalt.= '-'; if(!$regelerfuellt) - $tdinhalt.= 'X'; + $tdinhalt= 'X'; } } else From f48e1e59a7ffab1506189730f7761f00a75a0903 Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 5 Oct 2016 12:57:41 +0200 Subject: [PATCH 07/12] =?UTF-8?q?Zahlungsbest=C3=A4tigungen=20drucken=20is?= =?UTF-8?q?t=20jetzt=20auch=20m=C3=B6glich=20wenn=20zu=20viel=20bezahlt=20?= =?UTF-8?q?wurde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/pdfExport.php | 2 +- cis/private/profile/zahlungen.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cis/private/pdfExport.php b/cis/private/pdfExport.php index fa818838e..03660bb92 100644 --- a/cis/private/pdfExport.php +++ b/cis/private/pdfExport.php @@ -152,7 +152,7 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin')) $konto->load($bnr); if($konto->person_id!=$user_obj->person_id) die('Sie haben keine Berechtigung fuer diese Buchung'); - if($konto->getDifferenz($bnr)!=0) + if($konto->getDifferenz($bnr)>0) die('Diese Zahlung wurde noch nicht beglichen'); } } diff --git a/cis/private/profile/zahlungen.php b/cis/private/profile/zahlungen.php index c1ab84f38..3680ae788 100644 --- a/cis/private/profile/zahlungen.php +++ b/cis/private/profile/zahlungen.php @@ -157,7 +157,7 @@ echo ''.$row['parent']->buchungstext.''; echo ''.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).' €'; echo ''; - if($betrag==0 && $row['parent']->betrag<=0) + if($betrag>=0 && $row['parent']->betrag<=0) echo ''.$p->t('tools/bestaetigungDrucken').''; elseif($row['parent']->betrag>0) { From b4efb5aaa4285066161bfe8d07c1ec128d2b7957 Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Thu, 6 Oct 2016 09:15:18 +0200 Subject: [PATCH 08/12] new entry in tbl_webservicetyp (reports) --- system/dbupdate_3.2.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 39b69338d..56fb9086d 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1218,6 +1218,17 @@ if(!$result = @$db->db_query("SELECT lieferbedingungen FROM public.tbl_firma LIM } +// 10.16 neuer webservicetyp reports +$result = $db->db_query("SELECT 1 FROM system.tbl_webservicetyp WHERE webservicetyp_kurzbz='reports'"); +if($db->db_num_rows($result) < 1) +{ + $qry = "INSERT INTO system.tbl_webservicetyp (webservicetyp_kurzbz, beschreibung) VALUES('reports', 'Logtyp fuer reports');"; + if(!$db->db_query($qry)) + echo 'system.tbl_webservicetyp '.$db->db_last_error().'
'; + else + echo '
Neuen Eintrag "reports" in Tabelle system.tbl_webservicetyp eingefuegt
'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From e1c19fa4de659e49aa85a3e66cab3175a7a6dbe1 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Thu, 6 Oct 2016 17:04:52 +0200 Subject: [PATCH 09/12] moved credit points check from cours registration to exam registration --- .../pruefung/pruefungsanmeldung.json.php | 342 ++++++++++-------- cis/private/profile/studienplan.php | 34 +- include/konto.class.php | 45 +++ 3 files changed, 237 insertions(+), 184 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 85bd6cc16..4ae16864e 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -67,20 +67,19 @@ switch($method) $data = loadTermine(); break; case 'saveAnmeldung': - $student_uid = filter_input(INPUT_POST,"uid"); - if($student_uid !== "" && !is_null($student_uid)) - { - $uid = $student_uid; - } - - if($student_uid === "") - { - $data['result']=""; - $data['error']='true'; - $data['errormsg']='Studenten UID fehlt.'; - break; - } + $student_uid = filter_input(INPUT_POST,"uid"); + if($student_uid !== "" && !is_null($student_uid)) + { + $uid = $student_uid; + } + if($student_uid === "") + { + $data['result']=""; + $data['error']='true'; + $data['errormsg']='Studenten UID fehlt.'; + break; + } $data = saveAnmeldung($aktStudiensemester, $uid); break; case 'getAllPruefungen': @@ -142,60 +141,60 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null) $lvIds = array(); foreach($lehrveranstaltungen->lehrveranstaltungen as $lvs) { - array_push($lvIds, $lvs->lehrveranstaltung_id); + array_push($lvIds, $lvs->lehrveranstaltung_id); } $lehrveranstaltungen=$lvIds; $pruefung = new pruefungCis(); if($pruefung->getPruefungByLv($lehrveranstaltungen)) { - $pruefungen = array(); - foreach($pruefung->lehrveranstaltungen as $key=>$lv) - { - $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); - $lehrveranstaltung = $lehrveranstaltung->cleanResult(); - $lehreinheit = new lehreinheit(); - $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); - $lehreinheiten = $lehreinheit->lehreinheiten; - $prf = new stdClass(); - $temp = new pruefungCis($lv->pruefung_id); - $temp->getTermineByPruefung($lv->pruefung_id); - for($i=0; $i < sizeof($temp->termine); $i++) - { - $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); - $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); - } - $prf->pruefung = $temp; - $prf->lehrveranstaltung = $lehrveranstaltung; - if(!empty($lehreinheiten)) - { - $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); - $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); - $prf->organisationseinheit = $oe->bezeichnung; - array_push($pruefungen, $prf); - } - } - $anmeldung = new pruefungsanmeldung(); - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); - $anmeldungsIds = array(); - foreach($anmeldungen as $anm) - { - $a = new stdClass(); - $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; - $a->pruefungstermin_id = $anm->pruefungstermin_id; - $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; - array_push($anmeldungsIds, $a); - } - $return = new stdClass(); - $return->pruefungen = $pruefungen; - $return->anmeldungen = $anmeldungsIds; - $data['result']=$return; - $data['error']='false'; - $data['errormsg']=''; + $pruefungen = array(); + foreach($pruefung->lehrveranstaltungen as $key=>$lv) + { + $lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id); + $lehrveranstaltung = $lehrveranstaltung->cleanResult(); + $lehreinheit = new lehreinheit(); + $lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester); + $lehreinheiten = $lehreinheit->lehreinheiten; + $prf = new stdClass(); + $temp = new pruefungCis($lv->pruefung_id); + $temp->getTermineByPruefung($lv->pruefung_id); + for($i=0; $i < sizeof($temp->termine); $i++) + { + $termin = new pruefungstermin($temp->termine[$i]->pruefungstermin_id); + $temp->termine[$i]->teilnehmer = $termin->getNumberOfParticipants(); + } + $prf->pruefung = $temp; + $prf->lehrveranstaltung = $lehrveranstaltung; + if(!empty($lehreinheiten)) + { + $lveranstaltung = new lehrveranstaltung($lehreinheiten[0]->lehrfach_id); + $oe = new organisationseinheit($lveranstaltung->oe_kurzbz); + $prf->organisationseinheit = $oe->bezeichnung; + array_push($pruefungen, $prf); + } + } + $anmeldung = new pruefungsanmeldung(); + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); + $anmeldungsIds = array(); + foreach($anmeldungen as $anm) + { + $a = new stdClass(); + $a->pruefungsanmeldung_id = $anm->pruefungsanmeldung_id; + $a->pruefungstermin_id = $anm->pruefungstermin_id; + $a->lehrveranstaltung_id = $anm->lehrveranstaltung_id; + array_push($anmeldungsIds, $a); + } + $return = new stdClass(); + $return->pruefungen = $pruefungen; + $return->anmeldungen = $anmeldungsIds; + $data['result']=$return; + $data['error']='false'; + $data['errormsg']=''; } else { - $data['error']='true'; - $data['errormsg']=$pruefung->errormsg; + $data['error']='true'; + $data['errormsg']=$pruefung->errormsg; } return $data; } @@ -387,26 +386,26 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $addon = new addon(); foreach ($addon->aktive_addons as $a) { - if($a === "ku") - { - require '../../../../addons/'.$a.'/cis/prfVerwaltung_array.php'; - switch($lehrveranstaltung->oe_kurzbz) - { - case $fakultaeten[0]["fakultaet"]: - $semCounter = $fakultaeten[0]["sem"]; - break; - case $fakultaeten[1]["fakultaet"]: - $semCounter = $fakultaeten[1]["sem"]; - break; - default: - $semCounter = 2; - break; - } - } - else - { - $semCounter = 99; - } + if($a === "ku") + { + require '../../../../addons/'.$a.'/cis/prfVerwaltung_array.php'; + switch($lehrveranstaltung->oe_kurzbz) + { + case $fakultaeten[0]["fakultaet"]: + $semCounter = $fakultaeten[0]["sem"]; + break; + case $fakultaeten[1]["fakultaet"]: + $semCounter = $fakultaeten[1]["sem"]; + break; + default: + $semCounter = 2; + break; + } + } + else + { + $semCounter = 99; + } } $i=0; $stdsem_lv_besuch = null; @@ -442,107 +441,132 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) // Defaulteinstellung für Prüfungstypen - schauen, ob bereits aus KTU-Addon geladen if(!isset($pruefungstyp_kurzbzArray)) $pruefungstyp_kurzbzArray = array("Termin1","Termin2","kommPruef"); + if(isset($pruefungstyp_kurzbzArray)) { - if($anzahlPruefungen < count($pruefungstyp_kurzbzArray)) - { - $pruefungstyp_kurzbz = $pruefungstyp_kurzbzArray[$anzahlPruefungen]; - } + if($anzahlPruefungen < count($pruefungstyp_kurzbzArray)) + { + $pruefungstyp_kurzbz = $pruefungstyp_kurzbzArray[$anzahlPruefungen]; + } } else { - $pruefungstyp_kurzbz = null; + $pruefungstyp_kurzbz = null; } foreach($pruefung->result as $prf) { - $note = new note($prf->note); - if($note->note === $noteCode_uef) - { - $pruefungsanmeldung = new pruefungsanmeldung($prf->pruefungsanmeldung_id); - $pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id); - $pf = new pruefungCis($pruefungstermin->pruefung_id); - $pruefungsfenster = new pruefungsfenster($pf->pruefungsfenster_id); - $studiensemester = new studiensemester(); - $stdsem = $studiensemester->getaktorNext(); - $i=0; - while($i<2) - { - if($stdsem === $pruefungsfenster->studiensemester_kurzbz) + $note = new note($prf->note); + if($note->note === $noteCode_uef) { - $anmeldung_moeglich = false; + $pruefungsanmeldung = new pruefungsanmeldung($prf->pruefungsanmeldung_id); + $pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id); + $pf = new pruefungCis($pruefungstermin->pruefung_id); + $pruefungsfenster = new pruefungsfenster($pf->pruefungsfenster_id); + $studiensemester = new studiensemester(); + $stdsem = $studiensemester->getaktorNext(); + $i=0; + while($i<2) + { + if($stdsem === $pruefungsfenster->studiensemester_kurzbz) + { + $anmeldung_moeglich = false; + } + $stdsem = $studiensemester->getPreviousFrom($stdsem); + $i++; + } + } + else + { + if($note->positiv === FALSE && $anzahlPruefungen >= $maxAnzahlVersuche) + { + $anmeldung_moeglich = false; + } } - $stdsem = $studiensemester->getPreviousFrom($stdsem); - $i++; - } - } - else - { - if($note->positiv === FALSE && $anzahlPruefungen >= $maxAnzahlVersuche) - { - $anmeldung_moeglich = false; - } - } } if($anmeldung_moeglich) { - if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) - { - $pruefung = new pruefungCis(); - $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); - $anmeldung = new pruefungsanmeldung(); - $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; - $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; - $anmeldung->wuensche = $_REQUEST["bemerkung"]; - $anmeldung->uid = $uid; - $anmeldung->reihung = $reihung+1; - $anmeldung->status_kurzbz = "angemeldet"; - $anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz; - $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); - - $konto = new konto(); - $creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester); - - if($creditpoints !== false) - { - if($creditpoints < $lehrveranstaltung->ects) + if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) { - $data['error'] = 'true'; - $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); - return $data; - } - } + $pruefung = new pruefungCis(); + $reihung = $pruefung->getLastOfReihung($_REQUEST["termin_id"]); + $anmeldung = new pruefungsanmeldung(); + $anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"]; + $anmeldung->pruefungstermin_id = $_REQUEST["termin_id"]; + $anmeldung->wuensche = $_REQUEST["bemerkung"]; + $anmeldung->uid = $uid; + $anmeldung->reihung = $reihung+1; + $anmeldung->status_kurzbz = "angemeldet"; + $anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz; + $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); - //Kollisionsprüfung - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); - foreach($anmeldungen as $temp) - { - $datum = new datum(); - if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis))) - { - $data['result'][$temp->pruefungstermin_id] = "true"; - $data['error'] = 'true'; - $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung'); +// $konto = new konto(); +// $creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester); +// +// if($creditpoints !== false) +// { +// if($creditpoints <= $lehrveranstaltung->ects) +// { +// $data['error'] = 'true'; +// $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); +// return $data; +// } +// } + + //Kollisionsprüfung und Prüfung auf ausreichen Creditpoints + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); + + if($anmeldungen !== false) + { + $ects = 0; + foreach($anmeldungen as $temp) + { + $lehrveranstaltung = new lehrveranstaltung($temp->lehrveranstaltung_id); + $ects += $lehrveranstaltung->ects; + + $datum = new datum(); + if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis))) + { + $data['result'][$temp->pruefungstermin_id] = "true"; + $data['error'] = 'true'; + $data['errormsg'] = $p->t('pruefung/kollisionMitAndererAnmeldung'); + } + } + + $konto = new konto(); + $creditPoints = $konto->getCreditPointsOfStudiensemester($uid, $aktStudiensemester); + if(($creditPoints != false) && ($ects >= ($creditPoints - $ects))) + { + $data['error'] = 'true'; + $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); + return $data; + } + + if(isset($data['error']) && $data['error'] = 'true') + { + return $data; + } + } + else + { + $data['error'] = 'true'; + $data['errormsg'] = $anmeldung->errormsg; + return $data; + } + } + else + { + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden'); + return $data; } - } - if(isset($data['error']) && $data['error'] = 'true') - { - return $data; - } - } - else - { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/keineFreienPlaetzeVorhanden'); - return $data; - } } else { - $data['error']='true'; - $data['errormsg']=$p->t('pruefung/anmeldungAufgrundVonSperreNichtMoeglich'); - return $data; + $data['error']='true'; + $data['errormsg']=$p->t('pruefung/anmeldungAufgrundVonSperreNichtMoeglich'); + return $data; } $anrechnung = new anrechnung(); diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 26cb18cd8..6a7a927f8 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -102,14 +102,7 @@ if(isset($_GET['getAnmeldung'])) if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem)) { // User ist noch nicht angemeldet - //Pruefen ob genug Credit Points zur Verfuegung stehen zur Anmeldung - - $konto = new konto(); - $cp = $konto->getCreditPoints($uid, $stsem); - if($cp===false || $cp>=$lv->ects) - echo '
'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')'; - else - echo '
'.$lv->bezeichnung.''; + echo '
'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')'; } else { @@ -201,25 +194,16 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung') if(!$bngruppe->load($uid, $lvangebot->result[0]->gruppe_kurzbz, $stsem)) { - - // Pruefen ob genug CP zur Verfuegung stehen falls diese reduziert sind - $konto = new konto(); - $cp = $konto->getCreditPoints($uid, $stsem); - if($cp===false || $cp>=$lv->ects) + $bngruppe->uid = $uid; + $bngruppe->gruppe_kurzbz = $lvangebot->result[0]->gruppe_kurzbz; + $bngruppe->studiensemester_kurzbz = $stsem; + $bngruppe->new=true; + if($bngruppe->save()) { - $bngruppe->uid = $uid; - $bngruppe->gruppe_kurzbz = $lvangebot->result[0]->gruppe_kurzbz; - $bngruppe->studiensemester_kurzbz = $stsem; - $bngruppe->new=true; - if($bngruppe->save()) - { - echo ''.$p->t('studienplan/einschreibungErfolgreich').''; - // Menue neu Laden damit die LV unter Meine LV gleich angezeigt wird - echo ''; - } + echo ''.$p->t('studienplan/einschreibungErfolgreich').''; + // Menue neu Laden damit die LV unter Meine LV gleich angezeigt wird + echo ''; } - else - echo ''.$p->t('studienplan/zuWenigCP').''; } else { diff --git a/include/konto.class.php b/include/konto.class.php index 396b7aa31..3255da3d6 100644 --- a/include/konto.class.php +++ b/include/konto.class.php @@ -800,6 +800,51 @@ class konto extends basis_db return false; } } + + /** + * Liefert die CreditPoints die ein Studierender für ein Studiensemester zur Verfügung hat + * falls dieser einschraenkungen eingetragen hat. Wenn keine Einschraenkung vorhanden ist, + * wird false zurueckgeliefert. Es werden die Creditpoint der Belastungen herangezogen. + * Die Gegenbuchung wird nicht beruecksichtigt. + * @return Anzahl der gekauften CreditPoints oder false falls unbeschraenkt + */ + public function getCreditPointsOfStudiensemester($uid, $studiensemester_kurzbz) + { + $qry = "SELECT sum(credit_points) as cp + FROM + public.tbl_konto + JOIN public.tbl_benutzer USING(person_id) + WHERE + uid=".$this->db_add_param($uid)." + AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + AND buchungsnr_verweis is null + AND credit_points is not null"; + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $creditpoints = $row->cp; + + if($creditpoints!='') + { + return $creditpoints; + } + else + return false; + } + else + { + // keine Einschraenkung vorhanden + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } /** * Fügt zur erstellten Buchung eine Zahlungsreferenz hinzu From 8fd09dfef836b7e4828e7ebdfea182bfb20348a1 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Fri, 7 Oct 2016 11:59:45 +0200 Subject: [PATCH 10/12] fixed credit points calculation --- cis/private/lehre/pruefung/pruefungsanmeldung.json.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 4ae16864e..520b2b23a 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -515,11 +515,14 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) // } //Kollisionsprüfung und Prüfung auf ausreichen Creditpoints - $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester); + $pruefungstermin = new pruefungstermin($_REQUEST["termin_id"]); + $pf = new pruefungCis($pruefungstermin->pruefung_id); + $pruefungsfenster = new pruefungsfenster($pf->pruefungsfenster_id); + $anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $pruefungsfenster->studiensemester_kurzbz); if($anmeldungen !== false) { - $ects = 0; + $ects = $lehrveranstaltung->ects; foreach($anmeldungen as $temp) { $lehrveranstaltung = new lehrveranstaltung($temp->lehrveranstaltung_id); @@ -535,7 +538,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } $konto = new konto(); - $creditPoints = $konto->getCreditPointsOfStudiensemester($uid, $aktStudiensemester); + $creditPoints = $konto->getCreditPointsOfStudiensemester($uid, $pruefungsfenster->studiensemester_kurzbz); if(($creditPoints != false) && ($ects >= ($creditPoints - $ects))) { $data['error'] = 'true'; From 993b3812823db4c6e99e76dfae89a746cb08f4b9 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Fri, 7 Oct 2016 12:22:19 +0200 Subject: [PATCH 11/12] fixed credit point calculation --- cis/private/lehre/pruefung/pruefungsanmeldung.json.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 520b2b23a..3b69bba8f 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -522,11 +522,11 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) if($anmeldungen !== false) { - $ects = $lehrveranstaltung->ects; + $ects_verwendet = 0; foreach($anmeldungen as $temp) { $lehrveranstaltung = new lehrveranstaltung($temp->lehrveranstaltung_id); - $ects += $lehrveranstaltung->ects; + $ects_verwendet += $lehrveranstaltung->ects; $datum = new datum(); if(($datum->between($termin->von, $termin->bis, $temp->von)) || ($datum->between($termin->von, $termin->bis, $temp->bis))) @@ -539,7 +539,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $konto = new konto(); $creditPoints = $konto->getCreditPointsOfStudiensemester($uid, $pruefungsfenster->studiensemester_kurzbz); - if(($creditPoints != false) && ($ects >= ($creditPoints - $ects))) + if(($creditPoints != false) && ($lehrveranstaltung->ects > ($creditPoints - $ects_verwendet))) { $data['error'] = 'true'; $data['errormsg'] = $p->t('pruefung/zuWenigeCreditPoints'); From 51e9e071d5dc90b82795c5f4f3197134a9884532 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 7 Oct 2016 13:57:06 +0200 Subject: [PATCH 12/12] Attribute Studienplan, Genemigung und Pflicht in die Liste aufgenommen --- include/lehrveranstaltung.class.php | 504 ++++++++++++++-------------- vilesci/lehre/studienordnung.js | 60 ++-- vilesci/lehre/studienordnung.php | 38 ++- 3 files changed, 296 insertions(+), 306 deletions(-) diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index 40b8f64f7..0879bada4 100755 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -289,8 +289,6 @@ class lehrveranstaltung extends basis_db //Select Befehl zusammenbauen if (!is_null($lehreverzeichnis)) $qry .= " AND lehreverzeichnis=" . $this->db_add_param($lehreverzeichnis); -// else -// $qry .= " AND lehreverzeichnis<>'' "; if (!is_null($semester) && $semester != '') $qry .= " AND semester=" . $this->db_add_param($semester, FHC_INTEGER); @@ -425,8 +423,6 @@ class lehrveranstaltung extends basis_db //Select Befehl zusammenbauen if (!is_null($lehreverzeichnis)) $qry .= " AND lehreverzeichnis=" . $this->db_add_param($lehreverzeichnis); - //else - // $qry .= " AND lehreverzeichnis<>'' "; if (!is_null($semester) && $semester != '') $qry .= " AND semester=" . $this->db_add_param($semester); @@ -436,7 +432,6 @@ class lehrveranstaltung extends basis_db if (!is_null($studiensemester_kurzbz) && $studiensemester_kurzbz != '') $qry .= " AND tbl_lehreinheit.studiensemester_kurzbz=" . $this->db_add_param($studiensemester_kurzbz); - if (!is_null($lehre)) $qry .= " AND lehre=" . ($lehre ? 'true' : 'false'); @@ -527,10 +522,10 @@ class lehrveranstaltung extends basis_db WHERE lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung WHERE uid=" . $this->db_add_param($student_uid); if($studiensemester_kurzbz !== NULL) - $qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); + $qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); $qry .= ") OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE student_uid=" . $this->db_add_param($student_uid); if($studiensemester_kurzbz !== NULL) - $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param ($studiensemester_kurzbz); + $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param ($studiensemester_kurzbz); $qry .= ") ORDER BY semester, bezeichnung"; //Datensaetze laden @@ -608,16 +603,10 @@ class lehrveranstaltung extends basis_db $this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein'; return false; } -/* - if(is_null($orgform_kurzbz) || $orgform_kurzbz=='') - { - $this->errormsg = 'keine orgform_kurzbz uebergeben'; - return false; - }*/ $qry='SELECT count(*) as count FROM lehre.tbl_lehrveranstaltung WHERE studiengang_kz='.$this->db_add_param($studiengang_kz).' AND orgform_kurzbz'.(is_null($orgform_kurzbz)?' is null':"=".$this->db_add_param($orgform_kurzbz)); - //echo $qry; + $return=array(); if($db_result=$this->db_query($qry)) { @@ -1072,9 +1061,9 @@ class lehrveranstaltung extends basis_db } $qry = "SELECT mdl_course_id FROM lehre.tbl_moodle - WHERE studiensemester_kurzbz = " . $this->db_add_param($semester) . " - AND (lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . " - OR lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . "));"; + WHERE studiensemester_kurzbz = " . $this->db_add_param($semester) . " + AND (lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . " + OR lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . "));"; $moodleArray = array(); @@ -1323,7 +1312,7 @@ class lehrveranstaltung extends basis_db return $childs; } - /** + /** * Generiert die Subtrees des Lehrveranstaltungstrees */ public function hasChildren($studienplan_lehrveranstaltung_id) @@ -1338,15 +1327,14 @@ class lehrveranstaltung extends basis_db } } if(count($childs) > 0) - { - return true; - } - else - { - return false; - } - - } + { + return true; + } + else + { + return false; + } + } /** * Baut die Datenstruktur für senden als JSON Objekt auf @@ -1453,6 +1441,7 @@ class lehrveranstaltung extends basis_db $obj->zeugnis = $lv->zeugnis; $obj->curriculum = $lv->curriculum; $obj->export = $lv->export; + $obj->genehmigung = $lv->genehmigung; $obj->lehrauftrag = $lv->lehrauftrag; $obj->lehre = $lv->lehre; $obj->children = array(); @@ -1511,7 +1500,8 @@ class lehrveranstaltung extends basis_db */ public function loadLVkompatibel($lehrveranstaltung_id) { - if (!is_numeric($lehrveranstaltung_id)) { + if (!is_numeric($lehrveranstaltung_id)) + { $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein'; return false; } @@ -1536,7 +1526,8 @@ class lehrveranstaltung extends basis_db */ public function getLVkompatibel($lehrveranstaltung_id) { - if (!is_numeric($lehrveranstaltung_id)) { + if (!is_numeric($lehrveranstaltung_id)) + { $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein'; return false; } @@ -1676,11 +1667,13 @@ class lehrveranstaltung extends basis_db public function load_lva_oe($oe_kurzbz, $aktiv=null, $lehrtyp=null, $sort=null, $semester=null) { - if (is_null($oe_kurzbz)) { + if (is_null($oe_kurzbz)) + { $this->errormsg = 'OE KurzBz darf nicht null sein'; return false; } - if (!is_null($aktiv) && !is_bool($aktiv)) { + if (!is_null($aktiv) && !is_bool($aktiv)) + { $this->errormsg = 'Aktivkz muss ein boolscher Wert sein'; return false; } @@ -1942,125 +1935,125 @@ class lehrveranstaltung extends basis_db } } - /** - * lädt die Lehrveranstaltungen zum zugehörigen Mitarbeiter - * @param String $uid User ID des Mitarbeiters - * @param String $studiensemster_kurzbz Kurzbezeichnung des Studiensemesters - */ - public function getLVByMitarbeiter($uid, $studiensemester_kurzbz = null) - { - $qry = 'SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung - JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) - JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) - WHERE - mitarbeiter_uid='.$this->db_add_param($uid); + /** + * lädt die Lehrveranstaltungen zum zugehörigen Mitarbeiter + * @param String $uid User ID des Mitarbeiters + * @param String $studiensemster_kurzbz Kurzbezeichnung des Studiensemesters + */ + public function getLVByMitarbeiter($uid, $studiensemester_kurzbz = null) + { + $qry = 'SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung + JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) + JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) + WHERE + mitarbeiter_uid='.$this->db_add_param($uid); - if($studiensemester_kurzbz != null) - { - $qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).';'; - } + if($studiensemester_kurzbz != null) + { + $qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).';'; + } - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $lv_obj = new lehrveranstaltung(); + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $lv_obj = new lehrveranstaltung(); - $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lv_obj->studiengang_kz = $row->studiengang_kz; - $lv_obj->bezeichnung = $row->bezeichnung; - $lv_obj->kurzbz = $row->kurzbz; - $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $lv_obj->semester = $row->semester; - $lv_obj->ects = $row->ects; - $lv_obj->semesterstunden = $row->semesterstunden; - $lv_obj->anmerkung = $row->anmerkung; - $lv_obj->lehre = $this->db_parse_bool($row->lehre); - $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; - $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); - $lv_obj->ext_id = $row->ext_id; - $lv_obj->insertamum = $row->insertamum; - $lv_obj->insertvon = $row->insertvon; - $lv_obj->planfaktor = $row->planfaktor; - $lv_obj->planlektoren = $row->planlektoren; - $lv_obj->planpersonalkosten = $row->planpersonalkosten; - $lv_obj->plankostenprolektor = $row->plankostenprolektor; - $lv_obj->updateamum = $row->updateamum; - $lv_obj->updatevon = $row->updatevon; - $lv_obj->sprache = $row->sprache; - $lv_obj->sort = $row->sort; - $lv_obj->incoming = $row->incoming; - $lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis); - $lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); - $lv_obj->zeugnis = $row->koordinator; - $lv_obj->bezeichnung_english = $row->bezeichnung_english; - $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; - $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; - $lv_obj->oe_kurzbz = $row->oe_kurzbz; - $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; - $lv_obj->anzahlsemester = $row->anzahlsemester; - $lv_obj->semesterwochen = $row->semesterwochen; - $lv_obj->lvnr = $row->lvnr; - $lv_obj->semester_alternativ = $row->semester_alternativ; - $lv_obj->farbe = $row->farbe; - $lv_obj->benotung = $this->db_parse_bool($row->benotung); - $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); - $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); + $lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $lv_obj->studiengang_kz = $row->studiengang_kz; + $lv_obj->bezeichnung = $row->bezeichnung; + $lv_obj->kurzbz = $row->kurzbz; + $lv_obj->lehrform_kurzbz = $row->lehrform_kurzbz; + $lv_obj->semester = $row->semester; + $lv_obj->ects = $row->ects; + $lv_obj->semesterstunden = $row->semesterstunden; + $lv_obj->anmerkung = $row->anmerkung; + $lv_obj->lehre = $this->db_parse_bool($row->lehre); + $lv_obj->lehreverzeichnis = $row->lehreverzeichnis; + $lv_obj->aktiv = $this->db_parse_bool($row->aktiv); + $lv_obj->ext_id = $row->ext_id; + $lv_obj->insertamum = $row->insertamum; + $lv_obj->insertvon = $row->insertvon; + $lv_obj->planfaktor = $row->planfaktor; + $lv_obj->planlektoren = $row->planlektoren; + $lv_obj->planpersonalkosten = $row->planpersonalkosten; + $lv_obj->plankostenprolektor = $row->plankostenprolektor; + $lv_obj->updateamum = $row->updateamum; + $lv_obj->updatevon = $row->updatevon; + $lv_obj->sprache = $row->sprache; + $lv_obj->sort = $row->sort; + $lv_obj->incoming = $row->incoming; + $lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis); + $lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); + $lv_obj->zeugnis = $row->koordinator; + $lv_obj->bezeichnung_english = $row->bezeichnung_english; + $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; + $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; + $lv_obj->oe_kurzbz = $row->oe_kurzbz; + $lv_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; + $lv_obj->anzahlsemester = $row->anzahlsemester; + $lv_obj->semesterwochen = $row->semesterwochen; + $lv_obj->lvnr = $row->lvnr; + $lv_obj->semester_alternativ = $row->semester_alternativ; + $lv_obj->farbe = $row->farbe; + $lv_obj->benotung = $this->db_parse_bool($row->benotung); + $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); + $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); - $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; - $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; - if ($lv_obj->bezeichnung_arr['English'] == '') - $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; + $lv_obj->bezeichnung_arr['German'] = $row->bezeichnung; + $lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english; + if ($lv_obj->bezeichnung_arr['English'] == '') + $lv_obj->bezeichnung_arr['English'] = $lv_obj->bezeichnung_arr['German']; - $this->lehrveranstaltungen[] = $lv_obj; - } - return true; - } - else - { - $this->errormsg = "Lehrveranstaltungen konnten nicht geladen werden."; - } + $this->lehrveranstaltungen[] = $lv_obj; + } + return true; + } + else + { + $this->errormsg = "Lehrveranstaltungen konnten nicht geladen werden."; + } - } + } - /** - * Lädt alle Studenten UIDs die die angegebenen LV besuchen (optional mit Studiensemester) - * @param integer $lehrveranstaltung_id ID der Lehrveranstaltung - * @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters - * @return boolean|array false, wenn eine Fehler auftritt; Array mit UIDs wenn erfolgreich - */ - public function getStudentsOfLv($lehrveranstaltung_id, $studiensemester_kurzbz=null, $lehreinheit_id=null) - { - if(!is_numeric($lehrveranstaltung_id)) - { - $this->errormsg = "Lehrveranstaltung ID muss eine gültige Zahl sein."; - return false; - } + /** + * Lädt alle Studenten UIDs die die angegebenen LV besuchen (optional mit Studiensemester) + * @param integer $lehrveranstaltung_id ID der Lehrveranstaltung + * @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters + * @return boolean|array false, wenn eine Fehler auftritt; Array mit UIDs wenn erfolgreich + */ + public function getStudentsOfLv($lehrveranstaltung_id, $studiensemester_kurzbz=null, $lehreinheit_id=null) + { + if(!is_numeric($lehrveranstaltung_id)) + { + $this->errormsg = "Lehrveranstaltung ID muss eine gültige Zahl sein."; + return false; + } - $qry = 'SELECT distinct uid FROM campus.vw_student_lehrveranstaltung WHERE ' - . 'lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id); + $qry = 'SELECT distinct uid FROM campus.vw_student_lehrveranstaltung WHERE ' + . 'lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id); - if(!is_null($studiensemester_kurzbz)) - { - $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz); - } - if(!is_null($lehreinheit_id)) - { - $qry .= ' AND lehreinheit_id='.$this->db_add_param($lehreinheit_id); - } - $qry .= ';'; + if(!is_null($studiensemester_kurzbz)) + { + $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz); + } + if(!is_null($lehreinheit_id)) + { + $qry .= ' AND lehreinheit_id='.$this->db_add_param($lehreinheit_id); + } + $qry .= ';'; - if($this->db_query($qry)) - { - $result = array(); - while($row = $this->db_fetch_object()) - { - array_push($result, $row->uid); - } - return $result; - } - return false; - } + if($this->db_query($qry)) + { + $result = array(); + while($row = $this->db_fetch_object()) + { + array_push($result, $row->uid); + } + return $result; + } + return false; + } /** * @@ -2097,7 +2090,7 @@ class lehrveranstaltung extends basis_db } - $qry_alvs = "SELECT sum(lm.semesterstunden) as alvs + $qry_alvs = "SELECT sum(lm.semesterstunden) as alvs FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter lm USING (lehreinheit_id) @@ -2167,14 +2160,13 @@ class lehrveranstaltung extends basis_db public function lehreverzeichnisExists($lehreverzeichnis, $studiengang_kz, $semester) { $qry = 'SELECT - 1 - FROM - lehre.tbl_lehrveranstaltung - WHERE - lehreverzeichnis='.$this->db_add_param($lehreverzeichnis).' - AND studiengang_kz='.$this->db_add_param($studiengang_kz).' - AND semester='.$this->db_add_param($semester).';'; - + 1 + FROM + lehre.tbl_lehrveranstaltung + WHERE + lehreverzeichnis='.$this->db_add_param($lehreverzeichnis).' + AND studiengang_kz='.$this->db_add_param($studiengang_kz).' + AND semester='.$this->db_add_param($semester).';'; if($this->db_query($qry)) { @@ -2201,117 +2193,117 @@ class lehrveranstaltung extends basis_db */ public function getLVFromStudienplanByLehrtyp($studienplan_id, $lehrtyp_kurzbz=NULL, $semester=NULL) { - if (!is_numeric($studienplan_id) || $studienplan_id === '') - { - $this->errormsg = 'StudienplanID ist ungueltig'; - return false; - } + if (!is_numeric($studienplan_id) || $studienplan_id === '') + { + $this->errormsg = 'StudienplanID ist ungueltig'; + return false; + } - $qry = "SELECT DISTINCT tbl_lehrveranstaltung.* + $qry = "SELECT DISTINCT tbl_lehrveranstaltung.* FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id) WHERE tbl_studienplan_lehrveranstaltung.studienplan_id=" . $this->db_add_param($studienplan_id, FHC_INTEGER); - if (!is_null($lehrtyp_kurzbz)) - { - $qry.=" AND tbl_lehrveranstaltung.lehrtyp_kurzbz=" . $this->db_add_param($lehrtyp_kurzbz, FHC_STRING); - } - - if (!is_null($semester)) - { - $qry.=" AND tbl_studienplan_lehrveranstaltung.semester=" . $this->db_add_param($semester, FHC_INTEGER); - } - $qry.=" ORDER BY bezeichnung;"; - - $this->lehrveranstaltungen = array(); - if ($result = $this->db_query($qry)) - { - while ($row = $this->db_fetch_object($result)) + if (!is_null($lehrtyp_kurzbz)) { - $obj = new lehrveranstaltung(); - - $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $obj->studiengang_kz = $row->studiengang_kz; - $obj->bezeichnung = $row->bezeichnung; - $obj->kurzbz = $row->kurzbz; - $obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $obj->semester = $row->semester; - $obj->ects = $row->ects; - $obj->semesterstunden = $row->semesterstunden; - $obj->anmerkung = $row->anmerkung; - $obj->lehre = $this->db_parse_bool($row->lehre); - $obj->lehreverzeichnis = $row->lehreverzeichnis; - $obj->aktiv = $this->db_parse_bool($row->aktiv); - $obj->ext_id = $row->ext_id; - $obj->insertamum = $row->insertamum; - $obj->insertvon = $row->insertvon; - $obj->planfaktor = $row->planfaktor; - $obj->planlektoren = $row->planlektoren; - $obj->planpersonalkosten = $row->planpersonalkosten; - $obj->plankostenprolektor = $row->plankostenprolektor; - $obj->updateamum = $row->updateamum; - $obj->updatevon = $row->updatevon; - $obj->sprache = $row->sprache; - $obj->sort = $row->sort; - $obj->incoming = $row->incoming; - $obj->zeugnis = $this->db_parse_bool($row->zeugnis); - $obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); - $obj->koordinator = $row->koordinator; - $obj->bezeichnung_english = $row->bezeichnung_english; - $obj->orgform_kurzbz = $row->orgform_kurzbz; - $obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; - $obj->oe_kurzbz = $row->oe_kurzbz; - $obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; - $obj->anzahlsemester = $row->anzahlsemester; - $obj->semesterwochen = $row->semesterwochen; - $obj->lvnr = $row->lvnr; - $obj->semester_alternativ = $row->semester_alternativ; - $obj->farbe = $row->farbe; - $obj->benotung = $this->db_parse_bool($row->benotung); - $obj->lvinfo = $this->db_parse_bool($row->lvinfo); - $obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); - - $obj->bezeichnung_arr['German'] = $row->bezeichnung; - $obj->bezeichnung_arr['English'] = $row->bezeichnung_english; - if ($obj->bezeichnung_arr['English'] == '') - $obj->bezeichnung_arr['English'] = $obj->bezeichnung_arr['German']; - - $obj->new = false; - - $this->lehrveranstaltungen[] = $obj; + $qry.=" AND tbl_lehrveranstaltung.lehrtyp_kurzbz=" . $this->db_add_param($lehrtyp_kurzbz, FHC_STRING); } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - /** - * Gibt alle Organisationseinheiten der Studiengänge zurück, mit denen - * die Lehrveranstaltung über Studienpläne verknüpft ist - * @return boolean|array false im Fehlerfall, sonst ein Array - */ - public function getAllOe() - { - $oe = array(); + if (!is_null($semester)) + { + $qry.=" AND tbl_studienplan_lehrveranstaltung.semester=" . $this->db_add_param($semester, FHC_INTEGER); + } + $qry.=" ORDER BY bezeichnung;"; - $qry = 'SELECT DISTINCT oe_kurzbz - FROM lehre.tbl_studienplan_lehrveranstaltung - JOIN lehre.tbl_studienplan USING(studienplan_id) - JOIN lehre.tbl_studienordnung USING(studienordnung_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE lehrveranstaltung_id = '.$this->db_add_param($this->lehrveranstaltung_id); - - if($result = $this->db_query($qry)) + $this->lehrveranstaltungen = array(); + if ($result = $this->db_query($qry)) { while ($row = $this->db_fetch_object($result)) - { - $oe[] = $row->oe_kurzbz; - } + { + $obj = new lehrveranstaltung(); + + $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->bezeichnung = $row->bezeichnung; + $obj->kurzbz = $row->kurzbz; + $obj->lehrform_kurzbz = $row->lehrform_kurzbz; + $obj->semester = $row->semester; + $obj->ects = $row->ects; + $obj->semesterstunden = $row->semesterstunden; + $obj->anmerkung = $row->anmerkung; + $obj->lehre = $this->db_parse_bool($row->lehre); + $obj->lehreverzeichnis = $row->lehreverzeichnis; + $obj->aktiv = $this->db_parse_bool($row->aktiv); + $obj->ext_id = $row->ext_id; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->planfaktor = $row->planfaktor; + $obj->planlektoren = $row->planlektoren; + $obj->planpersonalkosten = $row->planpersonalkosten; + $obj->plankostenprolektor = $row->plankostenprolektor; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->sprache = $row->sprache; + $obj->sort = $row->sort; + $obj->incoming = $row->incoming; + $obj->zeugnis = $this->db_parse_bool($row->zeugnis); + $obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); + $obj->koordinator = $row->koordinator; + $obj->bezeichnung_english = $row->bezeichnung_english; + $obj->orgform_kurzbz = $row->orgform_kurzbz; + $obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->raumtyp_kurzbz = $row->raumtyp_kurzbz; + $obj->anzahlsemester = $row->anzahlsemester; + $obj->semesterwochen = $row->semesterwochen; + $obj->lvnr = $row->lvnr; + $obj->semester_alternativ = $row->semester_alternativ; + $obj->farbe = $row->farbe; + $obj->benotung = $this->db_parse_bool($row->benotung); + $obj->lvinfo = $this->db_parse_bool($row->lvinfo); + $obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); + + $obj->bezeichnung_arr['German'] = $row->bezeichnung; + $obj->bezeichnung_arr['English'] = $row->bezeichnung_english; + if ($obj->bezeichnung_arr['English'] == '') + $obj->bezeichnung_arr['English'] = $obj->bezeichnung_arr['German']; + + $obj->new = false; + + $this->lehrveranstaltungen[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Gibt alle Organisationseinheiten der Studiengänge zurück, mit denen + * die Lehrveranstaltung über Studienpläne verknüpft ist + * @return boolean|array false im Fehlerfall, sonst ein Array + */ + public function getAllOe() + { + $oe = array(); + + $qry = 'SELECT DISTINCT oe_kurzbz + FROM lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE lehrveranstaltung_id = '.$this->db_add_param($this->lehrveranstaltung_id); + + if($result = $this->db_query($qry)) + { + while ($row = $this->db_fetch_object($result)) + { + $oe[] = $row->oe_kurzbz; + } } else { @@ -2319,16 +2311,16 @@ class lehrveranstaltung extends basis_db return false; } - // oe_kurzbz des Studiengangs der LVA hinzufügen - $stg = new studiengang($this->studiengang_kz); + // oe_kurzbz des Studiengangs der LVA hinzufügen + $stg = new studiengang($this->studiengang_kz); - if(!in_array($stg->oe_kurzbz, $oe)) - { - $oe[] = $this->oe_kurzbz; - } + if(!in_array($stg->oe_kurzbz, $oe)) + { + $oe[] = $this->oe_kurzbz; + } - return $oe; - } + return $oe; + } /** * Laedt den LV-Leiter einer Lehrveranstaltung, wenn keiner der Lektoren als LVLeiter eingetragen ist, diff --git a/vilesci/lehre/studienordnung.js b/vilesci/lehre/studienordnung.js index 39c28dcd0..879af29af 100755 --- a/vilesci/lehre/studienordnung.js +++ b/vilesci/lehre/studienordnung.js @@ -245,7 +245,7 @@ function GenerateTreeChilds(data) } var obj = { "data":data.bezeichnung, - "metadata": {"lehrveranstaltung_id":data.lehrveranstaltung_id,"bezeichnung":data.bezeichnung,"ects":data.ects,"semesterstunden":data.semesterstunden,"lehrform_kurzbz":data.lehrform_kurzbz,"lvnr":data.lvnr,"sortierung":data.stpllv_sort}, + "metadata": {"lehrveranstaltung_id":data.lehrveranstaltung_id,"bezeichnung":data.bezeichnung,"ects":data.ects,"semesterstunden":data.semesterstunden,"lehrform_kurzbz":data.lehrform_kurzbz,"lvnr":data.lvnr,"sortierung":data.stpllv_sort,"pflicht":data.stpllv_pflicht,"export":data.export,"genehmigung":data.genehmigung}, "attr":{"id":data.studienplan_lehrveranstaltung_id,"rel":data.lehrtyp_kurzbz,"lvID":data.lehrveranstaltung_id,"studienplan_lehrveranstaltung_id":data.studienplan_lehrveranstaltung_id}, "children":children }; @@ -423,10 +423,13 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester) columns: [ {width: 300, header: "Lehrveranstaltung", value: "bezeichnung", source: "metadata", headerClass: "header_lv"}, {width: 50, header: "ECTS", value: "ects", source: "metadata", wideCellClass: "col_ects", headerClass: "header_ects"}, - {width: 120, header: "Semesterstunden", value: "semesterstunden", source: "metadata", cellClass: "col_semesterstunden"}, + {width: 60, header: "SemStd", value: "semesterstunden", source: "metadata", cellClass: "col_left"}, {width: 80, header: "Lehrform", value: "lehrform_kurzbz", source: "metadata", cellClass: "col_lehrform"}, - {width: 80, header: "LVNR", value: "lvnr", source: "metadata", cellClass: "col_lvnr"}, - {width: 80, header: "Sortierung", value: "sortierung", source: "metadata", cellClass: "col_sortierung"}, + {width: 60, header: "StudPlan", value: "export", source: "metadata", cellClass: "col_left"}, + {width: 60, header: "Pflicht", value: "pflicht", source: "metadata", cellClass: "col_left"}, + {width: 60, header: "Gen", value: "genehmigung", source: "metadata", cellClass: "col_left"}, + {width: 80, header: "LVNR", value: "lvnr", source: "metadata", cellClass: "col_left"}, + {width: 60, header: "Sort", value: "sortierung", source: "metadata", cellClass: "col_left"}, ], resizable: true }, @@ -486,39 +489,31 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester) plugins: ["themes", "ui", "dnd", "grid", "json_data", "crrm", "types", "sort", "contextmenu"] }).bind("move_node.jstree", function(event, data) { -// if(searchTree(data.rslt.r, data.rslt.o.attr("id"))) -// { -// $("#treeData").jstree("remove", "#"+data.rslt.oc.attr("id")); -// alert("Lehrveranstaltung bereits vorhanden"); -// } -// else -// { - // Verschieben eines Eintrages + // Verschieben eines Eintrages - // Studienplan_lehrveranstaltung_id ermitteln - var studienplan_lehrveranstaltung_id=''; - if(data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id){ - studienplan_lehrveranstaltung_id=data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id.value; - //$("#treeData").jstree('refresh'); - } + // Studienplan_lehrveranstaltung_id ermitteln + var studienplan_lehrveranstaltung_id=''; + if(data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id){ + studienplan_lehrveranstaltung_id=data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id.value; + //$("#treeData").jstree('refresh'); + } - // Aenderung speichern - saveJsondataFromTree(data.rslt.o[0].id, global_studienplan_id, studienplan_lehrveranstaltung_id); + // Aenderung speichern + saveJsondataFromTree(data.rslt.o[0].id, global_studienplan_id, studienplan_lehrveranstaltung_id); - // ECTS Summen neu berechnen - var root = data.inst.get_container_ul(); - var nodes = root[0].childNodes; - for(var i=0; i * Stefan Puraner @@ -48,37 +48,41 @@ echo ' - + - + - + - +
    @@ -242,7 +246,7 @@ echo '