diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 7edf39f4f..ad5e5e1be 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -1,4379 +1,4386 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -// **************************************** -// * Insert/Update/Delete -// * der Studenten -// * -// * Script sorgt fuer den Datenbanzugriff -// * fuer das XUL - Studenten-Modul -// * -// **************************************** - -require_once('../../config/vilesci.config.inc.php'); -require_once('../../config/global.config.inc.php'); -require_once('../../include/'.EXT_FKT_PATH.'/generateuid.inc.php'); -require_once('../../include/'.EXT_FKT_PATH.'/generatematrikelnr.inc.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/benutzerberechtigung.class.php'); -require_once('../../include/benutzergruppe.class.php'); -require_once('../../include/log.class.php'); -require_once('../../include/person.class.php'); -require_once('../../include/benutzer.class.php'); -require_once('../../include/student.class.php'); -require_once('../../include/prestudent.class.php'); -require_once('../../include/studiengang.class.php'); -require_once('../../include/akte.class.php'); -require_once('../../include/konto.class.php'); -require_once('../../include/dokument.class.php'); -require_once('../../include/studiensemester.class.php'); -require_once('../../include/betriebsmittel.class.php'); -require_once('../../include/betriebsmittelperson.class.php'); -require_once('../../include/bisio.class.php'); -require_once('../../include/zeugnisnote.class.php'); -require_once('../../include/lvgesamtnote.class.php'); -require_once('../../include/pruefung.class.php'); -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'); -require_once('../../include/datum.class.php'); -require_once('../../include/pruefling.class.php'); -require_once('../../include/mail.class.php'); -require_once('../../include/kontakt.class.php'); -require_once('../../include/dms.class.php'); -require_once('../../include/notenschluessel.class.php'); -require_once('../../include/anrechnung.class.php'); -require_once('../../include/lehrveranstaltung.class.php'); -require_once('../../include/anwesenheit.class.php'); -require_once('../../include/benutzerfunktion.class.php'); -require_once('../../include/note.class.php'); -require_once('../../include/standort.class.php'); -require_once('../../include/adresse.class.php'); -require_once('../../include/reihungstest.class.php'); -require_once('../../include/studienplan.class.php'); -require_once('../../include/mobilitaet.class.php'); -require_once('../../include/studienordnung.class.php'); - -$user = get_uid(); -$db = new basis_db(); - -$return = false; -$errormsg = 'unknown'; -$warning = ''; -$data = ''; -$error = false; - -loadVariables($user); -//Berechtigungen laden -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('mitarbeiter')) -{ - $return = false; - $errormsg = 'Keine Berechtigung'; - $data = ''; - $error = true; -} - -// *** FUNKTIONEN *** - -// **** -// * Generiert die Matrikelnummer -// * FORMAT: 0710254001 -// * 07 = Jahr -// * 1/2/0 = WS/SS/Incomming -// * 0254 = Studiengangskennzahl vierstellig -// * 001 = Laufende Nummer -// **** -function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) -{ - $db = new basis_db(); - - $jahr = substr($studiensemester_kurzbz, 4); - $art = substr($studiensemester_kurzbz, 0, 2); - - if($studiengang_kz<0) - { - $studiengang_kz=abs($studiengang_kz); - //Lehrgang - switch($art) - { - case 'WS': $art = '3'; break; - case 'SS': $art = '4'; break; - default: $art = '0'; break; - } - } - else - { - //Studiengang - switch($art) - { - case 'WS': $art = '1'; break; - case 'SS': $art = '2'; break; - default: $art = '0'; break; - } - } - if($art=='2' || $art=='4') - $jahr = $jahr-1; - $matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz); - - $qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '$matrikelnummer%' ORDER BY matrikelnr DESC LIMIT 1"; - - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - $max = substr($row->matrikelnr, (strlen(trim($row->matrikelnr))-3)); - } - else - $max = 0; - - $max += 1; - return $matrikelnummer.sprintf("%03d",$max); - } - else - { - return false; - } -} - -/** - * Wenn die Anwesenheit und einen bestimmten Prozentsatz faellt, wird ein Pruefungstermin abgezogen - * @param $studiensemester_kurzbz - * @param $student_uid - * @param $lehrveranstaltung_id - * @param $note - * @return null, error wird direkt in globale Variable geschrieben - */ -function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $note) -{ - global $return, $error, $errormsg; - - $db = new basis_db(); - $anwesenheit = new anwesenheit(); - $anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id); - - // Lehreinheit ermitteln - $error = false; - $qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung " - . "WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)." " - . "ORDER BY lehreinheit_id ASC " - . "LIMIT 1"; - - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - $lehreinheit_id = $row->lehreinheit_id; - } - else - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; - } - } - else - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; - } - - if(!$error) - { - $pruefung = new pruefung; - $pruefung->new = true; - $pruefung->student_uid = $student_uid; - $pruefung->lehreinheit_id = $lehreinheit_id; - $pruefung->datum = date("Y-m-d"); - - $stsem_obj = new studiensemester(); - $stsem_obj->load($studiensemester_kurzbz); - - // In Benutzerfunktion nachsehen ob eine Anwesenheitsbefreiung eingetragen ist - $benutzerfunktion = new benutzerfunktion(); - $benutzerfunktion->getBenutzerFunktionByUid($student_uid, 'awbefreit', $stsem_obj->start, $stsem_obj->ende); - - $anwesenheitsbefreit=false; - if(count($benutzerfunktion->result)>0) - $anwesenheitsbefreit=true; - - // Wenn nicht Anwesenheitsbefreit und Anwesenheit unter einem bestimmten Prozentsatz faellt dann wird ein - // Pruefungsantritt abgezogen - if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT && !$anwesenheitsbefreit) - { - // 1. Termin mit "nicht beurteilt" erstellen - $pruefung->pruefungstyp_kurzbz = "Termin1"; - $pruefung->note = 7; - if($pruefung->save()) - { - // 2. Termin mit Note erstellen - $pruefung->pruefungstyp_kurzbz = "Termin2"; - $pruefung->note = $note; - if($pruefung->save()) - { - $return = true; - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - else - { - // 1. Termin mit Note erstellen - $pruefung->pruefungstyp_kurzbz = "Termin1"; - $pruefung->note = $note; - - if($pruefung->save()) - { - $return = true; - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - } -} - -if(!$error) -{ - - if(isset($_POST['type']) && $_POST['type']=='savestudent') - { - 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(); - - if(!$student->load($_POST['uid'])) - { - $return = false; - $errormsg = 'Fehler beim Laden:'.$student->errormsg; - $error = true; - } - - if(!$error) - { - $student->uid = $_POST['uid']; - $student->anrede = $_POST['anrede']; - $student->titelpre = $_POST['titelpre']; - $student->titelpost = $_POST['titelpost']; - $student->vorname = $_POST['vorname']; - $student->vornamen = $_POST['vornamen']; - $student->nachname = $_POST['nachname']; - $student->gebdatum = $_POST['geburtsdatum']; - $student->gebort = $_POST['geburtsort']; - $student->gebzeit = $_POST['geburtszeit']; - $student->anmerkungen = $_POST['anmerkung']; - $student->homepage = $_POST['homepage']; - $student->matr_nr = $_POST['matr_nr']; - $student->svnr = $_POST['svnr']; - $student->ersatzkennzeichen = $_POST['ersatzkennzeichen']; - $student->familienstand = $_POST['familienstand']; - $student->geschlecht = $_POST['geschlecht']; - $student->bnaktiv = ($_POST['aktiv']=='true'?true:false); - $student->anzahlkinder = $_POST['anzahlderkinder']; - $student->staatsbuergerschaft = $_POST['staatsbuergerschaft']; - $student->geburtsnation = $_POST['geburtsnation']; - $student->sprache = $_POST['sprache']; - $student->matrikelnr = $_POST['matrikelnummer']; - $student->updateamum = date('Y-m-d H:i:s'); - $student->updatevon = $user; - - if($_POST['alias']!='') - { - if(checkalias($_POST['alias'])) - { - $student->alias = $_POST['alias']; - } - else - { - $error = true; - $return = false; - $errormsg = 'Alias ist ungueltig'; - } - } - else - $student->alias = ''; - - if(!$error) - { - $stsem = new studiensemester(); - $stsem_kurzbz = $stsem->getaktorNext(); - //Wenn das ausgewaehlte Semester das aktuelle ist, dann wird auch in der - //Tabelle Student der Stg/Semester/Verband/Gruppe geaendert. - //Sonst nur in der Tabelle Studentlehrverband - if($semester_aktuell == $stsem_kurzbz) - { - $student->studiengang_kz = $_POST['studiengang_kz']; - $student->semester = $_POST['semester']; - $student->verband = ($_POST['verband']==''?' ':$_POST['verband']); - $student->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); - } - - $student->new=false; - - $lehrverband = new lehrverband(); - if(!$lehrverband->exists($_POST['studiengang_kz'],$_POST['semester'],$_POST['verband'], $_POST['gruppe'])) - { - $errormsg = 'Die angegebene Lehrverbandsgruppe existiert nicht!'; - $return = false; - $error = true; - } - - if(!$error) - { - if($student->save()) - { - $student_lvb = new student(); - - // Studentlehrverband Eintrag nur Speichern, wenn der Student in diesem Studiensemester - // einen Status besitzt da es sonst beim Bearbeiten von alten Studenten immer in das - // entsprechende Studiensemester gewechselt werden muss. - $prestudentobj = new prestudent(); - $prestudentobj->getPrestudentRolle($student->prestudent_id, null, $semester_aktuell); - - if(count($prestudentobj->result)>0) - { - if($student_lvb->studentlehrverband_exists($_POST['uid'], $semester_aktuell)) - $student_lvb->new = false; - else - $student_lvb->new = true; - - $student_lvb->uid = $_POST['uid']; - $student_lvb->studiensemester_kurzbz = $semester_aktuell; - $student_lvb->studiengang_kz = $_POST['studiengang_kz']; - $student_lvb->semester = $_POST['semester']; - $student_lvb->verband = ($_POST['verband']==''?' ':$_POST['verband']); - $student_lvb->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); - $student_lvb->updateamum = date('Y-m-d H:i:s'); - $student_lvb->updatevon = $user; - - if($student_lvb->save_studentlehrverband()) - { - $return = true; - $error=false; - $data = $student->prestudent_id; - } - else - { - $error = true; - $errormsg = $student_lvb->errormsg; - $return = false; - } - } - else - { - $error = false; - $return = true; - $data = $student->prestudent_id; - } - } - else - { - $return = false; - $errormsg = $student->errormsg; - $error = true; - } - } - } - } - } - } - 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) - { - $person = new person(); - - if(!$person->load($_POST['person_id'])) - { - $return = false; - $errormsg = 'Fehler beim Laden:'.$person->errormsg; - $error = true; - } - - if(!$error) - { - $person->person_id = $_POST['person_id']; - $person->anrede = $_POST['anrede']; - $person->titelpre = $_POST['titelpre']; - $person->titelpost = $_POST['titelpost']; - $person->vorname = $_POST['vorname']; - $person->vornamen = $_POST['vornamen']; - $person->nachname = $_POST['nachname']; - $person->gebdatum = $_POST['geburtsdatum']; - $person->gebort = $_POST['geburtsort']; - $person->gebzeit = $_POST['geburtszeit']; - $person->anmerkungen = $_POST['anmerkung']; - $person->homepage = $_POST['homepage']; - $person->svnr = $_POST['svnr']; - $person->ersatzkennzeichen = $_POST['ersatzkennzeichen']; - $person->familienstand = $_POST['familienstand']; - $person->geschlecht = $_POST['geschlecht']; - //$person->aktiv = ($_POST['aktiv']=='true'?true:false); - $person->anzahlkinder = $_POST['anzahlderkinder']; - $person->staatsbuergerschaft = $_POST['staatsbuergerschaft']; - $person->geburtsnation = $_POST['geburtsnation']; - $person->sprache = $_POST['sprache']; - $person->matr_nr = $_POST['matr_nr']; - $person->updateamum = date('Y-m-d H:i:s'); - $person->updatevon = $user; - - $person->new=false; - - if(!$error) - { - if($person->save()) - { - $return = true; - $error=false; - $data = $person->person_id; - } - else - { - $return = false; - $errormsg = $person->errormsg; - $error = true; - } - } - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='saveprestudent') - { - //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(); - - if(!$prestudent->load($_POST['prestudent_id'])) - { - $return = false; - $errormsg = 'Fehler beim Laden:'.$prestudent->errormsg; - $error = true; - } - - if(!$error) - { - $prestudent->prestudent_id = $_POST['prestudent_id']; - $prestudent->aufmerksamdurch_kurzbz = $_POST['aufmerksamdurch_kurzbz']; - $prestudent->person_id = $_POST['person_id']; - $prestudent->studiengang_kz = $_POST['studiengang_kz']; - $prestudent->berufstaetigkeit_code = $_POST['berufstaetigkeit_code']; - $prestudent->ausbildungcode = $_POST['ausbildungcode']; - $prestudent->zgv_code = $_POST['zgv_code']; - $prestudent->zgvort = $_POST['zgvort']; - $prestudent->zgvdatum = $_POST['zgvdatum']; - $prestudent->zgvnation = $_POST['zgvnation']; - $prestudent->zgvmas_code = $_POST['zgvmas_code']; - $prestudent->zgvmaort = $_POST['zgvmaort']; - $prestudent->zgvmadatum = $_POST['zgvmadatum']; - $prestudent->zgvmanation = $_POST['zgvmanation']; - $prestudent->aufnahmeschluessel = $_POST['aufnahmeschluessel']; - $prestudent->facheinschlberuf = ($_POST['facheinschlberuf']=='true'?true:false); - $prestudent->bismelden = ($_POST['bismelden']=='true'?true:false); - $prestudent->dual = ($_POST['dual']=='true'?true:false); - $prestudent->anmerkung = $_POST['anmerkung']; - $prestudent->mentor = $_POST['mentor']; - $prestudent->gsstudientyp_kurzbz = $_POST['gsstudientyp_kurzbz']; - //$prestudent->insertamum = date('Y-m-d H:i:s'); - //$prestudent->insertvon = $user; - $prestudent->updateamum = date('Y-m-d H:i:s'); - $prestudent->updatevon = $user; - $prestudent->new=false; - - if(!$error) - { - if($prestudent->save()) - { - $return = true; - $error=false; - $data = $prestudent->prestudent_id; - } - else - { - $return = false; - $errormsg = $prestudent->errormsg; - $error = true; - } - } - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='addrolle') - { - //Prestudentrolle hinzufuegen - - if(!$error) - { - $prestudent_ids = explode(';', $_POST['prestudent_id']); - $errormsg=''; - $anzahl_fehler=0; - foreach($prestudent_ids as $prestudent_id) - { - $error = false; - if($prestudent_id!='') - { - $prestd = new prestudent(); - if(!$prestd->load($prestudent_id)) - { - $error = true; - $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Laden des Prestudenten"; - $anzahl_fehler++; - } - else - { - if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') && - !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid')) - { - $error = true; - $errormsg .= "\n$prestd->vorname $prestd->nachname: Sie haben keine Schreibrechte fuer diesen Studiengang"; - $anzahl_fehler++; - } - } - - // Check ob Reihungstest berücksichtigt werden soll - // kann in Config abgestellt werden - if(REIHUNGSTEST_CHECK) - { - $reihungstestangetreten = $prestd->reihungstestangetreten; - - if($_POST['status_kurzbz']=='Bewerber' && !$reihungstestangetreten) - { - $error = true; - $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Person das Reihungstestverfahren abgeschlossen haben"; - $anzahl_fehler++; - } - } - - if(!defined("ZGV_CHECK") || ZGV_CHECK) - { - if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgv_code=='') - { - $error = true; - $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung eingetragen sein."; - $anzahl_fehler++; - } - } - - $stg_obj = new studiengang(); - $stg_obj->load($prestd->studiengang_kz); - if(!defined("ZGV_CHECK") || ZGV_CHECK) - { - if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgvmas_code=='' && $stg_obj->typ=='m') - { - $error = true; - $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung Master eingetragen sein."; - $anzahl_fehler++; - } - } - - if(!$error) - { - - if($prestd->getLastStatus($prestudent_id)) - { - if($_POST['status_kurzbz']=='Absolvent' || $_POST['status_kurzbz']=='Diplomand') - $studiensemester = $semester_aktuell; - else - $studiensemester = $prestd->studiensemester_kurzbz; - $hlp = new prestudent(); - - if($_POST['status_kurzbz']=='Student') - $sem=$_POST['semester']; - else - $sem=$prestd->ausbildungssemester; - - $hlp->getPrestudentRolle($prestudent_id, $_POST['status_kurzbz'], $studiensemester, "datum, insertamum", $sem); - if(count($hlp->result)>0) - { - $errormsg .= "\n$prestd->vorname $prestd->nachname: Diese Rolle ist bereits vorhanden"; - $anzahl_fehler++; - $return = false; - } - else - { - //Wenn der Status auf Aufgenommener oder Wartender geaendert wird, - //muss ein Bewerberstatus vorhanden sein - if($_POST['status_kurzbz']=='Aufgenommener' || $_POST['status_kurzbz']=='Wartender') - { - $qry = "SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND status_kurzbz='Bewerber'"; - if($result_bw = $db->db_query($qry)) - { - if($db->db_num_rows($result_bw)==0) - { - $return = false; - $error = true; - $errormsg .= "\n$prestd->vorname $prestd->nachname: Person muss zuerst zum Bewerber gemacht werden!"; - $anzahl_fehler++; - } - } - } - - if(!$error) - { - $prestd_neu = new prestudent(); - $prestd_neu->prestudent_id = $prestudent_id; - $prestd_neu->status_kurzbz = $_POST['status_kurzbz']; - $prestd_neu->studiensemester_kurzbz = $studiensemester; - $prestd_neu->datum = date('Y-m-d'); - $prestd_neu->ausbildungssemester = $sem; - $prestd_neu->orgform_kurzbz = $prestd->orgform_kurzbz; - $prestd_neu->studienplan_id = $prestd->studienplan_id; - $prestd_neu->insertamum = date('Y-m-d H:i:s'); - $prestd_neu->insertvon = $user; - $prestd_neu->bestaetigtam = date('Y-m-d'); - $prestd_neu->bestaetigtvon = $user; - if(isset($_POST['statusgrund_id'])) - $prestd_neu->statusgrund_id = $_POST['statusgrund_id']; - $prestd_neu->new = true; - - if($prestd_neu->save_rolle()) - { - // wenn kein fehler und status bewerber und "email senden an bewerber" eingestellt ist - if($_POST['status_kurzbz']=='Bewerber' && SEND_BEWERBER_INFOMAIL) - { - // hole Email Adresse - $kontakt = new kontakt(); - $kontakt->load_persKontakttyp($prestd->person_id, 'email'); - - // Wenn zumindest eine Email Adresse gefunden wurde - if(count($kontakt->result)>0) - { - $email = "Sehr geehrter Frau/Herr ".$prestd->vorname." ".$prestd->nachname.",

