diff --git a/cis/private/lehre/pruefung/pruefung.js b/cis/private/lehre/pruefung/pruefung.js
index 620f20db0..801854f19 100644
--- a/cis/private/lehre/pruefung/pruefung.js
+++ b/cis/private/lehre/pruefung/pruefung.js
@@ -446,6 +446,34 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t
});
$("#studienverpflichtung").html(html);
});
+
+ $.ajax({
+ dataType: 'json',
+ url: "./pruefungsanmeldung.json.php",
+ type: "POST",
+ data: {
+ method: "getPrestudenten"
+ },
+ error: loadError
+ }).success(function(data)
+ {
+ if(data.error !== false)
+ {
+ var html = "";
+
+ console.log(html);
+
+ $("#studiengang").html("
t('pruefung/AnrechnungInStudiengang'); ?>: | "+html+" | ");
+ }
+ });
var start = terminVon;
var ende = terminBis;
@@ -487,6 +515,10 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
var studienverpflichtung_id = null;
if($("#studienverpflichtung").length)
studienverpflichtung_id = $("#studienverpflichtung option:selected").val();
+
+ var studiengang_kz = null;
+ if($('#prestudent_studiengang').length)
+ studiengang_kz = $('#prestudent_studiengang option:selected').val();
$.ajax({
dataType: 'json',
@@ -498,7 +530,8 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
lehrveranstaltung_id: lehrveranstaltung_id,
bemerkung: bemerkungen,
uid: uid,
- studienverpflichtung_id: studienverpflichtung_id
+ studienverpflichtung_id: studienverpflichtung_id,
+ studiengang_kz: studiengang_kz
},
error: loadError
}).success(function(data){
diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php
index 9f4fa48a9..d1be2e8bb 100755
--- a/cis/private/lehre/pruefung/pruefung.js.php
+++ b/cis/private/lehre/pruefung/pruefung.js.php
@@ -491,6 +491,32 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t
$("#studienverpflichtung").html(html);
});
+ $.ajax({
+ dataType: 'json',
+ url: "./pruefungsanmeldung.json.php",
+ type: "POST",
+ data: {
+ method: "getPrestudenten"
+ },
+ error: loadError
+ }).success(function(data)
+ {
+ if(data.error !== false)
+ {
+ //show if more than 1 active prestudent exists
+ if(data.result.length > 1)
+ {
+ var html = "";
+
+ $("#studiengang").html("t('pruefung/AnrechnungInStudiengang'); ?>: | "+html+" | ");
+ }
+ }
+ });
+
var start = terminVon;
var ende = terminBis;
start = start.split(' ');
@@ -532,6 +558,10 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
if($("#studienverpflichtung").length)
studienverpflichtung_id = $("#studienverpflichtung option:selected").val();
+ var studiengang_kz = null;
+ if($('#prestudent_studiengang').length)
+ studiengang_kz = $('#prestudent_studiengang option:selected').val();
+
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
@@ -542,7 +572,8 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
lehrveranstaltung_id: lehrveranstaltung_id,
bemerkung: bemerkungen,
uid: uid,
- studienverpflichtung_id: studienverpflichtung_id
+ studienverpflichtung_id: studienverpflichtung_id,
+ studiengang_kz: studiengang_kz
},
error: loadError
}).success(function(data){
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
index 803bbc33e..6a1eb085b 100755
--- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
@@ -41,6 +41,7 @@ $lang->load($sprache);
$p = new phrasen($sprache);
$uid = get_uid();
+$uid = "p20110133";
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
@@ -120,6 +121,9 @@ switch($method)
$lvid = filter_input(INPUT_POST, "lehrveranstaltung_id");
$data = getLvKompatibel($lvid);
break;
+ case 'getPrestudenten':
+ $data = getPrestudenten($uid, $aktStudiensemester);
+ break;
default:
break;
}
@@ -376,6 +380,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$stdsem = $studiensemester->getLastOrAktSemester(0);
$lv_besucht = false;
$studienverpflichtung_id = filter_input(INPUT_POST, "studienverpflichtung_id");
+ $studiengang_kz = filter_input(INPUT_POST, "studiengang_kz");
//Defaulteinstellung für Anzahlprüfungsversuche (wird durch Addon "ktu" überschrieben)
$maxAnzahlVersuche = 0;
@@ -583,6 +588,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$anrechnung = new anrechnung();
$lv_komp = new lehrveranstaltung($studienverpflichtung_id);
+ $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
$person = new person();
$person->getPersonFromBenutzer($uid);
$prestudent = new prestudent();
@@ -592,39 +598,92 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
if ($aktStudiensemester)
$stdsem = $aktStudiensemester;
- if(count($prestudent->result) > 0)
+ $prestudenten = array();
+
+ foreach ($prestudent->result as $ps)
{
- $prestudent_id = "";
- foreach($prestudent->result as $ps)
- {
- if($ps->getLaststatus($ps->prestudent_id, $stdsem))
- {
- if(($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
- {
- $prestudent_id = $ps->prestudent_id;
- }
- else
- {
- if($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
- {
- if(($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
- {
- $prestudent_id = $ps->prestudent_id;
- }
- }
- }
- }
- else
- {
- if($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
- {
- if(($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
- {
- $prestudent_id = $ps->prestudent_id;
- }
- }
- }
- }
+ if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
+ {
+ if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
+ {
+ array_push($prestudenten, $ps);
+ }
+ }
+ }
+
+ if (count($prestudenten) > 0)
+ {
+ $prestudent_id = "";
+ if (count($prestudenten) != 1)
+ {
+ foreach ($prestudenten as $ps)
+ {
+ if($ps->studiengang_kz === $studiengang_kz)
+ {
+ if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
+ {
+ if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
+ {
+ $prestudent_id = $ps->prestudent_id;
+ }
+ else
+ {
+ if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
+ {
+ if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
+ {
+ $prestudent_id = $ps->prestudent_id;
+ }
+ }
+ }
+ }
+ else
+ {
+ if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
+ {
+ if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
+ {
+ $prestudent_id = $ps->prestudent_id;
+ }
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ foreach ($prestudenten as $ps)
+ {
+ if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
+ {
+ if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
+ {
+ $prestudent_id = $ps->prestudent_id;
+ }
+ else
+ {
+ if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
+ {
+ if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
+ {
+ $prestudent_id = $ps->prestudent_id;
+ }
+ }
+ }
+ }
+ else
+ {
+ if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
+ {
+ if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
+ {
+ $prestudent_id = $ps->prestudent_id;
+ }
+ }
+ }
+ }
+ }
+
if($prestudent_id != "")
{
$anrechungSaveResult = false;
@@ -1165,18 +1224,54 @@ function saveRaum($terminId, $ort_kurzbz, $uid)
function getLvKompatibel($lvid)
{
$lv = new lehrveranstaltung();
- if($lv->getLVkompatibel($lvid))
+ if($lv->getLVkompatibelTo($lvid))
{
- $data['result']=$lv->lehrveranstaltungen;
- $data['error']='false';
- $data['errormsg']='';
+ $data['result']=$lv->lehrveranstaltungen;
+ $data['error']='false';
+ $data['errormsg']='';
}
else
{
- $data['result']="";
- $data['error']='true';
- $data['errormsg']=$lv->errormsg;
+ $data['result']="";
+ $data['error']='true';
+ $data['errormsg']=$lv->errormsg;
}
return $data;
}
+
+function getPrestudenten($uid, $aktStudiensemester)
+{
+ $person = new person();
+ $person->getPersonFromBenutzer($uid);
+ $prestudent = new prestudent();
+ $prestudent->getPrestudenten($person->person_id);
+ $result = array();
+
+ if (count($prestudent->result) > 0)
+ {
+ foreach ($prestudent->result as $key=>$ps)
+ {
+ if ($ps->getLaststatus($ps->prestudent_id))
+ {
+ if(($ps->status_kurzbz === 'Student') || ($ps->status_kurzbz == 'Unterbrecher'))
+ {
+ $studiengang = new studiengang($ps->studiengang_kz);
+ array_push($result, $studiengang);
+ }
+ }
+ }
+
+ $data['result']=$result;
+ $data['error']='false';
+ $data['errormsg']='';
+ }
+ else
+ {
+ $data['result']="";
+ $data['error']='true';
+ $data['errormsg']=$lv->errormsg;
+ }
+
+ return $data;
+}
?>
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php
index 5551adb70..1a9c43875 100755
--- a/cis/private/lehre/pruefung/pruefungsanmeldung.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php
@@ -40,6 +40,17 @@ $p = new phrasen($sprache);
//TODO
$uid = get_uid();
+if(isset($_GET['uid']))
+{
+ // Administratoren duerfen die UID als Parameter uebergeben um den Studienplan
+ // von anderen Personen anzuzeigen
+
+ $rechte = new benutzerberechtigung();
+ $rechte->getBerechtigungen($uid);
+ if($rechte->isBerechtigt('admin'))
+ $uid=$_GET['uid'];
+}
+
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
@@ -302,6 +313,9 @@ $studiensemester->getAll();
+
+
+
| t('global/anmerkung'); ?>: |
diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php
index ced930158..010863068 100755
--- a/include/lehrveranstaltung.class.php
+++ b/include/lehrveranstaltung.class.php
@@ -1592,6 +1592,75 @@ class lehrveranstaltung extends basis_db
}
}
+ /**
+ * Lädt alle Lehrveranstaltungen zu denen die übergebene LV ID kompatibel ist
+ * @param $lehrveranstaltung_id ID der Lehrveranstaltung
+ */
+ public function getLVkompatibelTo($lehrveranstaltung_id)
+ {
+ if (!is_numeric($lehrveranstaltung_id))
+ {
+ $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein';
+ return false;
+ }
+
+ $qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id IN (
+ SELECT lehrveranstaltung_id
+ FROM lehre.tbl_lehrveranstaltung_kompatibel
+ WHERE lehrveranstaltung_id_kompatibel=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).");";
+
+ 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->koordinator = $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->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'];
+
+ $this->lehrveranstaltungen[] = $lv_obj;
+ }
+ return true;
+ }
+ }
+
/**
* Speichert eine Kombination aus LV und ihrer kompatiblen Lehrveranstaltung
* @param $lehrveranstaltung_id ID der Lehrveranstaltung
diff --git a/locale/de-AT/pruefung.php b/locale/de-AT/pruefung.php
index 19114ac1c..38b41cf9c 100755
--- a/locale/de-AT/pruefung.php
+++ b/locale/de-AT/pruefung.php
@@ -149,5 +149,7 @@ Die Prüfung zur LV %1$s wurde verschoben.
Der neue Termin für die Prüfung ist am %2$s um %3$s Uhr.';
$this->phrasen['pruefung/emailVerschiebungSubject'] = 'Verschiebung einer Prüfung';
+$this->phrasen['pruefung/AnrechnungInStudiengang'] = 'Studiengang für Anrechnung';
+
?>
|