diff --git a/application/controllers/api/frontend/v1/stv/Aufnahmetermine.php b/application/controllers/api/frontend/v1/stv/Aufnahmetermine.php index c7d8ca296..c9a114b3b 100644 --- a/application/controllers/api/frontend/v1/stv/Aufnahmetermine.php +++ b/application/controllers/api/frontend/v1/stv/Aufnahmetermine.php @@ -36,15 +36,44 @@ class Aufnahmetermine extends FHCAPI_Controller // Load models $this->load->model('crm/Reihungstest_model', 'ReihungstestModel'); $this->load->model('crm/RtPerson_model', 'RtPersonModel'); + $this->load->model('organisation/Studienplan_model', 'StudienplanModel'); + $this->load->model('organisation/Studienordnung_model', 'StudienordnungModel'); + $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); } public function getAufnahmetermine($person_id) { $result = $this->ReihungstestModel->getReihungstestPerson($person_id); + $arrayRt = $this->getDataOrTerminateWithError($result); - $data = $this->getDataOrTerminateWithError($result); + foreach ($arrayRt as $item) { + //Studienplan + $result = $this->StudienplanModel->loadWhere([ + 'studienplan_id' => $item->studienplan_id + ]); + $data = $this->getDataOrTerminateWithError($result); + $studienordnung_id_ber = current($data)->studienordnung_id; - $this->terminateWithSuccess($data); + //Studienordnung + $result = $this->StudienordnungModel->loadWhere([ + 'studienordnung_id' => $studienordnung_id_ber + ]); + $data = $this->getDataOrTerminateWithError($result); + $studiengang_kz_ber = current($data)->studiengang_kz; + + //Studiengang von studiengang_kz_ber + $result = $this->StudiengangModel->load($studiengang_kz_ber); + $data = $this->getDataOrTerminateWithError($result); + + $studiengangkurzbzlang_ber = current($data)->kurzbzlang; + $typ_ber = current($data)->typ; + + //add to Array + $item->studiengang_kz_ber = $studiengang_kz_ber; + $item->studiengangkurzbzlang_ber = $studiengangkurzbzlang_ber; + $item->studiengangtyp_ber = $typ_ber; + } + $this->terminateWithSuccess($arrayRt); } public function insertAufnahmetermin() @@ -60,7 +89,6 @@ class Aufnahmetermine extends FHCAPI_Controller return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=> 'Person ID']), self::ERROR_TYPE_GENERAL); } - $rt_id = (isset($formData['rt_id']) && !empty($formData['rt_id'])) ? $formData['rt_id'] : null; $anmeldedatum = (isset($formData['anmeldedatum']) && !empty($formData['anmeldedatum'])) ? $formData['anmeldedatum'] : null; $teilgenommen = (isset($formData['teilgenommen']) && !empty($formData['teilgenommen'])) ? $formData['teilgenommen'] : false; @@ -237,6 +265,8 @@ class Aufnahmetermine extends FHCAPI_Controller if($item->studienplan_id != null) $studienplan_arr[] = $item->studienplan_id; } + if(!hasData($studienplan_arr)) + $this->terminateWithSuccess([]); //get Placementtests Person $person_id = $this->_getPersonId($prestudent_id); diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js index ecd8b4059..f73929ab6 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js @@ -46,8 +46,7 @@ export default { const data = response.data; const filtered = data.filter(item => - item.studiengangkurzbzlang === this.student.studiengang || - item.stg_kuerzel === this.student.studiengang + item.studiengang_kz_ber === this.student.studiengang_kz ); if (filtered.length > 0) { @@ -62,17 +61,15 @@ export default { return data; }, rowFormatter: function(row) { - let data = row.getData(); // get data for this row + let data = row.getData(); - if (data.studiengangkurzbzlang == self.student.studiengang && + if (data.studiengang_kz_ber === self.student.studiengang_kz && data.studiensemester === self.youngestSemester) { - let cells = row.getCells(); - - cells.forEach((c) => { - c.getElement().classList.add("row-green"); - } - - ); + let cells = row.getCells(); + cells.forEach((c) => { + c.getElement().classList.add("row-green"); + } + ); } }, dataLoaded: function() { @@ -124,8 +121,9 @@ export default { {title: "ort", field: "ort", visible: false}, {title: "studienplan", field: "studienplan", visible: false}, {title: "studienplan_id", field: "studienplan_id", visible: false}, - {title: "stg", field: "studiengangkurzbzlang"}, - {title: "Stg", field: "stg_kuerzel"}, + //{title: "stg", field: "studiengangkurzbzlang"}, + {title: "stg_ber", field: "studiengangkurzbzlang_ber"}, + {title: "stg_kz", field: "studiengang_kz_ber", visible: false}, { title: 'Aktionen', field: 'actions', minWidth: 150, // Ensures Action-buttons will be always fully displayed @@ -209,12 +207,9 @@ export default { cm.getColumnByField('studienplan_id').component.updateDefinition({ title: this.$p.t('ui', 'studienplan_id') }); - cm.getColumnByField('studiengangkurzbzlang').component.updateDefinition({ + cm.getColumnByField('studiengangkurzbzlang_ber').component.updateDefinition({ title: this.$p.t('projektarbeitsbeurteilung', 'studiengang') }); - cm.getColumnByField('stg_kuerzel').component.updateDefinition({ - title: this.$p.t('admission', 'stg_kurz') - }); } } ], @@ -382,7 +377,6 @@ export default { .then(result => { if(result.data) this.listPlacementTests = this.filteredPlacementTests = result.data; - }) .catch(this.$fhcAlert.handleSystemError); @@ -396,7 +390,7 @@ export default { template: `

{{$p.t('admission', 'allgemein')}}

- + { this.listAufnahmetermine = result.data; - //TODO(Manu) check logic Fas STG - const hasMatch = this.listAufnahmetermine - .some(item => item.studiengangkurzbzlang === this.student.studiengang); - if(!hasMatch){ - this.formData.rt_gesamtpunkte = 0; - this.$fhcAlert.alertError("Studiengang nicht enthalten: " + this.student.studiengang); - return; - } - const listAufnahmetermineFiltered = this.listAufnahmetermine - .filter(item => item.studiengangkurzbzlang == this.student.studiengang) + .filter(item => item.studiengang_kz_ber == this.student.studiengang_kz) .sort((a, b) => this.parseSemester(b.studiensemester) - this.parseSemester(a.studiensemester)); let pointsSemStg = 0; @@ -114,7 +105,7 @@ export default { template: `

{{ $p.t('lehre', 'studiengang') }}

{{student.studiengang}} - +