"; - - $email.= INFOMAIL_BEWERBER; - foreach($kontakt->result as $k) - { - $mail = new mail($k->kontakt, 'no-reply', 'Infomail', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); - - $mail->setHTMLContent($email); - if(!$mail->send()) - { - $errormsg= 'Fehler beim Senden des Mails!'; - $anzahl_fehler++; - } - } - } - } - - //Unterbrecher und Abbrecher werden ins 0. Semester verschoben - if($_POST['status_kurzbz']=='Unterbrecher' || $_POST['status_kurzbz']=='Abbrecher') - { - $student = new student(); - $uid = $student->getUid($prestudent_id); - $student->load($uid); - $student->studiensemester_kurzbz=$studiensemester; - $student->semester = '0'; - if($_POST['status_kurzbz']=='Abbrecher') - { - $student->verband='A'; - $student->gruppe=''; - } - if($_POST['status_kurzbz']=='Unterbrecher') - { - $student->verband='B'; - $student->gruppe=''; - } - - // noch nicht eingetragene Noten ergänzen - $noten = new zeugnisnote(); - $noten->getZeugnisnoten(null, $uid, $semester_aktuell); - foreach($noten->result as $obj) - { - if($obj->note == '') - { - $obj->note = 9; - $obj->save(true); - } - } - - //Nachschauen ob dieser Lehrverband schon existiert, falls nicht dann anlegen - $lehrverband = new lehrverband(); - if(!$lehrverband->exists($student->studiengang_kz, $student->semester, $student->verband, '')) - { - //Pruefen ob der uebergeordnete Lehrverband existiert, falls nicht dann anlegen - if(!$lehrverband->exists($student->studiengang_kz, $student->semester, '', '')) - { - $lehrverband->studiengang_kz = $student->studiengang_kz; - $lehrverband->semester = $student->semester; - $lehrverband->verband = ''; - $lehrverband->gruppe = ''; - $lehrverband->aktiv = true; - $lehrverband->bezeichnung = 'Ab-Unterbrecher'; - - $lehrverband->save(true); - } - - $lehrverband->studiengang_kz = $student->studiengang_kz; - $lehrverband->semester = $student->semester; - $lehrverband->verband = $student->verband; - $lehrverband->gruppe = ''; - $lehrverband->aktiv = true; - if($student->verband=='A') - $lehrverband->bezeichnung = 'Abbrecher'; - else - $lehrverband->bezeichnung = 'Unterbrecher'; - - $lehrverband->save(true); - } - $student->updatevon = $user; - $student->updateamum = date('Y-m-d H:i:s'); - //Student Speichern - $student->save(false, false); - //Studentlehrverband Eintrag Speichern - $student->save_studentlehrverband(false); - } - - //Wenn Unterbrecher zu Studenten werden, dann wird das Semester mituebergeben - //Verband und Gruppe wird entfernt. - if($_POST['status_kurzbz']=='Student') - { - $student = new student(); - $uid = $student->getUid($prestudent_id); - $student->load($uid); - $student->studiensemester_kurzbz=$semester_aktuell; - $student->semester = $_POST['semester']; - $student->verband = ''; - $student->gruppe = ''; - $student->save(false, false); - $student->save_studentlehrverband(false); - //Aktiv Status setzen - $benutzer = new benutzer(); - if($benutzer->load($uid)) - { - $benutzer->updateamum = date('Y-m-d H:i:s'); - $benutzer->updatevon = $user; - $benutzer->bnaktiv=true; - $benutzer->save(false, false); - } - } - - //bei Abbrechern und Absolventen wird der Aktiv Status auf false gesetzt - if($_POST['status_kurzbz']=='Abbrecher' || $_POST['status_kurzbz']=='Absolvent') - { - $student = new student(); - $uid = $student->getUid($prestudent_id); - - $benutzer = new benutzer(); - if($benutzer->load($uid)) - { - $benutzer->updateamum = date('Y-m-d H:i:s'); - $benutzer->updatevon = $user; - $benutzer->bnaktiv=false; - $benutzer->save(false, false); - } - } - $return = true; - } - else - { - $return = false; - $errormsg = "\n$prestd->vorname $prestd->nachname: ".$prestd_neu->errormsg; - $anzahl_fehler++; - } - } - } - } - else - { - $return = false; - $errormsg .= "\n$prestd->vorname $prestd->nachname: Es ist keine Rolle fuer diesen Prestudent vorhanden"; - $anzahl_fehler++; - } - } - } - } - - if($anzahl_fehler>0) - { - $return = false; - $errormsg = "Es sind $anzahl_fehler Fehler aufgetreten: ".$errormsg; - } - else - { - $return = true; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deleterolle') - { - //Loescht eine Prestudentrolle - $deletePrestudent = false; - - if(isset($_POST['studiensemester_kurzbz']) && isset($_POST['status_kurzbz']) && - isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']) && - isset($_POST['ausbildungssemester']) && is_numeric($_POST['ausbildungssemester'])) - { - if($_POST['status_kurzbz']=='Student' && !$rechte->isBerechtigt('admin', null, 'suid')) - { - $return = false; - $errormsg = 'Studentenrolle kann nur durch den Administrator geloescht werden'; - } - else - { - $qry = "SELECT count(*) as anzahl FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER); - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - // Die letzte Rolle darf nur durch einen Administrator geloescht werden. Danach wird auch der PreStudent-Eintrag geloescht - if($row->anzahl<=1) - { - $deletePrestudent = true; - if (!$rechte->isBerechtigt('admin', null, 'suid')) - { - $return = false; - $errormsg = 'Die letzte Rolle kann nur durch den Administrator geloescht werden'; - $error = true; - } - } - } - else - { - $return = false; - $errormsg = 'Fehler beim Ermitteln der Rollen'; - $error = true; - } - } - else - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Ermitteln der Rollen'; - } - - if(!$error) - { - $rolle = new prestudent(); - if($rolle->load_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'])) - { - if($rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') || $rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - if($rolle->delete_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'])) - { - $log_id = $rolle->log_id; - $return = true; - // Wenn in diesem Semester kein Status mehr vorhanden ist, - // dann wird auch der Studentlehrverband eintrag entfernt - if($rolle->getLastStatus($_POST['prestudent_id'],$_POST['studiensemester_kurzbz'])===false) - { - if($return) - { - $student = new student(); - $temp_uid = $student->getUid($rolle->prestudent_id); - if(!$student->delete_studentLehrverband($temp_uid, $_POST['studiengang_kz'], $rolle->studiensemester_kurzbz, $rolle->ausbildungssemester)) - { - $return = false; - $errormsg = "Fehler beim Löschen der Lehrverbandszuordnung."; - } - } - } - // Wenn kein Prestudent-Eintrag mehr vorhanden ist, wird der ganze Prestudent-Datensatz geloescht - if ($deletePrestudent == true) - { - $prestudent = new prestudent(); - if(!$prestudent->deletePrestudent($_POST['prestudent_id'])) - { - $return = false; - $errormsg = "Fehler beim Löschen des Prestudenten."; - $log = new log(); - $log->undo($log_id); - } - } - } - else - { - $return = false; - $errormsg = $rolle->errormsg; - } - } - else - { - $return = false; - $errormsg = 'Sie haben keine Berechtigung zum Loeschen dieser Rolle'; - } - } - else - { - $return = false; - $errormsg = $rolle->errormsg; - } - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='returnDeletePrestudent') - { - //Prueft, wie viele Prestudentrolle-Eintraege noch vorhanden sind und gibt diese Anzahl als Wert zurueck - - if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])) - { - $qry = "SELECT count(*) as anzahl FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER); - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - $return = true; - $data = $row->anzahl; - } - else - { - $return = false; - $errormsg = 'Fehler beim Zaehlen der Rollen'; - $error = true; - } - } - else - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Zaehlen der Rollen'; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='bestaetigerolle') - { - //Bestaetigt eine Prestudentrolle - - if(isset($_POST['studiensemester_kurzbz']) && isset($_POST['status_kurzbz']) && - isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']) && - isset($_POST['ausbildungssemester']) && is_numeric($_POST['ausbildungssemester'])) - { - if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $errormsg = 'keine Berechtigung'; - } - else - { - $rolle = new prestudent(); - if($rolle->load_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'])) - { - if($rolle->bestaetige_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'],$user)) - { - // Message verschicken - $prestudent = new prestudent(); - $prestudent->load($_POST['prestudent_id']); - - $url =APP_ROOT.'index.ci.php/api/v1/system/Message/MessageVorlage'; - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL,$url); - curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); - - $header=array(); - $auth = base64_encode(FHC_REST_USER.':'.FHC_REST_PASSWORD); - $header[]="Authorization: Basic $auth"; - $header[]='FHC-API-KEY:'.FHC_REST_API_KEY; - - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_HTTPHEADER, $header); - $studiengang = new studiengang(); - $studiengang->load($prestudent->studiengang_kz); - $studiengang->getAllTypes(); - - $orgform=''; - if($rolle->studienplan_id!='') - { - $studienplan = new studienplan(); - $studienplan->loadStudienplan($rolle->studienplan_id); - $orgform = $studienplan->orgform_kurzbz; - } - else - $orgform = $rolle->orgform_kurzbz; - $curl_post_data = array( - "sender_id" => 1, // TODO - "receiver_id" => $prestudent->person_id, - "oe_kurzbz" => $studiengang->oe_kurzbz, - "vorlage_kurzbz" => 'MailStatConfirm'.$_POST['status_kurzbz'], - "data" => array( - 'anrede'=>$prestudent->anrede, - 'vorname'=>$prestudent->vorname, - 'nachname'=>$prestudent->nachname, - 'typ'=>$studiengang->studiengang_typ_arr[$studiengang->typ], - 'studiengang'=>$studiengang->bezeichnung, - 'orgform'=>$orgform, - 'stgMail'=>$studiengang->email - ) - ); - - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($curl_post_data)); - - $result = curl_exec($ch); - $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); - curl_close($ch); - - $jsonresult = json_decode($result); - if(isset($jsonresult->error) && $jsonresult->error==1) - { - $return = false; - $errormsg = $jsonresult->retval; - } - else - { - $return = true; - } - } - else - { - $return = false; - $errormsg = $rolle->errormsg; - } - } - else - { - $return = false; - $errormsg = $rolle->errormsg; - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='saverolle') - { - //Prestudentrolle speichern - if(!$error) - { - if(isset($_POST['prestudent_id'])) - { - $rolle = new prestudent(); - if(!$rolle->load($_POST['prestudent_id'])) - { - $error = true; - $errormsg = 'Prestudent wurde nicht gefunden'; - } - 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'; - } - } - - $rolle = new prestudent(); - $rolle->prestudent_id = $_POST['prestudent_id']; - - if(!$error) - { - if(($_POST['studiensemester_old']=='') || (!$rolle->load_rolle($_POST['prestudent_id'], $_POST['status_kurzbz'], $_POST['studiensemester_old'], $_POST['ausbildungssemester_old']))) - { - $rolle->new = true; - $rolle->insertamum = date('Y-m-d H:i:s'); - $rolle->insertvon = $user; - $rolle->status_kurzbz = $_POST['status_kurzbz']; - $rolle->bestaetigtam = date('Y-m-d'); - $rolle->bestaetigtvon = $user; - - if($_POST['status_kurzbz']=='Student') - { - //Die Rolle Student darf nur eingefuegt werden, wenn schon eine Studentenrolle vorhanden ist - $qry = "SELECT count(*) as anzahl FROM public.tbl_student WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER); - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - if($row->anzahl==0) - { - $error = true; - $errormsg = 'Ein Studentenstatus kann hier nur hinzugefuegt werden wenn die Person bereits Student ist. Um einen Bewerber zum Studenten zu machen waehlen Sie bitte unter "Status aendern" den Punkt "Student".'; - $return = false; - } - } - } - } - } - else - { - $rolle->ausbildungssemester_old = $_POST['ausbildungssemester_old']; - $rolle->studiensemester_old = $_POST['studiensemester_old']; - $rolle->updateamum = date('Y-m-d H:i:s'); - $rolle->updatevon = $user; - $rolle->new = false; - } - - if(!$error) - { - // Bei Studenten wird der Studentlehrverband Eintrag angelegt/korrigiert - $student = new student(); - if($temp_uid = $student->getUid($rolle->prestudent_id)) - { - if(in_array($rolle->status_kurzbz,array('Student','Diplomand','Absovlent','Incoming','Abbrecher','Unterbrecher'))) - { - if($student->load($temp_uid)) - { - $stdsem_new = filter_input(INPUT_POST, "studiensemester_kurzbz"); - $semester = filter_input(INPUT_POST, "ausbildungssemester"); - - if($student->load_studentlehrverband($temp_uid, $stdsem_new)) - $student->new=false; - else - $student->new=true; - - $lehrverband = new lehrverband(); - if(!$lehrverband->exists($student->studiengang_kz, $semester, $student->verband, $student->gruppe)) - { - $student->studiensemester_kurzbz = $stdsem_new; - $return = false; - $errormsg = $student->errormsg; - } - else - { - $student->studiensemester_kurzbz = $stdsem_new; - $student->semester = $semester; - $student->updatevon = $user; - } - - $student->save_studentlehrverband(); - } - } - } - - $rolle->ausbildungssemester = $_POST['ausbildungssemester']; - $rolle->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; - $rolle->datum = $_POST['datum']; - $rolle->bestaetigtam = $_POST['bestaetigtam']; - if($_POST['bestaetigtam']=='') - $rolle->bestaetigtvon = null; - - $rolle->orgform_kurzbz = $_POST['orgform_kurzbz']; - $rolle->studienplan_id = $_POST['studienplan_id']; - $rolle->anmerkung_status = $_POST['anmerkung']; - $rolle->rt_stufe = $_POST['rt_stufe']; - $rolle->statusgrund_id = $_POST['statusgrund_id']; - - if($rolle->save_rolle()) - $return = true; - else - { - $return = false; - $errormsg = $rolle->errormsg; - } - } - } - } - else - { - $return = false; - $errormsg = 'Prestudent_id muss angegeben werden'; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='rolleVorruecken') - { - $errormsg=''; - //Prestudentrolle speichern - if(!$error) - { - if(isset($_POST['prestudent_id'])) - { - $rolle = new prestudent(); - if(!$rolle->load($_POST['prestudent_id'])) - { - $error = true; - $errormsg = 'Prestudent wurde nicht gefunden'; - } - 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'; - } - } - - $rolle = new prestudent(); - $rolle->prestudent_id = $_POST['prestudent_id']; - - if(!$error) - { - $studiensem = new studiensemester(); - $stdsem = $studiensem->getNextFrom($_POST["studiensemester_kurzbz"]); -// $stdsem = ($stdesm==false ? $_POST["studiensemester_kurzbz"]:$stdsem); - $semester = $_POST["ausbildungssemester"]; - $semester++; - if((!$rolle->load_rolle($_POST['prestudent_id'], $_POST['status_kurzbz'], $stdsem, $semester))) - { - $rolle->new = true; - $rolle->insertamum = date('Y-m-d H:i:s'); - $rolle->insertvon = $user; - $rolle->status_kurzbz = $_POST['status_kurzbz']; - $rolle->bestaetigtam = date('Y-m-d'); - $rolle->bestaetigtvon = $user; - - if($_POST['status_kurzbz']=='Student') - { - //Die Rolle Student darf nur eingefuegt werden, wenn schon eine Studentenrolle vorhanden ist - $qry = "SELECT count(*) as anzahl FROM public.tbl_student WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER); - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - if($row->anzahl==0) - { - $error = true; - $errormsg = 'Ein Studentenstatus kann hier nur hinzugefuegt werden wenn die Person bereits Student ist. Um einen Bewerber zum Studenten zu machen waehlen Sie bitte unter "Status aendern" den Punkt "Student".'; - $return = false; - } - } - } - } - } - else - { - //Rolle existiert bereits - $error = true; - $errormsg = "Rolle existiert bereits."; - $return = false; - } - - $student = new student(); - $temp_uid = $student->getUid($rolle->prestudent_id); - - if(!$error) - { - $student->load_studentlehrverband($temp_uid, $_POST["studiensemester_kurzbz"]); - $lehrverband = new lehrverband(); - if(!$lehrverband->exists($student->studiengang_kz, $semester, $student->verband, $student->gruppe)) - { - $student->studiensemester_kurzbz = $stdsem; - $return = false; - $errormsg = $student->errormsg; - } - else - { - $student->studiensemester_kurzbz = $stdsem; - $student->semester = $semester; - } - - $student->save_studentlehrverband(true); - $rolle->ausbildungssemester = $semester; - $rolle->studiensemester_kurzbz = $stdsem; - $rolle->datum = date("Y-m-d"); - $rolle->orgform_kurzbz = $_POST['orgform_kurzbz']; - $rolle->studienplan_id = $_POST['studienplan_id']; - - if($rolle->save_rolle()) - { - $return = true; - } - else - { - $return = false; - $errormsg = $rolle->errormsg; - } - } - } - } - else - { - $return = false; - $errormsg = 'Prestudent_id muss angegeben werden'; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='BewerberZuStudent') - { - // macht aus einem Bewerber einen Studenten - // Voraussetzungen: - // - ZGV muss ausgefuellt sein (bei Master beide) - // - Kaution muss bezahlt sein - // - Rolle Bewerber muss existieren - // Wenn die Voraussetzungen erfuellt sind, dann wird die Matrikelnr - // und UID generiert und der Studentendatensatz angelegt. - $errormsg=''; - if(!$error) - { - if(isset($_POST['prestudent_id'])) - { - $prestudent_ids = explode(';', $_POST['prestudent_id']); - $anzahl_fehler=0; - foreach ($prestudent_ids as $prestudent_id) - { - $error = false; - if($prestudent_id!='') - { - - $prestd = new prestudent(); - if($prestd->load($prestudent_id)) - { - //Berechtigung pruefen - if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') && - !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid')) - { - $error = true; - $errormsg .= "\n$prestd->vorname $prestd->nachname: Sie haben keine Schreibrechte fuer diesen Studiengang"; - $anzahl_fehler++; - } - - if(!$error) - { - if((!defined("ZGV_CHECK") && $prestd->zgv_code!='') || (defined("ZGV_CHECK") && ZGV_CHECK == false) || (defined("ZGV_CHECK") && ZGV_CHECK == true && $prestd->zgv_code!='')) - { - $stg = new studiengang(); - $stg->load($prestd->studiengang_kz); - - if((defined("ZGV_CHECK") && ZGV_CHECK == true && $stg->typ=='m' && $prestd->zgvmas_code=='') || (!defined("ZGV_CHECK") && $stg->typ=='m' && $prestd->zgvmas_code=='')) - { - $return = false; - $errormsg .= "\n$prestd->vorname $prestd->nachname: ZGV Master muss eingegeben werden"; - $anzahl_fehler++; - } - else - { - //Pruefen ob die Rolle Bewerber existiert - $hlp = new prestudent(); - $hlp->getPrestudentRolle($prestudent_id, 'Bewerber',null,'datum DESC, insertamum DESC'); - - if(count($hlp->result)>0) - { - $aufgenommener = new prestudent(); - $aufgenommener ->getPrestudentRolle($prestudent_id, 'Aufgenommener', null,'datum DESC, insertamum DESC'); - - if(count($aufgenommener->result)>0) - { - if($hlp->result[0]->studiensemester_kurzbz==$aufgenommener->result[0]->studiensemester_kurzbz - && $hlp->result[0]->ausbildungssemester==$aufgenommener->result[0]->ausbildungssemester) - { - //pruefen ob schon eine Studentenrolle Existiert - $hlp1 = new prestudent(); - $hlp1->getPrestudentRolle($prestudent_id, 'Student', $aufgenommener->result[0]->studiensemester_kurzbz); - if(count($hlp1->result)>0) - { - $return = false; - $errormsg .= "\n$prestd->vorname $prestd->nachname: Diese Person ist bereits Student"; - $anzahl_fehler++; - } - else - { - $db->db_query('BEGIN;'); - - //Matrikelnummer und UID generieren - $matrikelnr = generateMatrikelnummer($prestd->studiengang_kz, $aufgenommener->result[0]->studiensemester_kurzbz); - $jahr = substr($matrikelnr,0, 2); - $stg = $prestd->studiengang_kz; - $stg_obj = new studiengang(); - $stg_obj->load(ltrim($stg,'0')); - $uid = generateUID($stg_obj->kurzbz,$jahr,$stg_obj->typ,$matrikelnr); - $matrikelnummer = generateMatrikelnr($stg_obj->oe_kurzbz); - - if($matrikelnummer != null) - { - $qry = "UPDATE public.tbl_person SET matr_nr=".$db->db_add_param($matrikelnummer)." WHERE person_id=".$db->db_add_param($prestd->person_id, FHC_INTEGER).' AND matr_nr is null'; - $db->db_query($qry); - } - - if(defined('SET_UID_AS_PERSONENKENNZEICHEN') && SET_UID_AS_PERSONENKENNZEICHEN) - { - $matrikelnr = $uid; - } - - if(defined('SET_UID_AS_MATRIKELNUMMER') && SET_UID_AS_MATRIKELNUMMER) - { - $qry = "UPDATE public.tbl_person SET matr_nr=".$db->db_add_param($uid)." WHERE person_id=".$db->db_add_param($prestd->person_id, FHC_INTEGER).' AND matr_nr is null'; - $db->db_query($qry); - } - //Benutzerdatensatz anlegen - $benutzer = new benutzer(); - $benutzer->uid = $uid; - $benutzer->person_id = $prestd->person_id; - $benutzer->aktiv = true; - $benutzer->aktivierungscode = generateActivationKey(); - - $nachname_clean = mb_strtolower(convertProblemChars($prestd->nachname)); - $vorname_clean = mb_strtolower(convertProblemChars($prestd->vorname)); - $nachname_clean = str_replace(' ','_', $nachname_clean); - $vorname_clean = str_replace(' ','_', $vorname_clean); - - if(!defined('GENERATE_ALIAS_STUDENT') || GENERATE_ALIAS_STUDENT===true) - { - $qry_alias = "SELECT * FROM public.tbl_benutzer WHERE alias=LOWER(".$db->db_add_param($vorname_clean.".".$nachname_clean).")"; - $result_alias = $db->db_query($qry_alias); - if($db->db_num_rows($result_alias)==0) - $benutzer->alias = $vorname_clean.'.'.$nachname_clean; - else - $benutzer->alias = ''; - } - else - $benutzer->alias=''; - - $benutzer->insertamum = date('Y-m-d H:i:s'); - $benutzer->insertvon = $user; - - if($benutzer->save(true, false)) - { - //Studentendatensatz anlegen - $student = new student(); - $student->uid = $uid; - $student->matrikelnr = $matrikelnr; - $student->prestudent_id = $prestd->prestudent_id; - $student->studiengang_kz = $prestd->studiengang_kz; - $student->semester = $aufgenommener->result[0]->ausbildungssemester; - $student->verband = ' '; - $student->gruppe = ' '; - $student->insertamum = date('Y-m-d H:i:s'); - $student->insertvon = $user; - - //Pruefen ob der Lehrverband exisitert, falls nicht dann anlegen - $lehrverband = new lehrverband(); - if(!$lehrverband->load($student->studiengang_kz, $student->semester, $student->verband, $student->gruppe)) - { - $lehrverband->studiengang_kz = $student->studiengang_kz; - $lehrverband->semester = $student->semester; - $lehrverband->verband = $student->verband; - $lehrverband->gruppe = $student->gruppe; - $lehrverband->aktiv = true; - if(!$lehrverband->save(true)) - { - $error = true; - $errormsg = 'Fehler beim Speichern des Lehrverbandes'; - $return = false; - } - } - - if(!$error) - { - if($student->save(true, false)) - { - //Prestudentrolle hinzugfuegen - $rolle = new prestudent(); - $rolle->prestudent_id = $prestd->prestudent_id; - $rolle->status_kurzbz = 'Student'; - $rolle->studiensemester_kurzbz = $aufgenommener->result[0]->studiensemester_kurzbz; - $rolle->ausbildungssemester = $aufgenommener->result[0]->ausbildungssemester; - $rolle->orgform_kurzbz = $aufgenommener->result[0]->orgform_kurzbz; - $rolle->studienplan_id = $aufgenommener->result[0]->studienplan_id; - $rolle->datum = date('Y-m-d'); - $rolle->insertamum = date('Y-m-d H:i:s'); - $rolle->insertvon = $user; - $rolle->bestaetigtam = date('Y-m-d'); - $rolle->bestaetigtvon = $user; - if(isset($_POST['statusgrund_id'])) - $rolle->statusgrund_id = $_POST['statusgrund_id']; - $rolle->new = true; - - if($rolle->save_rolle()) - { - //StudentLehrverband anlegen - $studentlehrverband = new student(); - $studentlehrverband->uid = $uid; - $studentlehrverband->studiensemester_kurzbz = $aufgenommener->result[0]->studiensemester_kurzbz; - $studentlehrverband->studiengang_kz = $prestd->studiengang_kz; - $studentlehrverband->semester = $aufgenommener->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; - $db->db_query('COMMIT;'); - } - else - { - $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Studentlehrverbandes: ".$studentlehrverband->errormsg; - $return = false; - $anzahl_fehler++; - $db->db_query('ROLLBACK;'); - } - } - else - { - $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Rolle: ".$rolle->errormsg; - $return = false; - $anzahl_fehler++; - $db->db_query('ROLLBACK;'); - } - } - else - { - $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Studenten: ".$student->errormsg; - $return = false; - $anzahl_fehler++; - $db->db_query('ROLLBACK;'); - } - } - } - else - { - $errormsg .= "\n$prestd->vorname $prestd->nachname $matrikelnr: Fehler beim Speichern des Benutzers: ".$benutzer->errormsg; - $return = false; - $anzahl_fehler++; - $db->db_query('ROLLBACK;'); - } - } - } - else - { - $return = false; - $errormsg .= "\n$prestd->vorname $prestd->nachname: Das Studiensemester oder Ausbildungsemester des Berwerberstatus und des Aufgenommenenstatus passen nicht überein"; - $anzahl_fehler++; - } - } - else - { - $return = false; - $errormsg .= "\n$prestd->vorname $prestd->nachname: Die Person muss zuerst Aufgenommener sein bevor Sie zum Studenten gemacht werden kann"; - $anzahl_fehler++; - } - } - else - { - $return = false; - $errormsg .= "\n$prestd->vorname $prestd->nachname: Die Person muss zuerst Bewerber sein bevor Sie zum Studenten gemacht werden kann"; - $anzahl_fehler++; - } - } - } - else - { - $return = false; - $errormsg .= "\n$prestd->vorname $prestd->nachname: ZGV muss eingegeben werden"; - $anzahl_fehler++; - } - } - } - else - { - $return = false; - $errormsg .= "\nPrestudent wurde nicht gefunden zu $prestudent_id"; - } - } - } - } - else - { - $return = false; - $errormsg = 'Prestudent_id muss angegeben werden'; - } - - if($anzahl_fehler>0) - { - $return = false; - $errormsg = "Es sind $anzahl_fehler Fehler aufgetreten: ".$errormsg; - } - else - { - $return = true; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='gruppenzuteilung') - { - if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz'])) - { - $gruppe = new gruppe(); - 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(); - - $uids = explode(';',$_POST['uid']); - $errormsg = ''; - foreach ($uids as $uid) - { - if($uid!='') - { - if($_POST['gruppe_kurzbz']!='') - { - //Zuteilung zu einer Spezialgruppe - - if(!$benutzergruppe->load($uid, $_POST['gruppe_kurzbz'])) - { - $benutzergruppe->uid = $uid; - $benutzergruppe->gruppe_kurzbz = $_POST['gruppe_kurzbz']; - $benutzergruppe->studiensemester_kurzbz = $semester_aktuell; - $benutzergruppe->insertamum = date('Y-m-d H:i:s'); - $benutzergruppe->insertvon = $user; - $benutzergruppe->new = true; - - if(!$benutzergruppe->save()) - { - $errormsg .= "$uid konnte nicht hinzugefuegt werden\n"; - } - } - else - $errormsg .= "Der Student $uid ist bereits in dieser Gruppe\n"; - } - else - { - //Zuteilung zu einer Lehrverbandsgruppe - $error = false; - $stsem = new studiensemester(); - $stsem_kurzbz = $stsem->getaktorNext(); - - //Schauen ob die Lehrverbandsgruppe existiert - $lehrverband = new lehrverband(); - if(!$lehrverband->exists($_POST['stg_kz'],$_POST['semester'],$_POST['verband'], $_POST['gruppe'])) - { - $errormsg .= 'Die angegebene Lehrverbandsgruppe existiert nicht!'; - $return = false; - $error = true; - } - - //Wenn das ausgewaehlte Semester das aktuelle ist, dann wird auch in der - //Tabelle Student der Stg/Semester/Verband/Gruppe geaendert. - //Sonst nur in der Tabelle Studentlehrverband - if($semester_aktuell == $stsem_kurzbz) - { - //Eintrag in der Tabelle Student aendern - $student = new student(); - - if(!$student->load($uid)) - { - $errormsg .= 'Fehler beim Laden des Studenten'; - $error = true; - $return = false; - } - - if($student->studiengang_kz!=$_POST['stg_kz']) - { - $errormsg.='Ein Student kann nicht in eine Lehrverbandsgruppe eines anderen Studienganges verschoben werden'; - $return = false; - $error = true; - } - - if(!$error) - { - $student->studiengang_kz = $_POST['stg_kz']; - $student->semester = $_POST['semester']; - $student->verband = ($_POST['verband']==''?' ':$_POST['verband']); - $student->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); - $student->new=false; - - if(!$student->save()) - { - $errormsg .= 'Fehler beim Speichern des Studenteneintrages'; - $return = false; - $error = true; - } - } - } - - if(!$error) - { - //Eintrag in der Tabelle Student aendern - $student = new student(); - - if(!$student->load($uid)) - { - $errormsg .= 'Fehler beim Laden des Studenten'; - $error = true; - $return = false; - } - - if($student->studiengang_kz!=$_POST['stg_kz']) - { - $errormsg.='Ein Student kann nicht in eine Lehrverbandsgruppe eines anderen Studienganges verschoben werden'; - $return = false; - $error = true; - } - - if(!$error) - { - //Eintrag in der Tabelle Studentlehrverband aendern - $student_lvb = new student(); - - if($student_lvb->studentlehrverband_exists($uid, $semester_aktuell)) - $student_lvb->new = false; - else - $student_lvb->new = true; - - $student_lvb->uid = $uid; - $student_lvb->studiensemester_kurzbz = $semester_aktuell; - $student_lvb->studiengang_kz = $_POST['stg_kz']; - $student_lvb->semester = $_POST['semester']; - $student_lvb->verband = ($_POST['verband']==''?' ':$_POST['verband']); - $student_lvb->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); - $student_lvb->updateamum = date('Y-m-d H:i:s'); - $student_lvb->updatevon = $user; - - if($student_lvb->save_studentlehrverband()) - { - $return = true; - $error=false; - } - else - { - $error = true; - $errormsg .= $student_lvb->errormsg; - $return = false; - } - } - } - } - } - } - if($errormsg=='') - $return = true; - else - $return = false; - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deleteGruppenzuteilung') - { - if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz'])) - { - $gruppe = new gruppe(); - if($gruppe->load($_POST['gruppe_kurzbz'])) - { - $uids = explode(';',$_POST['uid']); - $errormsg = ''; - foreach ($uids as $uid) - { - if($uid!='') - { - $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($uid); - if($result = $db->db_query($qry)) - { - if($row = $db->db_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(); - - 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; - } - else - { - $return = false; - $errormsg = "Gruppe wurde nicht gefunden"; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deleteAkte') - { - if(isset($_POST['akte_id']) && is_numeric($_POST['akte_id'])) - { - //Berechtigung pruefen - if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; - } - if(!$error) - { - $akte = new akte(); - - if($akte->delete($_POST['akte_id'])) - { - $return = true; - } - else - { - $return = false; - $errormsg = $akte->errormsg; - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'.$_POST['akte_id']; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='savebuchung') // ***** KONTO ***** - { - //Speichert eine Buchung - if(isset($_POST['buchungsnr']) && is_numeric($_POST['buchungsnr'])) - { - $buchung = new konto(); - - if($buchung->load($_POST['buchungsnr'])) - { - 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 - { - $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->studiengang_kz = $_POST['studiengang_kz']; - $buchung->credit_points = $_POST['credit_points']; - $buchung->new = false; - $buchung->updateamum = date('Y-m-d H:i:s'); - $buchung->updatevon = $user; - $buchung->anmerkung = $_POST['anmerkung']; - - if($buchung->save()) - { - $return = true; - } - else - { - $return = false; - $errormsg = 'Fehler beim Speichern:'.$buchung->errormsg; - } - } - } - else - { - $errormsg = 'Buchung wurde nicht gefunden:'.$_POST['buchungsnr']; - $return = false; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'.$_POST['buchungsnr']; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='savegegenbuchung') - { - //Speichert eine Buchung - if(isset($_POST['buchungsnr'])) - { - $bnr_arr = explode(';',$_POST['buchungsnr']); - $gegenbuchungsdatum = filter_input(INPUT_POST, "gegenbuchungsdatum"); - if(strlen($gegenbuchungsdatum) != 0) - { - $gegenbuchungsdatum = date("Y-m-d", strtotime($gegenbuchungsdatum)); - } - else - { - $gegenbuchungsdatum = date('Y-m-d'); - } - - $errormsg=''; - foreach ($bnr_arr as $buchungsnr) - { - if(is_numeric($buchungsnr)) - { - $buchung = new konto(); - - if($buchung->load($buchungsnr)) - { - //Berechtigung pruefen - if(!$rechte->isBerechtigt('assistenz',$buchung->studiengang_kz,'suid') && - !$rechte->isBerechtigt('admin',$buchung->studiengang_kz, 'suid')) - { - $error = true; - $return = false; - $errormsg = "\nSie haben keine Schreibrechte fuer diese Buchung"; - } - else - { - if($buchung->buchungsnr_verweis=='') - { - $kto = new konto(); - //$buchung->betrag*(-1); - $buchung->betrag = $kto->getDifferenz($buchungsnr); - $buchung->buchungsdatum = $gegenbuchungsdatum; - $buchung->mahnspanne = '0'; - $buchung->buchungsnr_verweis = $buchung->buchungsnr; - $buchung->new = true; - $buchung->insertamum = date('Y-m-d H:i:s'); - $buchung->insertvon = $user; - $buchung->anmerkung = ''; - - if($buchung->save()) - { - //$data = $buchung->buchungsnr; - $return = true; - } - else - { - $return = false; - $errormsg .= "\n".'Fehler beim Speichern:'.$buchung->errormsg; - } - } - else - { - $return = false; - $errormsg .= "\n".'Gegenbuchungen koennen nur auf die obersten Buchungen getaetigt werden'; - } - } - } - else - { - $errormsg .= "\n".'Buchung wurde nicht gefunden'; - $return = false; - } - } - if($errormsg!='') - { - $return = false; - } - else - { - $return = true; - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deletebuchung') - { - //Loescht eine Buchung - if(isset($_POST['buchungsnr']) && is_numeric($_POST['buchungsnr'])) - { - $buchung = new konto(); - - if($buchung->load($_POST['buchungsnr'])) - { - 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 wurde nicht gefunden'; - $return = false; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='neuebuchung') - { - //Speichert eine neue Buchung - //Gleichzeitiges speichern mehrerer Personen ist moeglich - //Personen werden durch ';' getrennt - $person_ids = explode(';',$_POST['person_ids']); - $errormsg = ''; - if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; - } - else - { - foreach ($person_ids as $person_id) - { - if($person_id!='') - { - $buchung = new konto(); - $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->credit_points = $_POST["credit_points"]; - $buchung->insertamum = date('Y-m-d H:i:s'); - $buchung->insertvon = $user; - $buchung->anmerkung = $_POST['anmerkung']; - $buchung->new = true; - - if($buchung->save()) - { - $data = $buchung->buchungsnr; - } - else - { - $errormsg .= "Fehler beim Speichern: $buchung->errormsg\n"; - } - } - } - } - if($errormsg=='') - $return = true; - else - $return = false; - } - elseif(isset($_POST['type']) && $_POST['type']=='dokumentprestudentadd') - { - //Speichert die Zuordnung von Dokumenten zu einem Prestudent - //Gleichzeitiges zuteilen mehrerer Dokumente auf einmal ist moeglich - //Dokumente werden durch ';' getrennt uebergeben - - if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; - } - else - { - $dokumente = explode(';',$_POST['dokumente']); - $errormsg = ''; - foreach ($dokumente as $dokument_kurzbz) - { - if($dokument_kurzbz!='') - { - $dok = new dokument(); - $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; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='dokumentprestudentDetailSave') - { - //Speichert die Zuordnung von Dokumenten zu einem Prestudent - //Gleichzeitiges zuteilen mehrerer Dokumente auf einmal ist moeglich - //Dokumente werden durch ';' getrennt uebergeben - - if(!$rechte->isBerechtigt('assistenz',null,'suid') && - !$rechte->isBerechtigt('admin',null, 'suid')) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; - } - else - { - $akte_id = $_POST['akte_id']; - $errormsg = ''; - $akte = new akte(); - if($akte->load($akte_id)) - { - $akte->new=false; - $akte->anmerkung_intern = $_POST['anmerkung_intern']; - $akte->titel_intern = $_POST['titel_intern']; - $akte->dokument_kurzbz = $_POST['dokument_kurzbz']; - - if(!$akte->save()) - { - $errormsg='Speichern fehlgeschlagen:'.$akte->errormsg; - } - } - - if($errormsg=='') - $return = true; - else - $return = false; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='dokumentprestudentDeleteDokument') - { - $prestudent_id = $_POST['prestudent_id']; - $prestudent = new prestudent(); - if($prestudent->load($prestudent_id)) - { - $studiengang = new studiengang(); - $studiengang->load($prestudent->studiengang_kz); - - if(!$rechte->isBerechtigt('assistenz',$studiengang->oe_kurzbz,'suid') && - !$rechte->isBerechtigt('admin',$studiengang->oe_kurzbz, 'suid')) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; - } - else - { - - $akte_id = $_POST['akte_id']; - $errormsg = ''; - $akte = new akte(); - if($akte->load($akte_id)) - { - if($akte->person_id==$prestudent->person_id) - { - if($akte->dms_id!='') - { - $dms = new dms(); - if($dms->load($akte->dms_id)) - { - if($akte->delete($akte_id)) - { - // Eintrag im DMS loeschen - if(!$dms->deleteDms($akte->dms_id)) - { - $error=true; - $errormsg='Fehler beim Loeschen des Dokuments'; - } - } - else - { - $error=true; - $errormsg='Fehler beim Loeschen der Akte'; - } - } - else - { - $error=true; - $errormsg='Fehler beim Laden des Dokuments'; - } - } - else - { - $error=true; - $errormsg='Dieses Dokument darf hier nicht geloescht werden'; - } - } - else - { - $error=true; - $errormsg='Akte und Prestudent passen nicht zusammen'; - } - } - - if($errormsg=='') - $return = true; - else - $return = false; - } - } - else - { - $errormsg='Prestudent konnte nicht geladen werden'; - $error=true; - $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 - if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; - } - else - { - $dokumente = explode(';',$_POST['dokumente']); - $errormsg = ''; - foreach ($dokumente as $dokument_kurzbz) - { - if($dokument_kurzbz!='') - { - $dok = new dokument(); - if($dok->load($dokument_kurzbz, $_POST['prestudent_id'])) - { - if($dok->mitarbeiter_uid==$user || $rechte->isBerechtigt('student/dokumente',$_POST['studiengang_kz'], 'suid')) - { - 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 $dok->mitarbeiter_uid moeglich\n"; - } - } - else - { - $errormsg.="Dokumentenzuteilung existiert nicht: $dokument_kurzbz\n"; - } - } - } - if($errormsg=='') - $return = true; - else - $return = false; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deletebetriebsmittel') - { - //Loescht ein Betriebsmittel - //Wenn studiengang_kz uebergeben wird, dann handelt es sich um die Betriebsmittel eines Studenten - //Wenn studiengang_kz='' dann werden Mitarbeiterrechte benoetigt - //ToDo: hier sollte nicht der Studiengang uebergeben werden sonder aus der DB ermittelt werden ob es - //ein Student oder Mitarbeiter ist - if(($_POST['studiengang_kz']!='' && - !$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') && - !$rechte->isBerechtigt('basis/betriebsmittel',$_POST['studiengang_kz'], 'suid') - ) || - ($_POST['studiengang_kz']=='' && - !$rechte->isBerechtigt('admin', null, 'suid') && - !$rechte->isBerechtigt('mitarbeiter', null, 'suid') && - !$rechte->isBerechtigt('basis/betriebsmittel', null, 'suid') - )) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - if(isset($_POST['betriebsmittelperson_id']) && is_numeric($_POST['betriebsmittelperson_id'])) - { - $btm = new betriebsmittelperson(); - - if($btm->delete($_POST['betriebsmittelperson_id'])) - { - $return = true; - } - else - { - $errormsg = $btm->errormsg; - $return = false; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='savebetriebsmittel') - { - //Speichert eine Betriebsmittelzuordnung - //Wenn studiengang_kz uebergeben wird, dann handelt es sich um die Betriebsmittel eines Studenten - //Wenn studiengang_kz='' dann werden Mitarbeiterrechte benoetigt - //ToDo: hier sollte nicht der Studiengang uebergeben werden sonder aus der DB ermittelt werden ob es - //ein Student oder Mitarbeiter ist - if(($_POST['studiengang_kz']!='' && - !$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') && - !$rechte->isBerechtigt('basis/betriebsmittel',$_POST['studiengang_kz'], 'suid') - ) || - ($_POST['studiengang_kz']=='' && - !$rechte->isBerechtigt('admin', null, 'suid') && - !$rechte->isBerechtigt('mitarbeiter', null, 'suid') && - !$rechte->isBerechtigt('basis/betriebsmittel', null, 'suid') - )) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $betriebsmittel_id = $_POST['betriebsmittel_id']; - $bm = new betriebsmittel(); - - // Wenn es kein vorhandenes Inventar ist, dann neu anlegen - if($_POST['betriebsmitteltyp']!='Inventar') - { - if($_POST['betriebsmitteltyp']=='Zutrittskarte') - $_POST['nummer']=$bm->transform_kartennummer($_POST['nummer']); - - //Das speichern von Zutrittskarten ohne Nummern verhindern - if($_POST['betriebsmitteltyp']=='Zutrittskarte' && $_POST['nummer']=='') - { - $error = true; - $return = false; - $errormsg = 'Eine Zutrittskarte muss eine Nummer haben. Um die Zuordnung zu dieser Karte zu loeschen entfernen Sie bitte den ganzen Datensatz'; - } - else - { - //Nachschauen ob dieses Betriebsmittel schon existiert - if($bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummer'])) - { - if(count($bm->result)>0) - { - //Wenn die Nummer gleich bleibt dann die alte ID verwenden da es - //unterschiedliche Schluessel gibt die die gleiche nummer haben ?!? - if($_POST['nummer']==$_POST['nummerold']) - { - $betriebsmittel_id = $_POST['betriebsmittel_id']; - } - else - $betriebsmittel_id = $bm->result[0]->betriebsmittel_id; - //Wenn ein Eintrag gefunden wurde, dann wird die Beschreibung aktualisiert - if($bm->load($betriebsmittel_id)) - { - $bm->beschreibung = $_POST['beschreibung']; - $bm->nummer = $_POST['nummer']; - $bm->nummer2 = $_POST['nummer2']; - if(!$bm->save(false)) - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Speichern des Betriebsmittels'; - } - } - 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->nummer2 = $_POST['nummer2']; - $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'; - } - } - - if($_POST['betriebsmitteltyp']=='Zutrittskarte') - { - //Bei Zutrittskarten schauen ob diese schon vergeben sind - $qry = "SELECT vorname, nachname, uid - FROM public.vw_betriebsmittelperson - WHERE betriebsmitteltyp='Zutrittskarte' AND - nummer='".$db->db_escape($_POST['nummer'])."'::varchar AND - person_id<>".$db->db_add_param($_POST['person_id'], FHC_INTEGER)." AND - retouram is null"; - if($result_bmp = $db->db_query($qry)) - { - if($db->db_num_rows($result_bmp)>0) - { - $row_bmp = $db->db_fetch_object($result_bmp); - $error = true; - $return = false; - $errormsg = "Diese Zutrittskarte ist bereits ausgegeben an: $row_bmp->vorname $row_bmp->nachname ($row_bmp->uid)"; - } - } - else - { - $error = true; - $return = false; - $errormsg = 'Fehler beim Laden der Zutrittskarte'; - } - } - } - } - } - - if(!$error) - { - //Zuordnung Betriebsmittel-Person anlegen - $bmp = new betriebsmittelperson(); - if($_POST['neu']!='true') - { - if($bmp->load($_POST['betriebsmittelperson_id'])) - { - $bmp->updateamum = date('Y-m-d H:i:s'); - $bmp->updatevon = $user; - $bmp->betriebsmittelperson_id = $_POST['betriebsmittelperson_id']; - $bmp->new = false; - } - else - { - $error = true; - $errormsg = "Zuordnung unbekannt:".$_POST['betriebsmittelperson_id']; - $return = false; - } - } - else - { - $bmp->insertamum = date('Y-m-d H:i:s'); - $bmp->insertvon = $user; - $bmp->new = true; - } - - 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->new) - $bmp->uid = $_POST['uid']; - - if($bmp->save()) - { - $return = true; - $data = $bmp->betriebsmittelperson_id; - } - else - { - $return = false; - $errormsg = $bmp->errormsg; - } - } - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deletebisio') - { - if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - //Loescht einen BisIO Eintrag - if(isset($_POST['bisio_id']) && is_numeric($_POST['bisio_id'])) - { - $bisio = new bisio(); - - if($bisio->delete($_POST['bisio_id'])) - { - $return = true; - } - else - { - $errormsg = $bisio->errormsg; - $return = false; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='savebisio') - { - //Speichert einen BisIO Eintrag - if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && - !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - - $bisio = new bisio(); - - if($_POST['neu']=='true') - { - $bisio->insertamum = date('Y-m-d H:i:s'); - $bisio->insertvon = $user; - $bisio->new = true; - } - else - { - 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->lehreinheit_id = $_POST['lehreinheit_id']; - $bisio->ort = $_POST['ort']; - $bisio->universitaet = $_POST['universitaet']; - $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']=='getnotenotenschluessel') - { - if(!$rechte->isBerechtigt('admin', null, 's') && !$rechte->isBerechtigt('assistenz', null, 's') && - !$rechte->isBerechtigt('student/noten', null, 's')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $punkte=$_POST['punkte']; - if(is_numeric($punkte)) - { - $lehrveranstaltung_id=$_POST['lehrveranstaltung_id']; - $studiensemester_kurzbz=$semester_aktuell; - - $notenschluessel = new notenschluessel(); - if(($note = $notenschluessel->getNote($punkte, $lehrveranstaltung_id, $studiensemester_kurzbz))!==false) - { - $return = true; - $error = false; - $data = $note; - } - else - { - $return = false; - $error = true; - $errormsg=$notenschluessel->errormsg; - } - } - else - { - $return = true; - $error = false; - $data = ''; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='savenote') - { - //Speichert einen Noteneintrag - - $noten = new zeugnisnote(); - $lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id'); - $student_uid = filter_input(INPUT_POST, 'student_uid'); - $studiensemester_kurzbz = filter_input(INPUT_POST, 'studiensemester_kurzbz'); - - if(!is_null($lehrveranstaltung_id) && !is_null($student_uid) && !is_null($studiensemester_kurzbz)) - { - //Berechtigung pruefen - $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($student_uid); - if($result = $db->db_query($qry)) - { - if($row = $db->db_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) - { - $lva = new lehrveranstaltung($lehrveranstaltung_id); - - if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') && !$rechte->isBerechtigt('admin', $stg_std, 'suid') && - !$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid') && !$rechte->isBerechtigt('assistenz', $stg_std, 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - - if($noten->load($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)) - { - $noten->new = false; - $noten->updateamum = date('Y-m-d H:i:s'); - $noten->updatevon = $user; - $log = new log(); - $log->executetime = date('Y-m-d H:i:s'); - $log->mitarbeiter_uid = $user; - $log->beschreibung = "Ändern der Note ".$noten->note." bei ".$noten->student_uid; - $log->sql = 'UPDATE lehre.tbl_zeugnisnote SET '. - 'note='.$db->db_add_param($noten->note).', '. - 'punkte='.$db->db_add_param($noten->punkte).','. - 'uebernahmedatum='.$db->db_add_param($noten->uebernahmedatum).', '. - 'benotungsdatum='.$db->db_add_param($noten->benotungsdatum).', '. - 'bemerkung='.$db->db_add_param($noten->bemerkung).', '. - 'updateamum= '.$db->db_add_param($noten->updateamum).', '. - 'updatevon='.$db->db_add_param($noten->updatevon).' '. - 'WHERE lehrveranstaltung_id='.$db->db_add_param($noten->lehrveranstaltung_id, FHC_INTEGER).' '. - 'AND student_uid='.$db->db_add_param($noten->student_uid).' '. - 'AND studiensemester_kurzbz='.$db->db_add_param($noten->studiensemester_kurzbz).';'; - $log->sqlundo = $noten->getUndo('update'); - $log->save(true); - } - 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(isset($_POST['punkte'])) - $noten->punkte=str_replace(',','.',$_POST['punkte']); - - if($noten->save()) - { - $return = true; - } - else - { - $errormsg = $noten->errormsg; - $return = false; - } - - if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true) - { - NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note); - } - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='movenote') - { - //Speichert einen LVGesamtNoten Eintrag in die Tbl Zeugnisnote - //Die Daten werden per POST uebermittelt. Es wird ein Feld Anzahl mituebergeben - //mit der Anzahl der Felder. Die Felder sind durchnummeriert zB lehreinheit_id_0, lehreinheit_id_1, ... - $errormsg = ''; - $angerechnet=false; - - for($i=0;$i<$_POST['anzahl'];$i++) - { - $lvgesamtnote = new lvgesamtnote(); - $zeugnisnote = new zeugnisnote(); - - //Berechtigung pruefen - $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($_POST['lehrveranstaltung_id_'.$i], FHC_INTEGER); - if($result = $db->db_query($qry)) - { - if($row = $db->db_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'; - } - - $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($_POST['student_uid_'.$i]); - if($result = $db->db_query($qry)) - { - if($row = $db->db_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('student/noten', $stg_lva, 'suid') && !$rechte->isBerechtigt('student/noten', $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; - //Angerechnete Noten werden nicht ueberschrieben - if($zeugnisnote->note=='6') //Angerechnet - { - $angerechnet=true; - continue; - } - } - 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->punkte = $lvgesamtnote->punkte; - $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 - { - if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true) - { - NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note); - } - } - } - else - { - $errormsg .= "\nLvGesamtNote wurde nicht gefunden"; - } - } - } - } - if($angerechnet) - { - $errormsg.="\nAngerechnete Noten wurden nicht ueberschrieben"; - } - - if($errormsg=='') - $return = true; - else - $return = false; - } - elseif(isset($_POST['type']) && $_POST['type']=='importnoten') - { - //Importiert die Noten einer Lehrveranstaltung - //als Parameter wird die Matrikelnummer und die Note uebergeben - //Die Felder sind durchnummeriert zB matrikelnummer_0, matrikelnummer_1, ... - //Die Anzahl der Gesamten Daten wird auch als Parameter uebergeben - $errormsg = ''; - $angerechnet=false; - - $noten_anmerkung_arr=array(); - $note_obj = new note(); - $note_obj->getAll(); - foreach($note_obj->result as $row) - $noten_anmerkung_arr[$row->anmerkung]=$row->note; - - for($i=0;$i<$_POST['anzahl'];$i++) - { - if($_POST['matrikelnummer_'.$i]!='') - { - $zeugnisnote = new zeugnisnote(); - $error = false; - if(!is_numeric(trim($_POST['matrikelnummer_'.$i]))) - { - $error = true; - $errormsg = "\nMatrikelnummer ist ungueltig: ".$_POST['matrikelnummer_'.$i]; - } - if((isset($_POST['note_'.$i]) && !is_numeric($_POST['note_'.$i]) && !isset($noten_anmerkung_arr[$_POST['note_'.$i]]))) - { - $error = true; - $errormsg = "\nNote ist ungueltig: ".$_POST['note_'.$i]; - } - if(!$error) - { - $qry = "SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE trim(matrikelnr)=".$db->db_add_param(trim($_POST['matrikelnummer_'.$i])); - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - $uid = $row->student_uid; - $stg_std = $row->studiengang_kz; - } - else - { - $error = true; - $errormsg.="\nMatrikelnummer ".$_POST['matrikelnummer_'.$i]." wurde nicht gefunden"; - } - } - else - { - $error = true; - $errormsg.="\nFehler beim Ermitteln der UID"; - } - - //Berechtigung pruefen - $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($_POST['lehrveranstaltung_id'], FHC_INTEGER); - if($result = $db->db_query($qry)) - { - if($row = $db->db_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(!$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($zeugnisnote->load($_POST['lehrveranstaltung_id'], $uid, $semester_aktuell)) - { - $zeugnisnote->new = false; - $zeugnisnote->updateamum = date('Y-m-d H:i:s'); - $zeugnisnote->updatevon = $user; - //Angerechnete Noten werden nicht ueberschrieben - if($zeugnisnote->note=='6') //Angerechnet - { - $angerechnet=true; - continue; - } - } - 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; - } - - if(isset($_POST['note_'.$i])) - { - $zeugnisnote->note = $_POST['note_'.$i]; - $zeugnisnote->punkte = null; - // Wenn es nicht numerisch ist, dann nachsehen ob es eine anmerkung gibt die so heisst - // zB fuer met, nb, ar, etc - if(!is_numeric($zeugnisnote->note) && isset($noten_anmerkung_arr[$zeugnisnote->note])) - { - $zeugnisnote->note = $noten_anmerkung_arr[$zeugnisnote->note]; - } - } - elseif(isset($_POST['punkte_'.$i])) - { - $zeugnisnote->punkte=$_POST['punkte_'.$i]; - $zeugnisnote->punkte = str_replace(',','.', $zeugnisnote->punkte); - $notenschluessel = new notenschluessel(); - $note = $notenschluessel->getNote($zeugnisnote->punkte, $_POST['lehrveranstaltung_id'], $semester_aktuell); - $zeugnisnote->note = $note; - } - $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; - } - else - { - if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true) - { - NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note); - } - } - } - } - } - } - } - if($angerechnet) - { - $errormsg.="\nAngerechnete Noten wurden nicht ueberschrieben"; - } - - if($errormsg=='') - $return = true; - else - $return = false; - } - elseif(isset($_POST['type']) && $_POST['type']=='deletenote') - { - //Loescht einen Noteneintrag - - $noten = new zeugnisnote(); - $lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id'); - $student_uid = filter_input(INPUT_POST, 'student_uid'); - $studiensemester_kurzbz = filter_input(INPUT_POST, 'studiensemester_kurzbz'); - - if(!is_null($lehrveranstaltung_id) && !is_null($student_uid) && !is_null($studiensemester_kurzbz)) - { - //Berechtigung pruefen - $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER); - if($result = $db->db_query($qry)) - { - if($row = $db->db_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'; - } - - $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($student_uid); - if($result = $db->db_query($qry)) - { - if($row = $db->db_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 - { - $noten->load($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz); - if($noten->delete($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)) - { - $log = new log(); - $log->executetime = date('Y-m-d H:i:s'); - $log->mitarbeiter_uid = $user; - $log->beschreibung = "Löschen der Note ".$noten->note." bei ".$noten->student_uid; - $log->sql = "DELETE FROM lehre.tbl_zeugnisnote WHERE - lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER, false)." AND - student_uid=".$db->db_add_param($student_uid)." AND - studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";"; - $log->sqlundo = $noten->getUndo('insert'); - $log->save(true); - $return = true; - } - else - { - $return = false; - $errormsg = $noten->errormsg; - } - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deletepruefung') // **** PRUEFUNGEN **** // - { - //Loescht einen Pruefungs Eintrag - if(isset($_POST['pruefung_id']) && is_numeric($_POST['pruefung_id'])) - { - if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $pruefung = new pruefung(); - - if($pruefung->delete($_POST['pruefung_id'])) - { - $return = true; - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='savepruefung') // **** PRUEFUNGEN **** // - { - $datum_obj = new datum(); - if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $pruefung = new pruefung(); - - if($_POST['neu']=='false') - { - if($pruefung->load($_POST['pruefung_id'])) - { - $pruefung->new = false; - } - else - { - $error = true; - $return = false; - $errormsg = $pruefung->errormsg; - } - } - else - { - $pruefung->new = true; - $pruefung->insertamum = date('Y-m-d H:i:s'); - $pruefung->insertvon = $user; - } - - $db->db_query('BEGIN'); - - if($_POST['pruefungstyp_kurzbz']=='Termin2') - { - //Wenn ein 2. Termin angelegt wird, und kein 1. Termin vorhanden ist, - //dann wird auch ein 1. Termin angelegt mit der derzeitigen Zeugnisnote - $qry = "SELECT * FROM lehre.tbl_pruefung WHERE - student_uid=".$db->db_add_param($_POST['student_uid'])." AND - lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND - pruefungstyp_kurzbz='Termin1'"; - if($result = $db->db_query($qry)) - { - if($db->db_num_rows($result)==0) - { - $qry = "SELECT note,punkte, benotungsdatum FROM lehre.tbl_zeugnisnote JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE - student_uid=".$db->db_add_param($_POST['student_uid'])." AND - tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND - tbl_lehreinheit.studiensemester_kurzbz = tbl_zeugnisnote.studiensemester_kurzbz"; - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - //Wenn kein Ersttermin existiert, dann wird einer angelegt - $ersttermin = new pruefung(); - $ersttermin->new=true; - $ersttermin->insertamum = date('Y-m-d H:i:s'); - $ersttermin->insertvon = $user; - $ersttermin->lehreinheit_id = $_POST['lehreinheit_id']; - $ersttermin->student_uid = $_POST['student_uid']; - $ersttermin->mitarbeiter_uid = $_POST['mitarbeiter_uid']; - $ersttermin->note = $row->note; - $ersttermin->punkte = $row->punkte; - $ersttermin->pruefungstyp_kurzbz = 'Termin1'; - $ersttermin->datum = $row->benotungsdatum; - $ersttermin->anmerkung = ''; - - if(!$ersttermin->save()) - { - $error = true; - $return = false; - $errormsg = 'Fehler beim Anlegen des 1.Termin:'.$ersttermin->errormsg; - } - } - } - //Wenn keine Zeugnisnote vorhanden ist, dann wird kein - //1.Termin angelegt - } - } - else - { - $error = true; - $return = false; - $errormsg = 'Fehler beim Ermitteln des Ersttermines'; - } - - } - - if(!$error) - { - $pruefung->lehreinheit_id = $_POST['lehreinheit_id']; - $pruefung->student_uid = $_POST['student_uid']; - $pruefung->mitarbeiter_uid = $_POST['mitarbeiter_uid']; - $pruefung->note = $_POST['note']; - if(isset($_POST['punkte'])) - $pruefung->punkte = str_replace(',','.',$_POST['punkte']); - $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($pruefung->save()) - { - $return = true; - $data = $pruefung->pruefung_id; - //Zeugnisnote aktualisieren - $qry = "SELECT lehrveranstaltung_id, studiensemester_kurzbz FROM lehre.tbl_lehreinheit - WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER); - if($result_le = $db->db_query($qry)) - { - if($row_le = $db->db_fetch_object($result_le)) - { - $lehrveranstaltung_id = $row_le->lehrveranstaltung_id; - $studiensemester_kurzbz = $row_le->studiensemester_kurzbz; - } - else - { - $error = true; - $return = false; - $errormsg = 'Fehler beim Ermitteln der Lehrveranstaltung'; - } - } - else - { - $error = true; - $return = false; - $errormsg = 'Fehler beim Ermitteln der Lehrveranstaltung'; - } - - - if(!$error) - { - $zeugnisnote = new zeugnisnote(); - if($zeugnisnote->load($lehrveranstaltung_id, $_POST['student_uid'], $studiensemester_kurzbz)) - { - if($zeugnisnote->uebernahmedatum=='' || - ($datum_obj->mktime_fromtimestamp($zeugnisnote->benotungsdatum) > - $datum_obj->mktime_fromtimestamp($zeugnisnote->uebernahmedatum))) - $checkdatum = $zeugnisnote->benotungsdatum; - else - $checkdatum = $zeugnisnote->uebernahmedatum; - - if($datum_obj->mktime_fromtimestamp($checkdatum)>$datum_obj->mktime_fromdate($_POST['datum'])) - { - if($zeugnisnote->note!=$_POST['note']) - { - $error = true; - $return = false; - $errormsg = 'ACHTUNG! Diese Pruefungsnote wurde nicht ins Zeugnis uebernommen da die Zeugnisnote nach dem Pruefungsdatum veraendert wurde'; - } - } - else - { - $zeugnisnote->new = false; - } - } - else - { - $zeugnisnote->new = true; - $zeugnisnote->insertamum = date('Y-m-d H:i:s'); - $zeugnisnote->insertvon = $user; - } - - if(!$error) - { - $zeugnisnote->student_uid = $_POST['student_uid']; - $zeugnisnote->lehrveranstaltung_id = $lehrveranstaltung_id; - $zeugnisnote->studiensemester_kurzbz = $studiensemester_kurzbz; - $zeugnisnote->note = $_POST['note']; - if(isset($_POST['punkte'])) - $zeugnisnote->punkte = str_replace(',','.',$_POST['punkte']); - else - $zeugnisnote->punkte=''; - $zeugnisnote->uebernahmedatum = date('Y-m-d H:i:s'); - $zeugnisnote->benotungsdatum = date('Y-m-d',$datum_obj->mktime_fromdate($_POST['datum'])); - $zeugnisnote->updateamum = date('Y-m-d H:i:s'); - $zeugnisnote->updatevon = $user; - - if(!$zeugnisnote->save()) - { - $return = false; - $error = true; - $errormsg = 'Fehler beim Speichern der Zeungisnote:'.$zeugnisnote->errormsg; - $db->db_query('ROLLBACK'); - } - else - { - $db->db_query('COMMIT'); - } - } - else - { - //Kein Rollback damit die Pruefung gespeichert wird - //returnwert ist aber false damit die Meldung angezeigt wird, - //dass die Note nicht ins Zeugnis uebernommen wird - $db->db_query('COMMIT'); - } - } - else - { - $db->db_query('ROLLBACK'); - } - } - else - { - $return = false; - $errormsg = $pruefung->errormsg; - $db->db_query('ROLLBACK'); - } - } - else - { - $db->db_query('ROLLBACK'); - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='saveabschlusspruefung') // **** ABSCHLUSSPRUEFUNGEN **** // - { - if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $pruefung = new abschlusspruefung(); - - if($_POST['neu']=='false') - { - if($pruefung->load($_POST['abschlusspruefung_id'])) - { - $pruefung->new = false; - } - else - { - $error = true; - $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->note = $_POST['notekommpruef']; - $pruefung->akadgrad_id = $_POST['akadgrad_id']; - $pruefung->pruefungstyp_kurzbz = $_POST['pruefungstyp_kurzbz']; - $pruefung->datum = $_POST['datum']; - $pruefung->uhrzeit = $_POST['uhrzeit']; - $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(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - if(isset($_POST['abschlusspruefung_id']) && is_numeric($_POST['abschlusspruefung_id'])) - { - $pruefung = new abschlusspruefung(); - - if($pruefung->delete($_POST['abschlusspruefung_id'])) - { - $return = true; - } - else - { - $errormsg = $pruefung->errormsg; - $return = false; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='saveprojektarbeit') // **** Projektarbeit **** // - { - if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $projektarbeit = new projektarbeit(); - - if($_POST['neu']=='false') - { - if($projektarbeit->load($_POST['projektarbeit_id'])) - { - $projektarbeit->new = false; - } - else - { - $error = true; - $return = false; - $errormsg = $projektarbeit->errormsg; - } - } - 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->titel_english = $_POST['titel_english']; - $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; - $projektarbeit->final = ($_POST['final']=='true'?true:false); - - if(!$error) - { - if($projektarbeit->save()) - { - $return = true; - $data = $projektarbeit->projektarbeit_id; - } - else - { - $return = false; - $errormsg = $projektarbeit->errormsg; - } - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deleteprojektarbeit') - { - if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - //Loescht einen Projektarbeit Eintrag - if(isset($_POST['projektarbeit_id']) && is_numeric($_POST['projektarbeit_id'])) - { - $projektarbeit = new projektarbeit(); - - $qry = "SELECT count(*) as anzahl FROM lehre.tbl_projektbetreuer - WHERE projektarbeit_id=".$db->db_add_param($_POST['projektarbeit_id'], FHC_INTEGER); - - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - if($row->anzahl>0) - { - $errormsg = 'Bitte zuerst alle Betreuer loeschen'; - $return = false; - } - else - { - $qry = "SELECT count(*) as anzahl FROM campus.tbl_paabgabe - WHERE projektarbeit_id=".$db->db_add_param($_POST['projektarbeit_id'], FHC_INTEGER).";"; - - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - if($row->anzahl>0) - { - $errormsg = 'Diese Projektarbeit kann nicht gelöscht werden, da bereits AbgabeTermine bzw Abgaben vorhanden sind'; - $return = false; - } - else - { - 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 - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='saveprojektbetreuer') // **** Projektbetreuer **** // - { - if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $projektbetreuer = new projektbetreuer(); - - if($_POST['neu']=='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 - { - 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') - { - if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - //Loescht einen Projektbetreuer Eintrag - if(isset($_POST['person_id']) && is_numeric($_POST['person_id'])) - { - $projektbetreuer = new projektbetreuer(); - - if($projektbetreuer->delete($_POST['person_id'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz'])) - { - $return = true; - } - else - { - $errormsg = $projektbetreuer->errormsg; - $return = false; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='getprivatemailadress') - { - if(isset($_POST['person_ids'])) - { - $pers_arr = explode(';',$_POST['person_ids']); - $data=''; - $anz_error=0; - - foreach ($pers_arr as $person_id) - { - if(is_numeric($person_id)) - { - $qry = "SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' - AND person_id=".$db->db_add_param($person_id, FHC_INTEGER)." AND zustellung=true LIMIT 1"; - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - if($data!='') - $data.=$emailadressentrennzeichen.$row->kontakt; - else - $data = $row->kontakt; - } - else - { - $anz_error++; - } - } - } - } - if($data!='') - { - if($anz_error==0) - $return = true; - else - { - $return = false; - $errormsg = "Bei $anz_error Personen wurde keine Emailadresse gefunden!"; - } - } - else - { - $return = false; - $errormsg = 'Es wurde keine Privatadresse gefunden'; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='getReihungstestPunkte') - { - //Liefert die Reihungstestpunkte eines Prestudenten - if(isset($_POST['person_id']) && isset($_POST['reihungstest_id'])) - { - $pruefling = new pruefling(); - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $data = $pruefling->getReihungstestErgebnisPerson($_POST['person_id'], true, $_POST['reihungstest_id']); - else - $data = $pruefling->getReihungstestErgebnisPerson($_POST['person_id'], false, $_POST['reihungstest_id']); - - // Runden auf 2 Nachkommastellen - $data = number_format($data, 2, '.',''); - $return = true; - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='getstundensatz') - { - if(isset($_POST['person_id'])) - { - $qry = "SELECT stundensatz FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) - WHERE person_id=".$db->db_add_param($_POST['person_id'], FHC_INTEGER); - if($result = $db->db_query($qry)) - { - if($row = $db->db_fetch_object($result)) - { - $data = $row->stundensatz; - $return = true; - } - else - { - $data = '80.00'; - $return = true; - } - } - else - { - $return = false; - $errormsg = 'Unbekannter Fehler'; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='saveanrechnung') - { - $anrechnung = new anrechnung(); - - $anrechnung->new = $_POST['neu']; - $anrechnung->anrechnung_id = $_POST['anrechnung_id']; - $anrechnung->prestudent_id = $_POST['prestudent_id']; - $anrechnung->lehrveranstaltung_id = $_POST['lehrveranstaltung_id']; - $anrechnung->begruendung_id = $_POST['begruendung_id']; - isset($_POST['lehrveranstaltung_id_kompatibel']) ? $anrechnung->lehrveranstaltung_id_kompatibel = $_POST['lehrveranstaltung_id_kompatibel'] : $anrechnung->lehrveranstaltung_id_kompatibel = null; - isset($_POST['notiz_id']) ? $anrechnung->notiz_id = $_POST['notiz_id'] : $anrechnung->notiz_id = null; - $anrechnung->genehmigt_von = $_POST['genehmigt_von']; - $anrechnung->insertvon = $user; - $anrechnung->updatevon = $user; - - if($anrechnung->save()) - { - $return = true; - } - else - { - $return = false; - $errormsg = $anrechnung->errormsg; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deleteanrechnung') - { - //Loescht eine Anrechunng - if(isset($_POST['anrechnung_id']) && is_numeric($_POST['anrechnung_id'])) - { - if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $anrechnung = new anrechnung(); - - if($anrechnung->delete($_POST['anrechnung_id'])) - { - $return = true; - } - else - { - $errormsg = $anrechnung->errormsg; - $return = false; - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineSave') // **** AufnahmeTermine **** // - { - //Speichert einen Aufnahmetermin einer Person - if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])) - { - $prestudent = new prestudent(); - if(!$prestudent->load($_POST['prestudent_id'])) - { - $return = false; - $error = true; - $errormsg = $prestudent->errormsg; - } - else - { - if(!$rechte->isBerechtigt('admin', $prestudent->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $rt_person_id = $_POST['rt_person_id']; - $rt_id = $_POST['rt_id']; - $person_id = $_POST['person_id']; - if($person_id=='') - $person_id=$prestudent->person_id; - $punkte = str_replace(',','.',$_POST['punkte']); - $teilgenommen = ($_POST['teilgenommen']=='true'?true:false); - $anmeldedatum = $_POST['anmeldedatum']; - $studienplan_id = $_POST['studienplan_id']; - - $reihungstest = new reihungstest(); - if($rt_person_id!='') - { - $reihungstest->loadReihungstestPerson($rt_person_id); - } - else - { - $reihungstest->new=true; - } - - $warnung_zu_viele_teilnehmer = false; - if($reihungstest->reihungstest_id != $rt_id) - { - // Wenn ein neuer Reihungstesttermin ausgewählt wird, dann wird geprueft ob - // noch genuegend Platz vorhanden ist. - $rt_help = new reihungstest(); - $aktuelle_anzahl = $rt_help->getTeilnehmerAnzahl($rt_id); - $rt_help->load($rt_id); - $max_teilnehmer = $rt_help->max_teilnehmer; - if($max_teilnehmer == '') - { - // Wenn keine Teilnehmer eingetragen sind, dann schauen welche Raeume zugeteilt - // sind und wie viel Platz dort ist - $max_teilnehmer = $rt_help->getPlatzAnzahlRaum($rt_id); - } - if($max_teilnehmer!='' && $aktuelle_anzahl >= $max_teilnehmer) - $warnung_zu_viele_teilnehmer = true; - } - $reihungstest->reihungstest_id = $rt_id; - $reihungstest->person_id = $person_id; - $reihungstest->punkte = $punkte; - $reihungstest->teilgenommen = $teilgenommen; - $reihungstest->anmeldedatum = $anmeldedatum; - $reihungstest->studienplan_id = $studienplan_id; - - if($reihungstest->savePersonReihungstest()) - { - $return = true; - $error = false; - $errormsg = 'Erfolgreich gespeichert'; - $data = $reihungstest->rt_person_id; - if($warnung_zu_viele_teilnehmer) - { - $return = false; - $error = true; - $errormsg = 'Achtung - die Maximalanzahl der Teilnehmer wurde überschritten;'. - ' Prüfen Sie ob genug Platz zur Verfügung steht - Zuteilung wurde erfolgreich gespeichert'; - } - } - else - { - $return = false; - $error = true; - $errormsg = $reihungstest->errormsg; - } - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineDelete') - { - //Loescht einen Aufnahmetermin einer Person - if(isset($_POST['rt_person_id']) && is_numeric($_POST['rt_person_id'])) - { - $rt_person_id = $_POST['rt_person_id']; - $reihungstest = new reihungstest(); - if(!$reihungstest->loadReihungstestPerson($rt_person_id)) - { - $return = false; - $error = true; - $errormsg = $reihungstest->errormsg; - } - else - { - $prestudent = new prestudent(); - if(!$prestudent->getPrestudenten($reihungstest->person_id)) - { - $return = false; - $error = true; - $errormsg = $prestudent->errormsg; - } - else - { - $berechtigt = false; - foreach($prestudent->result as $row_prest) - { - if($rechte->isBerechtigt('admin', $row_prest->studiengang_kz, 'suid') || $rechte->isBerechtigt('assistenz', $row_prest->studiengang_kz, 'suid')) - { - $berechtigt = true; - break; - } - } - - if(!$berechtigt) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $reihungstest = new reihungstest(); - - if($reihungstest->deletePersonReihungstest($rt_person_id)) - { - $return = true; - $error = false; - $errormsg = 'Erfolgreich geloescht'; - } - else - { - $return = false; - $error = true; - $errormsg = $reihungstest->errormsg; - } - } - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineSaveGesamtpunkte') - { - //Speichert einen Aufnahmetermin einer Person - if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])) - { - $prestudent = new prestudent(); - if(!$prestudent->load($_POST['prestudent_id'])) - { - $return = false; - $error = true; - $errormsg = $prestudent->errormsg; - } - else - { - if(!$rechte->isBerechtigt('admin', $prestudent->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $punkte = str_replace(',','.',$_POST['punkte']); - $reihungstestangetreten = ($_POST['reihungstestangetreten']=='true'?true:false); - $prestudent->punkte = $punkte; - $prestudent->reihungstestangetreten = $reihungstestangetreten; - $prestudent->aufnahmegruppe_kurzbz = $_POST['aufnahmegruppe_kurzbz']; - $prestudent->new=false; - - if($prestudent->save()) - { - $return = true; - $error = false; - $errormsg = 'Erfolgreich gespeichert'; - } - else - { - $return = false; - $error = true; - $errormsg = $reihungstest->errormsg; - } - } - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineBerechneGesamtpunkte') - { - //Speichert einen Aufnahmetermin einer Person - if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])) - { - $prestudent = new prestudent(); - if(!$prestudent->load($_POST['prestudent_id'])) - { - $return = false; - $error = true; - $errormsg = $prestudent->errormsg; - } - else - { - if(!$rechte->isBerechtigt('admin', $prestudent->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'suid')) - { - $return = false; - $error = true; - } - else - { - $gesamtpunkte_arr = array(); - $reihungstest = new reihungstest(); - if($reihungstest->getReihungstestPerson($prestudent->person_id)) - { - foreach($reihungstest->result as $row) - { - $studienplan = new studienplan(); - if($studienplan->loadStudienplan($row->studienplan_id)) - { - $studienordnung = new studienordnung(); - if($studienordnung->loadStudienordnung($studienplan->studienordnung_id)) - { - if($studienordnung->studiengang_kz == $prestudent->studiengang_kz) - { - $rt_obj = new reihungstest(); - $rt_obj->load($row->reihungstest_id); - if(!isset($gesamtpunkte_arr[$rt_obj->studiensemester_kurzbz])) - $gesamtpunkte_arr[$rt_obj->studiensemester_kurzbz]=0; - $gesamtpunkte_arr[$rt_obj->studiensemester_kurzbz] += $row->punkte; - } - } - else - { - $return = false; - $errormsg = $studienordnung->errormsg; - $error = true; - } - } - else - { - $return = false; - $errormsg = $studienplan->errormsg; - $error = true; - } - } - - if(!$error) - { - if(count(array_keys($gesamtpunkte_arr))>0) - { - $studiensemester = new studiensemester(); - $stsem = $studiensemester->getYoungestFromArray(array_keys($gesamtpunkte_arr)); - $gesamtpunkte = $gesamtpunkte_arr[$stsem]; - } - else - $gesamtpunkte = '0'; - $return = true; - $error = false; - $data = $gesamtpunkte; - $errormsg = 'Erfolgreich gespeichert'; - } - } - else - { - $return = false; - $error = true; - $errormsg = $reihungstest->errormsg; - } - } - } - } - else - { - $return = false; - $error = true; - $errormsg = 'Falsche Parameteruebergabe'; - } - } - elseif(isset($_POST['type']) && $_POST['type']=='savemobilitaet') - { - // Speichert Mobilitaet/Gemeinsames Studium - $prestudent_id = $_POST['prestudent_id']; - $prestudent_obj = new prestudent(); - $prestudent_obj->load($prestudent_id); - - if(!$rechte->isBerechtigt('student/stammdaten', $prestudent_obj->studiengang_kz, 'suid')) - { - $return = false; - $error = true; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - $mob = new mobilitaet(); - - $error = false; - if(isset($_POST['mobilitaet_id'])) - { - $mobilitaet_id = $_POST['mobilitaet_id']; - if(!$mob->load($mobilitaet_id)) - { - $error=true; - $errormsg = $mob->errormsg; - } - } - else - { - $mob->new = true; - $mob->inservon = $user; - } - - if(isset($_POST['studiensemester_kurzbz']) - && isset($_POST['mobilitaetsprogramm_code']) - && isset($_POST['gsprogramm_id']) - && isset($_POST['mobilitaetstyp_kurzbz']) - && isset($_POST['firma_id']) - && isset($_POST['status_kurzbz']) - && isset($_POST['ausbildungssemester'])) - { - $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; - $mobilitaetsprogramm_code = $_POST['mobilitaetsprogramm_code']; - $gsprogramm_id = $_POST['gsprogramm_id']; - $mobilitaetstyp_kurzbz = $_POST['mobilitaetstyp_kurzbz']; - $firma_id = $_POST['firma_id']; - $status_kurzbz = $_POST['status_kurzbz']; - $ausbildungssemester = $_POST['ausbildungssemester']; - } - else - { - $error = true; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - $return = false; - } - - if(!$error) - { - $mob->prestudent_id = $prestudent_id; - $mob->studiensemester_kurzbz = $studiensemester_kurzbz; - $mob->mobilitaetsprogramm_code = $mobilitaetsprogramm_code; - $mob->gsprogramm_id = $gsprogramm_id; - $mob->mobilitaetstyp_kurzbz = $mobilitaetstyp_kurzbz; - $mob->firma_id = $firma_id; - $mob->status_kurzbz = $status_kurzbz; - $mob->ausbildungssemester = $ausbildungssemester; - $mob->updatevon = $user; - - if($mob->save()) - { - $return = true; - $data = $mob->mobilitaet_id; - } - else - { - $return = false; - $error = true; - $errormsg = $mob->errormsg; - } - } - else - { - $return = false; - } - } - } - elseif(isset($_POST['type']) && $_POST['type']=='deletemobilitaet') - { - $mobilitaet_id = $_POST['mobilitaet_id']; - $mob = new mobilitaet(); - if($mob->load($mobilitaet_id)) - { - $prestudent = new prestudent(); - if($prestudent->load($mob->prestudent_id)) - { - if(!$rechte->isBerechtigt('student/stammdaten',$prestudent->studiengang_kz,'suid')) - { - $error = true; - $return = false; - $errormsg = 'Sie haben keine Berechtigung'; - } - else - { - if($mob->delete($mobilitaet_id)) - { - $return = true; - } - else - { - $errormsg = $mob->errormsg; - $return = false; - } - } - } - else - { - $error = true; - $return = false; - $errormsg = $prestudent->errormsg; - } - } - else - { - $return = false; - $errormsg = 'Fehlerhafte Parameteruebergabe'; - $errormsg = $mob->errormsg; - } - } - else - { - $return = false; - $errormsg = 'Unkown type: "'.$db->convert_html_chars($_POST['type']).'"'; - $data = ''; - } -} -echo ' - - - - - '.($return?'true':'false').' - - - - - - -'; -?> +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +// **************************************** +// * Insert/Update/Delete +// * der Studenten +// * +// * Script sorgt fuer den Datenbanzugriff +// * fuer das XUL - Studenten-Modul +// * +// **************************************** + +require_once('../../config/vilesci.config.inc.php'); +require_once('../../config/global.config.inc.php'); +require_once('../../include/'.EXT_FKT_PATH.'/generateuid.inc.php'); +require_once('../../include/'.EXT_FKT_PATH.'/generatematrikelnr.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/benutzergruppe.class.php'); +require_once('../../include/log.class.php'); +require_once('../../include/person.class.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/student.class.php'); +require_once('../../include/prestudent.class.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/akte.class.php'); +require_once('../../include/konto.class.php'); +require_once('../../include/dokument.class.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/betriebsmittel.class.php'); +require_once('../../include/betriebsmittelperson.class.php'); +require_once('../../include/bisio.class.php'); +require_once('../../include/zeugnisnote.class.php'); +require_once('../../include/lvgesamtnote.class.php'); +require_once('../../include/pruefung.class.php'); +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'); +require_once('../../include/datum.class.php'); +require_once('../../include/pruefling.class.php'); +require_once('../../include/mail.class.php'); +require_once('../../include/kontakt.class.php'); +require_once('../../include/dms.class.php'); +require_once('../../include/notenschluessel.class.php'); +require_once('../../include/anrechnung.class.php'); +require_once('../../include/lehrveranstaltung.class.php'); +require_once('../../include/anwesenheit.class.php'); +require_once('../../include/benutzerfunktion.class.php'); +require_once('../../include/note.class.php'); +require_once('../../include/standort.class.php'); +require_once('../../include/adresse.class.php'); +require_once('../../include/reihungstest.class.php'); +require_once('../../include/studienplan.class.php'); +require_once('../../include/mobilitaet.class.php'); +require_once('../../include/studienordnung.class.php'); + +$user = get_uid(); +$db = new basis_db(); + +$return = false; +$errormsg = 'unknown'; +$warning = ''; +$data = ''; +$error = false; + +loadVariables($user); +//Berechtigungen laden +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('mitarbeiter')) +{ + $return = false; + $errormsg = 'Keine Berechtigung'; + $data = ''; + $error = true; +} + +// *** FUNKTIONEN *** + +// **** +// * Generiert die Matrikelnummer +// * FORMAT: 0710254001 +// * 07 = Jahr +// * 1/2/0 = WS/SS/Incomming +// * 0254 = Studiengangskennzahl vierstellig +// * 001 = Laufende Nummer +// **** +function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) +{ + $db = new basis_db(); + + $jahr = substr($studiensemester_kurzbz, 4); + $art = substr($studiensemester_kurzbz, 0, 2); + + if($studiengang_kz<0) + { + $studiengang_kz=abs($studiengang_kz); + //Lehrgang + switch($art) + { + case 'WS': $art = '3'; break; + case 'SS': $art = '4'; break; + default: $art = '0'; break; + } + } + else + { + //Studiengang + switch($art) + { + case 'WS': $art = '1'; break; + case 'SS': $art = '2'; break; + default: $art = '0'; break; + } + } + if($art=='2' || $art=='4') + $jahr = $jahr-1; + $matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz); + + $qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '$matrikelnummer%' ORDER BY matrikelnr DESC LIMIT 1"; + + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $max = substr($row->matrikelnr, (strlen(trim($row->matrikelnr))-3)); + } + else + $max = 0; + + $max += 1; + return $matrikelnummer.sprintf("%03d",$max); + } + else + { + return false; + } +} + +/** + * Wenn die Anwesenheit und einen bestimmten Prozentsatz faellt, wird ein Pruefungstermin abgezogen + * @param $studiensemester_kurzbz + * @param $student_uid + * @param $lehrveranstaltung_id + * @param $note + * @return null, error wird direkt in globale Variable geschrieben + */ +function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $note) +{ + global $return, $error, $errormsg; + + $db = new basis_db(); + $anwesenheit = new anwesenheit(); + $anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id); + + // Lehreinheit ermitteln + $error = false; + $qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung " + . "WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)." " + . "ORDER BY lehreinheit_id ASC " + . "LIMIT 1"; + + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $lehreinheit_id = $row->lehreinheit_id; + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; + } + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der Lehreinheit ID'; + } + + if(!$error) + { + $pruefung = new pruefung; + $pruefung->new = true; + $pruefung->student_uid = $student_uid; + $pruefung->lehreinheit_id = $lehreinheit_id; + $pruefung->datum = date("Y-m-d"); + + $stsem_obj = new studiensemester(); + $stsem_obj->load($studiensemester_kurzbz); + + // In Benutzerfunktion nachsehen ob eine Anwesenheitsbefreiung eingetragen ist + $benutzerfunktion = new benutzerfunktion(); + $benutzerfunktion->getBenutzerFunktionByUid($student_uid, 'awbefreit', $stsem_obj->start, $stsem_obj->ende); + + $anwesenheitsbefreit=false; + if(count($benutzerfunktion->result)>0) + $anwesenheitsbefreit=true; + + // Wenn nicht Anwesenheitsbefreit und Anwesenheit unter einem bestimmten Prozentsatz faellt dann wird ein + // Pruefungsantritt abgezogen + if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT && !$anwesenheitsbefreit) + { + // 1. Termin mit "nicht beurteilt" erstellen + $pruefung->pruefungstyp_kurzbz = "Termin1"; + $pruefung->note = 7; + if($pruefung->save()) + { + // 2. Termin mit Note erstellen + $pruefung->pruefungstyp_kurzbz = "Termin2"; + $pruefung->note = $note; + if($pruefung->save()) + { + $return = true; + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } + } + else + { + // 1. Termin mit Note erstellen + $pruefung->pruefungstyp_kurzbz = "Termin1"; + $pruefung->note = $note; + + if($pruefung->save()) + { + $return = true; + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } + } + } +} + +if(!$error) +{ + + if(isset($_POST['type']) && $_POST['type']=='savestudent') + { + 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(); + + if(!$student->load($_POST['uid'])) + { + $return = false; + $errormsg = 'Fehler beim Laden:'.$student->errormsg; + $error = true; + } + + if(!$error) + { + $student->uid = $_POST['uid']; + $student->anrede = $_POST['anrede']; + $student->titelpre = $_POST['titelpre']; + $student->titelpost = $_POST['titelpost']; + $student->vorname = $_POST['vorname']; + $student->vornamen = $_POST['vornamen']; + $student->nachname = $_POST['nachname']; + $student->gebdatum = $_POST['geburtsdatum']; + $student->gebort = $_POST['geburtsort']; + $student->gebzeit = $_POST['geburtszeit']; + $student->anmerkungen = $_POST['anmerkung']; + $student->homepage = $_POST['homepage']; + $student->matr_nr = $_POST['matr_nr']; + $student->svnr = $_POST['svnr']; + $student->ersatzkennzeichen = $_POST['ersatzkennzeichen']; + $student->familienstand = $_POST['familienstand']; + $student->geschlecht = $_POST['geschlecht']; + $student->bnaktiv = ($_POST['aktiv']=='true'?true:false); + $student->anzahlkinder = $_POST['anzahlderkinder']; + $student->staatsbuergerschaft = $_POST['staatsbuergerschaft']; + $student->geburtsnation = $_POST['geburtsnation']; + $student->sprache = $_POST['sprache']; + $student->matrikelnr = $_POST['matrikelnummer']; + $student->updateamum = date('Y-m-d H:i:s'); + $student->updatevon = $user; + + if($_POST['alias']!='') + { + if(checkalias($_POST['alias'])) + { + $student->alias = $_POST['alias']; + } + else + { + $error = true; + $return = false; + $errormsg = 'Alias ist ungueltig'; + } + } + else + $student->alias = ''; + + if(!$error) + { + $stsem = new studiensemester(); + $stsem_kurzbz = $stsem->getaktorNext(); + //Wenn das ausgewaehlte Semester das aktuelle ist, dann wird auch in der + //Tabelle Student der Stg/Semester/Verband/Gruppe geaendert. + //Sonst nur in der Tabelle Studentlehrverband + if($semester_aktuell == $stsem_kurzbz) + { + $student->studiengang_kz = $_POST['studiengang_kz']; + $student->semester = $_POST['semester']; + $student->verband = ($_POST['verband']==''?' ':$_POST['verband']); + $student->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); + } + + $student->new=false; + + $lehrverband = new lehrverband(); + if(!$lehrverband->exists($_POST['studiengang_kz'],$_POST['semester'],$_POST['verband'], $_POST['gruppe'])) + { + $errormsg = 'Die angegebene Lehrverbandsgruppe existiert nicht!'; + $return = false; + $error = true; + } + + if(!$error) + { + if($student->save()) + { + $student_lvb = new student(); + + // Studentlehrverband Eintrag nur Speichern, wenn der Student in diesem Studiensemester + // einen Status besitzt da es sonst beim Bearbeiten von alten Studenten immer in das + // entsprechende Studiensemester gewechselt werden muss. + $prestudentobj = new prestudent(); + $prestudentobj->getPrestudentRolle($student->prestudent_id, null, $semester_aktuell); + + if(count($prestudentobj->result)>0) + { + if($student_lvb->studentlehrverband_exists($_POST['uid'], $semester_aktuell)) + $student_lvb->new = false; + else + $student_lvb->new = true; + + $student_lvb->uid = $_POST['uid']; + $student_lvb->studiensemester_kurzbz = $semester_aktuell; + $student_lvb->studiengang_kz = $_POST['studiengang_kz']; + $student_lvb->semester = $_POST['semester']; + $student_lvb->verband = ($_POST['verband']==''?' ':$_POST['verband']); + $student_lvb->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); + $student_lvb->updateamum = date('Y-m-d H:i:s'); + $student_lvb->updatevon = $user; + + if($student_lvb->save_studentlehrverband()) + { + $return = true; + $error=false; + $data = $student->prestudent_id; + } + else + { + $error = true; + $errormsg = $student_lvb->errormsg; + $return = false; + } + } + else + { + $error = false; + $return = true; + $data = $student->prestudent_id; + } + } + else + { + $return = false; + $errormsg = $student->errormsg; + $error = true; + } + } + } + } + } + } + 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) + { + $person = new person(); + + if(!$person->load($_POST['person_id'])) + { + $return = false; + $errormsg = 'Fehler beim Laden:'.$person->errormsg; + $error = true; + } + + if(!$error) + { + $person->person_id = $_POST['person_id']; + $person->anrede = $_POST['anrede']; + $person->titelpre = $_POST['titelpre']; + $person->titelpost = $_POST['titelpost']; + $person->vorname = $_POST['vorname']; + $person->vornamen = $_POST['vornamen']; + $person->nachname = $_POST['nachname']; + $person->gebdatum = $_POST['geburtsdatum']; + $person->gebort = $_POST['geburtsort']; + $person->gebzeit = $_POST['geburtszeit']; + $person->anmerkungen = $_POST['anmerkung']; + $person->homepage = $_POST['homepage']; + $person->svnr = $_POST['svnr']; + $person->ersatzkennzeichen = $_POST['ersatzkennzeichen']; + $person->familienstand = $_POST['familienstand']; + $person->geschlecht = $_POST['geschlecht']; + //$person->aktiv = ($_POST['aktiv']=='true'?true:false); + $person->anzahlkinder = $_POST['anzahlderkinder']; + $person->staatsbuergerschaft = $_POST['staatsbuergerschaft']; + $person->geburtsnation = $_POST['geburtsnation']; + $person->sprache = $_POST['sprache']; + $person->matr_nr = $_POST['matr_nr']; + $person->updateamum = date('Y-m-d H:i:s'); + $person->updatevon = $user; + + $person->new=false; + + if(!$error) + { + if($person->save()) + { + $return = true; + $error=false; + $data = $person->person_id; + } + else + { + $return = false; + $errormsg = $person->errormsg; + $error = true; + } + } + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='saveprestudent') + { + //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(); + + if(!$prestudent->load($_POST['prestudent_id'])) + { + $return = false; + $errormsg = 'Fehler beim Laden:'.$prestudent->errormsg; + $error = true; + } + + if(!$error) + { + $prestudent->prestudent_id = $_POST['prestudent_id']; + $prestudent->aufmerksamdurch_kurzbz = $_POST['aufmerksamdurch_kurzbz']; + $prestudent->person_id = $_POST['person_id']; + $prestudent->studiengang_kz = $_POST['studiengang_kz']; + $prestudent->berufstaetigkeit_code = $_POST['berufstaetigkeit_code']; + $prestudent->ausbildungcode = $_POST['ausbildungcode']; + $prestudent->zgv_code = $_POST['zgv_code']; + $prestudent->zgvort = $_POST['zgvort']; + $prestudent->zgvdatum = $_POST['zgvdatum']; + $prestudent->zgvnation = $_POST['zgvnation']; + $prestudent->zgvmas_code = $_POST['zgvmas_code']; + $prestudent->zgvmaort = $_POST['zgvmaort']; + $prestudent->zgvmadatum = $_POST['zgvmadatum']; + $prestudent->zgvmanation = $_POST['zgvmanation']; + $prestudent->aufnahmeschluessel = $_POST['aufnahmeschluessel']; + $prestudent->facheinschlberuf = ($_POST['facheinschlberuf']=='true'?true:false); + $prestudent->bismelden = ($_POST['bismelden']=='true'?true:false); + $prestudent->dual = ($_POST['dual']=='true'?true:false); + $prestudent->anmerkung = $_POST['anmerkung']; + $prestudent->mentor = $_POST['mentor']; + $prestudent->gsstudientyp_kurzbz = $_POST['gsstudientyp_kurzbz']; + //$prestudent->insertamum = date('Y-m-d H:i:s'); + //$prestudent->insertvon = $user; + $prestudent->updateamum = date('Y-m-d H:i:s'); + $prestudent->updatevon = $user; + $prestudent->new=false; + + if(!$error) + { + if($prestudent->save()) + { + $return = true; + $error=false; + $data = $prestudent->prestudent_id; + } + else + { + $return = false; + $errormsg = $prestudent->errormsg; + $error = true; + } + } + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='addrolle') + { + //Prestudentrolle hinzufuegen + + if(!$error) + { + $prestudent_ids = explode(';', $_POST['prestudent_id']); + $errormsg=''; + $anzahl_fehler=0; + foreach($prestudent_ids as $prestudent_id) + { + $error = false; + if($prestudent_id!='') + { + $prestd = new prestudent(); + if(!$prestd->load($prestudent_id)) + { + $error = true; + $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Laden des Prestudenten"; + $anzahl_fehler++; + } + else + { + if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid')) + { + $error = true; + $errormsg .= "\n$prestd->vorname $prestd->nachname: Sie haben keine Schreibrechte fuer diesen Studiengang"; + $anzahl_fehler++; + } + } + + // Check ob Reihungstest berücksichtigt werden soll + // kann in Config abgestellt werden + if(REIHUNGSTEST_CHECK) + { + $reihungstestangetreten = $prestd->reihungstestangetreten; + + if($_POST['status_kurzbz']=='Bewerber' && !$reihungstestangetreten) + { + $error = true; + $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Person das Reihungstestverfahren abgeschlossen haben"; + $anzahl_fehler++; + } + } + + if(!defined("ZGV_CHECK") || ZGV_CHECK) + { + if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgv_code=='') + { + $error = true; + $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung eingetragen sein."; + $anzahl_fehler++; + } + } + + $stg_obj = new studiengang(); + $stg_obj->load($prestd->studiengang_kz); + if(!defined("ZGV_CHECK") || ZGV_CHECK) + { + if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgvmas_code=='' && $stg_obj->typ=='m') + { + $error = true; + $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung Master eingetragen sein."; + $anzahl_fehler++; + } + } + + if(!$error) + { + + if($prestd->getLastStatus($prestudent_id)) + { + if($_POST['status_kurzbz']=='Absolvent' || $_POST['status_kurzbz']=='Diplomand') + $studiensemester = $semester_aktuell; + else + $studiensemester = $prestd->studiensemester_kurzbz; + $hlp = new prestudent(); + + if($_POST['status_kurzbz']=='Student') + $sem=$_POST['semester']; + else + $sem=$prestd->ausbildungssemester; + + $hlp->getPrestudentRolle($prestudent_id, $_POST['status_kurzbz'], $studiensemester, "datum, insertamum", $sem); + if(count($hlp->result)>0) + { + $errormsg .= "\n$prestd->vorname $prestd->nachname: Diese Rolle ist bereits vorhanden"; + $anzahl_fehler++; + $return = false; + } + else + { + //Wenn der Status auf Aufgenommener oder Wartender geaendert wird, + //muss ein Bewerberstatus vorhanden sein + if($_POST['status_kurzbz']=='Aufgenommener' || $_POST['status_kurzbz']=='Wartender') + { + $qry = "SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND status_kurzbz='Bewerber'"; + if($result_bw = $db->db_query($qry)) + { + if($db->db_num_rows($result_bw)==0) + { + $return = false; + $error = true; + $errormsg .= "\n$prestd->vorname $prestd->nachname: Person muss zuerst zum Bewerber gemacht werden!"; + $anzahl_fehler++; + } + } + } + + if(!$error) + { + $prestd_neu = new prestudent(); + $prestd_neu->prestudent_id = $prestudent_id; + $prestd_neu->status_kurzbz = $_POST['status_kurzbz']; + $prestd_neu->studiensemester_kurzbz = $studiensemester; + $prestd_neu->datum = date('Y-m-d'); + $prestd_neu->ausbildungssemester = $sem; + $prestd_neu->orgform_kurzbz = $prestd->orgform_kurzbz; + $prestd_neu->studienplan_id = $prestd->studienplan_id; + $prestd_neu->insertamum = date('Y-m-d H:i:s'); + $prestd_neu->insertvon = $user; + $prestd_neu->bestaetigtam = date('Y-m-d'); + $prestd_neu->bestaetigtvon = $user; + if(isset($_POST['statusgrund_id'])) + $prestd_neu->statusgrund_id = $_POST['statusgrund_id']; + $prestd_neu->new = true; + + if($prestd_neu->save_rolle()) + { + // wenn kein fehler und status bewerber und "email senden an bewerber" eingestellt ist + if($_POST['status_kurzbz']=='Bewerber' && SEND_BEWERBER_INFOMAIL) + { + // hole Email Adresse + $kontakt = new kontakt(); + $kontakt->load_persKontakttyp($prestd->person_id, 'email'); + + // Wenn zumindest eine Email Adresse gefunden wurde + if(count($kontakt->result)>0) + { + $email = "Sehr geehrter Frau/Herr ".$prestd->vorname." ".$prestd->nachname.",

