update search Mitarbeiter, form

This commit is contained in:
ma0068
2024-12-04 08:34:36 +01:00
parent 00d64f2c97
commit 7cff70e88d
5 changed files with 213 additions and 105 deletions
@@ -54,6 +54,41 @@ class Abschlusspruefung extends FHCAPI_Controller
public function loadAbschlusspruefung()
{
$abschlusspruefung_id = $this->input->post('id');
$this->AbschlusspruefungModel->addSelect('lehre.tbl_abschlusspruefung.*');
$this->AbschlusspruefungModel->addSelect("
CASE
WHEN pruefer1 IS NOT NULL
THEN CONCAT(p1.nachname, ' ', p1.vorname, COALESCE(' ' || p1.titelpre, ''))
ELSE NULL
END AS p1
");
$this->AbschlusspruefungModel->addSelect("
CASE
WHEN pruefer2 IS NOT NULL
THEN CONCAT(p2.nachname, ' ', p2.vorname, COALESCE(' ' || p2.titelpre, ''))
ELSE NULL
END AS p2
");
$this->AbschlusspruefungModel->addSelect("
CASE
WHEN pruefer3 IS NOT NULL
THEN CONCAT(p3.nachname, ' ', p3.vorname, COALESCE(' ' || p3.titelpre, ''))
ELSE NULL
END AS p3
");
$this->AbschlusspruefungModel->addSelect("
CASE
WHEN vorsitz IS NOT NULL
THEN CONCAT(pv.nachname, ' ', pv.vorname, COALESCE(' ' || pv.titelpre, ''), ' (', ben.uid , ')' )
ELSE NULL
END AS pv
");
$this->AbschlusspruefungModel->addJoin('public.tbl_benutzer ben', 'ON (ben.uid = lehre.tbl_abschlusspruefung.vorsitz)', 'LEFT');
$this->AbschlusspruefungModel->addJoin('public.tbl_person pv', 'ON (pv.person_id = ben.person_id)', 'LEFT');
$this->AbschlusspruefungModel->addJoin('public.tbl_person p1', 'ON (p1.person_id = lehre.tbl_abschlusspruefung.pruefer1)', 'LEFT');
$this->AbschlusspruefungModel->addJoin('public.tbl_person p2', 'ON (p2.person_id = lehre.tbl_abschlusspruefung.pruefer2)', 'LEFT');
$this->AbschlusspruefungModel->addJoin('public.tbl_person p3', 'ON (p3.person_id = lehre.tbl_abschlusspruefung.pruefer3)', 'LEFT');
$result = $this->AbschlusspruefungModel->loadWhere(
array('abschlusspruefung_id' => $abschlusspruefung_id)
);
@@ -148,6 +183,7 @@ class Abschlusspruefung extends FHCAPI_Controller
if (isError($result)) {
$this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
$this->terminateWithSuccess($result ?: []);
}
@@ -175,17 +211,21 @@ class Abschlusspruefung extends FHCAPI_Controller
return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=> 'Student UID']), self::ERROR_TYPE_GENERAL);
}
$formData = $this->input->post('formData');
$_POST['pruefungstyp_kurzbz'] = $formData['pruefungstyp_kurzbz'];
$_POST['akadgrad_id']= $formData['akadgrad_id'];
$_POST['vorsitz']= $formData['vorsitz'];
$_POST['vorsitz'] = isset($formData['vorsitz']['mitarbeiter_uid']) ? $formData['vorsitz']['mitarbeiter_uid'] : $formData['vorsitz'];
$_POST['pruefer1'] = isset($formData['pruefer1']['person_id']) ? $formData['pruefer1']['person_id'] : $formData['pruefer1'];
$_POST['pruefer2'] = isset($formData['pruefer2']['person_id']) ? $formData['pruefer2']['person_id'] : $formData['pruefer2'];
$_POST['pruefer3'] = isset($formData['pruefer3']['person_id']) ? $formData['pruefer3']['person_id'] : $formData['pruefer3'];
$_POST['pruefungsantritt_kurzbz'] = $formData['pruefungsantritt_kurzbz'];
$_POST['abschlussbeurteilung_kurzbz'] = $formData['abschlussbeurteilung_kurzbz'];
$_POST['datum']= $formData['datum'];
$_POST['sponsion']= $formData['sponsion'];
$_POST['pruefer1'] = $formData['pruefer1'];
$_POST['pruefer2']= $formData['pruefer2'];
$_POST['pruefer3']= $formData['pruefer3'];
$_POST['anmerkung'] = $formData['anmerkung'];
$_POST['protokoll']= $formData['protokoll'];
$_POST['note'] = $formData['note'];
@@ -198,17 +238,10 @@ class Abschlusspruefung extends FHCAPI_Controller
'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Datum'])
]);
//TODO(Manu) just for testing, not really required
$this->form_validation->set_rules('sponsion', 'Sponsion', 'required|is_valid_date', [
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Sponsion']),
$this->form_validation->set_rules('sponsion', 'Sponsion', 'is_valid_date', [
'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Sponsion'])
]);
/* $this->form_validation->set_rules('sponsion', 'Sponsion', 'is_valid_date', [
'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Sponsion'])
]);*/
if ($this->form_validation->run() == false)
{
$this->terminateWithValidationErrors($this->form_validation->error_array());
@@ -253,14 +286,14 @@ class Abschlusspruefung extends FHCAPI_Controller
$_POST['student_uid'] = $formData['student_uid'];
$_POST['pruefungstyp_kurzbz'] = $formData['pruefungstyp_kurzbz'];
$_POST['akadgrad_id']= $formData['akadgrad_id'];
$_POST['vorsitz']= $formData['vorsitz'];
$_POST['vorsitz'] = isset($formData['vorsitz']['mitarbeiter_uid']) ? $formData['vorsitz']['mitarbeiter_uid'] : $formData['vorsitz'];
$_POST['pruefer1'] = isset($formData['pruefer1']['person_id']) ? $formData['pruefer1']['person_id'] : $formData['pruefer1'];
$_POST['pruefer2'] = isset($formData['pruefer2']['person_id']) ? $formData['pruefer2']['person_id'] : $formData['pruefer2'];
$_POST['pruefer3'] = isset($formData['pruefer3']['person_id']) ? $formData['pruefer3']['person_id'] : $formData['pruefer3'];
$_POST['pruefungsantritt_kurzbz'] = $formData['pruefungsantritt_kurzbz'];
$_POST['abschlussbeurteilung_kurzbz'] = $formData['abschlussbeurteilung_kurzbz'];
$_POST['datum']= $formData['datum'];
$_POST['sponsion']= $formData['sponsion'];
$_POST['pruefer1'] = $formData['pruefer1'];
$_POST['pruefer2']= $formData['pruefer2'];
$_POST['pruefer3']= $formData['pruefer3'];
$_POST['anmerkung'] = $formData['anmerkung'];
$_POST['protokoll']= $formData['protokoll'];
$_POST['note'] = $formData['note'];
@@ -273,9 +306,7 @@ class Abschlusspruefung extends FHCAPI_Controller
'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Datum'])
]);
//TODO(Manu) just for testing, not really required
$this->form_validation->set_rules('sponsion', 'Sponsion', 'required|is_valid_date', [
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Sponsion']),
$this->form_validation->set_rules('sponsion', 'Sponsion', 'is_valid_date', [
'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Sponsion'])
]);
@@ -233,7 +233,7 @@ class Mitarbeiter_model extends DB_Model
if ($mode == "mitAkadGrad")
$returnwert = "ma.mitarbeiter_uid, CONCAT(p.nachname, ' ', p.vorname, ' ', p.titelpost, ' ', p.titelpre, ' (', ma.mitarbeiter_uid , ')') as mitarbeiter";
elseif ($mode == "ohneMaUid")
$returnwert = "ma.mitarbeiter_uid, CONCAT(p.nachname, ' ', p.vorname, ' ', p.titelpost, ' ', p.titelpre) as mitarbeiter";
$returnwert = "p.person_id, CONCAT(p.nachname, ' ', p.vorname, ' ', p.titelpost, ' ', p.titelpre) as mitarbeiter";
else
$returnwert = "ma.mitarbeiter_uid, CONCAT(p.nachname, ' ', p.vorname, ' (', ma.mitarbeiter_uid , ')') as mitarbeiter";
@@ -252,6 +252,10 @@ export default {
this.formData.anmerkung = null;
this.formData.protokoll = null;
this.formData.note = null;
this.formData.p1 = null;
this.formData.p2 = null;
this.formData.p3 = null;
this.formData.pv= null;
},
search(event) {
if (this.abortController.mitarbeiter) {
@@ -336,7 +340,7 @@ export default {
},
template: `
<div class="stv-details-abschlusspruefung h-100 pb-3">
<h1>{{this.$p.t('stv','tab_finalexam')}} </h1>
<h4>{{this.$p.t('stv','tab_finalexam')}} </h4>
<core-filter-cmpt
ref="table"
:tabulator-options="tabulatorOptions"
@@ -406,49 +410,84 @@ export default {
</form-input>
</div>
<div class="row mb-3">
<!--TODO(Manu) Bug Autocompletefelder: nach Behebung wieder einblenden!-->
<!-- <form-input
container-class="col-6 stv-details-abschlusspruefung-vorsitz"
label="Vorsitz"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.vorsitz"
name="vorsitz"
:suggestions="filteredMitarbeiter"
@complete="search"
:min-length="3"
>
</form-input>-->
<form-input
container-class="col-6 stv-details-abschlusspruefung-vorsitz"
label="vorsitz"
type="text"
v-model="formData.vorsitz"
name="vorsitz"
>
</form-input>
<!-- <form-input
container-class="col-6 stv-details-abschlusspruefung-pruefer1"
label="Prüferin1"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.pruefer1"
name="pruefer1"
:suggestions="filteredPruefer"
@complete="searchNotAkad"
:min-length="3"
>
</form-input>-->
<!--TODO(Manu) Umbau auf Person_id-->
<form-input
container-class="col-6 stv-details-abschlusspruefung-pruefer1"
label="pruefer1"
type="text"
v-model="formData.pruefer1"
name="pruefer1"
>
</form-input>
<div class="row mb-3">
<template v-if="statusNew">
<form-input
container-class="col-6 stv-details-abschlusspruefung-vorsitz"
label="Vorsitz"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.vorsitz"
name="vorsitz"
:suggestions="filteredMitarbeiter"
@complete="search"
:min-length="3"
>
</form-input>
</template>
<template v-else >
<form-input
v-if= "formData.pv"
container-class="col-6 stv-details-abschlusspruefung-vorsitz"
type="text"
name="name"
label="vorsitz"
v-model="formData.pv"
>
</form-input>
<form-input
v-else
container-class="col-6 stv-details-abschlusspruefung-vorsitz"
label="Vorsitz"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.vorsitz"
name="vorsitz"
:suggestions="filteredMitarbeiter"
@complete="search"
:min-length="3"
>
</form-input>
</template>
<template v-if="statusNew">
<form-input
container-class="col-6 stv-details-abschlusspruefung-pruefer1"
label="Prüferin1"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.pruefer1"
name="pruefer1"
:suggestions="filteredPruefer"
@complete="searchNotAkad"
:min-length="3"
>
</form-input>
</template>
<template v-else >
<form-input
v-if= "formData.p1"
container-class="col-6 stv-details-abschlusspruefung-pruefer1"
type="text"
name="name"
label="Prüferin1"
v-model="formData.p1"
>
</form-input>
<form-input
v-else
container-class="col-6 stv-details-abschlusspruefung-pruefer1"
label="Prüferin1"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.pruefer1"
name="pruefer1"
:suggestions="filteredPruefer"
@complete="searchNotAkad"
:min-length="3"
>
</form-input>
</template>
</div>
<div class="row mb-3">
@@ -469,26 +508,44 @@ export default {
{{beurteilung.bezeichnung}}
</option>
</form-input>
<!-- <form-input
container-class="col-6 stv-details-abschlusspruefung-pruefer2"
label="Prüferin2"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.pruefer2"
name="pruefer2"
:suggestions="filteredPruefer"
@complete="searchNotAkad"
:min-length="3"
>
</form-input>-->
<form-input
container-class="col-6 stv-details-abschlusspruefung-pruefer2"
label="pruefer2"
type="text"
v-model="formData.pruefer2"
name="pruefer2"
>
</form-input>
<template v-if="statusNew">
<form-input
container-class="col-6 stv-details-abschlusspruefung-pruefer2"
label="Prüferin2"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.pruefer2"
name="pruefer2"
:suggestions="filteredPruefer"
@complete="searchNotAkad"
:min-length="3"
>
</form-input>
</template>
<template v-else >
<form-input
v-if= "formData.p2"
container-class="col-6 stv-details-abschlusspruefung-pruefer2"
type="text"
name="name"
label="Prüferin2"
v-model="formData.p2"
>
</form-input>
<form-input
v-else
container-class="col-6 stv-details-abschlusspruefung-pruefer2"
label="Prüferin2"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.pruefer2"
name="pruefer2"
:suggestions="filteredPruefer"
@complete="searchNotAkad"
:min-length="3"
>
</form-input>
</template>
</div>
<div class="row mb-3">
@@ -507,26 +564,44 @@ export default {
{{grad.titel}}
</option>
</form-input>
<!-- <form-input
container-class="col-6 stv-details-abschlusspruefung-pruefer3"
label="Prüferin3"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.pruefer3"
name="pruefer3"
:suggestions="filteredPruefer"
@complete="searchNotAkad"
:min-length="3"
>
</form-input>-->
<form-input
container-class="col-6 stv-details-abschlusspruefung-pruefer3"
label="pruefer3"
type="text"
v-model="formData.pruefer3"
name="pruefer3"
>
</form-input>
<template v-if="statusNew">
<form-input
container-class="col-6 stv-details-abschlusspruefung-pruefer3"
label="Prüferin3"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.pruefer3"
name="pruefer3"
:suggestions="filteredPruefer"
@complete="searchNotAkad"
:min-length="3"
>
</form-input>
</template>
<template v-else >
<form-input
v-if= "formData.p3"
container-class="col-6 stv-details-abschlusspruefung-pruefer3"
type="text"
name="name"
label="Prüferin3"
v-model="formData.p3"
>
</form-input>
<form-input
v-else
container-class="col-6 stv-details-abschlusspruefung-pruefer3"
label="Prüferin3"
type="autocomplete"
optionLabel="mitarbeiter"
v-model="formData.pruefer3"
name="pruefer3"
:suggestions="filteredPruefer"
@complete="searchNotAkad"
:min-length="3"
>
</form-input>
</template>
</div>
<div class="row mb-3">
@@ -251,6 +251,8 @@ export default{
},
template: `
<div class="stv-details-kontakt-contact h-100 pt-3">
{{contactData}}
<!--Modal: contactModal-->
<BsModal ref="contactModal">
+1 -1
View File
@@ -37196,7 +37196,7 @@ array(
'insertvon' => 'system'
)
)
)
),
// CIS4 phrases from legacy code end
// FHC4 Phrases Abschlusspruefung
array(