diff --git a/application/controllers/api/frontend/v1/stv/Status.php b/application/controllers/api/frontend/v1/stv/Status.php
index 24986429d..1bda564fa 100644
--- a/application/controllers/api/frontend/v1/stv/Status.php
+++ b/application/controllers/api/frontend/v1/stv/Status.php
@@ -11,9 +11,9 @@ class Status extends FHCAPI_Controller
parent::__construct([
'getHistoryPrestudent' => ['admin:r', 'assistenz:r'],
'addNewStatus' => ['admin:r', 'assistenz:r', 'student/keine_studstatuspruefung'],
- 'getStatusgruende' => 'assistenz:r', // TODO(manu): self::PERM_LOGGED
- 'getLastBismeldestichtag' => 'assistenz:r', // TODO(manu): self::PERM_LOGGED
- 'isLastStatus' => 'assistenz:r', // TODO(manu): self::PERM_LOGGED
+ 'getStatusgruende' => self::PERM_LOGGED,
+ 'getLastBismeldestichtag' => self::PERM_LOGGED,
+ 'isLastStatus' => self::PERM_LOGGED,
'deleteStatus' => ['admin:r','assistenz:r'],
'loadStatus' => ['admin:r', 'assistenz:r'],
'updateStatus' => ['admin:r', 'assistenz:r'],
@@ -98,7 +98,7 @@ class Status extends FHCAPI_Controller
//Variablen für Statuscheck
$stg = $result->studiengang_kz;
$reihungstest_angetreten = $result->reihungstestangetreten;
- $name = trim($result->vorname . " ". $result->nachname);
+ //$name = trim($result->vorname . " ". $result->nachname);
$zgv_code = $result->zgv_code;
$isStudent = false;
@@ -124,6 +124,7 @@ class Status extends FHCAPI_Controller
$statusgrund_id = $this->input->post('statusgrund_id');
$rt_stufe = $this->input->post('rt_stufe');
$bestaetigtvon = $uid;
+ $name = $this->input->post('name');
//GET lastStatus
$result = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
@@ -140,7 +141,6 @@ class Status extends FHCAPI_Controller
$lastStatusData = current(getData($result));
//Different handling depending on newStatus
- //Todo(manu) check later with multiactions
/* if($status_kurzbz == 'Absolvent' || $status_kurzbz == 'Diplomand')
{
//$studiensemester = $semester_aktuell;
@@ -163,45 +163,36 @@ class Status extends FHCAPI_Controller
if (isError($result))
{
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
-/* $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
- return $this->outputJson(getError($result));*/
}
if($result->retval == '1')
{
-/* $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
- return $this->outputJson($result->code);*/
- return $this->terminateWithError($this->p->t('lehre','error_rolleBereitsVorhanden'), self::ERROR_TYPE_GENERAL);
- //return $this->terminateWithError("test error_rolleBereitsVorhanden", self::ERROR_TYPE_GENERAL);
+ return $this->terminateWithError($name . ": " . $this->p->t('lehre','error_rolleBereitsVorhanden'), self::ERROR_TYPE_GENERAL);
}
//Check Reihungstest
- //TODO(manu) erst später für multiactions releveant
+ //TODO(manu) test
if(REIHUNGSTEST_CHECK)
{
if($status_kurzbz=='Bewerber' && !$reihungstest_angetreten)
{
-/* $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
- return $this->outputJson($name . ": Um einen Interessenten zum Bewerber zu machen, muss die Person das Reihungstestverfahren abgeschlossen haben");*/
return $this->terminateWithError($this->p->t('lehre','error_keinReihungstestverfahren', $name), self::ERROR_TYPE_GENERAL);
}
}
//Check ZGV
- //TODO(manu) erst später für multiactions releveant
+ //TODO(manu) test
if(!defined("ZGV_CHECK") || ZGV_CHECK)
{
if($status_kurzbz=='Bewerber' && $zgv_code=='')
{
-/* $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
- return $this->outputJson($name . ": Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung eingetragen sein.");*/
return $this->terminateWithError($this->p->t('lehre','error_ZGVNichtEingetragen', $name), self::ERROR_TYPE_GENERAL);
}
}
//Check ZGV-Master
- //TODO(manu) erst später für multiactions releveant
+ //TODO(manu) test
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$result = $this->StudiengangModel->load([
'studiengang_kz'=> $stg
@@ -218,8 +209,6 @@ class Status extends FHCAPI_Controller
{
if($status_kurzbz=='Bewerber' && $zgv_code=='' && $typ=='m')
{
-/* $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
- return $this->outputJson($name . ": Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung Master eingetragen sein.");*/
return $this->terminateWithError($this->p->t('lehre','error_ZGVMasterNichtEingetragen', $name), self::ERROR_TYPE_GENERAL);
}
}
@@ -246,8 +235,8 @@ class Status extends FHCAPI_Controller
}
//check if studentrolle already exists
- //TODO(manu) eigener Code für Diplomand?
- if($status_kurzbz == 'Student' || $status_kurzbz == 'Diplomand')
+ //TODO(manu) refactor and test
+ if($status_kurzbz == 'Student' || $status_kurzbz == 'Diplomand' || $lastStatusData->status_kurzbz == 'Student')
{
$this->load->model('crm/Student_model', 'StudentModel');
$result = $this->StudentModel->checkIfExistingStudentRolle($prestudent_id);
@@ -257,8 +246,6 @@ class Status extends FHCAPI_Controller
}
if($result->retval == "0")
{
-/* $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
- return $this->outputJson($result->code);*/
return $this->terminateWithError($this->p->t('lehre','error_noStudstatus'), self::ERROR_TYPE_GENERAL);
}
if($result->retval != "0")
@@ -281,8 +268,10 @@ class Status extends FHCAPI_Controller
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
+ //return $this->terminateWithError($name, self::ERROR_TYPE_GENERAL);
$result = $this->PrestudentstatusModel->checkIfValidStatusHistory(
$prestudent_id,
+ $name,
$status_kurzbz,
$studiensemester_kurzbz,
$new_status_datum,
@@ -363,8 +352,8 @@ class Status extends FHCAPI_Controller
$studiengang_kz = $studentData->studiengang_kz;
//Handle Abbrecher and Unterbrecher
- //TODO (manu) implement later with multiactions
- // not active yet: works only for "status ändern" in FAS
+ //TODO(manu) for addStatus unterbrecher: valdidaton of ausbildungssemester 0 (default = 1)
+ //right now: just commented out
if($status_kurzbz == 'Abbrecher' || $status_kurzbz == 'Unterbrecher')
{
$ausbildungssemester = 0;
@@ -385,43 +374,59 @@ class Status extends FHCAPI_Controller
if ($this->db->trans_status() === false || isError($result))
{
$this->db->trans_rollback();
-/* $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
- return $this->outputJson($result->code);*/
return $this->terminateWithError($this->p->t('lehre','error_duringInsertUpdateLehrverband'), self::ERROR_TYPE_GENERAL);
}
//Student updaten (fuer Abbrecher und Unterbrecher)
- //not active yet: works only for "status ändern" in FAS
- //Todo(Manu) Later for multiactions
-
+ //implemented for multiaction "status ändern"
+ //TODO(Manu) implement also for newStatus
if($status_kurzbz == 'Abbrecher' || $status_kurzbz == 'Unterbrecher')
{
$result = $this->StudentModel->update(
- [
- 'student_uid' => $student_uid
- ],
- [
- 'studiengang_kz' => $studiengang_kz,
- 'semester' => $ausbildungssemester,
- 'verband' => $verband,
- 'gruppe' => $gruppe,
- 'updateamum' => date('c'),
- 'updatevon' => $uid
- ]);
- if ($this->db->trans_status() === false || isError($result))
- {
- $this->db->trans_rollback();
- $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
- return $this->outputJson($result->code);
- }
+ [
+ 'student_uid' => $student_uid
+ ],
+ [
+ 'studiengang_kz' => $studiengang_kz,
+ 'semester' => $ausbildungssemester,
+ 'verband' => $verband,
+ 'gruppe' => $gruppe,
+ 'updateamum' => date('c'),
+ 'updatevon' => $uid
+ ]);
+ if ($this->db->trans_status() === false || isError($result))
+ {
+ $this->db->trans_rollback();
+ return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
+ // detailtab: set active to false if abbrecher
+ if($status_kurzbz == 'Abbrecher')
+ {
+
+ $this->load->model('person/Benutzer_model', 'BenutzerModel');
+ $result = $this->BenutzerModel->update(
+ [
+ 'uid' => $student_uid
+ ],
+ [
+ 'aktiv' => false,
+ 'updateaktivam' => date('Y-m-d'),
+ 'updateaktivvon' => $uid
+ ]);
+ if ($this->db->trans_status() === false || isError($result))
+ {
+ $this->db->trans_rollback();
+ return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
+ }
+ }
+
+ }
}
$this->db->trans_commit();
- //return $this->outputJsonSuccess($prestudent_id);
$this->terminateWithSuccess($prestudent_id);
}
@@ -1013,10 +1018,11 @@ class Status extends FHCAPI_Controller
$result = $this->PrestudentstatusModel->checkIfValidStatusHistory(
$prestudent_id,
+ '',
$status_kurzbz,
$studiensemester_kurzbz,
$datum,
- $ausbildungssemester
+ $ausbildungssemesteR
);
if (isError($result))
{
diff --git a/application/controllers/api/frontend/v1/stv/Student.php b/application/controllers/api/frontend/v1/stv/Student.php
index 31fc7075c..62a6b3e95 100644
--- a/application/controllers/api/frontend/v1/stv/Student.php
+++ b/application/controllers/api/frontend/v1/stv/Student.php
@@ -133,6 +133,7 @@ class Student extends FHCAPI_Controller
$result = $this->udflib->getCiValidations($this->PersonModel, $this->input->post());
+ //TODO(Manu) check with Chris: input number not allowed
$fieldValidations = $this->getDataOrTerminateWithError($result);
$this->form_validation->set_rules($fieldvalidations);
diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php
index e045eaf84..0b198bb7d 100644
--- a/application/models/crm/Prestudent_model.php
+++ b/application/models/crm/Prestudent_model.php
@@ -739,7 +739,7 @@ class Prestudent_model extends DB_Model
ps.status_kurzbz,
ps.studiensemester_kurzbz,
ps.ausbildungssemester,
- CASE WHEN ps.status_kurzbz IN ('Student', 'Diplomand')
+ CASE WHEN ps.status_kurzbz IN ('Student', 'Diplomand','Abbrecher','Unterbrecher')
THEN CONCAT(lv.semester, lv.verband, lv.gruppe)
ELSE ''
END AS lehrverband,
diff --git a/application/models/crm/Prestudentstatus_model.php b/application/models/crm/Prestudentstatus_model.php
index cad3f1b91..44e1d9e65 100644
--- a/application/models/crm/Prestudentstatus_model.php
+++ b/application/models/crm/Prestudentstatus_model.php
@@ -496,8 +496,9 @@ class Prestudentstatus_model extends DB_Model
* @param integer $prestudent_id
* @return error if not valid, array StatusArr if valid
*/
- public function checkIfValidStatusHistory($prestudent_id, $status_kurzbz, $new_status_studiensemester_kurzbz, $new_status_datum, $new_status_ausbildungssemester, $old_status_studiensemester_kurzbz = '', $old_status_ausbildungssemester = '')
+ public function checkIfValidStatusHistory($prestudent_id, $nameStud, $status_kurzbz, $new_status_studiensemester_kurzbz, $new_status_datum, $new_status_ausbildungssemester, $old_status_studiensemester_kurzbz = '', $old_status_ausbildungssemester = '')
{
+ $name = ($nameStud != '') ? $nameStud . ": " : '';
//$isNewStatus = $this->checkIfNewStatus($prestudent_id, $status_kurzbz);
$isNewStatus = $old_status_studiensemester_kurzbz == '' && $old_status_ausbildungssemester == '';
@@ -581,7 +582,7 @@ class Prestudentstatus_model extends DB_Model
// Abbrecher- oder Absolventenstatus muss Endstatus sein
if (isset($next_status) && in_array($curr_status_kurzbz, $endstatusArr)) {
- return error("Nach Abbrecher- und Absolventenstatus darf kein anderer Status mehr eingetragen werden");
+ return error($name . "Nach Abbrecher- und Absolventenstatus darf kein anderer Status mehr eingetragen werden");
}
// wenn Unterbrecher auf Unterbrecher folgt, muss Ausbildungssemester gleich sein
@@ -590,7 +591,7 @@ class Prestudentstatus_model extends DB_Model
&& $curr_status_ausbildungssemester != $next_status->ausbildungssemester
)
{
- return error("Aufeinanderfolgende Unterbrecher müssen gleiches Ausbildungssemester haben");
+ return error($name . "Aufeinanderfolgende Unterbrecher müssen gleiches Ausbildungssemester haben");
}
// wenn Abbrecher auf Unterbrecher folgt, muss Ausbildungssemester gleich sein
@@ -599,7 +600,7 @@ class Prestudentstatus_model extends DB_Model
&& $next_status->status_kurzbz == 'Abbrecher' && $curr_status_ausbildungssemester != $next_status->ausbildungssemester
)
{
- return error("Unterbrecher und folgender Abbrecher müssen gleiches Ausbildungssemester haben");
+ return error($name ."Unterbrecher und folgender Abbrecher müssen gleiches Ausbildungssemester haben");
}
// keine Studenten nach Diplomand Status
@@ -607,7 +608,7 @@ class Prestudentstatus_model extends DB_Model
isset($next_status) && $curr_status_kurzbz == 'Diplomand' && $next_status->status_kurzbz == 'Student'
)
{
- return error("Nach Diplomandenstatus darf kein Studentenstatus mehr eingetragen werden");
+ return error($name . "Nach Diplomandenstatus darf kein Studentenstatus mehr eingetragen werden");
}
}
diff --git a/application/models/education/Studentlehrverband_model.php b/application/models/education/Studentlehrverband_model.php
index 38791a812..6e10be689 100644
--- a/application/models/education/Studentlehrverband_model.php
+++ b/application/models/education/Studentlehrverband_model.php
@@ -53,12 +53,14 @@ class Studentlehrverband_model extends DB_Model
$this->load->model('organisation/Lehrverband_model', 'LehrverbandModel');
$result = $this->LehrverbandModel->checkIfLehrverbandExists($studiengang_kz, $ausbildungssemester, $verband, $gruppe);
- if (isError($result)) {
+ if (isError($result))
+ {
$this->db->trans_rollback();
return error("0", "Error during update Lehrverband");
}
if ($result->retval == "0") {
+
// Übergeordneten Lehrverband check and/or insert
$result = $this->LehrverbandModel->checkIfLehrverbandExists($studiengang_kz, $ausbildungssemester, '', '');
if (isError($result)) {
@@ -68,6 +70,7 @@ class Studentlehrverband_model extends DB_Model
if ($result->retval == "0")
{
+ $this->terminateWithError("in section 0 und weiter.. wo verband auf leer gesetzt wird", self::ERROR_TYPE_GENERAL);
$result = $this->LehrverbandModel->insert([
'studiengang_kz' => $studiengang_kz,
'semester' => $ausbildungssemester,
@@ -104,12 +107,14 @@ class Studentlehrverband_model extends DB_Model
// Studentlehrverband insert or update
$this->load->model('education/Studentlehrverband_model', 'StudentlehrverbandModel');
$result = $this->StudentlehrverbandModel->checkIfStudentLehrverbandExists($student_uid, $studiensemester_kurzbz);
- if (isError($result)) {
+ if (isError($result))
+ {
$this->db->trans_rollback();
return error(getError($result));
}
- if ($result->retval == "0") {
+ if ($result->retval == "0")
+ {
$result = $this->StudentlehrverbandModel->insert([
'student_uid' => $student_uid,
'studiensemester_kurzbz' => $studiensemester_kurzbz,
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent.js b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent.js
index 0b9279475..ad402b5ed 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent.js
@@ -137,8 +137,8 @@ export default {
this.listZgvsdoktor = result;
})
.catch(this.$fhcAlert.handleSystemError);
- CoreRESTClient //TODO(manu) FHCAPI
- .get('components/stv/Lists/getStgs')
+ this.$fhcApi
+ .get('api/frontend/v1/stv/lists/getStgs')
.then(result => CoreRESTClient.getData(result.data) || [])
.then(result => {
this.listStgs = result;
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/MultiStatus.js b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/MultiStatus.js
index ac77f75c8..3d0f101cf 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/MultiStatus.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/MultiStatus.js
@@ -63,7 +63,8 @@ export default{
const newObj = {
prestudent_id : this.modelValue.prestudent_id,
studiensemester_kurzbz : this.defaultSemester,
- ausbildungssemester : this.modelValue.semester
+ ausbildungssemester : this.modelValue.semester,
+ name: `${this.modelValue.vorname} ${this.modelValue.nachname}`
};
dataArray.push(newObj);
//console.log(dataArray);
@@ -75,14 +76,14 @@ export default{
const newObj = {
prestudent_id: item.prestudent_id,
ausbildungssemester: item.semester,
- studiensemester_kurzbz: this.defaultSemester
+ studiensemester_kurzbz: this.defaultSemester,
+ name: `${item.vorname} ${item.nachname}`
};
dataArray.push(newObj);
}
return dataArray;
}
-
},
gruende() {
return this.listStatusgruende.filter(grund => grund.status_kurzbz == this.statusData.status_kurzbz);
@@ -295,6 +296,7 @@ export default{
this.statusData.ausbildungssemester = 1;
this.statusData.datum = this.getDefaultDate();
this.statusData.bestaetigtam = this.getDefaultDate();
+ this.statusData.name = this.modelValue.vorname + ' ' + this.modelValue.nachname;
this.$refs.newStatusModal.show();
},
actionEditStatus(status, stdsem, ausbildungssemester){
@@ -482,9 +484,6 @@ export default{
changeData = this.newArray.find(item => item.prestudent_id === prestudentId);
}
- console.log("---");
- console.log(changeData);
-
return this.$fhcApi.post('api/frontend/v1/stv/status/addNewStatus/' + prestudentId,
//this.statusData
//this.updateData.find(item => item.prestudent_id == prestudentId)
@@ -504,6 +503,7 @@ export default{
.then(values => {
if (this.modelValue.prestudent_id) {
this.reload();
+ //TODO(manu) reload Detailtab after Abbrecher to see current status activ, verband and gruppe
}
else {
this.$reloadList();
@@ -511,6 +511,7 @@ export default{
this.hideModal('newStatusModal');
this.resetModal();
});
+
},
advanceStatus(statusId){
return this.$fhcApi.post('api/frontend/v1/stv/status/advanceStatus/' +
@@ -673,11 +674,10 @@ export default{
-
+
-
-
@@ -844,11 +844,10 @@ export default{
-
+
-
-
@@ -1110,41 +1109,6 @@ export default{
-
-