|
|
|
@@ -11,7 +11,7 @@ class Status extends FHCAPI_Controller
|
|
|
|
|
parent::__construct([
|
|
|
|
|
'getHistoryPrestudent' => ['admin:r', 'assistenz:r'],
|
|
|
|
|
'addNewStatus' => ['admin:r', 'assistenz:r', 'student/keine_studstatuspruefung'],
|
|
|
|
|
'turnIntoStudent' => ['admin:r', 'assistenz:r', 'student/keine_studstatuspruefung'],
|
|
|
|
|
//'turnIntoStudent' => ['admin:r', 'assistenz:r', 'student/keine_studstatuspruefung'],
|
|
|
|
|
'addStudent' => ['admin:r', 'assistenz:r', 'student/keine_studstatuspruefung'],
|
|
|
|
|
'getStatusgruende' => self::PERM_LOGGED,
|
|
|
|
|
'getLastBismeldestichtag' => self::PERM_LOGGED,
|
|
|
|
@@ -28,6 +28,7 @@ class Status extends FHCAPI_Controller
|
|
|
|
|
|
|
|
|
|
//Load Models
|
|
|
|
|
$this->load->model('crm/Prestudentstatus_model','PrestudentstatusModel');
|
|
|
|
|
$this->load->model('person/Person_model','PersonModel');
|
|
|
|
|
|
|
|
|
|
// Load Libraries
|
|
|
|
|
$this->load->library('VariableLib', ['uid' => getAuthUID()]);
|
|
|
|
@@ -448,239 +449,251 @@ class Status extends FHCAPI_Controller
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//TODO(Manu) DEPRECATED
|
|
|
|
|
public function turnIntoStudent($prestudent_id)
|
|
|
|
|
{
|
|
|
|
|
// public function turnIntoStudent($prestudent_id)
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
|
//get Studiengang von prestudent_id
|
|
|
|
|
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
|
|
|
|
$this->PrestudentModel->addJoin('public.tbl_person p', 'ON (p.person_id = public.tbl_prestudent.person_id)');
|
|
|
|
|
$this->PrestudentModel->addJoin('public.tbl_studiengang sg', 'ON (sg.studiengang_kz = public.tbl_prestudent.studiengang_kz)');
|
|
|
|
|
$result = $this->PrestudentModel->load([
|
|
|
|
|
'prestudent_id' => $prestudent_id,
|
|
|
|
|
]);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
$result = current(getData($result));
|
|
|
|
|
// //get Studiengang von prestudent_id
|
|
|
|
|
// $this->load->model('crm/Prestudent_model', 'PrestudentModel');
|
|
|
|
|
// $this->PrestudentModel->addJoin('public.tbl_person p', 'ON (p.person_id = public.tbl_prestudent.person_id)');
|
|
|
|
|
// $this->PrestudentModel->addJoin('public.tbl_studiengang sg', 'ON (sg.studiengang_kz = public.tbl_prestudent.studiengang_kz)');
|
|
|
|
|
// $result = $this->PrestudentModel->load([
|
|
|
|
|
// 'prestudent_id' => $prestudent_id,
|
|
|
|
|
// ]);
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// $result = current(getData($result));
|
|
|
|
|
|
|
|
|
|
$stg = $result->studiengang_kz;
|
|
|
|
|
$stgkzl = $result->kurzbz;
|
|
|
|
|
$person_id = $result->person_id;
|
|
|
|
|
// $stg = $result->studiengang_kz;
|
|
|
|
|
// $stgkzl = $result->kurzbz;
|
|
|
|
|
// $person_id = $result->person_id;
|
|
|
|
|
|
|
|
|
|
if (!$this->permissionlib->isBerechtigt('admin', 'suid', $stg) && !$this->permissionlib->isBerechtigt('assistenz', 'suid', $stg)) {
|
|
|
|
|
$result = $this->p->t('lehre', 'error_keineSchreibrechte');
|
|
|
|
|
// if (!$this->permissionlib->isBerechtigt('admin', 'suid', $stg) && !$this->permissionlib->isBerechtigt('assistenz', 'suid', $stg)) {
|
|
|
|
|
// $result = $this->p->t('lehre', 'error_keineSchreibrechte');
|
|
|
|
|
|
|
|
|
|
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
// return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
|
|
|
|
|
// $_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
|
|
|
|
|
|
|
|
|
|
$uid = getAuthUID();
|
|
|
|
|
$status_kurzbz = $this->input->post('status_kurzbz');
|
|
|
|
|
$ausbildungssemester = $this->input->post('ausbildungssemester');
|
|
|
|
|
$bestaetigtam = $this->input->post('bestaetigtam');
|
|
|
|
|
$studiensemester_kurzbz = $this->input->post('studiensemester_kurzbz');
|
|
|
|
|
$bestaetigtvon = $uid;
|
|
|
|
|
// $uid = getAuthUID();
|
|
|
|
|
// $status_kurzbz = $this->input->post('status_kurzbz');
|
|
|
|
|
// $ausbildungssemester = $this->input->post('ausbildungssemester');
|
|
|
|
|
// $bestaetigtam = $this->input->post('bestaetigtam');
|
|
|
|
|
// $studiensemester_kurzbz = $this->input->post('studiensemester_kurzbz');
|
|
|
|
|
// $bestaetigtvon = $uid;
|
|
|
|
|
|
|
|
|
|
//Form Validation
|
|
|
|
|
$this->load->library('form_validation');
|
|
|
|
|
// //Form Validation
|
|
|
|
|
// $this->load->library('form_validation');
|
|
|
|
|
|
|
|
|
|
$this->form_validation->set_rules('ausbildungssemester', 'Ausbildungssemester', 'integer', [
|
|
|
|
|
'integer' => $this->p->t('ui', 'error_fieldNotInteger', ['field' => 'Ausbildungssemester'])
|
|
|
|
|
]);
|
|
|
|
|
// $this->form_validation->set_rules('ausbildungssemester', 'Ausbildungssemester', 'integer', [
|
|
|
|
|
// 'integer' => $this->p->t('ui', 'error_fieldNotInteger', ['field' => 'Ausbildungssemester'])
|
|
|
|
|
// ]);
|
|
|
|
|
|
|
|
|
|
if (!$this->form_validation->run())
|
|
|
|
|
$this->terminateWithValidationErrors($this->form_validation->error_array());
|
|
|
|
|
// if (!$this->form_validation->run())
|
|
|
|
|
// $this->terminateWithValidationErrors($this->form_validation->error_array());
|
|
|
|
|
|
|
|
|
|
//GET lastStatus
|
|
|
|
|
$result = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
|
|
|
|
|
// //GET lastStatus
|
|
|
|
|
// $result = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
|
|
|
|
|
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
} elseif (!hasData($result)) {
|
|
|
|
|
$lastStatusData = [];
|
|
|
|
|
} else
|
|
|
|
|
$lastStatusData = current(getData($result));
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// } elseif (!hasData($result)) {
|
|
|
|
|
// $lastStatusData = [];
|
|
|
|
|
// } else
|
|
|
|
|
// $lastStatusData = current(getData($result));
|
|
|
|
|
|
|
|
|
|
//check if studentrolle already exists
|
|
|
|
|
$this->load->model('crm/Student_model', 'StudentModel');
|
|
|
|
|
$result = $this->StudentModel->checkIfExistingStudentRolle($prestudent_id);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
if ($result->retval == "0") {
|
|
|
|
|
$isStudent = false;
|
|
|
|
|
} else
|
|
|
|
|
$isStudent = true;
|
|
|
|
|
// //check if studentrolle already exists
|
|
|
|
|
// $this->load->model('crm/Student_model', 'StudentModel');
|
|
|
|
|
// $result = $this->StudentModel->checkIfExistingStudentRolle($prestudent_id);
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// if ($result->retval == "0") {
|
|
|
|
|
// $isStudent = false;
|
|
|
|
|
// } else
|
|
|
|
|
// $isStudent = true;
|
|
|
|
|
|
|
|
|
|
if (!$isStudent) {
|
|
|
|
|
// return $this->terminateWithError("here: before check: isStudent: " . $isStudent, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
|
|
|
|
|
//Check ZGV
|
|
|
|
|
if ($status_kurzbz == Prestudentstatus_model::STATUS_BEWERBER) {
|
|
|
|
|
$result = $this->prestudentstatuschecklib->checkIfZGVEingetragen($prestudent_id);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// if (!$isStudent) {
|
|
|
|
|
|
|
|
|
|
//Check ZGV-Master
|
|
|
|
|
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
|
|
|
|
$result = $this->StudiengangModel->load([
|
|
|
|
|
'studiengang_kz' => $stg
|
|
|
|
|
]);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
|
|
|
|
return $this->outputJson(getError($result));
|
|
|
|
|
}
|
|
|
|
|
$result = current(getData($result));
|
|
|
|
|
$typ = $result->typ;
|
|
|
|
|
// //Check ZGV
|
|
|
|
|
// if ($status_kurzbz == Prestudentstatus_model::STATUS_BEWERBER) {
|
|
|
|
|
// $result = $this->prestudentstatuschecklib->checkIfZGVEingetragen($prestudent_id);
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
if (!defined("ZGV_CHECK") || ZGV_CHECK) {
|
|
|
|
|
if ($status_kurzbz == Prestudentstatus_model::STATUS_BEWERBER && $typ == 'm') {
|
|
|
|
|
$result = $this->prestudentstatuschecklib->checkIfZGVEingetragen($prestudent_id, $typ);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// //Check ZGV-Master
|
|
|
|
|
// $this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
|
|
|
|
// $result = $this->StudiengangModel->load([
|
|
|
|
|
// 'studiengang_kz' => $stg
|
|
|
|
|
// ]);
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
|
|
|
|
// return $this->outputJson(getError($result));
|
|
|
|
|
// }
|
|
|
|
|
// $result = current(getData($result));
|
|
|
|
|
// $typ = $result->typ;
|
|
|
|
|
|
|
|
|
|
//check if bewerberstatus exists
|
|
|
|
|
$result = $result = $this->prestudentstatuschecklib->checkIfExistingBewerberstatus($prestudent_id);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
// if (!defined("ZGV_CHECK") || ZGV_CHECK) {
|
|
|
|
|
// if ($status_kurzbz == Prestudentstatus_model::STATUS_BEWERBER && $typ == 'm') {
|
|
|
|
|
// $result = $this->prestudentstatuschecklib->checkIfZGVEingetragen($prestudent_id, $typ);
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//checkIf Kaution bezahlt
|
|
|
|
|
//TODO(Manu)
|
|
|
|
|
// //check if bewerberstatus exists
|
|
|
|
|
// $result = $this->prestudentstatuschecklib->checkIfExistingBewerberstatus($prestudent_id);
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//generate Personenkennzeichen(matrikelnr)
|
|
|
|
|
$resultMat = $this->StudentModel->generateMatrikelnummer2($stg, $studiensemester_kurzbz, $typ);
|
|
|
|
|
if (isError($resultMat)) {
|
|
|
|
|
return $this->terminateWithError($resultMat, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
$matrikelnr = getData($resultMat);
|
|
|
|
|
$jahr = mb_substr($matrikelnr, 0, 2);
|
|
|
|
|
// //checkIf Kaution bezahlt
|
|
|
|
|
// //TODO(Manu)
|
|
|
|
|
|
|
|
|
|
//generate UID
|
|
|
|
|
$resultUid = $this->StudentModel->generateUID($stgkzl, $jahr, $typ, $matrikelnr);
|
|
|
|
|
if (isError($resultMat)) {
|
|
|
|
|
return $this->terminateWithError("in generateUid" . $resultUid, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
$uidStudent = getData($resultUid);
|
|
|
|
|
// //check if Aufgenommenener Status
|
|
|
|
|
// $result = $this->prestudentstatuschecklib->checkIfExistingAufgenommenerstatus($prestudent_id);
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//Check for additional logic (config entries, addons)
|
|
|
|
|
//TODO(Manu) check include/tw/generatematrikelnr.inc.php
|
|
|
|
|
//(1) addons durchsuchen, ob eigene Logik für Matrikelnr-erstellung existiert
|
|
|
|
|
//Default: keine Matrikelnummer wird generiert
|
|
|
|
|
|
|
|
|
|
//(2) personenkz = uid
|
|
|
|
|
if (defined('SET_UID_AS_PERSONENKENNZEICHEN') && SET_UID_AS_PERSONENKENNZEICHEN) {
|
|
|
|
|
$matrikelnr = $uidStudent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//(3) Matrikelnummer = uid
|
|
|
|
|
if (defined('SET_UID_AS_MATRIKELNUMMER') && SET_UID_AS_MATRIKELNUMMER) {
|
|
|
|
|
//update person
|
|
|
|
|
$result = $this->PersonModel->update(
|
|
|
|
|
[
|
|
|
|
|
'person_id' => $person_id,
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
'matr_nr' => $uidStudent,
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError("uidAsMatrikelnummer" . getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//TODO(Manu) check if benutzer already exists to avoid conflicts..
|
|
|
|
|
//person kann mehrere Benutzer haben... student_uid?
|
|
|
|
|
//add benutzerdatensatz mit Aktierungscode
|
|
|
|
|
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
|
|
|
|
$result = $this->BenutzerModel->checkIfExistingBenutzer($person_id);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
if ($result->retval == "0") {
|
|
|
|
|
|
|
|
|
|
//activation key
|
|
|
|
|
$aktivierungscode = null;
|
|
|
|
|
$result = $this->BenutzerModel->generateActivationKey();
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError("in Error " . $result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
$aktivierungscode = getData($result);
|
|
|
|
|
// return $this->terminateWithError("here: after check: new Student", self::ERROR_TYPE_GENERAL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Alias generieren
|
|
|
|
|
$result = $this->PersonModel->generateAliasByPersonId($person_id);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError("in generate alias " . $result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
$alias = getData($result) ?: null;
|
|
|
|
|
$alias = $alias->retval[0];
|
|
|
|
|
// //generate Personenkennzeichen(matrikelnr)
|
|
|
|
|
// //getStudiensemester vom Status aufgenommen
|
|
|
|
|
// $resultMat = $this->StudentModel->generateMatrikelnummer2($stg, $studiensemester_kurzbz, $typ);
|
|
|
|
|
// if (isError($resultMat)) {
|
|
|
|
|
// return $this->terminateWithError($resultMat, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// $matrikelnr = getData($resultMat);
|
|
|
|
|
// $jahr = mb_substr($matrikelnr, 0, 2);
|
|
|
|
|
|
|
|
|
|
$sanitizedVorname = $this->_sanitizeAliasName($alias->vorname);
|
|
|
|
|
$sanitizedNachname = $this->_sanitizeAliasName($alias->nachname);
|
|
|
|
|
// //generate UID
|
|
|
|
|
// $resultUid = $this->StudentModel->generateUID($stgkzl, $jahr, $typ, $matrikelnr);
|
|
|
|
|
// if (isError($resultMat)) {
|
|
|
|
|
// return $this->terminateWithError("in generateUid" . $resultUid, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// $uidStudent = getData($resultUid);
|
|
|
|
|
|
|
|
|
|
// Erstelle den Alias
|
|
|
|
|
$alias = $sanitizedVorname . '.' . $sanitizedNachname;
|
|
|
|
|
// //Check for additional logic (config entries, addons)
|
|
|
|
|
// //TODO(Manu) check include/tw/generatematrikelnr.inc.php
|
|
|
|
|
// //(1) addons durchsuchen, ob eigene Logik für Matrikelnr-erstellung existiert
|
|
|
|
|
// //Default: keine Matrikelnummer wird generiert
|
|
|
|
|
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
// //(2) personenkz = uid
|
|
|
|
|
// if (defined('SET_UID_AS_PERSONENKENNZEICHEN') && SET_UID_AS_PERSONENKENNZEICHEN) {
|
|
|
|
|
// $matrikelnr = $uidStudent;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
$result = $this->BenutzerModel->insert(
|
|
|
|
|
[
|
|
|
|
|
'person_id' => $person_id,
|
|
|
|
|
'uid' => $uidStudent,
|
|
|
|
|
'aktiv' => true,
|
|
|
|
|
'aktivierungscode' => $aktivierungscode,
|
|
|
|
|
'alias' => $alias,
|
|
|
|
|
'insertvon' => $uid,
|
|
|
|
|
'insertamum' => date('c'),
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
// //(3) Matrikelnummer = uid
|
|
|
|
|
// if (defined('SET_UID_AS_MATRIKELNUMMER') && SET_UID_AS_MATRIKELNUMMER) {
|
|
|
|
|
// //update person
|
|
|
|
|
// $result = $this->PersonModel->update(
|
|
|
|
|
// [
|
|
|
|
|
// 'person_id' => $person_id,
|
|
|
|
|
// ],
|
|
|
|
|
// [
|
|
|
|
|
// 'matr_nr' => $uidStudent,
|
|
|
|
|
// ]
|
|
|
|
|
// );
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError("uidAsMatrikelnummer" . getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
// //TODO(Manu) check if benutzer already exists to avoid conflicts..
|
|
|
|
|
// //person kann mehrere Benutzer haben... student_uid?
|
|
|
|
|
// //add benutzerdatensatz mit Aktierungscode
|
|
|
|
|
// $this->load->model('person/Benutzer_model', 'BenutzerModel');
|
|
|
|
|
// $result = $this->BenutzerModel->checkIfExistingBenutzer($person_id);
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// if ($result->retval == "0") {
|
|
|
|
|
|
|
|
|
|
} else
|
|
|
|
|
return $this->terminateWithError("Benutzer already existing" . $person_id, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// //activation key
|
|
|
|
|
// $aktivierungscode = null;
|
|
|
|
|
// $result = $this->BenutzerModel->generateActivationKey();
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError("in Error " . $result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// $aktivierungscode = getData($result);
|
|
|
|
|
|
|
|
|
|
//Student anlegen
|
|
|
|
|
$result = $this->StudentModel->insert(
|
|
|
|
|
[
|
|
|
|
|
'student_uid' => $uidStudent,
|
|
|
|
|
'prestudent_id' => $prestudent_id,
|
|
|
|
|
'matrikelnr' => $matrikelnr,
|
|
|
|
|
'studiengang_kz' => $stg,
|
|
|
|
|
'semester' => $ausbildungssemester,
|
|
|
|
|
'verband' => '',
|
|
|
|
|
'gruppe' => '',
|
|
|
|
|
'insertvon' => $uid,
|
|
|
|
|
'insertamum' => date('c')
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
if (isError($result))
|
|
|
|
|
{
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->load->library('PrestudentLib');
|
|
|
|
|
$result = $this->prestudentlib->setFirstStudent($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester, null, $bestaetigtam, $bestaetigtvon, $stg, $uidStudent);
|
|
|
|
|
// //Alias generieren
|
|
|
|
|
// $result = $this->PersonModel->generateAliasByPersonId($person_id);
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError("in generate alias " . $result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
// $alias = getData($result) ?: null;
|
|
|
|
|
// $alias = $alias->retval[0];
|
|
|
|
|
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
} else
|
|
|
|
|
$this->terminateWithSuccess($prestudent_id);
|
|
|
|
|
// $sanitizedVorname = $this->_sanitizeAliasName($alias->vorname);
|
|
|
|
|
// $sanitizedNachname = $this->_sanitizeAliasName($alias->nachname);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
return $this->terminateWithError("addNewStatus(student)", self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
// // Erstelle den Alias
|
|
|
|
|
// $alias = $sanitizedVorname . '.' . $sanitizedNachname;
|
|
|
|
|
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// $result = $this->BenutzerModel->insert(
|
|
|
|
|
// [
|
|
|
|
|
// 'person_id' => $person_id,
|
|
|
|
|
// 'uid' => $uidStudent,
|
|
|
|
|
// 'aktiv' => true,
|
|
|
|
|
// 'aktivierungscode' => $aktivierungscode,
|
|
|
|
|
// 'alias' => $alias,
|
|
|
|
|
// 'insertvon' => $uid,
|
|
|
|
|
// 'insertamum' => date('c'),
|
|
|
|
|
// ]
|
|
|
|
|
// );
|
|
|
|
|
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// } else
|
|
|
|
|
// return $this->terminateWithError("Benutzer already existing" . $person_id, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
|
|
|
|
|
// //Student anlegen
|
|
|
|
|
// $result = $this->StudentModel->insert(
|
|
|
|
|
// [
|
|
|
|
|
// 'student_uid' => $uidStudent,
|
|
|
|
|
// 'prestudent_id' => $prestudent_id,
|
|
|
|
|
// 'matrikelnr' => $matrikelnr,
|
|
|
|
|
// 'studiengang_kz' => $stg,
|
|
|
|
|
// 'semester' => $ausbildungssemester,
|
|
|
|
|
// 'verband' => '',
|
|
|
|
|
// 'gruppe' => '',
|
|
|
|
|
// 'insertvon' => $uid,
|
|
|
|
|
// 'insertamum' => date('c')
|
|
|
|
|
// ]
|
|
|
|
|
// );
|
|
|
|
|
// if (isError($result))
|
|
|
|
|
// {
|
|
|
|
|
// return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// $this->load->library('PrestudentLib');
|
|
|
|
|
// $result = $this->prestudentlib->setFirstStudent($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester, null, $bestaetigtam, $bestaetigtvon, $stg, $uidStudent);
|
|
|
|
|
|
|
|
|
|
// if (isError($result)) {
|
|
|
|
|
// return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// } else
|
|
|
|
|
// $this->terminateWithSuccess($prestudent_id);
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// return $this->terminateWithError("addNewStatus(student)", self::ERROR_TYPE_GENERAL);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
public function addStudent($prestudent_id)
|
|
|
|
|
{
|
|
|
|
@@ -803,7 +816,7 @@ class Status extends FHCAPI_Controller
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//check if bewerberstatus exists
|
|
|
|
|
if($status_kurzbz == Prestudentstatus_model::STATUS_AUFGENOMMENER || $status_kurzbz == Prestudentstatus_model::STATUS_WARTENDER)
|
|
|
|
|
if($status_kurzbz == Prestudentstatus_model::STATUS_AUFGENOMMENER || $status_kurzbz == Prestudentstatus_model::STATUS_WARTENDER ||$status_kurzbz == Prestudentstatus_model::STATUS_STUDENT)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
$result = $this->prestudentstatuschecklib->checkIfExistingBewerberstatus($prestudent_id);
|
|
|
|
@@ -841,15 +854,32 @@ class Status extends FHCAPI_Controller
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// return ($this->terminateWithError("Is Student " . $isStudent, self::ERROR_TYPE_GENERAL));
|
|
|
|
|
|
|
|
|
|
if(!$isStudent)
|
|
|
|
|
{
|
|
|
|
|
//checkIf Kaution bezahlt
|
|
|
|
|
//TODO(Manu)
|
|
|
|
|
|
|
|
|
|
//check if Aufgenommenener Status
|
|
|
|
|
$result = $this->prestudentstatuschecklib->checkIfExistingAufgenommenerstatus($prestudent_id);
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//getSemester of Status Aufgenommen
|
|
|
|
|
$result = $this->PrestudentstatusModel->loadWhere([
|
|
|
|
|
"prestudent_id" => $prestudent_id,
|
|
|
|
|
"status_kurzbz" => Prestudentstatus_model::STATUS_AUFGENOMMENER
|
|
|
|
|
]);
|
|
|
|
|
//$this->PrestudentstatusModel->addOrder('ausbildungssemester', 'DESC');
|
|
|
|
|
$this->PrestudentstatusModel->addLimit(1);
|
|
|
|
|
if (isError($result))
|
|
|
|
|
{
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
$semesterAufgenommen = current(getData($result));
|
|
|
|
|
|
|
|
|
|
//generate Personenkennzeichen(matrikelnr)
|
|
|
|
|
$resultMat = $this->StudentModel->generateMatrikelnummer2($stg, $studiensemester_kurzbz, $typ);
|
|
|
|
|
$resultMat = $this->StudentModel->generateMatrikelnummer2($stg, $semesterAufgenommen->studiensemester_kurzbz, $typ);
|
|
|
|
|
if (isError($resultMat)) {
|
|
|
|
|
return $this->terminateWithError($resultMat, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
@@ -859,7 +889,7 @@ class Status extends FHCAPI_Controller
|
|
|
|
|
//generate UID
|
|
|
|
|
$resultUid = $this->StudentModel->generateUID($stgkzl, $jahr, $typ, $matrikelnr);
|
|
|
|
|
if (isError($resultMat)) {
|
|
|
|
|
return $this->terminateWithError("in generateUid" . $resultUid, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
return $this->terminateWithError(getData($resultUid), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
$uidStudent = getData($resultUid);
|
|
|
|
|
|
|
|
|
@@ -897,30 +927,29 @@ class Status extends FHCAPI_Controller
|
|
|
|
|
}
|
|
|
|
|
if ($result->retval != "0")
|
|
|
|
|
{
|
|
|
|
|
// return ($this->terminateWithError($result->retval . " uid: " . $uid, self::ERROR_TYPE_GENERAL));
|
|
|
|
|
return $this->terminateWithError($this->p->t('lehre','error_benutzerBereitsVorhanden', self::ERROR_TYPE_GENERAL));
|
|
|
|
|
}
|
|
|
|
|
//activation key
|
|
|
|
|
|
|
|
|
|
$aktivierungscode = null;
|
|
|
|
|
$result = $this->BenutzerModel->generateActivationKey();
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
return $this->terminateWithError("in Error " . $result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
$aktivierungscode = getData($result);
|
|
|
|
|
|
|
|
|
|
//Alias generieren
|
|
|
|
|
//generate Alias
|
|
|
|
|
$result = $this->PersonModel->generateAliasByPersonId($person_id);
|
|
|
|
|
|
|
|
|
|
if (isError($result))
|
|
|
|
|
{
|
|
|
|
|
return $this->terminateWithError("in generate alias " . $result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
return $this->terminateWithError(getData($result), self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$alias = getData($result) ?: null;
|
|
|
|
|
$alias = $alias->retval[0];
|
|
|
|
|
|
|
|
|
|
$sanitizedVorname = $this->_sanitizeAliasName($alias->vorname);
|
|
|
|
|
$sanitizedNachname = $this->_sanitizeAliasName($alias->nachname);
|
|
|
|
|
|
|
|
|
|
// Erstelle den Alias
|
|
|
|
|
$alias = $sanitizedVorname . '.' . $sanitizedNachname;
|
|
|
|
|
|
|
|
|
|
if (isError($result))
|
|
|
|
@@ -943,7 +972,6 @@ class Status extends FHCAPI_Controller
|
|
|
|
|
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Student anlegen
|
|
|
|
|
$result = $this->StudentModel->insert(
|
|
|
|
|
[
|
|
|
|
|