Merge branch 'feature-62779/xul_abloese_haustechnik_schluesselverwaltung' into demo-cis40

This commit is contained in:
Harald Bamberger
2025-08-13 07:34:45 +02:00
5 changed files with 149 additions and 11 deletions
@@ -60,7 +60,11 @@ class BetriebsmittelP extends FHCAPI_Controller
public function getAllBetriebsmittel($type_id, $id)
{
$result = $this->BetriebsmittelpersonModel->getBetriebsmittelData($id, $type_id);
$betriebsmitteltypes = null;
if ($this->input->get('betriebsmitteltypes') !== null && !isEmptyArray($this->input->get('betriebsmitteltypes')))
$betriebsmitteltypes = $this->input->get('betriebsmitteltypes');
$result = $this->BetriebsmittelpersonModel->getBetriebsmittelData($id, $type_id, $betriebsmitteltypes);
if (isError($result)) {
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
@@ -370,6 +374,12 @@ class BetriebsmittelP extends FHCAPI_Controller
$this->load->model('ressource/Betriebsmitteltyp_model', 'BetriebsmitteltypModel');
$this->BetriebsmitteltypModel->addOrder('beschreibung', 'ASC');
if ($this->input->get('betriebsmitteltypes') !== null && !isEmptyArray($this->input->get('betriebsmitteltypes')))
{
$this->BetriebsmitteltypModel->db->where_in('betriebsmitteltyp', $this->input->get('betriebsmitteltypes'));
}
$result = $this->BetriebsmitteltypModel->load(); // load All
if (isError($result)) {
@@ -97,7 +97,7 @@ class Betriebsmittelperson_model extends DB_Model
return $this->loadWhere($condition);
}
public function getBetriebsmittelData($id, $type_id)
public function getBetriebsmittelData($id, $type_id, $betriesmitteltypes = null)
{
switch ($type_id) {
case 'person_id':
@@ -113,6 +113,15 @@ class Betriebsmittelperson_model extends DB_Model
return error("ID nicht gültig");
}
$cond .= " = ? ";
$params[] = $id;
if ($betriesmitteltypes && !isEmptyArray($betriesmitteltypes))
{
$cond .= " AND bm.betriebsmitteltyp IN ?";
$params[] = $betriesmitteltypes;
}
$query = "
SELECT
bm.nummer, bmp.person_id, bm.betriebsmitteltyp, bmp.anmerkung as anmerkung,
@@ -126,9 +135,9 @@ class Betriebsmittelperson_model extends DB_Model
JOIN
wawi.tbl_betriebsmittel bm ON (bmp.betriebsmittel_id = bm.betriebsmittel_id)
WHERE
" . $cond . " = ? ";
" . $cond;
return $this->execQuery($query, array($id));
return $this->execQuery($query, $params);
}
/**
+10 -4
View File
@@ -16,10 +16,13 @@
*/
export default {
getAllBetriebsmittel(type, id) {
getAllBetriebsmittel(type, id, betriebsmitteltypes) {
return {
method: 'get',
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getAllBetriebsmittel/' + type + '/' + id
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getAllBetriebsmittel/' + type + '/' + id,
params: {
betriebsmitteltypes
}
};
},
addNewBetriebsmittel(person_id, params) {
@@ -48,10 +51,13 @@ export default {
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/deleteBetriebsmittel/' + betriebsmittelperson_id
};
},
getTypenBetriebsmittel() {
getTypenBetriebsmittel(betriebsmitteltypes) {
return {
method: 'get',
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getTypenBetriebsmittel/'
url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getTypenBetriebsmittel/',
params: {
betriebsmitteltypes
}
};
},
loadInventarliste(query) {
@@ -29,14 +29,24 @@ export default {
uid: {
type: [Number, String],
required: true
}
},
/** List of types to allow for creation */
betriebsmittelTypes: {
type: Array,
default: null
},
/**
* If true: only show the types specified in 'betriebsmittelTypes'.
* If false: show all available types.
*/
filterByProvidedTypes: Boolean
},
data() {
return {
tabulatorOptions: {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(
this.endpoint.getAllBetriebsmittel(this.typeId, this.id)
this.endpoint.getAllBetriebsmittel(this.typeId, this.id, (this.filterByProvidedTypes ? this.betriebsmittelTypes : null))
),
ajaxResponse: (url, params, response) => response.data,
columns: [
@@ -294,7 +304,7 @@ export default {
},
created() {
return this.$api
.call(this.endpoint.getTypenBetriebsmittel())
.call(this.endpoint.getTypenBetriebsmittel(this.betriebsmittelTypes))
.then(result => {
this.listBetriebsmitteltyp = result.data;
})
+103
View File
@@ -1456,6 +1456,109 @@ $filters = array(
',
'oe_kurzbz' => null,
),
array(
'app' => 'personalverwaltung',
'dataset_name' => 'schluesselverwaltung',
'filter_kurzbz' => 'ma4schluesselverwaltung',
'description' => '{MA Schluesselverwaltung}',
'sort' => 1,
'default_filter' => true,
'filter' => '
{
"name": "MA Schlüsselverwaltung",
"columns": [
{"name": "UID"},
{"name": "PersonId"},
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "EMail"},
{"name": "Unternehmen"},
{"name": "Vertragsart"},
{"name": "DV_von"},
{"name": "DV_bis"},
{"name": "Wochenstunden"},
{"name": "WS_von"},
{"name": "WS_bis"},
{"name": "Standardkostenstelle"},
{"name": "DV_status"}
],
"filters": [
{
"name": "DV_status",
"option": "",
"operation": "nequal",
"condition": "beendet"
}
]
}
',
'oe_kurzbz' => null,
),
array(
'app' => 'personalverwaltung',
'dataset_name' => 'schluesselverwaltung',
'filter_kurzbz' => 'ma4schluesselverwaltung_beendet',
'description' => '{MA Schluesselverwaltung (DV beendet)}',
'sort' => 2,
'default_filter' => false,
'filter' => '
{
"name": "MA Schlüsselverwaltung (DV beendet)",
"columns": [
{"name": "UID"},
{"name": "PersonId"},
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "EMail"},
{"name": "Unternehmen"},
{"name": "Vertragsart"},
{"name": "DV_von"},
{"name": "DV_bis"},
{"name": "Wochenstunden"},
{"name": "WS_von"},
{"name": "WS_bis"},
{"name": "Standardkostenstelle"},
{"name": "DV_status"}
],
"filters": [
{
"name": "DV_status",
"option": "",
"operation": "equal",
"condition": "beendet"
}
]
}
',
'oe_kurzbz' => null,
),
array(
'app' => 'personalverwaltung',
'dataset_name' => 'kontaktdatenverwaltung',
'filter_kurzbz' => 'ma4kontaktdaten',
'description' => '{MA Kontaktdatenverwaltung}',
'sort' => 1,
'default_filter' => true,
'filter' => '
{
"name": "MA Kontaktdatenverwaltung",
"columns": [
{"name": "UID"},
{"name": "PersonId"},
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Unternehmen"},
{"name": "Vertragsart"},
{"name": "DV_von"},
{"name": "DV_bis"},
{"name": "Disziplinaere_Zuordnung"},
{"name": "DV_status"}
],
"filters": []
}',
'oe_kurzbz' => null,
),
);
// Loop through the filters array