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;
Ejemplo n.º 3
0
         }
     }
 } 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 = '';