if ($sto_obj->loadStudienordnungSTG($stg_kz, $semester_aktuell, $sem)) { foreach ($sto_obj->result as $row_sto) { $stp_obj = new studienplan(); if ($stp_obj->loadStudienplanSTO($row_sto->studienordnung_id, $orgform)) { foreach ($stp_obj->result as $row_stp) { $stp_ids[] = $row_stp->studienplan_id; } } } } else { echo "FAILED:" . $sto_obj->errormsg; } $qry = ''; if (count($stp_ids) > 0) { // Alle Lehrveranstaltungen die lt Studienplan zugeordnet sind $qry .= "SELECT lehrveranstaltung_id, kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, bezeichnung_english as lv_bezeichnung_english, studiengang_kz, \n\t\t\t\ttbl_studienplan_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache,\n\t\t\t\tects as lv_ects, semesterstunden, anmerkung, lehre, lehreverzeichnis as lv_lehreverzeichnis, tbl_lehrveranstaltung.aktiv,\n\t\t\t\tplanfaktor as lv_planfaktor, planlektoren as lv_planlektoren, planpersonalkosten as lv_planpersonalkosten,\n\t\t\t\tplankostenprolektor as lv_plankostenprolektor, lehrform_kurzbz as lv_lehrform_kurzbz, tbl_lehrveranstaltung.orgform_kurzbz,\n\t\t\t\ttbl_studienplan_lehrveranstaltung.studienplan_id::text as studienplan_id, tbl_studienplan.bezeichnung as studienplan_bezeichnung, tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent::text,\n\t\t\t\ttbl_lehrveranstaltung.lehrtyp_kurzbz\n\t\t\tFROM \n\t\t\t\tlehre.tbl_lehrveranstaltung\n\t\t\t\tJOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id)\n\t\t\t\tJOIN lehre.tbl_studienplan USING(studienplan_id)\n\t\t\tWHERE studienplan_id in (" . $db->db_implode4SQL($stp_ids) . ")\n\t\t\tAND tbl_lehrveranstaltung.aktiv"; if ($sem != '') { $qry .= " AND tbl_studienplan_lehrveranstaltung.semester=" . $db->db_add_param($sem); } $qry .= " UNION "; } // Zusaetzliche alle LVs die eine Lehreinheit zugeordnet haben $qry .= "SELECT DISTINCT on(lehrveranstaltung_id) lehrveranstaltung_id, kurzbz as lv_kurzbz, bezeichnung as lv_bezeichnung, bezeichnung_english as lv_bezeichnung_english, studiengang_kz,\n\t\t\t\tsemester, tbl_lehrveranstaltung.sprache, ects as lv_ects, semesterstunden, tbl_lehrveranstaltung.anmerkung,\n\t\t\t\ttbl_lehrveranstaltung.lehre, lehreverzeichnis as lv_lehreverzeichnis, aktiv, planfaktor as lv_planfaktor,\n\t\t\t\tplanlektoren as lv_planlektoren, planpersonalkosten as lv_planpersonalkosten,\n\t\t\t\tplankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz, tbl_lehrveranstaltung.orgform_kurzbz,\n\t\t\t\t'' as studienplan_id, '' as studienplan_bezeichnung, '' as studienplan_lehrveranstaltung_id_parent,\n\t\t\t\ttbl_lehrveranstaltung.lehrtyp_kurzbz\n\t\t\tFROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id)\n\t\t\tWHERE 1=1"; if ($stg_kz != '') { $qry .= " AND studiengang_kz=" . $db->db_add_param($stg_kz); } $qry .= " AND studiensemester_kurzbz=" . $db->db_add_param($semester_aktuell); if ($sem != '') { $qry .= " AND semester=" . $db->db_add_param($sem); } if ($orgform != '') {
if ($lem->semesterstunden > $semesterstunden_alt || $neue_stunden_eingerechnet) { $oe_obj = new organisationseinheit(); $oe_arr = $oe_obj->getChilds($stunden_oe_kurzbz); $qry = "SELECT "; if ($alte_stunden_eingerechnet && $neue_stunden_eingerechnet) { $qry .= " (sum(tbl_lehreinheitmitarbeiter.semesterstunden)-({$semesterstunden_alt})+({$lem->semesterstunden})) as summe"; } elseif ($alte_stunden_eingerechnet && !$neue_stunden_eingerechnet) { $qry .= " (sum(tbl_lehreinheitmitarbeiter.semesterstunden)-({$semesterstunden_alt})) as summe"; } elseif (!$alte_stunden_eingerechnet && $neue_stunden_eingerechnet) { $qry .= " (sum(tbl_lehreinheitmitarbeiter.semesterstunden)+({$lem->semesterstunden})) as summe"; } elseif (!$alte_stunden_eingerechnet && !$neue_stunden_eingerechnet) { $qry .= " (sum(tbl_lehreinheitmitarbeiter.semesterstunden)) as summe"; } $qry .= "\tFROM\n\t\t\t\t\t\t\t\t\tlehre.tbl_lehreinheitmitarbeiter\n\t\t\t\t\t\t\t\t\tJOIN lehre.tbl_lehreinheit USING(lehreinheit_id)\n\t\t\t\t\t\t\t\t\tJOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)\n\t\t\t\t\t\t\t\t\tJOIN public.tbl_studiengang USING(studiengang_kz)\n\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\tmitarbeiter_uid=" . $db->db_add_param($lem->mitarbeiter_uid) . " AND\n\t\t\t\t\t\t\t\t\tstudiensemester_kurzbz=" . $db->db_add_param($le->studiensemester_kurzbz) . " AND\n\t\t\t\t\t\t\t\t\tfaktor>0 AND\n\t\t\t\t\t\t\t\t\tstundensatz>0 AND\n\t\t\t\t\t\t\t\t\tbismelden"; if (count($oe_arr) > 0) { $qry .= " AND tbl_studiengang.oe_kurzbz in(" . $db->db_implode4SQL($oe_arr) . ")"; } if ($db->db_query($qry)) { if ($row = $db->db_fetch_object()) { if ($row->summe > $max_stunden) { if (!$fixangestellt) { if (!LehrauftragAufFirma($lem->mitarbeiter_uid)) { //Warnung wenn die Stundenzahl ueberschritten wurde $return = false; $error = true; $errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von {$max_stunden} Stunden ({$stunden_oe_kurzbz}) wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n"; } } else { $return = true; $error = false; $warnung = true;
} } } elseif (isset($_POST['type']) && $_POST['type'] == 'addressource') { if (!$rechte->isBerechtigt('lehre/lvplan', null, 'suid')) { $return = false; $error = true; $errormsg = 'keine Berechtigung'; } else { $stunden = $_POST['stunden']; $stpl_id = $_POST['stpl_id']; $betriebsmittel_id = $_POST['betriebsmittel_id']; $db = new basis_db(); if (isset($_POST['betriebsmittel_id']) && is_numeric($_POST['betriebsmittel_id'])) { // Pro Stunde wird die Zuordnung nur auf eine der vorhandenen StundenplanIDs gehaengt foreach ($stunden as $stunde) { $qry = "SELECT stundenplandev_id FROM lehre.tbl_stundenplandev WHERE stunde=" . $db->db_add_param($stunde) . " \n\t\t\t\t\t\t\tAND stundenplandev_id in (" . $db->db_implode4SQL($stpl_id) . ") ORDER BY stundenplandev_id LIMIT 1"; if ($result = $db->db_query($qry)) { if ($row = $db->db_fetch_object($result)) { $id = $row->stundenplandev_id; $betriebsmittel = new betriebsmittel(); $betriebsmittel->stundenplandev_id = $id; $betriebsmittel->betriebsmittel_id = $betriebsmittel_id; $betriebsmittel->insertvon = $user; $betriebsmittel->insertamum = date('Y-m-d H:i:s'); $betriebsmittel->new = true; if ($betriebsmittel->saveStundenplanBetriebsmittel()) { $return = true; } else { $errormsg = 'Fehler beim Speichern: ' . $betriebsmittel->errormsg; $return = false; $data = '';