/** * * Funktion nimmt Anfragen entgegen und bearbeitet diese * @param $parameters -> XML SOAP File */ function GetStipendienbezieherStip($parameters) { $anfrageDaten = $parameters->anfrageDaten; $Stipendiumsbezieher = $anfrageDaten->Stipendiumsbezieher; $ErhalterKz = $anfrageDaten->ErhKz; $AnfrageDatenID = $anfrageDaten->AnfragedatenID; // Eintrag in der LogTabelle anlegen $log = new webservicelog(); $log->request_data = file_get_contents('php://input'); $log->webservicetyp_kurzbz = 'stip'; $log->request_id = $AnfrageDatenID; $log->beschreibung = "Anfrage von Stip"; $log->save(true); $username = $parameters->userName; $passwort = $parameters->passWord; if (!($username == STIP_USER_NAME && $passwort == STIP_USER_PASSWORD)) { // Eintrag in der LogTabelle anlegen $log = new webservicelog(); $log->request_data = 'SOAP FAULT - Invalid Credentials'; $log->webservicetyp_kurzbz = 'stip'; $log->request_id = $AnfrageDatenID; $log->beschreibung = "Antwort an Stip"; $log->save(true); return new SoapFault("Server", 'Invalid Credentials'); } $StipBezieherAntwort = array(); $i = 0; if (!is_array($Stipendiumsbezieher->StipendiumsbezieherAnfrage)) { $Stipendiumsbezieher->StipendiumsbezieherAnfrage = array($Stipendiumsbezieher->StipendiumsbezieherAnfrage); } // läuft alle Anfragedaten durch foreach ($Stipendiumsbezieher->StipendiumsbezieherAnfrage as $BezieherStip) { $prestudentID; $studentUID; $studSemester; $StipBezieher = new stip(); $datum_obj = new datum(); if ($StipBezieher->validateStipDaten($anfrageDaten->ErhKz, $anfrageDaten->AnfragedatenID, $BezieherStip)) { $StipBezieher->Semester = $BezieherStip->Semester; $StipBezieher->Studienjahr = $BezieherStip->Studienjahr; $StipBezieher->PersKz = $BezieherStip->PersKz; $StipBezieher->SVNR = $BezieherStip->SVNR; $StipBezieher->Familienname = $BezieherStip->Familienname; $StipBezieher->Vorname = $BezieherStip->Vorname; $StipBezieher->Typ = $BezieherStip->Typ; // Studiensemester_kurzbz auslesen if ($BezieherStip->Semester == "WS" || $BezieherStip->Semester == "ws") { $year = mb_substr($BezieherStip->Studienjahr, 0, 4); $studSemester = "WS" . $year; } elseif ($BezieherStip->Semester == "SS" || $BezieherStip->Semester == "ss") { $year = mb_substr($BezieherStip->Studienjahr, 0, 2) . mb_substr($BezieherStip->Studienjahr, 5, 7); $studSemester = "SS" . $year; } if (!($prestudentID = $StipBezieher->searchPersonKz($BezieherStip->PersKz))) { if (!($prestudentID = $StipBezieher->searchSvnr($BezieherStip->SVNR))) { $prestudentID = $StipBezieher->searchVorNachname($BezieherStip->Vorname, $BezieherStip->Familienname); } } // Student wurde gefunden if ($StipBezieher->AntwortStatusCode == 1) { $prestudent = new prestudent(); $prestudent->load($prestudentID); $prestudent->getLastStatus($prestudentID); $prestudentStatus = new prestudent(); $student = new student(); $studentUID = $student->getUID($prestudentID); $abschlusspruefung = new abschlusspruefung(); $abschlusspruefung->getLastAbschlusspruefung($studentUID); $student->load($studentUID); $studiengang_kz = $student->studiengang_kz; $konto = new konto(); $studGebuehr = $konto->getStudiengebuehrGesamt($studentUID, $studSemester, $studiengang_kz); // , als Dezimaltrennzeichen $studGebuehr = str_replace('.', ',', $studGebuehr); // wenn nicht bezahlt if ($studGebuehr == "") { $studGebuehr = "0,00"; } if (!$prestudentStatus->getLastStatus($prestudentID, $studSemester)) { $StipBezieher->Inskribiert = 'n'; } else { // wenn nur Interessent letzer Status ist -> nicht inskribiert if ($prestudentStatus->status_kurzbz == 'Interessent') { $StipBezieher->Inskribiert = 'n'; } else { $StipBezieher->Inskribiert = 'j'; } } if ($BezieherStip->Typ == "as" || $BezieherStip->Typ == "AS") { $StipBezieher->getOrgFormTeilCode($studentUID, $studSemester, $prestudentID); $StipBezieher->Studienbeitrag = $studGebuehr; // Wenn letzter Status von Semester Interessent ist -> Semester = null if ($prestudentStatus->status_kurzbz != 'Interessent') { $StipBezieher->Ausbildungssemester = $StipBezieher->getSemester($prestudentID, $studSemester); } else { $StipBezieher->Ausbildungssemester = null; } $StipBezieher->StudStatusCode = $StipBezieher->getStudStatusCode($prestudentID, $studSemester); // Ausgeschieden ohne Abschluss if ($StipBezieher->StudStatusCode == 4) { $StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($prestudent->datum, 'dmY'); } else { if ($StipBezieher->StudStatusCode == 3) { // Absolvent -> letzte Prüfung nehmen $StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($abschlusspruefung->datum, 'dmY'); } else { $StipBezieher->BeendigungsDatum = null; } } $StipBezieher->Erfolg = $StipBezieher->getErfolg($prestudentID, $studSemester); } elseif ($BezieherStip->Typ == "ag" || $BezieherStip->Typ == "AG") { $StipBezieher->Ausbildungssemester = null; $StipBezieher->StudStatusCode = null; $StipBezieher->BeendigungsDatum = null; $StipBezieher->Studienbeitrag = null; $StipBezieher->OrgFormTeilCode = null; } $StipBezieherAntwort[$i] = $StipBezieher; $i++; } else { if ($StipBezieher->AntwortStatusCode == 2) { // Student wurde nicht gefunden $StipBezieher->PersKz_Antwort = null; $StipBezieher->SVNR_Antwort = null; $StipBezieher->Familienname_Antwort = null; $StipBezieher->Vorname_Antwort = null; $StipBezieher->Ausbildungssemester = null; $StipBezieher->StudStatusCode = null; $StipBezieher->BeendigungsDatum = null; $StipBezieher->VonNachPersKz = null; $StipBezieher->Studienbeitrag = null; $StipBezieher->Inskribiert = null; $StipBezieher->Erfolg = null; $StipBezieher->OrgFormTeilCode = null; $StipBezieherAntwort[$i] = $StipBezieher; $i++; } } } else { // Eintrag in der LogTabelle anlegen $log = new webservicelog(); $log->request_data = 'SOAP FAULT - ValidationError: ' . $StipBezieher->errormsg; $log->webservicetyp_kurzbz = 'stip'; $log->request_id = $AnfrageDatenID; $log->beschreibung = "Antwort an Stip"; $log->save(true); return new SoapFault("Server", $StipBezieher->errormsg); } } $ret = array("GetStipendienbezieherStipResult" => array("ErhKz" => $ErhalterKz, "AnfragedatenID" => $AnfrageDatenID, "Stipendiumsbezieher" => $StipBezieherAntwort)); // Eintrag in der LogTabelle anlegen $log = new webservicelog(); $log->request_data = print_r($ret, true); $log->webservicetyp_kurzbz = 'stip'; $log->request_id = $AnfrageDatenID; $log->beschreibung = "Antwort an Stip"; $log->save(true); return $ret; }
/** * Test sync_coursegrade method. * * @dataProvider dataprovider_sync_coursegrade * @param array $sturec Array of parameters to create student record. * @param array $coursegradeitem Array of parameters to create course grade_item. * @param array $coursegradegrade Array of parameters to create course grade_grade. * @param array $compelements Array of completion elements for the linked ELIS course/class. * @param array $completiongrade The grade a student must exceed to be marked as passed. * @param array $credits The number of credits a successful student will receive. * @param array $timenow The current timestamp, to enable testing with time. * @param array $expectedsyncedstudent Array of parameters we expect on the student grade record. */ public function test_sync_coursegrade($sturec, $coursegradeitem, $coursegradegrade, array $compelements = array(), $completiongrade, $credits, $timenow, $expectedsyncedstudent) { global $DB; $crs = new \course(array('idnumber' => 'CRS1', 'name' => 'Course 1', 'syllabus' => '')); $crs->save(); $cls = new \pmclass(array('courseid' => $crs->id, 'idnumber' => 'CLS1')); $cls->save(); $usr = new \user(array('username' => 'test1', 'idnumber' => 'test2', 'firstname' => 'test', 'lastname' => 'user', 'email' => '*****@*****.**', 'country' => 'CA')); $usr->save(); $sturec['classid'] = $cls->id; $sturec['userid'] = $usr->id; $sturec = new \student($sturec); $sturec->save(); $sturec = new \student($sturec->id); $sturec->load(); $sturec = $sturec->to_object(); $musr = $this->getDataGenerator()->create_user(); $coursegradeitem = new \grade_item($coursegradeitem, false); $coursegradeitem->insert(); $coursegradegrade['userid'] = $musr->id; $coursegradegrade['itemid'] = $coursegradeitem->id; $coursegradegrade = new \grade_grade($coursegradegrade, false); $coursegradegrade->insert(); foreach ($compelements as $i => $compelement) { $compelement['courseid'] = $crs->id; $compelements[$i] = new \coursecompletion($compelement); $compelements[$i]->save(); } $sync = new \local_elisprogram\moodle\synchronize(); $sync->sync_coursegrade($sturec, $coursegradeitem, $coursegradegrade, $compelements, $completiongrade, $credits, $timenow); $syncedsturec = $DB->get_record(\student::TABLE, array('id' => $sturec->id)); $expectedrec = array('id' => $sturec->id, 'classid' => (string) $cls->id, 'userid' => (string) $usr->id, 'enrolmenttime' => '0', 'completetime' => 0, 'endtime' => '0', 'completestatusid' => (string) STUSTATUS_NOTCOMPLETE, 'grade' => '0.00000', 'credits' => '0.00', 'locked' => '0'); $expectedrec = (object) array_merge($expectedrec, $expectedsyncedstudent); $this->assertEquals($expectedrec, $syncedsturec); }
$note_arr['']['anmerkung'] = ''; $note_arr['']['positiv'] = false; // Studienjahr ermitteln if (isset($_GET['ss'])) { $studiensemester_kurzbz = $_GET['ss']; } else { die('Parameter SS fehlt'); } $studiensemester = new studiensemester(); $studiensemester_kurzbz2 = $studiensemester->getStudienjahrStudiensemester($studiensemester_kurzbz); //Daten holen $xml = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>"; $xml .= "<zeugnisse>"; foreach ($uid_arr as $uid) { $student = new student(); if (!$student->load($uid)) { die($student->errormsg); } $studiengang = new studiengang(); $stgleiter = $studiengang->getLeitung($student->studiengang_kz); $stgl = ''; foreach ($stgleiter as $stgleiter_uid) { $stgl_ma = new mitarbeiter($stgleiter_uid); $stgl .= trim($stgl_ma->titelpre . ' ' . $stgl_ma->vorname . ' ' . $stgl_ma->nachname . ' ' . $stgl_ma->titelpost); } $ausbildungssemester = 0; //Wenn das Semester 0 ist, dann wird das Semester aus der Rolle geholt. (Ausnahme: Incoming) //damit bei Outgoing Studenten die im 0. Semester angelegt sind das richtige Semester aufscheint $qry = "SELECT ausbildungssemester as semester FROM public.tbl_prestudentstatus \n\t\t\t\tWHERE \n\t\t\t\tprestudent_id=" . $db->db_add_param($student->prestudent_id) . " AND \n\t\t\t\tstudiensemester_kurzbz=" . $db->db_add_param($studiensemester_kurzbz) . " AND\n\t\t\t\tstatus_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent')\n\t\t\t\tORDER BY DATUM DESC LIMIT 1"; if ($result_sem = $db->db_query($qry)) { if ($row_sem = $db->db_fetch_object($result_sem)) {
/** * Lädt einen Studenten anhand übergebener Matrikelnummer * @param $matrikelnummer * @param $authentifizierung */ function getStudentFromMatrikelnummer($matrikelnummer, $authentifizierung) { $recht = new webservicerecht(); $user = $authentifizierung->username; $passwort = $authentifizierung->passwort; // User authentifizieren if (!check_user($user, $passwort)) { return new SoapFault("Server", "Invalid Credentials"); } // darf User überhaupt Methode verwenden $recht = new webservicerecht(); if (!$recht->isUserAuthorized($user, 'getStudentFromMatrikelnummer')) { return new SoapFault("Server", "No permission"); } $studentObj = new student(); // Studentendaten $student = new foo(); // Rückgabeobjekt $preStudent = new prestudent(); // StudentenStatus $student_uid = $studentObj->getUidFromMatrikelnummer($matrikelnummer); if (!$studentObj->load($student_uid)) { return new SoapFault("Server", "Kein Student mit übergebener Matrikelnummer gefunden"); } $preStudent->getLastStatus($studentObj->prestudent_id); $student->studiengang_kz = $studentObj->studiengang_kz; $student->person_id = $studentObj->person_id; $student->semester = $studentObj->semester; $student->verband = $studentObj->verband; $student->gruppe = $studentObj->gruppe; $student->vorname = $studentObj->vorname; $student->nachname = $studentObj->nachname; $student->uid = $studentObj->uid; $student->status = $preStudent->status_kurzbz; $student->personenkennzeichen = $studentObj->matrikelnr; $student->email = $student->uid . '@' . DOMAIN; $student = $recht->clearResponse($user, 'getStudentFromMatrikelnummer', $student); return $student; }
if ($db->db_query($query)) { if (!($row = $db->db_fetch_object())) { die('Student not found'); } } else { die('Student not found'); } $stg_oe_obj = new studiengang($row->studiengang_kz); $stgleiter = $stg_oe_obj->getLeitung($row->studiengang_kz); $stgl = ''; foreach ($stgleiter as $stgleiter_uid) { $stgl_ma = new mitarbeiter($stgleiter_uid); $stgl .= trim($stgl_ma->titelpre . ' ' . $stgl_ma->vorname . ' ' . $stgl_ma->nachname . ' ' . $stgl_ma->titelpost); } $student = new student(); $student->load($uid_arr[$i]); $prestudent = new prestudent(); $prestudent->getPrestudentRolle($student->prestudent_id); $studienplan_bezeichnung = ''; foreach ($prestudent->result as $status) { if ($status->studienplan_bezeichnung != '') { $studienplan_bezeichnung = $status->studienplan_bezeichnung; } if ($status->studienplan_id != NULL) { $studienplan_id = $status->studienplan_id; } } $xml .= "\n\t<zertifikat>"; $xml .= "\n\t\t<studiensemester>" . $studiensemester_kurzbz . "</studiensemester>"; $xml .= "\n\t\t<vorname>" . $row->vorname . "</vorname>"; $xml .= "\n\t\t<nachname>" . $row->nachname . "</nachname>";
/** * Edit-Formular */ function doEDIT($id, $new = false) { // Studentendaten holen $student = new student(); $status_ok = false; if (!$new) { $status_ok = $student->load($id); } if (!$status_ok && !$new) { // Laden fehlgeschlagen echo $student->errormsg; } else { // Eingabeformular anzeigen echo '<table><tr><td>'; echo ' <form name="std_edit" action="' . $_SERVER['REQUEST_URI'] . '" method="POST"> <input type="hidden" name="new" value="' . $new . '"> <table> <tr> <td>UID*</td> <td> <input type="text" name="new_uid" value="' . $student->uid . '"> <input type="hidden" name="uid" value="' . $student->uid . '" > </td> </tr> <tr><td>Titel</td><td><input type="text" name="titelpre" value="' . $student->titelpre . '"></td></tr> <tr><td>Vornamen</td><td><input type="text" name="vorname" value="' . $student->vorname . '"></td></tr> <tr><td>Nachname</td><td><input type="text" name="nachname" value="' . $student->nachname . '"></td></tr> <tr><td>Aktiv</td><td><input type="checkbox" name="aktiv" value="1" ' . ($student->aktiv ? 'checked' : '') . '></td></tr> <tr><td>Geburtsdatum</td><td><input type="text" name="gebdatum" value="' . $student->gebdatum . '"> (TT.MM.JJJJ)</td></tr> <tr><td>Gebort</td><td><input type="text" name="gebort" value="' . $student->gebort . '"></td></tr> <tr><td>eMail Alias</td><td><input type="text" name="alias" value="' . $student->alias . '"></td></tr> <tr><td>Homepage</td><td><input type="text" name="homepage" value="' . $student->homepage . '"></td></tr> <tr> <td>Matrikelnr*</td> <td><input type="text" name="matrikelnr" value="' . $student->matrikelnr . '"></td></tr> <tr><td>Studiengang</td><td> <SELECT name="studiengang_kz"> <option value="-1">- auswählen -</option>'; // Auswahl des Studiengangs $stg = new studiengang(); $stg->getAll(); foreach ($stg->result as $studiengang) { echo "<option value=\"{$studiengang->studiengang_kz}\" "; if ($studiengang->studiengang_kz == $student->studiengang_kz) { echo "selected"; } echo " >{$studiengang->kuerzel} ({$studiengang->bezeichnung})</option>\n"; } echo ' </SELECT> </td></tr> <tr><td>Semester</td><td><input type="text" name="semester" value="' . $student->semester . '"></td></tr> <tr><td>Verband</td><td><input type="text" name="verband" value="' . $student->verband . '"></td></tr> <tr><td>Gruppe</td><td><input type="text" name="gruppe" value="' . $student->gruppe . '"></td></tr> </table> <input type="submit" name="Save" value="Speichern"> <input type="hidden" name="id" value="' . $id . '"> </form>'; echo '</td><td valign="top">'; echo '<a href="../../content/pdfExport.php?xsl=AccountInfo&xml=accountinfoblatt.xml.php&uid=' . $student->uid . '" >AccountInfoBlatt erstellen</a>'; echo '</td></tr></table>'; } }
} echo '</SELECT>'; echo '<input type="submit" value="Anzeigen">'; echo '</form>'; echo '<br><br>'; $projekt = new projektarbeit(); $projekt->getProjektarbeitStudiensemester($stg_kz, $stsem); echo '<form action="' . $_SERVER['PHP_SELF'] . '?stg_kz=' . $stg_kz . '&stsem=' . $stsem . '" method="POST" />'; echo "<table class='liste table-autosort:0 table-stripeclass:alternate table-autostripe'><thead><tr class='liste'>"; echo "<th class='table-sortable:default'>Student</th>\n\t <th class='table-sortable:default'>Typ</th>\n\t <th class='table-sortable:default'>Titel</th>\n\t <th class='table-sortable:default'>Themenbereich</th>\n\t <th class='table-sortable:default'>Betreuer</th>\n\t <th class='table-sortable:default'>Beginn</th>\n\t <th class='table-sortable:default'>Ende</th>\n\t <th class='table-sortable:default'>Gesamtnote</th>"; echo "</tr></thead>"; echo "<tbody>"; foreach ($projekt->result as $row) { echo '<tr>'; $student = new student(); $student->load($row->student_uid); echo "<td nowrap>{$student->nachname} {$student->vorname} {$student->titelpre} {$student->titelpost}</td>"; echo "<td>{$row->bezeichnung}</td>"; echo "<td>{$row->titel}" . ($row->titel_english != '' ? '<br>' . $row->titel_english : '') . "</td>"; echo "<td>{$row->themenbereich}</td>"; echo '<td nowrap>'; $qry = "SELECT distinct vorname, nachname, titelpre, titelpost, (SELECT uid FROM public.tbl_benutzer JOIN public.tbl_mitarbeiter on(uid=mitarbeiter_uid) WHERE person_id=tbl_person.person_id LIMIT 1) as uid, betreuerart_kurzbz FROM public.tbl_person JOIN lehre.tbl_projektbetreuer USING(person_id) WHERE projektarbeit_id='" . $row->projektarbeit_id . "'"; if ($result_betreuer = $db->db_query($qry)) { while ($row_betreuer = $db->db_fetch_object($result_betreuer)) { if ($row_betreuer->uid != '') { echo "<a href='mailto:{$row_betreuer->uid}@" . DOMAIN . "' class='Item'>"; } echo trim($row_betreuer->titelpre . ' ' . $row_betreuer->vorname . ' ' . $row_betreuer->nachname . ' ' . $row_betreuer->titelpost) . ' (' . $row_betreuer->betreuerart_kurzbz . ')'; if ($row_betreuer->uid != '') { echo '</a>'; }
$id = $_GET['content_id']; if (!is_numeric($id)) { $id = ''; } } else { $id = ''; } if (isset($_GET['menu'])) { $menu = $_GET['menu']; validURLCheck($menu); } else { $menu = 'menu.php?content_id=' . $id; } $user = get_uid(); $student = new student(); if ($student->load($user)) { $studiengang_kz = $student->studiengang_kz; $semester = $student->semester; $verband = $student->verband; } else { $studiengang_kz = ''; $semester = ''; $verband = ''; } if (isset($_GET['content'])) { $content = $_GET['content']; validURLCheck($content); } else { if ($studiengang_kz == '' && $semester == '' && $verband == '') { $content = '../cms/news.php'; } else {
/** * Testet die Regel für einen Studenten * @param $uid User * @param $regel_obj * @param $studiensemester_kurzbz */ public function Test($uid, $regel_obj, $studiensemester_kurzbz = null, $retvalglobal) { $regel = $regel_obj[0]; $ects = 0; $this->debug('<br><b>Teste Regel ' . $regel->lvregel_id . '</b>', 2); $this->debug("<br>UID:{$uid} OP:{$regel->operator} STSEM:{$studiensemester_kurzbz} RETVAL:" . ($retvalglobal ? 'T' : 'F'), 5); switch ($regel->lvregeltyp_kurzbz) { case 'ausbsemmin': /* Prueft ob das Ausbildungssemester das mindestens erforderlich ist um die Lehrveranstaltung zu besuchen */ $this->debug('Regeltyp ausbsemmin', 2); // Wenn das Studiensemester nicht gesetzt ist, wird das aktuelle verwendet if ($studiensemester_kurzbz == '') { $studiensemester = new studiensemester(); $studiensemester_kurzbz = $studiensemester->getaktorNext(); } // Ausbildungssemester wird nur beim 1. durchlauf ermittelt if (!isset($this->cache[$uid]) && !isset($this->cache[$uid][$studiensemester_kurzbz])) { $student = new student(); $student->load($uid); // Ausbildungssemester aus dem Status holen $prestudent = new prestudent(); if ($prestudent->getLastStatus($student->prestudent_id, $studiensemester_kurzbz)) { $this->cache[$uid][$studiensemester_kurzbz] = $prestudent->ausbildungssemester; } } $ausbildungssemester = $this->cache[$uid][$studiensemester_kurzbz]; // Vergleichen des Ausbildungssemesters mit dem RegelParameter if ($ausbildungssemester >= $regel->parameter) { $this->debug('StudSem: ' . $ausbildungssemester . ' >= RegelParam: ' . $regel->parameter, 4); $this->debug('TRUE'); $retval = true; } else { $this->debug('StudSem: ' . $ausbildungssemester . ' >= RegelParam: ' . $regel->parameter, 4); $this->debug('FALSE'); $retval = false; } break; case 'lvpositiv': $this->debug('Regeltyp lvpositiv:' . $regel->lehrveranstaltung_id, 3); $qry = "SELECT \n\t\t\t\t\t\t\ttbl_lehrveranstaltung.ects, tbl_zeugnisnote.note\n\t\t\t\t\t\tFROM \n\t\t\t\t\t\t\tlehre.tbl_zeugnisnote \n\t\t\t\t\t\t\tJOIN lehre.tbl_note USING(note) \n\t\t\t\t\t\t\tJOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)\n\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\ttbl_note.positiv \n\t\t\t\t\t\t\tAND student_uid=" . $this->db_add_param($uid) . "\n\t\t\t\t\t\t\tAND lehrveranstaltung_id=" . $this->db_add_param($regel->lehrveranstaltung_id); if ($result = $this->db_query($qry)) { if ($row = $this->db_fetch_object($result)) { $this->debug('Positive Note gefunden:' . $row->note, 3); $retval = true; } else { $this->debug('Keine positive Note', 3); $retval = false; } } else { $this->debug('Fehler bei Abfrage', 1); $this->errormsg = 'Fehler bei Abfrage'; $retval = false; } break; case 'lvpositivabschluss': $this->debug('Regeltyp lvpositivabschluss:' . $regel->lehrveranstaltung_id, 3); $qry = "SELECT \n\t\t\t\t\t\t\ttbl_lehrveranstaltung.ects, tbl_zeugnisnote.note\n\t\t\t\t\t\tFROM \n\t\t\t\t\t\t\tlehre.tbl_zeugnisnote \n\t\t\t\t\t\t\tJOIN lehre.tbl_note USING(note) \n\t\t\t\t\t\t\tJOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)\n\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\ttbl_note.positiv \n\t\t\t\t\t\t\tAND student_uid=" . $this->db_add_param($uid) . "\n\t\t\t\t\t\t\tAND lehrveranstaltung_id=" . $this->db_add_param($regel->lehrveranstaltung_id); if ($result = $this->db_query($qry)) { if ($row = $this->db_fetch_object($result)) { $ects = $row->ects; $this->debug('Positive Note gefunden:' . $row->note, 3); $this->debug('ECTS:' . $ects, 3); $retval = true; } else { $this->debug('Keine positive Note', 3); $retval = false; } } else { $this->debug('Fehler bei Abfrage', 1); $this->errormsg = 'Fehler bei Abfrage'; $retval = false; } break; default: // Eventuell in Addons nach Regeltypen suchen break; } // Subregeln dieser LVRegel pruefen if (isset($regel_obj['childs']) && count($regel_obj['childs']) > 0) { $this->debug('<br> == <b>Subregel:' . $regel->lvregel_id . '</b> Start ==', 2); list($testval, $ects_tmp) = $this->TestRegeln($uid, $regel_obj['childs'], null, $retval); $retval = $this->Compare($regel->operator, $retval, $testval); if ($testval) { if ($regel->operator == 'x' && $ects == 0 && $ects_tmp > 0) { $this->debug('<br>Aufgrund des XOR Vergleichs werden ' . $ects_tmp . ' ECTS dazugerechnet'); $ects += $ects_tmp; } if ($regel->operator == 'u' || $regel->operator == 'o') { $this->debug('<br>Aufgrund des AND / OR Operators werden ' . $ects_tmp . ' ECTS dazugerechnet'); $ects += $ects_tmp; } } $this->debug('<br> == <b>Subregel ' . $regel->lvregel_id . '</b> Ende ==<br>', 2); } $this->debug('<br> TEST Return Retval:' . ($retval ? 'T' : 'F') . ' ECTS:' . $ects); return array($retval, $ects); }
public function __construct() { global $params; parent::__construct(); $this->link = false; $sprache = getSprache(); $user = get_uid(); $student = new student(); if ($student->load($user)) { $studiengang_kz = $student->studiengang_kz; $semester = $student->semester; } $p = new phrasen($sprache); $this->block .= ' <script language="JavaScript" type="text/javascript"> <!-- function MM_jumpMenu(targ, selObj, restore) { eval(targ + ".location=\'" + selObj.options[selObj.selectedIndex].value + "\'"); if(restore) { selObj.selectedIndex = 0; } } //--> </script>'; $this->block .= ' <table class="tabcontent"> <tr> <td width="81" class="tdwrap">' . $p->t('global/studiengang') . ': </td> <td class="tdwrap"> <select name="course" onChange="MM_jumpMenu(\'self\',this,0)" style="width: 100px;">'; $stg_obj = new studiengang(); $stg_obj->getAll('typ, kurzbz'); if (isset($params['studiengang_kz']) && is_numeric($params['studiengang_kz'])) { $studiengang_kz = $params['studiengang_kz']; } if (isset($params['semester']) && is_numeric($params['semester'])) { $semester = $params['semester']; } else { if (!isset($semester)) { $semester = 1; } } $sel_kurzbzlang = ''; foreach ($stg_obj->result as $row) { if ($row->studiengang_kz != 0) { if (isset($studiengang_kz) and $studiengang_kz == $row->studiengang_kz) { $this->block .= '<option value="?content_id=' . $_GET['content_id'] . '&studiengang_kz=' . $row->studiengang_kz . '&semester=' . $semester . '" selected>' . $row->kuerzel . ' (' . $row->bezeichnung . ')</option>'; $sel_kurzbzlang = $row->kurzbzlang; } else { $this->block .= '<option value="?content_id=' . $_GET['content_id'] . '&studiengang_kz=' . $row->studiengang_kz . '&semester=' . $semester . '">' . $row->kuerzel . ' (' . $row->bezeichnung . ')</option>'; } if (!isset($studiengang_kz)) { $studiengang_kz = $row->studiengang_kz; } } } $this->block .= ' </select> </td> </tr> <tr> <td class="tdwrap"> </td> </tr> <tr> <td class="tdwrap">' . $p->t('global/semester') . ': </td> <td class="tdwrap"> <select name="term" onChange="MM_jumpMenu(\'self\',this,0)">'; $short = 'Fehler Stg.Kz ' . $studiengang_kz; $max = 1; if ($stg_obj = new studiengang($studiengang_kz)) { $short = $stg_obj->kuerzel; $max = $stg_obj->max_semester; } if ($semester > $max) { $semester = 1; } $params['studiengang_kz'] = $studiengang_kz; $params['semester'] = $semester; $params['studiengang_kurzbz_lo'] = strtolower($short); $params['studiengang_kurzbz_hi'] = $short; for ($i = 0; $i < $max; $i++) { if ($i + 1 == $semester) { $this->block .= '<option value="?content_id=' . $_GET['content_id'] . '&studiengang_kz=' . $studiengang_kz . '&semester=' . ($i + 1) . '" selected >' . ($i + 1) . '. Semester</option>'; } else { $this->block .= '<option value="?content_id=' . $_GET['content_id'] . '&studiengang_kz=' . $studiengang_kz . '&semester=' . ($i + 1) . '">' . ($i + 1) . '. Semester</option>'; } } $this->block .= ' </select> </td> </tr> </table> <table>'; $this->block .= '<script language="JavaScript" type="text/javascript">'; $this->block .= ' parent.content.location.href="../cms/news.php?studiengang_kz=' . $studiengang_kz . '&semester=' . $semester . '"'; $this->block .= '</script>'; $this->block .= ' <tr> <td class="tdwrap"> </td> </tr>'; if (!($lv_obj = new lehrveranstaltung())) { die('Fehler beim Oeffnen der Lehrveranstaltung'); } $lv_obj->lehrveranstaltungen = array(); if ($lv_obj->load_lva($studiengang_kz, $semester, null, TRUE, TRUE, 'orgform_kurzbz DESC, bezeichnung')) { $lastform = null; foreach ($lv_obj->lehrveranstaltungen as $row) { if ($row->orgform_kurzbz != $lastform) { $orgform = new organisationsform(); $orgform->load($row->orgform_kurzbz); $this->block .= "<tr><td><b>{$orgform->bezeichnung}</b></td></tr>"; $lastform = $row->orgform_kurzbz; } $this->block .= '<tr>'; $this->block .= ' <td class="tdwrap"><ul style="margin: 0px; padding: 0px; ">'; $this->block .= "<li style='padding: 0px;'><a title=\"" . $row->bezeichnung_arr[$sprache] . "\" href=\"private/lehre/lesson.php?lvid={$row->lehrveranstaltung_id}\" target=\"content\">" . $this->CutString($row->bezeichnung_arr[$sprache], 21) . ' ' . $row->lehrform_kurzbz . "</a></li>"; $this->block .= ' </ul></td>'; $this->block .= '</tr>'; } } $this->block .= '</table>'; $this->output(); }
function sendMailAssistenz($uid) { $student = new student(); $student->load($uid); $studiengang = new studiengang(); $studiengang->load($student->studiengang_kz); $out = new preoutgoing(); $out->loadUid($uid); $out_auswahl = new preoutgoing(); $out_auswahl->loadAuswahl($out->preoutgoing_id); $mob = new mobilitaetsprogramm(); $mob->load($out_auswahl->mobilitaetsprogramm_code); $firm = new firma(); $firm->load($out_auswahl->firma_id); $emailtext = "Dies ist eine automatisch generierte E-Mail.<br><br>"; $emailtext .= "Ein Student ist für den Aufenthalt im Ausland gemeldet.<br>"; $emailtext .= "Uid: " . $student->uid . "<br>"; $emailtext .= "Name: " . $student->vorname . " " . $student->nachname . "<br>"; $emailtext .= "Zeitraum-Von: " . $out->dauer_von . "<br>"; $emailtext .= "Zeitraum-Bis: " . $out->dauer_bis . "<br>"; $emailtext .= "Mobilitätsprogramm: " . $mob->kurzbz . "<br>"; $emailtext .= "Universität: " . $firm->name . "<br>"; $mail = new mail($studiengang->email, 'no-reply', 'New Outgoing', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); $mail->setHTMLContent($emailtext); $mail->send(); }
echo "<tr><td> </td></tr><tr><td colspan='4'><b>Aktive Studenten die keinen Status im aktuellen oder nächsten Studiensemester haben</b></td></tr>"; break; case 10: echo "<tr><td> </td></tr><tr><td colspan='4'><b>Bewerberstati die keiner Organisationsform zugeordnet sind</b></td></tr>"; break; case 11: echo "<tr><td> </td></tr><tr><td colspan='4'><b>Studierendenstati die keiner Organisationsform zugeordnet sind</b></td></tr>"; break; default: echo "<tr><td> </td></tr><tr><td colspan='4'><b>Ungültiger Code</b></td></tr>"; break; } foreach ($uid as $student_id) { echo "<tr>"; $student = new student(); if ($student->load($student_id)) { echo '<td>' . $student->vorname . '</td><td>' . $student->nachname . '</td><td>' . $student->uid . '</td>'; } else { echo '<td colspan="3">' . $student_id, '</td>'; } echo "</tr>"; } } echo "</table>"; } //echo $text; /* * Gibt das Datum der BIS Meldung des übergebenen Semesters zurück */ function getDateForInscription($semester) {
/** * Delete a student class instance enrolment * * @param object $record One record of import data * @param string $filename The import file name, used for logging * @param string $idnumber The idnumber of the class instance * * @return boolean true on success, otherwise false */ function class_enrolment_delete_student($record, $filename, $idnumber) { global $CFG, $DB; require_once $CFG->dirroot . '/local/elisprogram/lib/setup.php'; require_once elispm::lib('data/pmclass.class.php'); require_once elispm::lib('data/student.class.php'); if (!($crsid = $DB->get_field(pmclass::TABLE, 'id', array('idnumber' => $idnumber)))) { $this->fslogger->log_failure("instance value of \"{$idnumber}\" does not refer to a valid instance of a class context.", 0, $filename, $this->linenumber, $record, "enrolment"); return false; } $userid = $this->get_userid_from_record($record, $filename); // string to describe the user $user_descriptor = $this->get_user_descriptor($record, false, 'user_'); if (!$DB->record_exists(student::TABLE, array('classid' => $crsid, 'userid' => $userid))) { $this->fslogger->log_failure("User with {$user_descriptor} is not enrolled in class instance \"{$idnumber}\" as student.", 0, $filename, $this->linenumber, $record, "enrolment"); return false; } if (!$this->validate_class_enrolment_data('delete', $record, $filename)) { return false; } // obtain the class id $classid = $DB->get_field(pmclass::TABLE, 'id', array('idnumber' => $idnumber)); // delete the association $studentid = $DB->get_field(student::TABLE, 'id', array('userid' => $userid, 'classid' => $classid)); $student = new student($studentid); $student->load(); $student->delete(); // log success $success_message = "User with {$user_descriptor} successfully unenrolled from class instance \"{$idnumber}\" as a student."; $this->fslogger->log_success($success_message, 0, $filename, $this->linenumber); return true; }
/** * Performs class_enrolment update * @throws moodle_exception If there was an error in passed parameters. * @throws data_object_exception If there was an error creating the entity. * @param array $data The incoming data parameter. * @return array An array of parameters, if successful. */ public static function class_enrolment_update(array $data) { global $USER, $DB; if (static::require_elis_dependencies() !== true) { throw new moodle_exception('ws_function_requires_elis', 'local_datahub'); } static $completestatuses = array('not completed' => STUSTATUS_NOTCOMPLETE, 'not_completed' => STUSTATUS_NOTCOMPLETE, 'notcompleted' => STUSTATUS_NOTCOMPLETE, 'failed' => 'STUSTATUS_FAILED', 'passed' => STUSTATUS_PASSED); // Parameter validation. $params = self::validate_parameters(self::class_enrolment_update_parameters(), array('data' => $data)); // Context validation. $context = context_user::instance($USER->id); self::validate_context($context); $data = (object) $data; // Parse class if (empty($data->class_idnumber) || !($classid = $DB->get_field(pmclass::TABLE, 'id', array('idnumber' => $data->class_idnumber)))) { throw new data_object_exception('ws_class_enrolment_update_fail_invalid_class', 'local_datahub', '', $data); } // Capability checking. require_capability('local/elisprogram:class_enrol', \local_elisprogram\context\pmclass::instance($classid)); // Initialize version1elis importplugin for utility functions. $importplugin = rlip_dataplugin_factory::factory('dhimport_version1elis'); $userparams = array(); $userid = $importplugin->get_userid_from_record($data, '', $userparams); if ($userid == false) { $a = new stdClass(); if (empty($userparams)) { $a->userparams = '{empty}'; } else { $a->userparams = ''; foreach ($userparams as $userfield => $uservalue) { $subfield = strpos($userfield, '_'); $userfield = substr($userfield, $subfield === false ? 0 : $subfield + 1); if (!empty($a->userparams)) { $a->userparams .= ', '; } $a->userparams .= "{$userfield}: '{$uservalue}'"; } } throw new data_object_exception('ws_class_enrolment_update_fail_invalid_user', 'local_datahub', '', $a); } if (!($stuid = $DB->get_field(student::TABLE, 'id', array('classid' => $classid, 'userid' => $userid)))) { throw new data_object_exception('ws_class_enrolment_update_fail_missing_enrolment', 'local_datahub', '', $data); } $stu = new student($stuid); $stu->load(); $record = new stdClass(); $record->userid = $userid; $record->classid = $classid; if (isset($data->completestatus)) { $completestatus = strtolower($data->completestatus); if (isset($completestatuses[$completestatus])) { $record->completestatusid = $completestatuses[$completestatus]; if ($record->completestatusid != STUSTATUS_NOTCOMPLETE) { if (empty($stu->completetime) && !isset($data->completetime)) { $record->completetime = rlip_timestamp(); } } } else { throw new data_object_exception('ws_class_enrolment_update_fail_invalid_completestatus', 'local_datahub', '', $data); } } if (isset($data->grade) && is_numeric($data->grade)) { $record->grade = $data->grade; } if (isset($data->credits) && is_numeric($data->credits)) { $record->credits = $data->credits; } if (isset($data->locked)) { $record->locked = $data->locked ? 1 : 0; } if (isset($data->enrolmenttime)) { if ($enrolmenttime = $importplugin->parse_date($data->enrolmenttime)) { $record->enrolmenttime = $enrolmenttime; } else { throw new data_object_exception('ws_class_enrolment_update_fail_invalid_enrolmenttime', 'local_datahub', '', $data); } } if (isset($data->completetime)) { if ($completetime = $importplugin->parse_date($data->completetime)) { $record->completetime = $completetime; } else { throw new data_object_exception('ws_class_enrolment_update_fail_invalid_completetime', 'local_datahub', '', $data); } } $stu->set_from_data($record); $stu->save(); // Respond. if (!empty($stu->id)) { return array('messagecode' => get_string('ws_class_enrolment_update_success_code', 'local_datahub'), 'message' => get_string('ws_class_enrolment_update_success_msg', 'local_datahub'), 'record' => $stu->to_array()); } else { throw new data_object_exception('ws_class_enrolment_update_fail', 'local_datahub'); } }
// Bild zum Manifest-File des ODTs hinzufuegen addImageToManifest($tempname_zip, 'Pictures/' . $bn->uid . '.jpg', $contenttype = 'image/jpeg'); if (check_lektor($uid)) { $ma = new mitarbeiter(); $ma->load($uid); $benutzerfunktion = new benutzerfunktion(); $benutzerfunktion->getBenutzerFunktionByUid($uid, NULL, date("Y-m-d"), date("Y-m-d")); if (!empty($benutzerfunktion->result[0])) { $oe = new organisationseinheit($benutzerfunktion->result[0]->oe_kurzbz); } else { $oe = new organisationseinheit(); } $xml .= "\n\t\t\t\t<mitarbeiter>\n\t\t\t\t\t<uid><![CDATA[" . $bn->uid . "]]></uid>\n\t\t\t\t\t<vorname><![CDATA[" . $bn->vorname . "]]></vorname>\n\t\t\t\t\t<nachname><![CDATA[" . $bn->nachname . "]]></nachname>\n\t\t\t\t\t<titelpre><![CDATA[" . $bn->titelpre . "]]></titelpre>\n\t\t\t\t\t<titelpost><![CDATA[" . $bn->titelpost . "]]></titelpost>\n\t\t\t\t\t<personalnummer><![CDATA[" . $ma->personalnummer . "]]></personalnummer>\n\t\t\t\t\t<ausstellungsdatum><![CDATA[" . date('d.m.Y') . "]]></ausstellungsdatum>\n\t\t\t\t\t<gebdatum><![CDATA[" . $datum_obj->formatDatum($ma->gebdatum, 'd.m.Y') . "]]></gebdatum>\n\t\t\t\t\t<organisationseinheit><![CDATA[" . $oe->bezeichnung . "]]></organisationseinheit>\n\t\t\t\t</mitarbeiter>"; } else { $student = new student(); $student->load($bn->uid); $konto = new konto(); $studiengang = new studiengang(); $studiengang->load($student->studiengang_kz); $stsem_obj = new studiensemester(); $stsem = $stsem_obj->getaktorNext(); $stsem_obj->load($stsem); if ($konto->checkStudienbeitrag($bn->uid, $stsem_obj->studiensemester_kurzbz)) { $gueltigbis = $stsem_obj->ende; } else { // Studiengebuehr noch nicht bezahlt $gueltigbis = $stsem_obj->ende; } if ($type == 'datum') { //Nur der Datumsstempel wird erstellt $xml .= "\n\t\t\t\t\t<datum>\n\t\t\t\t\t\t<gueltigbis><![CDATA[" . $datum_obj->formatDatum($gueltigbis, 'd/m/Y') . "]]></gueltigbis>\n\t\t\t\t\t</datum>";
<img src="../../content/bild.php?src=person&person_id=' . $benutzer->person_id . '" height="100px" width="75px"/> </td> <td> <b>Vorname:</b> ' . $db->convert_html_chars($benutzer->vorname) . '<br> <b>Nachname:</b> ' . $db->convert_html_chars($benutzer->nachname) . '<br>'; if (check_lektor($karten_user)) { //Mitarbeiter echo '<br><b>Mitarbeiter - keine Verlängerung nötig</b><br>'; echo ' </td> </tr> </table><br></center>'; } else { //Student $student = new student(); if ($student->load($karten_user)) { $stg = new studiengang(); $stg->load($student->studiengang_kz); //echo '<br><b>Student</b><br>'; echo '<b>UID:</b> ' . $karten_user . '<br>'; echo '<b>Studiengang:</b> ' . $stg->kuerzel . ' - ' . $stg->bezeichnung . '<br>'; echo '<b>Semester:</b> ' . $student->semester . '<br>'; } $prestudent = new prestudent(); $prestudent->getLastStatus($student->prestudent_id); echo '<b>Aktueller Status:</b> ' . $prestudent->status_kurzbz; echo ' </td> </tr> </table><br>'; $konto = new konto();
if (!isset($_REQUEST['preoutgoing_id'])) { die('Parameter preoutgoing_id is missing!'); } $preoutgoing_id = $_REQUEST['preoutgoing_id']; $preoutgoing = new preoutgoing(); $benutzer = new benutzer(); $student = new student(); $studiengang = new studiengang(); $prestudent = new prestudent(); if (!$preoutgoing->load($preoutgoing_id)) { die('Konnte Outgoing nicht finden!'); } if (!$benutzer->load($preoutgoing->uid)) { die('Konnte Benutzer nicht laden!'); } if (!$student->load($preoutgoing->uid)) { die('Konnte Student nicht laden!'); } $projektarbeittitel = $preoutgoing->projektarbeittitel; $studiengang->load($student->studiengang_kz); $preoutgoingFirma = new preoutgoing(); $preoutgoingFirma->loadAuswahl($preoutgoing_id); $preoutgoing_firma = $preoutgoingFirma->firma_id; $prestudent->getLastStatus($student->prestudent_id); $firma = new firma(); $nation = new nation(); if ($preoutgoing_firma != '') { $standort = new standort(); $adresse = new adresse(); $firma->load($preoutgoing_firma); $standort->load_firma($firma->firma_id);
/** * Validate the $student->validate_class_enrolment_limit function. */ public function test_validate_class_enrolment_limit() { $this->load_csv_data(); $student = new student(array('userid' => 104, 'classid' => 101)); $student->load(); $student->save(); try { $result = $student->validate_class_enrolment_limit(); $this->assertTrue($result); } catch (Exception $e) { // Should not reach here. $this->assertFalse(true); } $class = new pmclass(101); $class->load(); $class->maxstudents = 1; $class->save(); $student = new student(array('userid' => 103, 'classid' => 101)); try { $result = $student->validate_class_enrolment_limit(); } catch (Exception $e) { $this->assertTrue($e instanceof pmclass_enrolment_limit_validation_exception); } }