- use studiengang_kz and studiengangkurzbz of studienordnung of persontRT

- add check for existing studiengang
- use studiengang_kz instead studiengangkurzbz for filter and background green
This commit is contained in:
ma0068
2025-12-10 09:49:00 +01:00
parent 43497b186d
commit 1176c8d6e4
3 changed files with 48 additions and 33 deletions
@@ -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);
@@ -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: `
<div class="stv-details-admission-table h-100 pb-3">
<h4>{{$p.t('admission', 'allgemein')}}</h4>
<core-filter-cmpt
ref="table"
:tabulator-options="tabulatorOptions"
@@ -49,17 +49,8 @@ export default {
.then(result => {
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: `
<div class="stv-details-admission-header-placement h-100 pb-3">
<h4>{{ $p.t('lehre', 'studiengang') }}</h4> {{student.studiengang}}
<form-form class="mt-3" ref="formRtGesamtData" @submit.prevent>
<div v-if="showAufnahmegruppen" class="row mb-3">
<div class="col-1">