Table, Form, Backend Crud Betriebsmittel

This commit is contained in:
ma0068
2024-04-04 16:28:24 +02:00
parent 2951b2a0d1
commit a5daa63da4
4 changed files with 526 additions and 166 deletions
@@ -13,9 +13,14 @@ class Betriebsmittel extends FHCAPI_Controller
'addNewBetriebsmittel' => ['admin:r', 'assistenz:r'],
'updateBetriebsmittel' => ['admin:r', 'assistenz:r'],
'loadBetriebsmittel' => ['admin:r', 'assistenz:r'],
'deleteBetriebsmittel' => ['admin:r', 'assistenz:r'],
'getTypenBetriebsmittel' => ['admin:r', 'assistenz:r']
]);
//Load Models
$this->load->model('ressource/Betriebsmittel_model', 'BetriebsmittelModel');
$this->load->model('ressource/Betriebsmittelperson_model', 'BetriebsmittelpersonModel');
// Load Libraries
$this->load->library('VariableLib', ['uid' => getAuthUID()]);
$this->load->library('form_validation');
@@ -28,8 +33,6 @@ class Betriebsmittel extends FHCAPI_Controller
public function getAllBetriebsmittel($uid, $person_id)
{
$this->load->model('ressource/Betriebsmittelperson_model', 'BetriebsmittelpersonModel');
//uid
//$result = $this->BetriebsmittelpersonModel->getBetriebsmittelByUid($uid);
@@ -41,6 +44,175 @@ class Betriebsmittel extends FHCAPI_Controller
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
//all
$this->terminateWithSuccess((getData($result) ?: []));
}
public function addNewBetriebsmittel()
{
//TODO(Manu) Berechtigungen
/* if(!$this->permissionlib->isBerechtigt('admin', 'suid', $stg) && !$this->permissionlib->isBerechtigt('assistenz', 'suid', $stg))
{
$result = $this->p->t('lehre','error_keineSchreibrechte');
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}*/
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
$uid_user = getAuthUID();
$betriebsmitteltyp = $this->input->post('betriebsmitteltyp');
$nummer = $this->input->post('nummer');
$nummer2 = $this->input->post('nummer2');
$beschreibung = $this->input->post('beschreibung');
$kaution = $this->input->post('kaution');
$anmerkung = $this->input->post('anmerkung');
$ausgegebenam = $this->input->post('ausgegebenam');
$retouram = $this->input->post('retouram');
$person_id = $this->input->post('person_id');
$uid = $this->input->post('uid');
// Start DB transaction
$this->db->trans_begin();
$result = $this->BetriebsmittelModel->insert(
[
'betriebsmitteltyp' => $betriebsmitteltyp,
'nummer' => $nummer,
'nummer2' => $nummer2,
'beschreibung' => $beschreibung,
'anmerkung' => $anmerkung,
'insertvon' => $uid_user,
'insertamum' => date('c')
]
);
if($this->db->trans_status() === false || isError($result))
{
$this->db->trans_rollback();
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
$betriebsmittel_id = $result->retval;
$result = $this->BetriebsmittelpersonModel->insert(
[
'betriebsmittel_id' => $betriebsmittel_id,
'person_id' => $person_id,
'kaution' => $kaution,
'anmerkung' => $anmerkung,
'ausgegebenam' => $ausgegebenam,
'retouram ' => $retouram,
'insertvon' => $uid_user,
'insertamum' => date('c'),
'uid' => $uid
]
);
if($this->db->trans_status() === false || isError($result))
{
$this->db->trans_rollback();
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
$this->db->trans_commit();
return $this->terminateWithSuccess(true);
}
public function updateBetriebsmittel()
{
//TODO(Manu) Berechtigungen
/* if(!$this->permissionlib->isBerechtigt('admin', 'suid', $stg) && !$this->permissionlib->isBerechtigt('assistenz', 'suid', $stg))
{
$result = $this->p->t('lehre','error_keineSchreibrechte');
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}*/
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
$uid_user = getAuthUID();
$betriebsmittel_id = $this->input->post('betriebsmittel_id');
$betriebsmittelperson_id = $this->input->post('betriebsmittelperson_id');
$betriebsmitteltyp = $this->input->post('betriebsmitteltyp');
$nummer = $this->input->post('nummer');
$nummer2 = $this->input->post('nummer2');
$beschreibung = $this->input->post('beschreibung');
$kaution = $this->input->post('kaution');
$anmerkung = $this->input->post('anmerkung');
$ausgegebenam = $this->input->post('ausgegebenam');
$retouram = $this->input->post('retouram');
$person_id = $this->input->post('person_id');
$uid = $this->input->post('uid');
// Start DB transaction
$this->db->trans_begin();
$result = $this->BetriebsmittelpersonModel->update(
[
'betriebsmittelperson_id' => $betriebsmittelperson_id,
],
[
'person_id' => $person_id,
'uid' => $uid,
'kaution' => $kaution,
'anmerkung' => $anmerkung,
'ausgegebenam' => $ausgegebenam,
'retouram ' => $retouram,
'insertvon' => $uid_user,
'insertamum' => date('c')
]
);
if($this->db->trans_status() === false || isError($result))
{
$this->db->trans_rollback();
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
$result = $this->BetriebsmittelModel->update(
[
'betriebsmittel_id' => $betriebsmittel_id
],
[
'betriebsmitteltyp' => $betriebsmitteltyp,
'nummer' => $nummer,
'nummer2' => $nummer2,
'beschreibung' => $beschreibung,
'anmerkung' => $anmerkung,
'updatevon' => $uid_user,
'updateamum' => date('c')
]
);
if($this->db->trans_status() === false || isError($result))
{
$this->db->trans_rollback();
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
$this->db->trans_commit();
return $this->terminateWithSuccess(true);
}
//TODO(Manu) defaultmässig ersten Eintrag in Edit Modus
public function getFirstBetriebsmittel($uid, $person_id)
{
//uid
//$result = $this->BetriebsmittelpersonModel->getFirstBetriebsmittelByUid($uid);
//person_id
$result = $this->BetriebsmittelpersonModel->getFirstBetriebsmittelByUid($person_id);
if (isError($result))
{
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
$this->terminateWithSuccess((getData($result) ?: []));
}
@@ -48,29 +220,56 @@ class Betriebsmittel extends FHCAPI_Controller
{
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
$betriebsmittel_id = $this->input->post('betriebsmittel_id');
$betriebsmittelperson_id = $this->input->post('betriebsmittelperson_id');
$this->load->model('ressource/Betriebsmittel_model', 'BetriebsmittelModel');
//$this->terminateWithError("id in function api: " . $betriebsmittelperson_id, self::ERROR_TYPE_GENERAL);
$this->BetriebsmittelpersonModel->addJoin('wawi.tbl_betriebsmittel', 'betriebsmittel_id');
$result = $this->BetriebsmittelpersonModel->loadWhere(
array('betriebsmittelperson_id' => $betriebsmittelperson_id));
$result = $this->BetriebsmittelModel->loadWhere(
array(
'betriebsmittel_id' => $betriebsmittel_id
)
);
if (isError($result))
{
$this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
elseif (!hasData($result))
if (!hasData($result))
{
$this->terminateWithError("no Betriebsmittel with ID found: " . $betriebsmittel_id, self::ERROR_TYPE_GENERAL);
$this->terminateWithError("no Betriebsmittelperson with ID found: " . $betriebsmittelperson_id, self::ERROR_TYPE_GENERAL);
}
// var_dump($result);
$this->terminateWithSuccess(getData($result) ? : []);
$this->terminateWithSuccess(current(getData($result)));
}
public function deleteBetriebsmittel()
{
//var_dump($betriebsmittelperson_id);
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
$betriebsmittelperson_id = $this->input->post('betriebsmittelperson_id');
//return $this->terminateWithError("Betriebsmittelperson " . $betriebsmittelperson_id . " wird gelöscht",self::ERROR_TYPE_GENERAL);
$result = $this->BetriebsmittelpersonModel->delete(
array('betriebsmittelperson_id' => $betriebsmittelperson_id,
)
);
if (isError($result))
{
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
if (!hasData($result))
{
return $this->terminateWithError($this->p->t('ui','error_missingId',['id'=> 'Betriebsmittelperson_id']), self::ERROR_TYPE_GENERAL);
}
return $this->outputJsonSuccess(current(getData($result)));
}
@@ -79,7 +278,8 @@ class Betriebsmittel extends FHCAPI_Controller
$this->load->model('ressource/Betriebsmitteltyp_model', 'BetriebsmitteltypModel');
$result = $this->BetriebsmitteltypModel->load();
if (isError($result)) {
if (isError($result))
{
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
return $this->terminateWithSuccess(getData($result) ?: []);
@@ -11,4 +11,19 @@ class Betriebsmittel_model extends DB_Model
$this->dbTable = 'wawi.tbl_betriebsmittel';
$this->pk = 'betriebsmittel_id';
}
/**
* getBetriebsmittelById
*/
/* public function loadBetriebsmittel($betriebsmittelperson_id){
$query = "
SELECT *
FROM wawi.tbl_betriebsmittelperson
JOIN wawi.tbl_betriebsmittel ON (wawi.tbl_betriebsmittelperson.betriebsmittel_id = wawi.tbl_betriebsmittel.betriebsmittel_id)
WHERE wawi.tbl_betriebsmittelperson.betriebsmittelperson_id = ?
";
return $this->execQuery($query, array($betriebsmittelperson_id));
}*/
}
@@ -27,6 +27,9 @@ export default {
{title: "Nummer", field: "nummer"},
{title: "PersonId", field: "person_id"},
{title: "Typ", field: "betriebsmitteltyp"},
{title: "insertVon", field: "insertvon"}, //Test
{title: "insertAmUm", field: "insertamum"}, //TESt
{title: "Betriebsmittelperson_id", field: "betriebsmittelperson_id"},
{title: "Retourdatum", field: "retouram"},
{title: "Beschreibung", field: "beschreibung"},
{title: "Uid", field: "uid"},
@@ -34,7 +37,7 @@ export default {
{title: "Kaution", field: "kaution", visible: false},
{title: "Ausgabedatum", field: "ausgegebenam", visible: false},
{title: "Betriebsmittel_id", field: "betriebsmittel_id", visible: false},
{title: "Betriebsmittelperson_id", field: "betriebsmittelperson_id", visible: false},
/* {title: "Betriebsmittelperson_id", field: "betriebsmittelperson_id", visible: false},*/
{
title: 'Aktionen', field: 'actions',
minWidth: 150, // Ensures Action-buttons will be always fully displayed
@@ -49,7 +52,7 @@ export default {
button.addEventListener(
'click',
(event) =>
this.actionPrintConfirmation(cell.getData().betriebsmittel_id)
this.actionPrintConfirmation(cell.getData().betriebsmittelperson_id)
);
container.append(button);
@@ -60,7 +63,7 @@ export default {
button.addEventListener(
'click',
(event) =>
this.actionEditBetriebsmittel(cell.getData().betriebsmittel_id)
this.actionEditBetriebsmittel(cell.getData().betriebsmittelperson_id)
);
container.append(button);
@@ -71,7 +74,7 @@ export default {
button.addEventListener(
'click',
() =>
this.actionDeleteBetriebsmittel(cell.getData().betriebsmittel_id)
this.actionDeleteBetriebsmittel(cell.getData().betriebsmittelperson_id)
);
container.append(button);
@@ -84,43 +87,165 @@ export default {
height: '150',
selectableRangeMode: 'click',
selectable: true,
//index: 'betriebsmittel_id'
//index: 'betriebsmittel_id',
},
tabulatorEvents: [],
//tableData: [],
tabulatorEvents: [
{
/* event: 'rowSelectionChanged',
handler: this.rowSelectionChanged*/
/* handler: (e, row.getData().betriebsmittelperson_id) => {
// Handler-Funktion, die aufgerufen wird, wenn das Ereignis ausgelöst wird
//this.rowSelectionChanged(row.getData().betriebsmittelperson_id);
// console.log("Selected Row Data:", row.getData());
//console.log(cell.getData().betriebsmittelperson_id);
}*/
},
],
betriebsmittelData: {},
betriebsmittel_id: {},
listBetriebsmitteltyp: []
betriebsmittelperson_id : null,
listBetriebsmitteltyp: [],
formData: {},
statusNew: true
};
},
methods: {
actionEditBetriebsmittel(betriebsmittel_id){
console.log("id: " + betriebsmittel_id);
this.loadBetriebsmittel(betriebsmittel_id).then(() => {
if(this.betriebsmittelData)
this.$refs.editBetriebsmittelModal.show();
rowSelectionChanged(data) {
//console.log("Selected Row Data:", data[0].betriebsmittelperson_id);
this.param_id = {
'betriebsmittelperson_id': data[0].betriebsmittelperson_id};
this.loadBetriebsmittel(this.param_id);
},
actionEditBetriebsmittel(betriebsmittelperson_id){
console.log("action EditBM: id: " + betriebsmittelperson_id);
this.statusNew = false;
this.loadBetriebsmittel(betriebsmittelperson_id);
/* this.loadBetriebsmittel(betriebsmittelperson_id).then(() => {
/!* if(this.formData) {
this.$refs.deleteBetriebsmittelModal.show();
}*!/
console.log("nach load" + betriebsmittelperson_id);
});*/
},
actionNewBetriebsmittel(){
console.log("action newBM: person " + this.person_id);
this.resetModal();
this.statusNew = true;
this.formData.ausgegebenam = this.getDefaultDate();
this.reload();
},
actionDeleteBetriebsmittel(betriebsmittelperson_id){
console.log("Löschen von Datensatz mit id: " + betriebsmittelperson_id);
this.loadBetriebsmittel(betriebsmittelperson_id).then(() => {
/* if(this.formData) {
this.$refs.deleteBetriebsmittelModal.show();
}*/
console.log("nach load" + betriebsmittelperson_id);
this.$refs.deleteBetriebsmittelModal.show();
});
},
actionPrintConfirmation(betriebsmittel_id){
console.log("actionPrintConfirmation of id: " + betriebsmittel_id);
/* this.loadBetriebsmittel(betriebsmittel_id).then(() => {
actionPrintConfirmation(betriebsmittelperson_id){
console.log("actionPrintConfirmation of id: " + betriebsmittelperson_id);
/* this.loadBetriebsmittel(betriebsmittelperson_id).then(() => {
if(this.betriebsmittelData)
this.$refs.editBetriebsmittelModal.show();
});*/
},
loadBetriebsmittel(betriebsmittel_id){
//console.log("2 " + betriebsmittel_id);
addNewBetriebsmittel(){
this.param_id = {
'uid': this.uid,
'person_id': this.person_id,
...this.formData
};
//this.combinedObj = { ...this.param_id, ...this.formData };
this.$fhcApi.post('api/frontend/v1/stv/betriebsmittel/addNewBetriebsmittel/',
this.param_id
).then(response => {
console.log(response);
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
// this.hideModal('newBetriebsmittelModal');
this.resetModal();
}).catch(this.$fhcAlert.handleSystemError)
.finally(() => {
window.scrollTo(0, 0);
this.reload();
});
},
deleteBetriebsmittel(betriebsmittelperson_id){
console.log("Delete mit id: " + betriebsmittelperson_id);
this.param = {
'betriebsmittelperson_id': betriebsmittelperson_id
};
console.log( "param_id" + this.param + "|" );
return this.$fhcApi.post('api/frontend/v1/stv/betriebsmittel/deleteBetriebsmittel/',
this.param)
.then(
result => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
this.hideModal('deleteBetriebsmittelModal');
this.resetModal();
})
.catch(this.$fhcAlert.handleSystemError)
.finally(() => {
window.scrollTo(0, 0);
this.reload();
});
},
updateBetriebsmittel(){
this.param = {
'uid': this.uid,
'person_id': this.person_id,
...this.formData
};
this.$fhcApi.post('api/frontend/v1/stv/betriebsmittel/updateBetriebsmittel/',
this.param
).then(response => {
//console.log(response);
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'editSave'));
// this.hideModal('newBetriebsmittelModal');
this.resetModal();
}).catch(this.$fhcAlert.handleSystemError)
.finally(() => {
window.scrollTo(0, 0);
this.reload();
});
},
loadBetriebsmittel(betriebsmittelperson_id){
console.log("loadBetriebsmittel id:" + betriebsmittelperson_id);
this.resetModal();
this.statusNew = false;
this.param_id = {
'betriebsmittelperson_id': betriebsmittelperson_id
};
return this.$fhcApi.post('api/frontend/v1/stv/betriebsmittel/loadBetriebsmittel/',
betriebsmittel_id)
this.param_id)
.then(result => result.data)
.then(result => {
//console.log("in load" + result);
this.betriebsmittelData = result.data;
return result;
this.formData = result;
})
.catch(this.$fhcAlert.handleSystemError);
},
reload(){
this.$refs.table.reloadTable();
},
hideModal(modalRef){
this.$refs[modalRef].hide();
},
resetModal(){
this.formData = {};
this.betriebsmittelperson_id = {};
this.statusNew = true;
},
getDefaultDate() {
const today = new Date();
return today;
}
},
created(){
this.$fhcApi
.get('api/frontend/v1/stv/betriebsmittel/getTypenBetriebsmittel')
@@ -130,6 +255,17 @@ export default {
})
.catch(this.$fhcAlert.handleSystemError);
},
mounted(){
/* this.$refs.table.on("rowSelected", (row) => {
// Hier können Sie auf das ausgewählte Zeilenobjekt zugreifen und entsprechende Aktionen durchführen
console.log("Selected Row:", row.getData());
});*/
//this.$refs.newBetriebsmittelModal.show();
//loadFirstEntry for the form
console.log("mounted");
//console.log(this.$refs.table.tableData);
},
/* async mounted() {
if(this.showTinyMCE){
this.initTinyMCE();
@@ -170,139 +306,17 @@ export default {
template: `
<div class="betriebsmittel-betriebsmittel">
<!--Modal: editBetriebsmittelModal-->
<BsModal ref="editBetriebsmittelModal">
<template #title>Details</template>
<form-form class="row g-3" ref="betriebsmittelData">
<div class="row mb-3">
<label for="typ" class="form-label col-sm-4">Typ</label>
<div class="col-sm-6">
<form-input
type="select"
name="typ"
v-model="betriebsmittelData['typ']"
>
<option v-for="entry in listBetriebsmitteltyp" :key="entry.betriebsmitteltyp" :value="entry.betriebsmitteltyp">{{entry.betriebsmitteltyp}}</option>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="nummer" class="form-label col-sm-4">Nummer </label>
<div class="col-sm-6">
<form-input
type="text"
name="nummer"
v-model="betriebsmittelData['nummer2']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="nummer2" class="form-label col-sm-4">Nummer2</label>
<div class="col-sm-6">
<form-input
type="text"
name="nummer"
v-model="betriebsmittelData['nummer2']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="bechreibung" class="form-label col-sm-4">Beschreibung</label>
<div class="col-sm-6">
<form-input
type="textarea"
name="beschreibung"
v-model="betriebsmittelData['beschreibung']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="kaution" class="form-label col-sm-4">Kaution</label>
<div class="col-sm-6">
<form-input
type="text"
name="kaution"
v-model="betriebsmittelData['kaution']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="anmerkung" class="form-label col-sm-4">Anmerkung</label>
<div class="col-sm-6">
<form-input
type="textarea"
name="anmerkung"
v-model="betriebsmittelData['anmerkung']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="ausgegebenam" class="form-label col-sm-4">Ausgegeben am</label>
<div class="col-sm-6">
<form-input
type="DatePicker"
:readonly="readonly"
name="datum"
v-model="betriebsmittelData['ausgegebenam']"
auto-apply
:enable-time-picker="false"
format="dd.MM.yyyy"
preview-format="dd.MM.yyyy"
:teleport="true"
></form-input>
</div>
</div>
<div class="row mb-3">
<label for="retouram" class="form-label col-sm-4">Retour am</label>
<div class="col-sm-6">
<form-input
type="DatePicker"
:readonly="readonly"
name="datum"
v-model="betriebsmittelData['retouram']"
auto-apply
:enable-time-picker="false"
format="dd.MM.yyyy"
preview-format="dd.MM.yyyy"
:teleport="true"
></form-input>
</div>
</div>
</form-form>
<template #footer>
<button ref="Close" type="button" class="btn btn-primary" @click="editBetriebsmittel(betriebsmittelData.betriebsmittel_id)">Speichern</button>
</template>
</BsModal>
<!--Modal: deleteBetriebsmittelModal-->
<!-- <BsModal ref="deleteBetriebsmittelModal">
<BsModal ref="deleteBetriebsmittelModal">
<template #title>Betriebsmittel löschen</template>
<template #default>
<p>Betriebsmittel wirklich löschen?</p>
<p>Betriebsmittel ({{formData.betriebsmitteltyp}} / {{formData.betriebsmittelperson_id}}) wirklich löschen?</p>
</template>
<template #footer>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @click="resetModal">Abbrechen</button>
<button ref="Close" type="button" class="btn btn-primary" @click="deleteBetriebsmittel(notizen.notiz_id)">OK</button>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @click="resetModal">Abbrechen</button>-->
<button ref="Close" type="button" class="btn btn-primary" @click="deleteBetriebsmittel(formData.betriebsmittelperson_id)">OK</button>
</template>
</BsModal>-->
</BsModal>
<core-filter-cmpt
ref="table"
@@ -317,6 +331,140 @@ export default {
>
</core-filter-cmpt>
<br>
{{formData}} || {{statusNew}}
<hr>
<form-form class="row g-3 col-6" ref="betriebsmittelData">
<legend>Details</legend>
<div class="row mb-3">
<div class="col-sm-7">
<p v-if="statusNew" class="fw-bold"> Betriebsmittel anlegen</p>
<p v-else class="fw-bold">Betriebsmittel bearbeiten</p>
</div>
</div>
<div class="row mb-3">
<label for="typ" class="form-label col-sm-4">Typ</label>
<div class="col-sm-6">
<form-input
type="select"
name="typ"
v-model="formData.betriebsmitteltyp"
>
<option v-for="entry in listBetriebsmitteltyp" :key="entry.betriebsmitteltyp" :value="entry.betriebsmitteltyp">{{entry.betriebsmitteltyp}}</option>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="nummer" class="form-label col-sm-4">Nummer</label>
<div class="col-sm-6">
<form-input
type="text"
name="nummer"
v-model="formData['nummer']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="nummer2" class="form-label col-sm-4">Nummer2</label>
<div class="col-sm-6">
<form-input
type="text"
name="nummer2"
v-model="formData['nummer2']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="beschreibung" class="form-label col-sm-4">Beschreibung</label>
<div class="col-sm-6">
<form-input
type="textarea"
name="beschreibung"
v-model="formData['beschreibung']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="kaution" class="form-label col-sm-4">Kaution</label>
<div class="col-sm-6">
<form-input
type="text"
name="kaution"
v-model="formData['kaution']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="anmerkung" class="form-label col-sm-4">Anmerkung</label>
<div class="col-sm-6">
<form-input
type="textarea"
name="anmerkung"
v-model="formData['anmerkung']"
>
</form-input>
</div>
</div>
<div class="row mb-3">
<label for="ausgegebenam" class="form-label col-sm-4">Ausgegeben am</label>
<div class="col-sm-6">
<form-input
type="DatePicker"
:readonly="readonly"
name="datum"
v-model="formData['ausgegebenam']"
auto-apply
:enable-time-picker="false"
format="dd.MM.yyyy"
preview-format="dd.MM.yyyy"
:teleport="true"
></form-input>
</div>
</div>
<div class="row mb-3">
<label for="retouram" class="form-label col-sm-4">Retour am</label>
<div class="col-sm-6">
<form-input
type="DatePicker"
:readonly="readonly"
name="datum"
v-model="formData['retouram']"
auto-apply
:enable-time-picker="false"
format="dd.MM.yyyy"
preview-format="dd.MM.yyyy"
:teleport="true"
></form-input>
</div>
<!-- <div class="position-sticky top-0 z-1">
<button type="submit" class="btn btn-primary position-absolute top-0 end-0" :disabled="!deltaLength">Speichern2</button>
</div>-->
</div>
<div class="row mb-3">
<label class="form-label col-sm-8"></label>
<div v-if="statusNew" class="col-sm-4">
<button ref="Close" type="button" class="btn btn-primary" @click="addNewBetriebsmittel()">Speichern</button>
</div>
<div v-else class="col-sm-4">
<button ref="Close" type="button" class="btn btn-warning" @click="updateBetriebsmittel()">Aktualisieren {{formData.betriebsmittelperson_id}}</button>
</div>
</div>
</form-form>
</div>`
}
@@ -16,9 +16,6 @@ export default {
:uid="modelValue.uid"
>
</Betriebsmittel>
{{modelValue}}
<hr>
{{modelValue.person_id}}
</div>
`
};