mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
refactor function getHeader, get mitarbeiter_uid as prop instead of using function getMitarbeiterUid
This commit is contained in:
@@ -29,7 +29,6 @@ class Vertraege extends FHCAPI_Controller
|
||||
'getHeader' => ['vertrag/mitarbeiter:r'],
|
||||
'getPersonAbteilung' => ['vertrag/mitarbeiter:r'],
|
||||
'getLeitungOrg' => ['vertrag/mitarbeiter:r'],
|
||||
'getMitarbeiterUid' => ['vertrag/mitarbeiter:r'],
|
||||
]);
|
||||
|
||||
//Load Models and Libraries
|
||||
@@ -684,11 +683,11 @@ class Vertraege extends FHCAPI_Controller
|
||||
return $this->terminateWithSuccess(getData($result));
|
||||
}
|
||||
|
||||
public function getPersonAbteilung($person_id)
|
||||
public function getPersonAbteilung($mitarbeiter_uid)
|
||||
{
|
||||
$this->load->model('ressource/Mitarbeiter_model', 'Mitarbeitermodel');
|
||||
|
||||
$result = $this->Mitarbeitermodel->getPersonAbteilung($person_id);
|
||||
$result = $this->Mitarbeitermodel->getPersonAbteilung($mitarbeiter_uid);
|
||||
|
||||
$data = $this->getDataOrTerminateWithError($result);
|
||||
|
||||
@@ -716,15 +715,4 @@ class Vertraege extends FHCAPI_Controller
|
||||
|
||||
$this->terminateWithSuccess(current($data));
|
||||
}
|
||||
|
||||
|
||||
public function getMitarbeiterUid($person_id)
|
||||
{
|
||||
$this->load->model('ressource/Mitarbeiter_model', 'Mitarbeitermodel');
|
||||
|
||||
$result = $this->Mitarbeitermodel->getMitarbeiterUid($person_id);
|
||||
|
||||
//no error here: ma_uid | null as result
|
||||
$this->terminateWithSuccess($result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,12 +151,8 @@ class Mitarbeiter_model extends DB_Model
|
||||
*
|
||||
* @return Array benutzerfunktionsdata
|
||||
*/
|
||||
public function getPersonAbteilung($person_id)
|
||||
public function getPersonAbteilung($uid)
|
||||
{
|
||||
$uid = $this->getMitarbeiterUid($person_id);
|
||||
if (!$uid) {
|
||||
return null;
|
||||
}
|
||||
$qry = "
|
||||
SELECT
|
||||
bf.benutzerfunktion_id, bf.fachbereich_kurzbz, bf.uid, bf.funktion_kurzbz, bf.updateamum,
|
||||
@@ -213,7 +209,7 @@ class Mitarbeiter_model extends DB_Model
|
||||
{
|
||||
$qry = "
|
||||
SELECT
|
||||
*
|
||||
titelpre, vorname, nachname, titelpost, foto, foto_sperre, person_id, alias, telefonklappe
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer b USING(person_id)
|
||||
@@ -382,26 +378,6 @@ class Mitarbeiter_model extends DB_Model
|
||||
return $this->execQuery($qry);
|
||||
}
|
||||
|
||||
public function getMitarbeiterUid($person_id)
|
||||
{
|
||||
$qry = "
|
||||
SELECT tbl_benutzer.uid
|
||||
FROM tbl_mitarbeiter
|
||||
JOIN tbl_benutzer ON CAST(tbl_mitarbeiter.mitarbeiter_uid AS TEXT) = CAST(tbl_benutzer.uid AS TEXT)
|
||||
JOIN tbl_person USING (person_id)
|
||||
WHERE tbl_person.person_id = ?
|
||||
";
|
||||
$result = $this->execQuery($qry, [$person_id]);
|
||||
|
||||
$data = getData($result);
|
||||
if (empty($data)) {
|
||||
return null; // No UID found
|
||||
}
|
||||
|
||||
$uid = isset($data[0]->uid) ? $data[0]->uid : null;
|
||||
return $uid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Mitarbeiter for a certain Lehrveranstaltung.
|
||||
*
|
||||
|
||||
@@ -22,10 +22,10 @@ export default {
|
||||
url: 'api/frontend/v1/vertraege/vertraege/getHeader/' + person_id,
|
||||
};
|
||||
},
|
||||
getPersonAbteilung(person_id){
|
||||
getPersonAbteilung(mitarbeiter_uid){
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/vertraege/vertraege/getPersonAbteilung/' + person_id,
|
||||
url: 'api/frontend/v1/vertraege/vertraege/getPersonAbteilung/' + mitarbeiter_uid,
|
||||
};
|
||||
},
|
||||
getLeitungOrg(oekurzbz){
|
||||
|
||||
@@ -42,7 +42,7 @@ export default {
|
||||
if(this.person_id) {
|
||||
this.getHeader(this.person_id);
|
||||
|
||||
this.loadDepartmentData(this.person_id)
|
||||
this.loadDepartmentData(this.mitarbeiter_uid)
|
||||
.then(() => {
|
||||
// Call getLeitungOrg only after departmentData is loaded
|
||||
this.getLeitungOrg(this.departmentData.oe_kurzbz);
|
||||
@@ -83,9 +83,9 @@ export default {
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
loadDepartmentData(person_id) {
|
||||
loadDepartmentData(mitarbeiter_uid) {
|
||||
return this.$api
|
||||
.call(ApiDetailHeader.getPersonAbteilung(person_id))
|
||||
.call(ApiDetailHeader.getPersonAbteilung(mitarbeiter_uid))
|
||||
.then(result => {
|
||||
this.departmentData = result.data;
|
||||
})
|
||||
@@ -106,7 +106,9 @@ export default {
|
||||
},
|
||||
template: `
|
||||
<div class="core-header d-flex justify-content-start align-items-center w-100 overflow-auto pb-3 gap-3" style="max-height:9rem; min-width: 37.5rem;">
|
||||
|
||||
<template v-if="typeHeader==='student'">
|
||||
{{headerData}}
|
||||
<div
|
||||
v-for="person in headerData"
|
||||
:key="person.person_id"
|
||||
|
||||
@@ -8,7 +8,7 @@ export default {
|
||||
FormInput
|
||||
},
|
||||
emits: [
|
||||
"selectedPerson"
|
||||
"selectionChanged"
|
||||
],
|
||||
props: {
|
||||
endpoint: {
|
||||
@@ -66,7 +66,7 @@ export default {
|
||||
event: 'rowSelectionChanged',
|
||||
handler: this.rowSelectionChanged
|
||||
},
|
||||
{
|
||||
{
|
||||
event: 'tableBuilt',
|
||||
handler: async() => {
|
||||
|
||||
@@ -103,13 +103,19 @@ export default {
|
||||
}
|
||||
],
|
||||
selectedPerson: null,
|
||||
selectedUid: null,
|
||||
isFilterSet: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
rowSelectionChanged(data) {
|
||||
this.selectedPerson = data[0].person_id;
|
||||
this.$emit('selectedPerson', this.selectedPerson);
|
||||
this.selectedUid = data[0].uid;
|
||||
|
||||
this.$emit('selectionChanged', {
|
||||
person_id: this.selectedPerson,
|
||||
uid: this.selectedUid
|
||||
});
|
||||
},
|
||||
onSwitchChange() {
|
||||
if (this.isFilterSet) {
|
||||
|
||||
@@ -37,6 +37,10 @@ export default {
|
||||
type: [Number],
|
||||
required: true
|
||||
},
|
||||
mitarbeiter_uid: {
|
||||
type: [String],
|
||||
required: true
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
appRoot() {
|
||||
@@ -210,7 +214,6 @@ export default {
|
||||
triggeredData: [],
|
||||
childData: {},
|
||||
isFilterSet: false,
|
||||
ma_uid: null,
|
||||
clickedRows: [],
|
||||
arraySelectedContracts: [],
|
||||
}
|
||||
@@ -460,39 +463,29 @@ export default {
|
||||
},
|
||||
//methods for functionality ADDON KU
|
||||
printContract(){
|
||||
this.getMitarbeiterUid().then(()=> {
|
||||
//check if at least 2 contracts chosen
|
||||
if(this.arraySelectedContracts.length < 2) {
|
||||
this.$fhcAlert.alertError(this.$p.t('vertrag', 'alertMindestensZweiVertraege'));
|
||||
return;
|
||||
}
|
||||
//check if at least 2 contracts chosen
|
||||
if(this.arraySelectedContracts.length < 2) {
|
||||
this.$fhcAlert.alertError(this.$p.t('vertrag', 'alertMindestensZweiVertraege'));
|
||||
return;
|
||||
}
|
||||
|
||||
//check if status=="Genehmigt"
|
||||
const statusNotGenehmigtExists = this.arraySelectedContracts.some(([_, status]) => status !== 'Genehmigt');
|
||||
if(statusNotGenehmigtExists) {
|
||||
this.$fhcAlert.alertError(this.$p.t('vertrag', 'alertOnlyApprovedContracts'));
|
||||
return;
|
||||
}
|
||||
//check if status=="Genehmigt"
|
||||
const statusNotGenehmigtExists = this.arraySelectedContracts.some(([_, status]) => status !== 'Genehmigt');
|
||||
if(statusNotGenehmigtExists) {
|
||||
this.$fhcAlert.alertError(this.$p.t('vertrag', 'alertOnlyApprovedContracts'));
|
||||
return;
|
||||
}
|
||||
|
||||
//build String to Print PDF
|
||||
let vertragString = '';
|
||||
//build String to Print PDF
|
||||
let vertragString = '';
|
||||
|
||||
this.arraySelectedContracts.forEach(element => {
|
||||
vertragString += '&vertrag_id[]=' + element[0].toString();
|
||||
});
|
||||
this.arraySelectedContracts.forEach(element => {
|
||||
vertragString += '&vertrag_id[]=' + element[0].toString();
|
||||
});
|
||||
|
||||
let linkToPdf = this.dataPrintHonorar.link +
|
||||
'content/pdfExport.php?xml=' + this.dataPrintHonorar.xml + '&xsl=' + this.dataPrintHonorar.xsl + '&mitarbeiter_uid=' + this.ma_uid + vertragString + '&output=pdf&uid=' + this.ma_uid;
|
||||
window.open(linkToPdf, '_blank');
|
||||
});
|
||||
},
|
||||
getMitarbeiterUid(){
|
||||
return this.$api
|
||||
.call(this.endpoint.getMitarbeiterUid(this.person_id))
|
||||
.then(response => {
|
||||
this.ma_uid = response.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
let linkToPdf = this.dataPrintHonorar.link +
|
||||
'content/pdfExport.php?xml=' + this.dataPrintHonorar.xml + '&xsl=' + this.dataPrintHonorar.xsl + '&mitarbeiter_uid=' + this.mitarbeiter_uid + vertragString + '&output=pdf&uid=' + this.mitarbeiter_uid;
|
||||
window.open(linkToPdf, '_blank');
|
||||
},
|
||||
toggleRowClick(contractId, status, bezeichnung) {
|
||||
const index = this.arraySelectedContracts.findIndex(
|
||||
|
||||
@@ -28,12 +28,14 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
person_id: null,
|
||||
mitarbeiter_uid: null,
|
||||
endpoint: ApiCoreVertraege
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
selectPerson(selected){
|
||||
this.person_id = selected;
|
||||
handleSelection(selection) {
|
||||
this.mitarbeiter_uid = selection.uid;
|
||||
this.person_id = selection.person_id;
|
||||
},
|
||||
redirectToLeitung(leitung){
|
||||
this.person_id = leitung.person_id;
|
||||
@@ -41,7 +43,7 @@ export default {
|
||||
},
|
||||
template: `
|
||||
<!-- Navigation component -->
|
||||
<core-navigation-cmpt></core-navigation-cmpt>
|
||||
<core-navigation-cmpt/>
|
||||
|
||||
<div class="vv">
|
||||
<main>
|
||||
@@ -50,7 +52,8 @@ export default {
|
||||
<div class="d-flex flex-column" style="height: 100%;">
|
||||
<mitarbeiter-header
|
||||
:endpoint="endpoint"
|
||||
@selectedPerson="selectPerson"/>
|
||||
@selectionChanged="handleSelection"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<template #bottom>
|
||||
@@ -60,7 +63,11 @@ export default {
|
||||
typeHeader="mitarbeiter"
|
||||
@redirectToLeitung="redirectToLeitung"
|
||||
></fhc-header>
|
||||
<vertraege-mitarbeiter :endpoint="endpoint" :person_id="this.person_id"/>
|
||||
<vertraege-mitarbeiter
|
||||
:endpoint="endpoint"
|
||||
:person_id="this.person_id"
|
||||
:mitarbeiter_uid="this.mitarbeiter_uid"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
</vertical-split>
|
||||
|
||||
Reference in New Issue
Block a user