"; + + $email.= INFOMAIL_BEWERBER; + foreach($kontakt->result as $k) + { + $mail = new mail($k->kontakt, 'no-reply', 'Infomail', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); + + $mail->setHTMLContent($email); + if(!$mail->send()) + { + $errormsg= 'Fehler beim Senden des Mails!'; + $anzahl_fehler++; + } + } + } + } + + //Unterbrecher und Abbrecher werden ins 0. Semester verschoben + if($_POST['status_kurzbz']=='Unterbrecher' || $_POST['status_kurzbz']=='Abbrecher') + { + $student = new student(); + $uid = $student->getUid($prestudent_id); + $student->load($uid); + $student->studiensemester_kurzbz=$studiensemester; + $student->semester = '0'; + if($_POST['status_kurzbz']=='Abbrecher') + { + $student->verband='A'; + $student->gruppe=''; + } + if($_POST['status_kurzbz']=='Unterbrecher') + { + $student->verband='B'; + $student->gruppe=''; + } + + // noch nicht eingetragene Noten ergänzen + $noten = new zeugnisnote(); + $noten->getZeugnisnoten(null, $uid, $semester_aktuell); + foreach($noten->result as $obj) + { + if($obj->note == '') + { + $obj->note = 9; + $obj->save(true); + } + } + + //Nachschauen ob dieser Lehrverband schon existiert, falls nicht dann anlegen + $lehrverband = new lehrverband(); + if(!$lehrverband->exists($student->studiengang_kz, $student->semester, $student->verband, '')) + { + //Pruefen ob der uebergeordnete Lehrverband existiert, falls nicht dann anlegen + if(!$lehrverband->exists($student->studiengang_kz, $student->semester, '', '')) + { + $lehrverband->studiengang_kz = $student->studiengang_kz; + $lehrverband->semester = $student->semester; + $lehrverband->verband = ''; + $lehrverband->gruppe = ''; + $lehrverband->aktiv = true; + $lehrverband->bezeichnung = 'Ab-Unterbrecher'; + + $lehrverband->save(true); + } + + $lehrverband->studiengang_kz = $student->studiengang_kz; + $lehrverband->semester = $student->semester; + $lehrverband->verband = $student->verband; + $lehrverband->gruppe = ''; + $lehrverband->aktiv = true; + if($student->verband=='A') + $lehrverband->bezeichnung = 'Abbrecher'; + else + $lehrverband->bezeichnung = 'Unterbrecher'; + + $lehrverband->save(true); + } + $student->updatevon = $user; + $student->updateamum = date('Y-m-d H:i:s'); + //Student Speichern + $student->save(false, false); + //Studentlehrverband Eintrag Speichern + $student->save_studentlehrverband(false); + } + + //Wenn Unterbrecher zu Studenten werden, dann wird das Semester mituebergeben + //Verband und Gruppe wird entfernt. + if($_POST['status_kurzbz']=='Student') + { + $student = new student(); + $uid = $student->getUid($prestudent_id); + $student->load($uid); + $student->studiensemester_kurzbz=$semester_aktuell; + $student->semester = $_POST['semester']; + $student->verband = ''; + $student->gruppe = ''; + $student->save(false, false); + $student->save_studentlehrverband(false); + //Aktiv Status setzen + $benutzer = new benutzer(); + if($benutzer->load($uid)) + { + $benutzer->updateamum = date('Y-m-d H:i:s'); + $benutzer->updatevon = $user; + $benutzer->bnaktiv=true; + $benutzer->save(false, false); + } + } + + //bei Abbrechern und Absolventen wird der Aktiv Status auf false gesetzt + if($_POST['status_kurzbz']=='Abbrecher' || $_POST['status_kurzbz']=='Absolvent') + { + $student = new student(); + $uid = $student->getUid($prestudent_id); + + $benutzer = new benutzer(); + if($benutzer->load($uid)) + { + $benutzer->updateamum = date('Y-m-d H:i:s'); + $benutzer->updatevon = $user; + $benutzer->bnaktiv=false; + $benutzer->save(false, false); + } + } + $return = true; + } + else + { + $return = false; + $errormsg = "\n$prestd->vorname $prestd->nachname: ".$prestd_neu->errormsg; + $anzahl_fehler++; + } + } + } + } + else + { + $return = false; + $errormsg .= "\n$prestd->vorname $prestd->nachname: Es ist keine Rolle fuer diesen Prestudent vorhanden"; + $anzahl_fehler++; + } + } + } + } + + if($anzahl_fehler>0) + { + $return = false; + $errormsg = "Es sind $anzahl_fehler Fehler aufgetreten: ".$errormsg; + } + else + { + $return = true; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deleterolle') + { + //Loescht eine Prestudentrolle + $deletePrestudent = false; + + if(isset($_POST['studiensemester_kurzbz']) && isset($_POST['status_kurzbz']) && + isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']) && + isset($_POST['ausbildungssemester']) && is_numeric($_POST['ausbildungssemester'])) + { + if($_POST['status_kurzbz']=='Student' && !$rechte->isBerechtigt('admin', null, 'suid')) + { + $return = false; + $errormsg = 'Studentenrolle kann nur durch den Administrator geloescht werden'; + } + else + { + $qry = "SELECT count(*) as anzahl FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER); + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + // Die letzte Rolle darf nur durch einen Administrator geloescht werden. Danach wird auch der PreStudent-Eintrag geloescht + if($row->anzahl<=1) + { + $deletePrestudent = true; + if (!$rechte->isBerechtigt('admin', null, 'suid')) + { + $return = false; + $errormsg = 'Die letzte Rolle kann nur durch den Administrator geloescht werden'; + $error = true; + } + } + } + else + { + $return = false; + $errormsg = 'Fehler beim Ermitteln der Rollen'; + $error = true; + } + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Ermitteln der Rollen'; + } + + if(!$error) + { + $rolle = new prestudent(); + if($rolle->load_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'])) + { + if($rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') || $rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + if($rolle->delete_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'])) + { + $log_id = $rolle->log_id; + $return = true; + // Wenn in diesem Semester kein Status mehr vorhanden ist, + // dann wird auch der Studentlehrverband eintrag entfernt + if($rolle->getLastStatus($_POST['prestudent_id'],$_POST['studiensemester_kurzbz'])===false) + { + if($return) + { + $student = new student(); + $temp_uid = $student->getUid($rolle->prestudent_id); + if(!$student->delete_studentLehrverband($temp_uid, $_POST['studiengang_kz'], $rolle->studiensemester_kurzbz, $rolle->ausbildungssemester)) + { + $return = false; + $errormsg = "Fehler beim Löschen der Lehrverbandszuordnung."; + } + } + } + // Wenn kein Prestudent-Eintrag mehr vorhanden ist, wird der ganze Prestudent-Datensatz geloescht + if ($deletePrestudent == true) + { + $prestudent = new prestudent(); + if(!$prestudent->deletePrestudent($_POST['prestudent_id'])) + { + $return = false; + $errormsg = "Fehler beim Löschen des Prestudenten."; + $log = new log(); + $log->undo($log_id); + } + } + } + else + { + $return = false; + $errormsg = $rolle->errormsg; + } + } + else + { + $return = false; + $errormsg = 'Sie haben keine Berechtigung zum Loeschen dieser Rolle'; + } + } + else + { + $return = false; + $errormsg = $rolle->errormsg; + } + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='returnDeletePrestudent') + { + //Prueft, wie viele Prestudentrolle-Eintraege noch vorhanden sind und gibt diese Anzahl als Wert zurueck + + if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])) + { + $qry = "SELECT count(*) as anzahl FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER); + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $return = true; + $data = $row->anzahl; + } + else + { + $return = false; + $errormsg = 'Fehler beim Zaehlen der Rollen'; + $error = true; + } + } + else + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Zaehlen der Rollen'; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='bestaetigerolle') + { + //Bestaetigt eine Prestudentrolle + + if(isset($_POST['studiensemester_kurzbz']) && isset($_POST['status_kurzbz']) && + isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']) && + isset($_POST['ausbildungssemester']) && is_numeric($_POST['ausbildungssemester'])) + { + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $errormsg = 'keine Berechtigung'; + } + else + { + $rolle = new prestudent(); + if($rolle->load_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'])) + { + if($rolle->bestaetige_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester'],$user)) + { + // Message verschicken + $prestudent = new prestudent(); + $prestudent->load($_POST['prestudent_id']); + + $url =APP_ROOT.'index.ci.php/api/v1/system/Message/MessageVorlage'; + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL,$url); + curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); + + $header=array(); + $auth = base64_encode(FHC_REST_USER.':'.FHC_REST_PASSWORD); + $header[]="Authorization: Basic $auth"; + $header[]='FHC-API-KEY:'.FHC_REST_API_KEY; + + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_HTTPHEADER, $header); + $studiengang = new studiengang(); + $studiengang->load($prestudent->studiengang_kz); + $studiengang->getAllTypes(); + + $orgform=''; + if($rolle->studienplan_id!='') + { + $studienplan = new studienplan(); + $studienplan->loadStudienplan($rolle->studienplan_id); + $orgform = $studienplan->orgform_kurzbz; + } + else + $orgform = $rolle->orgform_kurzbz; + $curl_post_data = array( + "sender_id" => 1, // TODO + "receiver_id" => $prestudent->person_id, + "oe_kurzbz" => $studiengang->oe_kurzbz, + "vorlage_kurzbz" => 'MailStatConfirm'.$_POST['status_kurzbz'], + "data" => array( + 'anrede'=>$prestudent->anrede, + 'vorname'=>$prestudent->vorname, + 'nachname'=>$prestudent->nachname, + 'typ'=>$studiengang->studiengang_typ_arr[$studiengang->typ], + 'studiengang'=>$studiengang->bezeichnung, + 'orgform'=>$orgform, + 'stgMail'=>$studiengang->email + ) + ); + + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($curl_post_data)); + + $result = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + $jsonresult = json_decode($result); + if(isset($jsonresult->error) && $jsonresult->error==1) + { + $return = false; + $errormsg = $jsonresult->retval; + } + else + { + $return = true; + } + } + else + { + $return = false; + $errormsg = $rolle->errormsg; + } + } + else + { + $return = false; + $errormsg = $rolle->errormsg; + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='saverolle') + { + //Prestudentrolle speichern + if(!$error) + { + if(isset($_POST['prestudent_id'])) + { + $rolle = new prestudent(); + if(!$rolle->load($_POST['prestudent_id'])) + { + $error = true; + $errormsg = 'Prestudent wurde nicht gefunden'; + } + 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'; + } + } + + $rolle = new prestudent(); + $rolle->prestudent_id = $_POST['prestudent_id']; + + if(!$error) + { + if(($_POST['studiensemester_old']=='') || (!$rolle->load_rolle($_POST['prestudent_id'], $_POST['status_kurzbz'], $_POST['studiensemester_old'], $_POST['ausbildungssemester_old']))) + { + $rolle->new = true; + $rolle->insertamum = date('Y-m-d H:i:s'); + $rolle->insertvon = $user; + $rolle->status_kurzbz = $_POST['status_kurzbz']; + $rolle->bestaetigtam = date('Y-m-d'); + $rolle->bestaetigtvon = $user; + + if($_POST['status_kurzbz']=='Student') + { + //Die Rolle Student darf nur eingefuegt werden, wenn schon eine Studentenrolle vorhanden ist + $qry = "SELECT count(*) as anzahl FROM public.tbl_student WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER); + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + if($row->anzahl==0) + { + $error = true; + $errormsg = 'Ein Studentenstatus kann hier nur hinzugefuegt werden wenn die Person bereits Student ist. Um einen Bewerber zum Studenten zu machen waehlen Sie bitte unter "Status aendern" den Punkt "Student".'; + $return = false; + } + } + } + } + } + else + { + $rolle->ausbildungssemester_old = $_POST['ausbildungssemester_old']; + $rolle->studiensemester_old = $_POST['studiensemester_old']; + $rolle->updateamum = date('Y-m-d H:i:s'); + $rolle->updatevon = $user; + $rolle->new = false; + } + + if(!$error) + { + // Bei Studenten wird der Studentlehrverband Eintrag angelegt/korrigiert + $student = new student(); + if($temp_uid = $student->getUid($rolle->prestudent_id)) + { + if(in_array($rolle->status_kurzbz,array('Student','Diplomand','Absovlent','Incoming','Abbrecher','Unterbrecher'))) + { + if($student->load($temp_uid)) + { + $stdsem_new = filter_input(INPUT_POST, "studiensemester_kurzbz"); + $semester = filter_input(INPUT_POST, "ausbildungssemester"); + + if($student->load_studentlehrverband($temp_uid, $stdsem_new)) + $student->new=false; + else + $student->new=true; + + $lehrverband = new lehrverband(); + if(!$lehrverband->exists($student->studiengang_kz, $semester, $student->verband, $student->gruppe)) + { + $student->studiensemester_kurzbz = $stdsem_new; + $return = false; + $errormsg = $student->errormsg; + } + else + { + $student->studiensemester_kurzbz = $stdsem_new; + $student->semester = $semester; + $student->updatevon = $user; + } + + $student->save_studentlehrverband(); + } + } + } + + $rolle->ausbildungssemester = $_POST['ausbildungssemester']; + $rolle->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + $rolle->datum = $_POST['datum']; + $rolle->bestaetigtam = $_POST['bestaetigtam']; + if($_POST['bestaetigtam']=='') + $rolle->bestaetigtvon = null; + + $rolle->orgform_kurzbz = $_POST['orgform_kurzbz']; + $rolle->studienplan_id = $_POST['studienplan_id']; + $rolle->anmerkung_status = $_POST['anmerkung']; + $rolle->rt_stufe = $_POST['rt_stufe']; + $rolle->statusgrund_id = $_POST['statusgrund_id']; + + if($rolle->save_rolle()) + $return = true; + else + { + $return = false; + $errormsg = $rolle->errormsg; + } + } + } + } + else + { + $return = false; + $errormsg = 'Prestudent_id muss angegeben werden'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='rolleVorruecken') + { + $errormsg=''; + //Prestudentrolle speichern + if(!$error) + { + if(isset($_POST['prestudent_id'])) + { + $rolle = new prestudent(); + if(!$rolle->load($_POST['prestudent_id'])) + { + $error = true; + $errormsg = 'Prestudent wurde nicht gefunden'; + } + 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'; + } + } + + $rolle = new prestudent(); + $rolle->prestudent_id = $_POST['prestudent_id']; + + if(!$error) + { + $studiensem = new studiensemester(); + $stdsem = $studiensem->getNextFrom($_POST["studiensemester_kurzbz"]); +// $stdsem = ($stdesm==false ? $_POST["studiensemester_kurzbz"]:$stdsem); + $semester = $_POST["ausbildungssemester"]; + $semester++; + if((!$rolle->load_rolle($_POST['prestudent_id'], $_POST['status_kurzbz'], $stdsem, $semester))) + { + $rolle->new = true; + $rolle->insertamum = date('Y-m-d H:i:s'); + $rolle->insertvon = $user; + $rolle->status_kurzbz = $_POST['status_kurzbz']; + $rolle->bestaetigtam = date('Y-m-d'); + $rolle->bestaetigtvon = $user; + + if($_POST['status_kurzbz']=='Student') + { + //Die Rolle Student darf nur eingefuegt werden, wenn schon eine Studentenrolle vorhanden ist + $qry = "SELECT count(*) as anzahl FROM public.tbl_student WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER); + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + if($row->anzahl==0) + { + $error = true; + $errormsg = 'Ein Studentenstatus kann hier nur hinzugefuegt werden wenn die Person bereits Student ist. Um einen Bewerber zum Studenten zu machen waehlen Sie bitte unter "Status aendern" den Punkt "Student".'; + $return = false; + } + } + } + } + } + else + { + //Rolle existiert bereits + $error = true; + $errormsg = "Rolle existiert bereits."; + $return = false; + } + + $student = new student(); + $temp_uid = $student->getUid($rolle->prestudent_id); + + if(!$error) + { + $student->load_studentlehrverband($temp_uid, $_POST["studiensemester_kurzbz"]); + $lehrverband = new lehrverband(); + if(!$lehrverband->exists($student->studiengang_kz, $semester, $student->verband, $student->gruppe)) + { + $student->studiensemester_kurzbz = $stdsem; + $return = false; + $errormsg = $student->errormsg; + } + else + { + $student->studiensemester_kurzbz = $stdsem; + $student->semester = $semester; + } + + $student->save_studentlehrverband(true); + $rolle->ausbildungssemester = $semester; + $rolle->studiensemester_kurzbz = $stdsem; + $rolle->datum = date("Y-m-d"); + $rolle->orgform_kurzbz = $_POST['orgform_kurzbz']; + $rolle->studienplan_id = $_POST['studienplan_id']; + + if($rolle->save_rolle()) + { + $return = true; + } + else + { + $return = false; + $errormsg = $rolle->errormsg; + } + } + } + } + else + { + $return = false; + $errormsg = 'Prestudent_id muss angegeben werden'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='BewerberZuStudent') + { + // macht aus einem Bewerber einen Studenten + // Voraussetzungen: + // - ZGV muss ausgefuellt sein (bei Master beide) + // - Kaution muss bezahlt sein + // - Rolle Bewerber muss existieren + // Wenn die Voraussetzungen erfuellt sind, dann wird die Matrikelnr + // und UID generiert und der Studentendatensatz angelegt. + $errormsg=''; + if(!$error) + { + if(isset($_POST['prestudent_id'])) + { + $prestudent_ids = explode(';', $_POST['prestudent_id']); + $anzahl_fehler=0; + foreach ($prestudent_ids as $prestudent_id) + { + $error = false; + if($prestudent_id!='') + { + + $prestd = new prestudent(); + if($prestd->load($prestudent_id)) + { + //Berechtigung pruefen + if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid')) + { + $error = true; + $errormsg .= "\n$prestd->vorname $prestd->nachname: Sie haben keine Schreibrechte fuer diesen Studiengang"; + $anzahl_fehler++; + } + + if(!$error) + { + if((!defined("ZGV_CHECK") && $prestd->zgv_code!='') || (defined("ZGV_CHECK") && ZGV_CHECK == false) || (defined("ZGV_CHECK") && ZGV_CHECK == true && $prestd->zgv_code!='')) + { + $stg = new studiengang(); + $stg->load($prestd->studiengang_kz); + + if((defined("ZGV_CHECK") && ZGV_CHECK == true && $stg->typ=='m' && $prestd->zgvmas_code=='') || (!defined("ZGV_CHECK") && $stg->typ=='m' && $prestd->zgvmas_code=='')) + { + $return = false; + $errormsg .= "\n$prestd->vorname $prestd->nachname: ZGV Master muss eingegeben werden"; + $anzahl_fehler++; + } + else + { + //Pruefen ob die Rolle Bewerber existiert + $hlp = new prestudent(); + $hlp->getPrestudentRolle($prestudent_id, 'Bewerber',null,'datum DESC, insertamum DESC'); + + if(count($hlp->result)>0) + { + $aufgenommener = new prestudent(); + $aufgenommener ->getPrestudentRolle($prestudent_id, 'Aufgenommener', null,'datum DESC, insertamum DESC'); + + if(count($aufgenommener->result)>0) + { + if($hlp->result[0]->studiensemester_kurzbz==$aufgenommener->result[0]->studiensemester_kurzbz + && $hlp->result[0]->ausbildungssemester==$aufgenommener->result[0]->ausbildungssemester) + { + //pruefen ob schon eine Studentenrolle Existiert + $hlp1 = new prestudent(); + $hlp1->getPrestudentRolle($prestudent_id, 'Student', $aufgenommener->result[0]->studiensemester_kurzbz); + if(count($hlp1->result)>0) + { + $return = false; + $errormsg .= "\n$prestd->vorname $prestd->nachname: Diese Person ist bereits Student"; + $anzahl_fehler++; + } + else + { + $db->db_query('BEGIN;'); + + //Matrikelnummer und UID generieren + $matrikelnr = generateMatrikelnummer($prestd->studiengang_kz, $aufgenommener->result[0]->studiensemester_kurzbz); + $jahr = substr($matrikelnr,0, 2); + $stg = $prestd->studiengang_kz; + $stg_obj = new studiengang(); + $stg_obj->load(ltrim($stg,'0')); + $uid = generateUID($stg_obj->kurzbz,$jahr,$stg_obj->typ,$matrikelnr); + $matrikelnummer = generateMatrikelnr($stg_obj->oe_kurzbz); + + if($matrikelnummer != null) + { + $qry = "UPDATE public.tbl_person SET matr_nr=".$db->db_add_param($matrikelnummer)." WHERE person_id=".$db->db_add_param($prestd->person_id, FHC_INTEGER).' AND matr_nr is null'; + $db->db_query($qry); + } + + if(defined('SET_UID_AS_PERSONENKENNZEICHEN') && SET_UID_AS_PERSONENKENNZEICHEN) + { + $matrikelnr = $uid; + } + + if(defined('SET_UID_AS_MATRIKELNUMMER') && SET_UID_AS_MATRIKELNUMMER) + { + $qry = "UPDATE public.tbl_person SET matr_nr=".$db->db_add_param($uid)." WHERE person_id=".$db->db_add_param($prestd->person_id, FHC_INTEGER).' AND matr_nr is null'; + $db->db_query($qry); + } + //Benutzerdatensatz anlegen + $benutzer = new benutzer(); + $benutzer->uid = $uid; + $benutzer->person_id = $prestd->person_id; + $benutzer->aktiv = true; + $benutzer->aktivierungscode = generateActivationKey(); + + $nachname_clean = mb_strtolower(convertProblemChars($prestd->nachname)); + $vorname_clean = mb_strtolower(convertProblemChars($prestd->vorname)); + $nachname_clean = str_replace(' ','_', $nachname_clean); + $vorname_clean = str_replace(' ','_', $vorname_clean); + + if(!defined('GENERATE_ALIAS_STUDENT') || GENERATE_ALIAS_STUDENT===true) + { + $qry_alias = "SELECT * FROM public.tbl_benutzer WHERE alias=LOWER(".$db->db_add_param($vorname_clean.".".$nachname_clean).")"; + $result_alias = $db->db_query($qry_alias); + if($db->db_num_rows($result_alias)==0) + $benutzer->alias = $vorname_clean.'.'.$nachname_clean; + else + $benutzer->alias = ''; + } + else + $benutzer->alias=''; + + $benutzer->insertamum = date('Y-m-d H:i:s'); + $benutzer->insertvon = $user; + + if($benutzer->save(true, false)) + { + //Studentendatensatz anlegen + $student = new student(); + $student->uid = $uid; + $student->matrikelnr = $matrikelnr; + $student->prestudent_id = $prestd->prestudent_id; + $student->studiengang_kz = $prestd->studiengang_kz; + $student->semester = $aufgenommener->result[0]->ausbildungssemester; + $student->verband = ' '; + $student->gruppe = ' '; + $student->insertamum = date('Y-m-d H:i:s'); + $student->insertvon = $user; + + //Pruefen ob der Lehrverband exisitert, falls nicht dann anlegen + $lehrverband = new lehrverband(); + if(!$lehrverband->load($student->studiengang_kz, $student->semester, $student->verband, $student->gruppe)) + { + $lehrverband->studiengang_kz = $student->studiengang_kz; + $lehrverband->semester = $student->semester; + $lehrverband->verband = $student->verband; + $lehrverband->gruppe = $student->gruppe; + $lehrverband->aktiv = true; + if(!$lehrverband->save(true)) + { + $error = true; + $errormsg = 'Fehler beim Speichern des Lehrverbandes'; + $return = false; + } + } + + if(!$error) + { + if($student->save(true, false)) + { + //Prestudentrolle hinzugfuegen + $rolle = new prestudent(); + $rolle->prestudent_id = $prestd->prestudent_id; + $rolle->status_kurzbz = 'Student'; + $rolle->studiensemester_kurzbz = $aufgenommener->result[0]->studiensemester_kurzbz; + $rolle->ausbildungssemester = $aufgenommener->result[0]->ausbildungssemester; + $rolle->orgform_kurzbz = $aufgenommener->result[0]->orgform_kurzbz; + $rolle->studienplan_id = $aufgenommener->result[0]->studienplan_id; + $rolle->datum = date('Y-m-d'); + $rolle->insertamum = date('Y-m-d H:i:s'); + $rolle->insertvon = $user; + $rolle->bestaetigtam = date('Y-m-d'); + $rolle->bestaetigtvon = $user; + if(isset($_POST['statusgrund_id'])) + $rolle->statusgrund_id = $_POST['statusgrund_id']; + $rolle->new = true; + + if($rolle->save_rolle()) + { + //StudentLehrverband anlegen + $studentlehrverband = new student(); + $studentlehrverband->uid = $uid; + $studentlehrverband->studiensemester_kurzbz = $aufgenommener->result[0]->studiensemester_kurzbz; + $studentlehrverband->studiengang_kz = $prestd->studiengang_kz; + $studentlehrverband->semester = $aufgenommener->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; + $db->db_query('COMMIT;'); + } + else + { + $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Studentlehrverbandes: ".$studentlehrverband->errormsg; + $return = false; + $anzahl_fehler++; + $db->db_query('ROLLBACK;'); + } + } + else + { + $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Rolle: ".$rolle->errormsg; + $return = false; + $anzahl_fehler++; + $db->db_query('ROLLBACK;'); + } + } + else + { + $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Studenten: ".$student->errormsg; + $return = false; + $anzahl_fehler++; + $db->db_query('ROLLBACK;'); + } + } + } + else + { + $errormsg .= "\n$prestd->vorname $prestd->nachname $matrikelnr: Fehler beim Speichern des Benutzers: ".$benutzer->errormsg; + $return = false; + $anzahl_fehler++; + $db->db_query('ROLLBACK;'); + } + } + } + else + { + $return = false; + $errormsg .= "\n$prestd->vorname $prestd->nachname: Das Studiensemester oder Ausbildungsemester des Berwerberstatus und des Aufgenommenenstatus passen nicht überein"; + $anzahl_fehler++; + } + } + else + { + $return = false; + $errormsg .= "\n$prestd->vorname $prestd->nachname: Die Person muss zuerst Aufgenommener sein bevor Sie zum Studenten gemacht werden kann"; + $anzahl_fehler++; + } + } + else + { + $return = false; + $errormsg .= "\n$prestd->vorname $prestd->nachname: Die Person muss zuerst Bewerber sein bevor Sie zum Studenten gemacht werden kann"; + $anzahl_fehler++; + } + } + } + else + { + $return = false; + $errormsg .= "\n$prestd->vorname $prestd->nachname: ZGV muss eingegeben werden"; + $anzahl_fehler++; + } + } + } + else + { + $return = false; + $errormsg .= "\nPrestudent wurde nicht gefunden zu $prestudent_id"; + } + } + } + } + else + { + $return = false; + $errormsg = 'Prestudent_id muss angegeben werden'; + } + + if($anzahl_fehler>0) + { + $return = false; + $errormsg = "Es sind $anzahl_fehler Fehler aufgetreten: ".$errormsg; + } + else + { + $return = true; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='gruppenzuteilung') + { + if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz'])) + { + $gruppe = new gruppe(); + 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(); + + $uids = explode(';',$_POST['uid']); + $errormsg = ''; + foreach ($uids as $uid) + { + if($uid!='') + { + if($_POST['gruppe_kurzbz']!='') + { + //Zuteilung zu einer Spezialgruppe + + if(!$benutzergruppe->load($uid, $_POST['gruppe_kurzbz'])) + { + $benutzergruppe->uid = $uid; + $benutzergruppe->gruppe_kurzbz = $_POST['gruppe_kurzbz']; + $benutzergruppe->studiensemester_kurzbz = $semester_aktuell; + $benutzergruppe->insertamum = date('Y-m-d H:i:s'); + $benutzergruppe->insertvon = $user; + $benutzergruppe->new = true; + + if(!$benutzergruppe->save()) + { + $errormsg .= "$uid konnte nicht hinzugefuegt werden\n"; + } + } + else + $errormsg .= "Der Student $uid ist bereits in dieser Gruppe\n"; + } + else + { + //Zuteilung zu einer Lehrverbandsgruppe + $error = false; + $stsem = new studiensemester(); + $stsem_kurzbz = $stsem->getaktorNext(); + + //Schauen ob die Lehrverbandsgruppe existiert + $lehrverband = new lehrverband(); + if(!$lehrverband->exists($_POST['stg_kz'],$_POST['semester'],$_POST['verband'], $_POST['gruppe'])) + { + $errormsg .= 'Die angegebene Lehrverbandsgruppe existiert nicht!'; + $return = false; + $error = true; + } + + //Wenn das ausgewaehlte Semester das aktuelle ist, dann wird auch in der + //Tabelle Student der Stg/Semester/Verband/Gruppe geaendert. + //Sonst nur in der Tabelle Studentlehrverband + if($semester_aktuell == $stsem_kurzbz) + { + //Eintrag in der Tabelle Student aendern + $student = new student(); + + if(!$student->load($uid)) + { + $errormsg .= 'Fehler beim Laden des Studenten'; + $error = true; + $return = false; + } + + if($student->studiengang_kz!=$_POST['stg_kz']) + { + $errormsg.='Ein Student kann nicht in eine Lehrverbandsgruppe eines anderen Studienganges verschoben werden'; + $return = false; + $error = true; + } + + if(!$error) + { + $student->studiengang_kz = $_POST['stg_kz']; + $student->semester = $_POST['semester']; + $student->verband = ($_POST['verband']==''?' ':$_POST['verband']); + $student->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); + $student->new=false; + + if(!$student->save()) + { + $errormsg .= 'Fehler beim Speichern des Studenteneintrages'; + $return = false; + $error = true; + } + } + } + + if(!$error) + { + //Eintrag in der Tabelle Student aendern + $student = new student(); + + if(!$student->load($uid)) + { + $errormsg .= 'Fehler beim Laden des Studenten'; + $error = true; + $return = false; + } + + if($student->studiengang_kz!=$_POST['stg_kz']) + { + $errormsg.='Ein Student kann nicht in eine Lehrverbandsgruppe eines anderen Studienganges verschoben werden'; + $return = false; + $error = true; + } + + if(!$error) + { + //Eintrag in der Tabelle Studentlehrverband aendern + $student_lvb = new student(); + + if($student_lvb->studentlehrverband_exists($uid, $semester_aktuell)) + $student_lvb->new = false; + else + $student_lvb->new = true; + + $student_lvb->uid = $uid; + $student_lvb->studiensemester_kurzbz = $semester_aktuell; + $student_lvb->studiengang_kz = $_POST['stg_kz']; + $student_lvb->semester = $_POST['semester']; + $student_lvb->verband = ($_POST['verband']==''?' ':$_POST['verband']); + $student_lvb->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); + $student_lvb->updateamum = date('Y-m-d H:i:s'); + $student_lvb->updatevon = $user; + + if($student_lvb->save_studentlehrverband()) + { + $return = true; + $error=false; + } + else + { + $error = true; + $errormsg .= $student_lvb->errormsg; + $return = false; + } + } + } + } + } + } + if($errormsg=='') + $return = true; + else + $return = false; + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deleteGruppenzuteilung') + { + if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz'])) + { + $gruppe = new gruppe(); + if($gruppe->load($_POST['gruppe_kurzbz'])) + { + $uids = explode(';',$_POST['uid']); + $errormsg = ''; + foreach ($uids as $uid) + { + if($uid!='') + { + $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($uid); + if($result = $db->db_query($qry)) + { + if($row = $db->db_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(); + + 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; + } + else + { + $return = false; + $errormsg = "Gruppe wurde nicht gefunden"; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deleteAkte') + { + if(isset($_POST['akte_id']) && is_numeric($_POST['akte_id'])) + { + //Berechtigung pruefen + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + if(!$error) + { + $akte = new akte(); + + if($akte->delete($_POST['akte_id'])) + { + $return = true; + } + else + { + $return = false; + $errormsg = $akte->errormsg; + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'.$_POST['akte_id']; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='savebuchung') // ***** KONTO ***** + { + //Speichert eine Buchung + if(isset($_POST['buchungsnr']) && is_numeric($_POST['buchungsnr'])) + { + $buchung = new konto(); + + if($buchung->load($_POST['buchungsnr'])) + { + 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 + { + $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->studiengang_kz = $_POST['studiengang_kz']; + $buchung->credit_points = $_POST['credit_points']; + $buchung->new = false; + $buchung->updateamum = date('Y-m-d H:i:s'); + $buchung->updatevon = $user; + $buchung->anmerkung = $_POST['anmerkung']; + + if($buchung->save()) + { + $return = true; + } + else + { + $return = false; + $errormsg = 'Fehler beim Speichern:'.$buchung->errormsg; + } + } + } + else + { + $errormsg = 'Buchung wurde nicht gefunden:'.$_POST['buchungsnr']; + $return = false; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'.$_POST['buchungsnr']; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='savegegenbuchung') + { + //Speichert eine Buchung + if(isset($_POST['buchungsnr'])) + { + $bnr_arr = explode(';',$_POST['buchungsnr']); + $gegenbuchungsdatum = filter_input(INPUT_POST, "gegenbuchungsdatum"); + if(strlen($gegenbuchungsdatum) != 0) + { + $gegenbuchungsdatum = date("Y-m-d", strtotime($gegenbuchungsdatum)); + } + else + { + $gegenbuchungsdatum = date('Y-m-d'); + } + + $errormsg=''; + foreach ($bnr_arr as $buchungsnr) + { + if(is_numeric($buchungsnr)) + { + $buchung = new konto(); + + if($buchung->load($buchungsnr)) + { + //Berechtigung pruefen + if(!$rechte->isBerechtigt('assistenz',$buchung->studiengang_kz,'suid') && + !$rechte->isBerechtigt('admin',$buchung->studiengang_kz, 'suid')) + { + $error = true; + $return = false; + $errormsg = "\nSie haben keine Schreibrechte fuer diese Buchung"; + } + else + { + if($buchung->buchungsnr_verweis=='') + { + $kto = new konto(); + //$buchung->betrag*(-1); + $buchung->betrag = $kto->getDifferenz($buchungsnr); + $buchung->buchungsdatum = $gegenbuchungsdatum; + $buchung->mahnspanne = '0'; + $buchung->buchungsnr_verweis = $buchung->buchungsnr; + $buchung->new = true; + $buchung->insertamum = date('Y-m-d H:i:s'); + $buchung->insertvon = $user; + $buchung->anmerkung = ''; + + if($buchung->save()) + { + //$data = $buchung->buchungsnr; + $return = true; + } + else + { + $return = false; + $errormsg .= "\n".'Fehler beim Speichern:'.$buchung->errormsg; + } + } + else + { + $return = false; + $errormsg .= "\n".'Gegenbuchungen koennen nur auf die obersten Buchungen getaetigt werden'; + } + } + } + else + { + $errormsg .= "\n".'Buchung wurde nicht gefunden'; + $return = false; + } + } + if($errormsg!='') + { + $return = false; + } + else + { + $return = true; + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deletebuchung') + { + //Loescht eine Buchung + if(isset($_POST['buchungsnr']) && is_numeric($_POST['buchungsnr'])) + { + $buchung = new konto(); + + if($buchung->load($_POST['buchungsnr'])) + { + 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 wurde nicht gefunden'; + $return = false; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='neuebuchung') + { + //Speichert eine neue Buchung + //Gleichzeitiges speichern mehrerer Personen ist moeglich + //Personen werden durch ';' getrennt + $person_ids = explode(';',$_POST['person_ids']); + $errormsg = ''; + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + else + { + foreach ($person_ids as $person_id) + { + if($person_id!='') + { + $buchung = new konto(); + $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->credit_points = $_POST["credit_points"]; + $buchung->insertamum = date('Y-m-d H:i:s'); + $buchung->insertvon = $user; + $buchung->anmerkung = $_POST['anmerkung']; + $buchung->new = true; + + if($buchung->save()) + { + $data = $buchung->buchungsnr; + } + else + { + $errormsg .= "Fehler beim Speichern: $buchung->errormsg\n"; + } + } + } + } + if($errormsg=='') + $return = true; + else + $return = false; + } + elseif(isset($_POST['type']) && $_POST['type']=='dokumentprestudentadd') + { + //Speichert die Zuordnung von Dokumenten zu einem Prestudent + //Gleichzeitiges zuteilen mehrerer Dokumente auf einmal ist moeglich + //Dokumente werden durch ';' getrennt uebergeben + + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + else + { + $dokumente = explode(';',$_POST['dokumente']); + $errormsg = ''; + foreach ($dokumente as $dokument_kurzbz) + { + if($dokument_kurzbz!='') + { + $dok = new dokument(); + $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; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='dokumentprestudentDetailSave') + { + //Speichert die Zuordnung von Dokumenten zu einem Prestudent + //Gleichzeitiges zuteilen mehrerer Dokumente auf einmal ist moeglich + //Dokumente werden durch ';' getrennt uebergeben + + if(!$rechte->isBerechtigt('assistenz',null,'suid') && + !$rechte->isBerechtigt('admin',null, 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + else + { + $akte_id = $_POST['akte_id']; + $errormsg = ''; + $akte = new akte(); + if($akte->load($akte_id)) + { + $akte->new=false; + $akte->anmerkung_intern = $_POST['anmerkung_intern']; + $akte->titel_intern = $_POST['titel_intern']; + $akte->dokument_kurzbz = $_POST['dokument_kurzbz']; + + if(!$akte->save()) + { + $errormsg='Speichern fehlgeschlagen:'.$akte->errormsg; + } + } + + if($errormsg=='') + $return = true; + else + $return = false; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='dokumentprestudentDeleteDokument') + { + $prestudent_id = $_POST['prestudent_id']; + $prestudent = new prestudent(); + if($prestudent->load($prestudent_id)) + { + $studiengang = new studiengang(); + $studiengang->load($prestudent->studiengang_kz); + + if(!$rechte->isBerechtigt('assistenz',$studiengang->oe_kurzbz,'suid') && + !$rechte->isBerechtigt('admin',$studiengang->oe_kurzbz, 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + else + { + + $akte_id = $_POST['akte_id']; + $errormsg = ''; + $akte = new akte(); + if($akte->load($akte_id)) + { + if($akte->person_id==$prestudent->person_id) + { + if($akte->dms_id!='') + { + $dms = new dms(); + if($dms->load($akte->dms_id)) + { + if($akte->delete($akte_id)) + { + // Eintrag im DMS loeschen + if(!$dms->deleteDms($akte->dms_id)) + { + $error=true; + $errormsg='Fehler beim Loeschen des Dokuments'; + } + } + else + { + $error=true; + $errormsg='Fehler beim Loeschen der Akte'; + } + } + else + { + $error=true; + $errormsg='Fehler beim Laden des Dokuments'; + } + } + else + { + $error=true; + $errormsg='Dieses Dokument darf hier nicht geloescht werden'; + } + } + else + { + $error=true; + $errormsg='Akte und Prestudent passen nicht zusammen'; + } + } + + if($errormsg=='') + $return = true; + else + $return = false; + } + } + else + { + $errormsg='Prestudent konnte nicht geladen werden'; + $error=true; + $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 + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; + } + else + { + $dokumente = explode(';',$_POST['dokumente']); + $errormsg = ''; + foreach ($dokumente as $dokument_kurzbz) + { + if($dokument_kurzbz!='') + { + $dok = new dokument(); + if($dok->load($dokument_kurzbz, $_POST['prestudent_id'])) + { + if($dok->mitarbeiter_uid==$user || $rechte->isBerechtigt('student/dokumente',$_POST['studiengang_kz'], 'suid')) + { + 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 $dok->mitarbeiter_uid moeglich\n"; + } + } + else + { + $errormsg.="Dokumentenzuteilung existiert nicht: $dokument_kurzbz\n"; + } + } + } + if($errormsg=='') + $return = true; + else + $return = false; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deletebetriebsmittel') + { + //Loescht ein Betriebsmittel + //Wenn studiengang_kz uebergeben wird, dann handelt es sich um die Betriebsmittel eines Studenten + //Wenn studiengang_kz='' dann werden Mitarbeiterrechte benoetigt + //ToDo: hier sollte nicht der Studiengang uebergeben werden sonder aus der DB ermittelt werden ob es + //ein Student oder Mitarbeiter ist + if(($_POST['studiengang_kz']!='' && + !$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') && + !$rechte->isBerechtigt('basis/betriebsmittel',$_POST['studiengang_kz'], 'suid') + ) || + ($_POST['studiengang_kz']=='' && + !$rechte->isBerechtigt('admin', null, 'suid') && + !$rechte->isBerechtigt('mitarbeiter', null, 'suid') && + !$rechte->isBerechtigt('basis/betriebsmittel', null, 'suid') + )) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + if(isset($_POST['betriebsmittelperson_id']) && is_numeric($_POST['betriebsmittelperson_id'])) + { + $btm = new betriebsmittelperson(); + + if($btm->delete($_POST['betriebsmittelperson_id'])) + { + $return = true; + } + else + { + $errormsg = $btm->errormsg; + $return = false; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='savebetriebsmittel') + { + //Speichert eine Betriebsmittelzuordnung + //Wenn studiengang_kz uebergeben wird, dann handelt es sich um die Betriebsmittel eines Studenten + //Wenn studiengang_kz='' dann werden Mitarbeiterrechte benoetigt + //ToDo: hier sollte nicht der Studiengang uebergeben werden sonder aus der DB ermittelt werden ob es + //ein Student oder Mitarbeiter ist + if(($_POST['studiengang_kz']!='' && + !$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid') && + !$rechte->isBerechtigt('basis/betriebsmittel',$_POST['studiengang_kz'], 'suid') + ) || + ($_POST['studiengang_kz']=='' && + !$rechte->isBerechtigt('admin', null, 'suid') && + !$rechte->isBerechtigt('mitarbeiter', null, 'suid') && + !$rechte->isBerechtigt('basis/betriebsmittel', null, 'suid') + )) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $betriebsmittel_id = $_POST['betriebsmittel_id']; + $bm = new betriebsmittel(); + + // Wenn es kein vorhandenes Inventar ist, dann neu anlegen + if($_POST['betriebsmitteltyp']!='Inventar') + { + if($_POST['betriebsmitteltyp']=='Zutrittskarte') + $_POST['nummer']=$bm->transform_kartennummer($_POST['nummer']); + + //Das speichern von Zutrittskarten ohne Nummern verhindern + if($_POST['betriebsmitteltyp']=='Zutrittskarte' && $_POST['nummer']=='') + { + $error = true; + $return = false; + $errormsg = 'Eine Zutrittskarte muss eine Nummer haben. Um die Zuordnung zu dieser Karte zu loeschen entfernen Sie bitte den ganzen Datensatz'; + } + else + { + //Nachschauen ob dieses Betriebsmittel schon existiert + if($bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummer'])) + { + if(count($bm->result)>0) + { + //Wenn die Nummer gleich bleibt dann die alte ID verwenden da es + //unterschiedliche Schluessel gibt die die gleiche nummer haben ?!? + if($_POST['nummer']==$_POST['nummerold']) + { + $betriebsmittel_id = $_POST['betriebsmittel_id']; + } + else + $betriebsmittel_id = $bm->result[0]->betriebsmittel_id; + //Wenn ein Eintrag gefunden wurde, dann wird die Beschreibung aktualisiert + if($bm->load($betriebsmittel_id)) + { + $bm->beschreibung = $_POST['beschreibung']; + $bm->nummer = $_POST['nummer']; + $bm->nummer2 = $_POST['nummer2']; + if(!$bm->save(false)) + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Speichern des Betriebsmittels'; + } + } + 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->nummer2 = $_POST['nummer2']; + $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'; + } + } + + if($_POST['betriebsmitteltyp']=='Zutrittskarte') + { + //Bei Zutrittskarten schauen ob diese schon vergeben sind + $qry = "SELECT vorname, nachname, uid + FROM public.vw_betriebsmittelperson + WHERE betriebsmitteltyp='Zutrittskarte' AND + nummer='".$db->db_escape($_POST['nummer'])."'::varchar AND + person_id<>".$db->db_add_param($_POST['person_id'], FHC_INTEGER)." AND + retouram is null"; + if($result_bmp = $db->db_query($qry)) + { + if($db->db_num_rows($result_bmp)>0) + { + $row_bmp = $db->db_fetch_object($result_bmp); + $error = true; + $return = false; + $errormsg = "Diese Zutrittskarte ist bereits ausgegeben an: $row_bmp->vorname $row_bmp->nachname ($row_bmp->uid)"; + } + } + else + { + $error = true; + $return = false; + $errormsg = 'Fehler beim Laden der Zutrittskarte'; + } + } + } + } + } + + if(!$error) + { + //Zuordnung Betriebsmittel-Person anlegen + $bmp = new betriebsmittelperson(); + if($_POST['neu']!='true') + { + if($bmp->load($_POST['betriebsmittelperson_id'])) + { + $bmp->updateamum = date('Y-m-d H:i:s'); + $bmp->updatevon = $user; + $bmp->betriebsmittelperson_id = $_POST['betriebsmittelperson_id']; + $bmp->new = false; + } + else + { + $error = true; + $errormsg = "Zuordnung unbekannt:".$_POST['betriebsmittelperson_id']; + $return = false; + } + } + else + { + $bmp->insertamum = date('Y-m-d H:i:s'); + $bmp->insertvon = $user; + $bmp->new = true; + } + + 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->new) + $bmp->uid = $_POST['uid']; + + if($bmp->save()) + { + $return = true; + $data = $bmp->betriebsmittelperson_id; + } + else + { + $return = false; + $errormsg = $bmp->errormsg; + } + } + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deletebisio') + { + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + //Loescht einen BisIO Eintrag + if(isset($_POST['bisio_id']) && is_numeric($_POST['bisio_id'])) + { + $bisio = new bisio(); + + if($bisio->delete($_POST['bisio_id'])) + { + $return = true; + } + else + { + $errormsg = $bisio->errormsg; + $return = false; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='savebisio') + { + //Speichert einen BisIO Eintrag + if(!$rechte->isBerechtigt('assistenz',$_POST['studiengang_kz'],'suid') && + !$rechte->isBerechtigt('admin',$_POST['studiengang_kz'], 'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + + $bisio = new bisio(); + + if($_POST['neu']=='true') + { + $bisio->insertamum = date('Y-m-d H:i:s'); + $bisio->insertvon = $user; + $bisio->new = true; + } + else + { + 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->lehreinheit_id = $_POST['lehreinheit_id']; + $bisio->ort = $_POST['ort']; + $bisio->universitaet = $_POST['universitaet']; + $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']=='getnotenotenschluessel') + { + if(!$rechte->isBerechtigt('admin', null, 's') && !$rechte->isBerechtigt('assistenz', null, 's') && + !$rechte->isBerechtigt('student/noten', null, 's')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $punkte=$_POST['punkte']; + if(is_numeric($punkte)) + { + $lehrveranstaltung_id=$_POST['lehrveranstaltung_id']; + $studiensemester_kurzbz=$semester_aktuell; + + $notenschluessel = new notenschluessel(); + if(($note = $notenschluessel->getNote($punkte, $lehrveranstaltung_id, $studiensemester_kurzbz))!==false) + { + $return = true; + $error = false; + $data = $note; + } + else + { + $return = false; + $error = true; + $errormsg=$notenschluessel->errormsg; + } + } + else + { + $return = true; + $error = false; + $data = ''; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='savenote') + { + //Speichert einen Noteneintrag + + $noten = new zeugnisnote(); + $lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id'); + $student_uid = filter_input(INPUT_POST, 'student_uid'); + $studiensemester_kurzbz = filter_input(INPUT_POST, 'studiensemester_kurzbz'); + + if(!is_null($lehrveranstaltung_id) && !is_null($student_uid) && !is_null($studiensemester_kurzbz)) + { + //Berechtigung pruefen + $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($student_uid); + if($result = $db->db_query($qry)) + { + if($row = $db->db_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) + { + $lva = new lehrveranstaltung($lehrveranstaltung_id); + + if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') && !$rechte->isBerechtigt('admin', $stg_std, 'suid') && + !$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid') && !$rechte->isBerechtigt('assistenz', $stg_std, 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + + if($noten->load($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)) + { + $noten->new = false; + $noten->updateamum = date('Y-m-d H:i:s'); + $noten->updatevon = $user; + $log = new log(); + $log->executetime = date('Y-m-d H:i:s'); + $log->mitarbeiter_uid = $user; + $log->beschreibung = "Ändern der Note ".$noten->note." bei ".$noten->student_uid; + $log->sql = 'UPDATE lehre.tbl_zeugnisnote SET '. + 'note='.$db->db_add_param($noten->note).', '. + 'punkte='.$db->db_add_param($noten->punkte).','. + 'uebernahmedatum='.$db->db_add_param($noten->uebernahmedatum).', '. + 'benotungsdatum='.$db->db_add_param($noten->benotungsdatum).', '. + 'bemerkung='.$db->db_add_param($noten->bemerkung).', '. + 'updateamum= '.$db->db_add_param($noten->updateamum).', '. + 'updatevon='.$db->db_add_param($noten->updatevon).' '. + 'WHERE lehrveranstaltung_id='.$db->db_add_param($noten->lehrveranstaltung_id, FHC_INTEGER).' '. + 'AND student_uid='.$db->db_add_param($noten->student_uid).' '. + 'AND studiensemester_kurzbz='.$db->db_add_param($noten->studiensemester_kurzbz).';'; + $log->sqlundo = $noten->getUndo('update'); + $log->save(true); + } + 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(isset($_POST['punkte'])) + $noten->punkte=str_replace(',','.',$_POST['punkte']); + + if($noten->save()) + { + $return = true; + } + else + { + $errormsg = $noten->errormsg; + $return = false; + } + + if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true) + { + NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note); + } + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='movenote') + { + //Speichert einen LVGesamtNoten Eintrag in die Tbl Zeugnisnote + //Die Daten werden per POST uebermittelt. Es wird ein Feld Anzahl mituebergeben + //mit der Anzahl der Felder. Die Felder sind durchnummeriert zB lehreinheit_id_0, lehreinheit_id_1, ... + $errormsg = ''; + $angerechnet=false; + + for($i=0;$i<$_POST['anzahl'];$i++) + { + $lvgesamtnote = new lvgesamtnote(); + $zeugnisnote = new zeugnisnote(); + + //Berechtigung pruefen + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($_POST['lehrveranstaltung_id_'.$i], FHC_INTEGER); + if($result = $db->db_query($qry)) + { + if($row = $db->db_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'; + } + + $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($_POST['student_uid_'.$i]); + if($result = $db->db_query($qry)) + { + if($row = $db->db_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('student/noten', $stg_lva, 'suid') && !$rechte->isBerechtigt('student/noten', $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; + //Angerechnete Noten werden nicht ueberschrieben + if($zeugnisnote->note=='6') //Angerechnet + { + $angerechnet=true; + continue; + } + } + 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->punkte = $lvgesamtnote->punkte; + $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 + { + if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true) + { + NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note); + } + } + } + else + { + $errormsg .= "\nLvGesamtNote wurde nicht gefunden"; + } + } + } + } + if($angerechnet) + { + $errormsg.="\nAngerechnete Noten wurden nicht ueberschrieben"; + } + + if($errormsg=='') + $return = true; + else + $return = false; + } + elseif(isset($_POST['type']) && $_POST['type']=='importnoten') + { + //Importiert die Noten einer Lehrveranstaltung + //als Parameter wird die Matrikelnummer und die Note uebergeben + //Die Felder sind durchnummeriert zB matrikelnummer_0, matrikelnummer_1, ... + //Die Anzahl der Gesamten Daten wird auch als Parameter uebergeben + $errormsg = ''; + $angerechnet=false; + + $noten_anmerkung_arr=array(); + $note_obj = new note(); + $note_obj->getAll(); + foreach($note_obj->result as $row) + $noten_anmerkung_arr[$row->anmerkung]=$row->note; + + for($i=0;$i<$_POST['anzahl'];$i++) + { + if($_POST['matrikelnummer_'.$i]!='') + { + $zeugnisnote = new zeugnisnote(); + $error = false; + if(!is_numeric(trim($_POST['matrikelnummer_'.$i]))) + { + $error = true; + $errormsg = "\nMatrikelnummer ist ungueltig: ".$_POST['matrikelnummer_'.$i]; + } + if((isset($_POST['note_'.$i]) && !is_numeric($_POST['note_'.$i]) && !isset($noten_anmerkung_arr[$_POST['note_'.$i]]))) + { + $error = true; + $errormsg = "\nNote ist ungueltig: ".$_POST['note_'.$i]; + } + if(!$error) + { + $qry = "SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE trim(matrikelnr)=".$db->db_add_param(trim($_POST['matrikelnummer_'.$i])); + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $uid = $row->student_uid; + $stg_std = $row->studiengang_kz; + } + else + { + $error = true; + $errormsg.="\nMatrikelnummer ".$_POST['matrikelnummer_'.$i]." wurde nicht gefunden"; + } + } + else + { + $error = true; + $errormsg.="\nFehler beim Ermitteln der UID"; + } + + //Berechtigung pruefen + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($_POST['lehrveranstaltung_id'], FHC_INTEGER); + if($result = $db->db_query($qry)) + { + if($row = $db->db_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(!$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($zeugnisnote->load($_POST['lehrveranstaltung_id'], $uid, $semester_aktuell)) + { + $zeugnisnote->new = false; + $zeugnisnote->updateamum = date('Y-m-d H:i:s'); + $zeugnisnote->updatevon = $user; + //Angerechnete Noten werden nicht ueberschrieben + if($zeugnisnote->note=='6') //Angerechnet + { + $angerechnet=true; + continue; + } + } + 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; + } + + if(isset($_POST['note_'.$i])) + { + $zeugnisnote->note = $_POST['note_'.$i]; + $zeugnisnote->punkte = null; + // Wenn es nicht numerisch ist, dann nachsehen ob es eine anmerkung gibt die so heisst + // zB fuer met, nb, ar, etc + if(!is_numeric($zeugnisnote->note) && isset($noten_anmerkung_arr[$zeugnisnote->note])) + { + $zeugnisnote->note = $noten_anmerkung_arr[$zeugnisnote->note]; + } + } + elseif(isset($_POST['punkte_'.$i])) + { + $zeugnisnote->punkte=$_POST['punkte_'.$i]; + $zeugnisnote->punkte = str_replace(',','.', $zeugnisnote->punkte); + $notenschluessel = new notenschluessel(); + $note = $notenschluessel->getNote($zeugnisnote->punkte, $_POST['lehrveranstaltung_id'], $semester_aktuell); + $zeugnisnote->note = $note; + } + $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; + } + else + { + if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true) + { + NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note); + } + } + } + } + } + } + } + if($angerechnet) + { + $errormsg.="\nAngerechnete Noten wurden nicht ueberschrieben"; + } + + if($errormsg=='') + $return = true; + else + $return = false; + } + elseif(isset($_POST['type']) && $_POST['type']=='deletenote') + { + //Loescht einen Noteneintrag + + $noten = new zeugnisnote(); + $lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id'); + $student_uid = filter_input(INPUT_POST, 'student_uid'); + $studiensemester_kurzbz = filter_input(INPUT_POST, 'studiensemester_kurzbz'); + + if(!is_null($lehrveranstaltung_id) && !is_null($student_uid) && !is_null($studiensemester_kurzbz)) + { + //Berechtigung pruefen + $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER); + if($result = $db->db_query($qry)) + { + if($row = $db->db_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'; + } + + $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($student_uid); + if($result = $db->db_query($qry)) + { + if($row = $db->db_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 + { + $noten->load($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz); + if($noten->delete($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)) + { + $log = new log(); + $log->executetime = date('Y-m-d H:i:s'); + $log->mitarbeiter_uid = $user; + $log->beschreibung = "Löschen der Note ".$noten->note." bei ".$noten->student_uid; + $log->sql = "DELETE FROM lehre.tbl_zeugnisnote WHERE + lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER, false)." AND + student_uid=".$db->db_add_param($student_uid)." AND + studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";"; + $log->sqlundo = $noten->getUndo('insert'); + $log->save(true); + $return = true; + } + else + { + $return = false; + $errormsg = $noten->errormsg; + } + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deletepruefung') // **** PRUEFUNGEN **** // + { + //Loescht einen Pruefungs Eintrag + if(isset($_POST['pruefung_id']) && is_numeric($_POST['pruefung_id'])) + { + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $pruefung = new pruefung(); + + if($pruefung->delete($_POST['pruefung_id'])) + { + $return = true; + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='savepruefung') // **** PRUEFUNGEN **** // + { + $datum_obj = new datum(); + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $pruefung = new pruefung(); + + if($_POST['neu']=='false') + { + if($pruefung->load($_POST['pruefung_id'])) + { + $pruefung->new = false; + } + else + { + $error = true; + $return = false; + $errormsg = $pruefung->errormsg; + } + } + else + { + $pruefung->new = true; + $pruefung->insertamum = date('Y-m-d H:i:s'); + $pruefung->insertvon = $user; + } + + $db->db_query('BEGIN'); + + if($_POST['pruefungstyp_kurzbz']=='Termin2') + { + //Wenn ein 2. Termin angelegt wird, und kein 1. Termin vorhanden ist, + //dann wird auch ein 1. Termin angelegt mit der derzeitigen Zeugnisnote + $qry = "SELECT * FROM lehre.tbl_pruefung WHERE + student_uid=".$db->db_add_param($_POST['student_uid'])." AND + lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND + pruefungstyp_kurzbz='Termin1'"; + if($result = $db->db_query($qry)) + { + if($db->db_num_rows($result)==0) + { + $qry = "SELECT note,punkte, benotungsdatum FROM lehre.tbl_zeugnisnote JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE + student_uid=".$db->db_add_param($_POST['student_uid'])." AND + tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND + tbl_lehreinheit.studiensemester_kurzbz = tbl_zeugnisnote.studiensemester_kurzbz"; + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + //Wenn kein Ersttermin existiert, dann wird einer angelegt + $ersttermin = new pruefung(); + $ersttermin->new=true; + $ersttermin->insertamum = date('Y-m-d H:i:s'); + $ersttermin->insertvon = $user; + $ersttermin->lehreinheit_id = $_POST['lehreinheit_id']; + $ersttermin->student_uid = $_POST['student_uid']; + $ersttermin->mitarbeiter_uid = $_POST['mitarbeiter_uid']; + $ersttermin->note = $row->note; + $ersttermin->punkte = $row->punkte; + $ersttermin->pruefungstyp_kurzbz = 'Termin1'; + $ersttermin->datum = $row->benotungsdatum; + $ersttermin->anmerkung = ''; + + if(!$ersttermin->save()) + { + $error = true; + $return = false; + $errormsg = 'Fehler beim Anlegen des 1.Termin:'.$ersttermin->errormsg; + } + } + } + //Wenn keine Zeugnisnote vorhanden ist, dann wird kein + //1.Termin angelegt + } + } + else + { + $error = true; + $return = false; + $errormsg = 'Fehler beim Ermitteln des Ersttermines'; + } + + } + + if(!$error) + { + $pruefung->lehreinheit_id = $_POST['lehreinheit_id']; + $pruefung->student_uid = $_POST['student_uid']; + $pruefung->mitarbeiter_uid = $_POST['mitarbeiter_uid']; + $pruefung->note = $_POST['note']; + if(isset($_POST['punkte'])) + $pruefung->punkte = str_replace(',','.',$_POST['punkte']); + $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($pruefung->save()) + { + $return = true; + $data = $pruefung->pruefung_id; + //Zeugnisnote aktualisieren + $qry = "SELECT lehrveranstaltung_id, studiensemester_kurzbz FROM lehre.tbl_lehreinheit + WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER); + if($result_le = $db->db_query($qry)) + { + if($row_le = $db->db_fetch_object($result_le)) + { + $lehrveranstaltung_id = $row_le->lehrveranstaltung_id; + $studiensemester_kurzbz = $row_le->studiensemester_kurzbz; + } + else + { + $error = true; + $return = false; + $errormsg = 'Fehler beim Ermitteln der Lehrveranstaltung'; + } + } + else + { + $error = true; + $return = false; + $errormsg = 'Fehler beim Ermitteln der Lehrveranstaltung'; + } + + + if(!$error) + { + $zeugnisnote = new zeugnisnote(); + if($zeugnisnote->load($lehrveranstaltung_id, $_POST['student_uid'], $studiensemester_kurzbz)) + { + if($zeugnisnote->uebernahmedatum=='' || + ($datum_obj->mktime_fromtimestamp($zeugnisnote->benotungsdatum) > + $datum_obj->mktime_fromtimestamp($zeugnisnote->uebernahmedatum))) + $checkdatum = $zeugnisnote->benotungsdatum; + else + $checkdatum = $zeugnisnote->uebernahmedatum; + + if($datum_obj->mktime_fromtimestamp($checkdatum)>$datum_obj->mktime_fromdate($_POST['datum'])) + { + if($zeugnisnote->note!=$_POST['note']) + { + $error = true; + $return = false; + $errormsg = 'ACHTUNG! Diese Pruefungsnote wurde nicht ins Zeugnis uebernommen da die Zeugnisnote nach dem Pruefungsdatum veraendert wurde'; + } + } + else + { + $zeugnisnote->new = false; + } + } + else + { + $zeugnisnote->new = true; + $zeugnisnote->insertamum = date('Y-m-d H:i:s'); + $zeugnisnote->insertvon = $user; + } + + if(!$error) + { + $zeugnisnote->student_uid = $_POST['student_uid']; + $zeugnisnote->lehrveranstaltung_id = $lehrveranstaltung_id; + $zeugnisnote->studiensemester_kurzbz = $studiensemester_kurzbz; + $zeugnisnote->note = $_POST['note']; + if(isset($_POST['punkte'])) + $zeugnisnote->punkte = str_replace(',','.',$_POST['punkte']); + else + $zeugnisnote->punkte=''; + $zeugnisnote->uebernahmedatum = date('Y-m-d H:i:s'); + $zeugnisnote->benotungsdatum = date('Y-m-d',$datum_obj->mktime_fromdate($_POST['datum'])); + $zeugnisnote->updateamum = date('Y-m-d H:i:s'); + $zeugnisnote->updatevon = $user; + + if(!$zeugnisnote->save()) + { + $return = false; + $error = true; + $errormsg = 'Fehler beim Speichern der Zeungisnote:'.$zeugnisnote->errormsg; + $db->db_query('ROLLBACK'); + } + else + { + $db->db_query('COMMIT'); + } + } + else + { + //Kein Rollback damit die Pruefung gespeichert wird + //returnwert ist aber false damit die Meldung angezeigt wird, + //dass die Note nicht ins Zeugnis uebernommen wird + $db->db_query('COMMIT'); + } + } + else + { + $db->db_query('ROLLBACK'); + } + } + else + { + $return = false; + $errormsg = $pruefung->errormsg; + $db->db_query('ROLLBACK'); + } + } + else + { + $db->db_query('ROLLBACK'); + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='saveabschlusspruefung') // **** ABSCHLUSSPRUEFUNGEN **** // + { + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $pruefung = new abschlusspruefung(); + + if($_POST['neu']=='false') + { + if($pruefung->load($_POST['abschlusspruefung_id'])) + { + $pruefung->new = false; + } + else + { + $error = true; + $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->note = $_POST['notekommpruef']; + $pruefung->akadgrad_id = $_POST['akadgrad_id']; + $pruefung->pruefungstyp_kurzbz = $_POST['pruefungstyp_kurzbz']; + $pruefung->datum = $_POST['datum']; + $pruefung->uhrzeit = $_POST['uhrzeit']; + $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(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + if(isset($_POST['abschlusspruefung_id']) && is_numeric($_POST['abschlusspruefung_id'])) + { + $pruefung = new abschlusspruefung(); + + if($pruefung->delete($_POST['abschlusspruefung_id'])) + { + $return = true; + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='saveprojektarbeit') // **** Projektarbeit **** // + { + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $projektarbeit = new projektarbeit(); + + if($_POST['neu']=='false') + { + if($projektarbeit->load($_POST['projektarbeit_id'])) + { + $projektarbeit->new = false; + } + else + { + $error = true; + $return = false; + $errormsg = $projektarbeit->errormsg; + } + } + 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->titel_english = $_POST['titel_english']; + $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; + $projektarbeit->final = ($_POST['final']=='true'?true:false); + + if(!$error) + { + if($projektarbeit->save()) + { + $return = true; + $data = $projektarbeit->projektarbeit_id; + } + else + { + $return = false; + $errormsg = $projektarbeit->errormsg; + } + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deleteprojektarbeit') + { + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + //Loescht einen Projektarbeit Eintrag + if(isset($_POST['projektarbeit_id']) && is_numeric($_POST['projektarbeit_id'])) + { + $projektarbeit = new projektarbeit(); + + $qry = "SELECT count(*) as anzahl FROM lehre.tbl_projektbetreuer + WHERE projektarbeit_id=".$db->db_add_param($_POST['projektarbeit_id'], FHC_INTEGER); + + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + if($row->anzahl>0) + { + $errormsg = 'Bitte zuerst alle Betreuer loeschen'; + $return = false; + } + else + { + $qry = "SELECT count(*) as anzahl FROM campus.tbl_paabgabe + WHERE projektarbeit_id=".$db->db_add_param($_POST['projektarbeit_id'], FHC_INTEGER).";"; + + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + if($row->anzahl>0) + { + $errormsg = 'Diese Projektarbeit kann nicht gelöscht werden, da bereits AbgabeTermine bzw Abgaben vorhanden sind'; + $return = false; + } + else + { + 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 + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='saveprojektbetreuer') // **** Projektbetreuer **** // + { + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $projektbetreuer = new projektbetreuer(); + + if($_POST['neu']=='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 + { + 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') + { + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + //Loescht einen Projektbetreuer Eintrag + if(isset($_POST['person_id']) && is_numeric($_POST['person_id'])) + { + $projektbetreuer = new projektbetreuer(); + + if($projektbetreuer->delete($_POST['person_id'], $_POST['projektarbeit_id'], $_POST['betreuerart_kurzbz'])) + { + $return = true; + } + else + { + $errormsg = $projektbetreuer->errormsg; + $return = false; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='getprivatemailadress') + { + if(isset($_POST['person_ids'])) + { + $pers_arr = explode(';',$_POST['person_ids']); + $data=''; + $anz_error=0; + + foreach ($pers_arr as $person_id) + { + if(is_numeric($person_id)) + { + $qry = "SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' + AND person_id=".$db->db_add_param($person_id, FHC_INTEGER)." AND zustellung=true LIMIT 1"; + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + if($data!='') + $data.=$emailadressentrennzeichen.$row->kontakt; + else + $data = $row->kontakt; + } + else + { + $anz_error++; + } + } + } + } + if($data!='') + { + if($anz_error==0) + $return = true; + else + { + $return = false; + $errormsg = "Bei $anz_error Personen wurde keine Emailadresse gefunden!"; + } + } + else + { + $return = false; + $errormsg = 'Es wurde keine Privatadresse gefunden'; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='getReihungstestPunkte') + { + //Liefert die Reihungstestpunkte eines Prestudenten + if(isset($_POST['person_id']) && isset($_POST['reihungstest_id'])) + { + $pruefling = new pruefling(); + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $data = $pruefling->getReihungstestErgebnisPerson($_POST['person_id'], true, $_POST['reihungstest_id']); + else + $data = $pruefling->getReihungstestErgebnisPerson($_POST['person_id'], false, $_POST['reihungstest_id']); + + // Runden auf 2 Nachkommastellen + $data = number_format($data, 2, '.',''); + $return = true; + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='getstundensatz') + { + if(isset($_POST['person_id'])) + { + $qry = "SELECT stundensatz FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) + WHERE person_id=".$db->db_add_param($_POST['person_id'], FHC_INTEGER); + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $data = $row->stundensatz; + $return = true; + } + else + { + $data = '80.00'; + $return = true; + } + } + else + { + $return = false; + $errormsg = 'Unbekannter Fehler'; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='saveanrechnung') + { + $anrechnung = new anrechnung(); + + $anrechnung->new = $_POST['neu']; + $anrechnung->anrechnung_id = $_POST['anrechnung_id']; + $anrechnung->prestudent_id = $_POST['prestudent_id']; + $anrechnung->lehrveranstaltung_id = $_POST['lehrveranstaltung_id']; + $anrechnung->begruendung_id = $_POST['begruendung_id']; + isset($_POST['lehrveranstaltung_id_kompatibel']) ? $anrechnung->lehrveranstaltung_id_kompatibel = $_POST['lehrveranstaltung_id_kompatibel'] : $anrechnung->lehrveranstaltung_id_kompatibel = null; + isset($_POST['notiz_id']) ? $anrechnung->notiz_id = $_POST['notiz_id'] : $anrechnung->notiz_id = null; + $anrechnung->genehmigt_von = $_POST['genehmigt_von']; + $anrechnung->insertvon = $user; + $anrechnung->updatevon = $user; + + if($anrechnung->save()) + { + $return = true; + } + else + { + $return = false; + $errormsg = $anrechnung->errormsg; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deleteanrechnung') + { + //Loescht eine Anrechunng + if(isset($_POST['anrechnung_id']) && is_numeric($_POST['anrechnung_id'])) + { + if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $anrechnung = new anrechnung(); + + if($anrechnung->delete($_POST['anrechnung_id'])) + { + $return = true; + } + else + { + $errormsg = $anrechnung->errormsg; + $return = false; + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + + //******** AUFNAHMETERMINE ***** + elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineSave') // **** AufnahmeTermine **** // + { + //Speichert einen Aufnahmetermin einer Person + if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])) + { + $prestudent = new prestudent(); + if(!$prestudent->load($_POST['prestudent_id'])) + { + $return = false; + $error = true; + $errormsg = $prestudent->errormsg; + } + else + { + if(!$rechte->isBerechtigt('admin', $prestudent->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $rt_person_id = $_POST['rt_person_id']; + $rt_id = $_POST['rt_id']; + $person_id = $_POST['person_id']; + if($person_id=='') + $person_id=$prestudent->person_id; + $punkte = str_replace(',','.',$_POST['punkte']); + $teilgenommen = ($_POST['teilgenommen']=='true'?true:false); + $anmeldedatum = $_POST['anmeldedatum']; + $studienplan_id = $_POST['studienplan_id']; + + $reihungstest = new reihungstest(); + + echo 'CRIS: date: ' . date('Y-m-d H:i:s'); + echo 'CRIS: now(): ' . now(); + if($rt_person_id!='') + { + $reihungstest->loadReihungstestPerson($rt_person_id); + } + else + { + $reihungstest->new=true; + } + + $warnung_zu_viele_teilnehmer = false; + if($reihungstest->reihungstest_id != $rt_id) + { + // Wenn ein neuer Reihungstesttermin ausgewählt wird, dann wird geprueft ob + // noch genuegend Platz vorhanden ist. + $rt_help = new reihungstest(); + $aktuelle_anzahl = $rt_help->getTeilnehmerAnzahl($rt_id); + $rt_help->load($rt_id); + $max_teilnehmer = $rt_help->max_teilnehmer; + if($max_teilnehmer == '') + { + // Wenn keine Teilnehmer eingetragen sind, dann schauen welche Raeume zugeteilt + // sind und wie viel Platz dort ist + $max_teilnehmer = $rt_help->getPlatzAnzahlRaum($rt_id); + } + if($max_teilnehmer!='' && $aktuelle_anzahl >= $max_teilnehmer) + $warnung_zu_viele_teilnehmer = true; + } + $reihungstest->reihungstest_id = $rt_id; + $reihungstest->person_id = $person_id; + $reihungstest->punkte = $punkte; + $reihungstest->teilgenommen = $teilgenommen; + $reihungstest->anmeldedatum = $anmeldedatum; + $reihungstest->studienplan_id = $studienplan_id; + ($reihungstest->new) ? $reihungstest->insertamum = date('Y-m-d H:i:s'): $reihungstest->updateamum = date('Y-m-d H:i:s'); + ($reihungstest->new) ? $reihungstest->insertvon = $user : $reihungstest->updatevon = $user; + + if($reihungstest->savePersonReihungstest()) + { + $return = true; + $error = false; + $errormsg = 'Erfolgreich gespeichert'; + $data = $reihungstest->rt_person_id; + if($warnung_zu_viele_teilnehmer) + { + $return = false; + $error = true; + $errormsg = 'Achtung - die Maximalanzahl der Teilnehmer wurde überschritten;'. + ' Prüfen Sie ob genug Platz zur Verfügung steht - Zuteilung wurde erfolgreich gespeichert'; + } + } + else + { + $return = false; + $error = true; + $errormsg = $reihungstest->errormsg; + } + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineDelete') + { + //Loescht einen Aufnahmetermin einer Person + if(isset($_POST['rt_person_id']) && is_numeric($_POST['rt_person_id'])) + { + $rt_person_id = $_POST['rt_person_id']; + $reihungstest = new reihungstest(); + if(!$reihungstest->loadReihungstestPerson($rt_person_id)) + { + $return = false; + $error = true; + $errormsg = $reihungstest->errormsg; + } + else + { + $prestudent = new prestudent(); + if(!$prestudent->getPrestudenten($reihungstest->person_id)) + { + $return = false; + $error = true; + $errormsg = $prestudent->errormsg; + } + else + { + $berechtigt = false; + foreach($prestudent->result as $row_prest) + { + if($rechte->isBerechtigt('admin', $row_prest->studiengang_kz, 'suid') || $rechte->isBerechtigt('assistenz', $row_prest->studiengang_kz, 'suid')) + { + $berechtigt = true; + break; + } + } + + if(!$berechtigt) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $reihungstest = new reihungstest(); + + if($reihungstest->deletePersonReihungstest($rt_person_id)) + { + $return = true; + $error = false; + $errormsg = 'Erfolgreich geloescht'; + } + else + { + $return = false; + $error = true; + $errormsg = $reihungstest->errormsg; + } + } + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineSaveGesamtpunkte') + { + //Speichert einen Aufnahmetermin einer Person + if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])) + { + $prestudent = new prestudent(); + if(!$prestudent->load($_POST['prestudent_id'])) + { + $return = false; + $error = true; + $errormsg = $prestudent->errormsg; + } + else + { + if(!$rechte->isBerechtigt('admin', $prestudent->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $punkte = str_replace(',','.',$_POST['punkte']); + $reihungstestangetreten = ($_POST['reihungstestangetreten']=='true'?true:false); + $prestudent->punkte = $punkte; + $prestudent->reihungstestangetreten = $reihungstestangetreten; + $prestudent->aufnahmegruppe_kurzbz = $_POST['aufnahmegruppe_kurzbz']; + $prestudent->new=false; + + if($prestudent->save()) + { + $return = true; + $error = false; + $errormsg = 'Erfolgreich gespeichert'; + } + else + { + $return = false; + $error = true; + $errormsg = $reihungstest->errormsg; + } + } + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineBerechneGesamtpunkte') + { + //Speichert einen Aufnahmetermin einer Person + if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])) + { + $prestudent = new prestudent(); + if(!$prestudent->load($_POST['prestudent_id'])) + { + $return = false; + $error = true; + $errormsg = $prestudent->errormsg; + } + else + { + if(!$rechte->isBerechtigt('admin', $prestudent->studiengang_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'suid')) + { + $return = false; + $error = true; + } + else + { + $gesamtpunkte_arr = array(); + $reihungstest = new reihungstest(); + if($reihungstest->getReihungstestPerson($prestudent->person_id)) + { + foreach($reihungstest->result as $row) + { + $studienplan = new studienplan(); + if($studienplan->loadStudienplan($row->studienplan_id)) + { + $studienordnung = new studienordnung(); + if($studienordnung->loadStudienordnung($studienplan->studienordnung_id)) + { + if($studienordnung->studiengang_kz == $prestudent->studiengang_kz) + { + $rt_obj = new reihungstest(); + $rt_obj->load($row->reihungstest_id); + if(!isset($gesamtpunkte_arr[$rt_obj->studiensemester_kurzbz])) + $gesamtpunkte_arr[$rt_obj->studiensemester_kurzbz]=0; + $gesamtpunkte_arr[$rt_obj->studiensemester_kurzbz] += $row->punkte; + } + } + else + { + $return = false; + $errormsg = $studienordnung->errormsg; + $error = true; + } + } + else + { + $return = false; + $errormsg = $studienplan->errormsg; + $error = true; + } + } + + if(!$error) + { + if(count(array_keys($gesamtpunkte_arr))>0) + { + $studiensemester = new studiensemester(); + $stsem = $studiensemester->getYoungestFromArray(array_keys($gesamtpunkte_arr)); + $gesamtpunkte = $gesamtpunkte_arr[$stsem]; + } + else + $gesamtpunkte = '0'; + $return = true; + $error = false; + $data = $gesamtpunkte; + $errormsg = 'Erfolgreich gespeichert'; + } + } + else + { + $return = false; + $error = true; + $errormsg = $reihungstest->errormsg; + } + } + } + } + else + { + $return = false; + $error = true; + $errormsg = 'Falsche Parameteruebergabe'; + } + } + elseif(isset($_POST['type']) && $_POST['type']=='savemobilitaet') + { + // Speichert Mobilitaet/Gemeinsames Studium + $prestudent_id = $_POST['prestudent_id']; + $prestudent_obj = new prestudent(); + $prestudent_obj->load($prestudent_id); + + if(!$rechte->isBerechtigt('student/stammdaten', $prestudent_obj->studiengang_kz, 'suid')) + { + $return = false; + $error = true; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + $mob = new mobilitaet(); + + $error = false; + if(isset($_POST['mobilitaet_id'])) + { + $mobilitaet_id = $_POST['mobilitaet_id']; + if(!$mob->load($mobilitaet_id)) + { + $error=true; + $errormsg = $mob->errormsg; + } + } + else + { + $mob->new = true; + $mob->inservon = $user; + } + + if(isset($_POST['studiensemester_kurzbz']) + && isset($_POST['mobilitaetsprogramm_code']) + && isset($_POST['gsprogramm_id']) + && isset($_POST['mobilitaetstyp_kurzbz']) + && isset($_POST['firma_id']) + && isset($_POST['status_kurzbz']) + && isset($_POST['ausbildungssemester'])) + { + $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; + $mobilitaetsprogramm_code = $_POST['mobilitaetsprogramm_code']; + $gsprogramm_id = $_POST['gsprogramm_id']; + $mobilitaetstyp_kurzbz = $_POST['mobilitaetstyp_kurzbz']; + $firma_id = $_POST['firma_id']; + $status_kurzbz = $_POST['status_kurzbz']; + $ausbildungssemester = $_POST['ausbildungssemester']; + } + else + { + $error = true; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + $return = false; + } + + if(!$error) + { + $mob->prestudent_id = $prestudent_id; + $mob->studiensemester_kurzbz = $studiensemester_kurzbz; + $mob->mobilitaetsprogramm_code = $mobilitaetsprogramm_code; + $mob->gsprogramm_id = $gsprogramm_id; + $mob->mobilitaetstyp_kurzbz = $mobilitaetstyp_kurzbz; + $mob->firma_id = $firma_id; + $mob->status_kurzbz = $status_kurzbz; + $mob->ausbildungssemester = $ausbildungssemester; + $mob->updatevon = $user; + + if($mob->save()) + { + $return = true; + $data = $mob->mobilitaet_id; + } + else + { + $return = false; + $error = true; + $errormsg = $mob->errormsg; + } + } + else + { + $return = false; + } + } + } + elseif(isset($_POST['type']) && $_POST['type']=='deletemobilitaet') + { + $mobilitaet_id = $_POST['mobilitaet_id']; + $mob = new mobilitaet(); + if($mob->load($mobilitaet_id)) + { + $prestudent = new prestudent(); + if($prestudent->load($mob->prestudent_id)) + { + if(!$rechte->isBerechtigt('student/stammdaten',$prestudent->studiengang_kz,'suid')) + { + $error = true; + $return = false; + $errormsg = 'Sie haben keine Berechtigung'; + } + else + { + if($mob->delete($mobilitaet_id)) + { + $return = true; + } + else + { + $errormsg = $mob->errormsg; + $return = false; + } + } + } + else + { + $error = true; + $return = false; + $errormsg = $prestudent->errormsg; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + $errormsg = $mob->errormsg; + } + } + else + { + $return = false; + $errormsg = 'Unkown type: "'.$db->convert_html_chars($_POST['type']).'"'; + $data = ''; + } +} +echo ' + + + + + '.($return?'true':'false').' + + + + + + +'; +?>