mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
edit Status Contracts
This commit is contained in:
@@ -20,7 +20,9 @@ class Vertraege extends FHCAPI_Controller
|
||||
'addNewContract' => ['admin:r', 'assistenz:r'],
|
||||
'deleteContract' => ['admin:r', 'assistenz:r'],
|
||||
'insertContractStatus' => ['admin:r', 'assistenz:r'],
|
||||
'loadContractStatus' => ['admin:r', 'assistenz:r'],
|
||||
'deleteContractStatus' => ['admin:r', 'assistenz:r'],
|
||||
'updateContractStatus' => ['admin:r', 'assistenz:r'],
|
||||
]);
|
||||
|
||||
//Load Models
|
||||
@@ -30,6 +32,7 @@ class Vertraege extends FHCAPI_Controller
|
||||
$this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
|
||||
}
|
||||
|
||||
//TODO(Manu) validations, phrases
|
||||
public function getAllVertraege($person_id)
|
||||
{
|
||||
$result = $this->VertragModel->loadContractsOfPerson($person_id);
|
||||
@@ -37,7 +40,6 @@ class Vertraege extends FHCAPI_Controller
|
||||
if (isError($result)) {
|
||||
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
$this->terminateWithSuccess((getData($result) ?: []));
|
||||
}
|
||||
|
||||
@@ -48,7 +50,6 @@ class Vertraege extends FHCAPI_Controller
|
||||
if (isError($result)) {
|
||||
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
$this->terminateWithSuccess((getData($result) ?: []));
|
||||
}
|
||||
|
||||
@@ -59,7 +60,6 @@ class Vertraege extends FHCAPI_Controller
|
||||
if (isError($result)) {
|
||||
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
$this->terminateWithSuccess((getData($result) ?: []));
|
||||
}
|
||||
|
||||
@@ -70,7 +70,6 @@ class Vertraege extends FHCAPI_Controller
|
||||
if (isError($result)) {
|
||||
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
$this->terminateWithSuccess((getData($result) ?: []));
|
||||
}
|
||||
|
||||
@@ -86,7 +85,6 @@ class Vertraege extends FHCAPI_Controller
|
||||
|
||||
public function getAllContractStati()
|
||||
{
|
||||
//TODO(MANUU)
|
||||
$result = $this->VertragsstatusModel->load();
|
||||
if (isError($result))
|
||||
{
|
||||
@@ -124,7 +122,6 @@ class Vertraege extends FHCAPI_Controller
|
||||
'insertvon' => getAuthUID()
|
||||
]);
|
||||
|
||||
//add entry with status neu in lehre.tbl_vertrag_vertragsstatus
|
||||
//TODO(Manu) validation, dass status nicht schon bereits vorhanden
|
||||
$status_result = $this->VertragvertragsstatusModel->insert([
|
||||
'vertrag_id' => $result->retval,
|
||||
@@ -232,7 +229,7 @@ class Vertraege extends FHCAPI_Controller
|
||||
if (!hasData($result)) {
|
||||
return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id' => 'Vertrag_id']), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
return $this->outputJsonSuccess(current(getData($result)));
|
||||
return $this->terminateWithSuccess(current(getData($result)));
|
||||
}
|
||||
|
||||
public function insertContractStatus ($vertrag_id, $datum, $status){
|
||||
@@ -261,11 +258,11 @@ class Vertraege extends FHCAPI_Controller
|
||||
$this->terminateWithError('Fehler beim Hinzufügen des Vertragsstatus.');
|
||||
}
|
||||
|
||||
return $this->outputJsonSuccess(current(getData($status_result)));
|
||||
return $this->terminateWithSuccess(current(getData($status_result)));
|
||||
}
|
||||
|
||||
public function deleteContractStatus($vertrag_id, $status){
|
||||
//return $this->terminateWithError($vertrag_id . " - " . $status, self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$result = $this->VertragvertragsstatusModel->delete(
|
||||
array(
|
||||
'vertrag_id' => $vertrag_id,
|
||||
@@ -279,6 +276,50 @@ class Vertraege extends FHCAPI_Controller
|
||||
if (!hasData($result)) {
|
||||
return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id' => 'vertragsstatus_kurzb']), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
return $this->outputJsonSuccess(current(getData($result)));
|
||||
return $this->terminateWithSuccess(current(getData($result)));
|
||||
}
|
||||
|
||||
public function loadContractStatus ($vertrag_id, $status){
|
||||
|
||||
$result = $this->VertragvertragsstatusModel->loadWhere(
|
||||
array(
|
||||
'vertrag_id' => $vertrag_id,
|
||||
'vertragsstatus_kurzbz' => $status
|
||||
)
|
||||
);
|
||||
if (!$result) {
|
||||
$this->terminateWithError('Status not existing');
|
||||
}
|
||||
return $this->terminateWithSuccess(current(getData($result)));
|
||||
}
|
||||
|
||||
public function updateContractStatus ($vertrag_id, $datum, $status){
|
||||
/* $result = $this->VertragvertragsstatusModel->loadWhere(
|
||||
array(
|
||||
'vertrag_id' => $vertrag_id,
|
||||
'vertragsstatus_kurzbz' => $status
|
||||
)
|
||||
);
|
||||
|
||||
if (hasData($result)) {
|
||||
$this->terminateWithError("status bereits vorhanden", self::ERROR_TYPE_GENERAL);
|
||||
// $this->terminateWithError($this->p->t('ui', 'error_status_existing', ['id' => 'Vertrag_id']), self::ERROR_TYPE_GENERAL);
|
||||
}*/
|
||||
|
||||
$status_result = $this->VertragvertragsstatusModel->update([
|
||||
'vertrag_id' => $vertrag_id,
|
||||
'vertragsstatus_kurzbz' => $status],
|
||||
[
|
||||
'uid' => getAuthUID(),
|
||||
'updateamum' => date('c'),
|
||||
'updatevon' => getAuthUID(),
|
||||
'datum' => $datum
|
||||
]);
|
||||
|
||||
if (!$status_result) {
|
||||
$this->terminateWithError('Fehler beim Updaten des Vertragsstatus.');
|
||||
}
|
||||
|
||||
return $this->terminateWithSuccess(current(getData($status_result)));
|
||||
}
|
||||
}
|
||||
@@ -36,11 +36,17 @@ export default {
|
||||
deleteContract(vertrag_id){
|
||||
return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/deleteContract/' + vertrag_id);
|
||||
},
|
||||
loadContractStatus(params){
|
||||
return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/loadContractStatus/' + Object.values(params.vertrag_id).join('/') + '/' + Object.values(params.status).join('/'));
|
||||
},
|
||||
insertContractStatus(params) {
|
||||
return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/insertContractStatus/' + params.vertrag_id + '/' + params.datum + '/' + Object.values(params.status).join('/'));
|
||||
},
|
||||
updateContractStatus(params) {
|
||||
console.log("API", params.vertrag_id, params.status, params.datum);
|
||||
return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/updateContractStatus/' + params.vertrag_id + '/' + params.datum + '/' + Object.values(params.status).join('/'));
|
||||
},
|
||||
deleteContractStatus(params) {
|
||||
console.log("API", params.vertrag_id, params.status);
|
||||
return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/deleteContractStatus/' + Object.values(params.vertrag_id).join('/') + '/' + Object.values(params.status).join('/'));
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,10 @@ export default {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
formDataParent: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -53,6 +57,17 @@ export default {
|
||||
|
||||
let button = document.createElement('button');
|
||||
button.className = 'btn btn-outline-secondary btn-action';
|
||||
button.innerHTML = '<i class="fa fa-edit"></i>';
|
||||
button.title = 'Status bearbeiten';
|
||||
button.addEventListener(
|
||||
'click',
|
||||
(event) =>
|
||||
this.actionEditStatus(cell.getData().vertrag_id, cell.getData().vertragsstatus_kurzbz)
|
||||
);
|
||||
container.append(button);
|
||||
|
||||
button = document.createElement('button');
|
||||
button.className = 'btn btn-outline-secondary btn-action';
|
||||
button.innerHTML = '<i class="fa fa-xmark"></i>';
|
||||
button.title = 'Status löschen';
|
||||
button.addEventListener(
|
||||
@@ -75,7 +90,8 @@ export default {
|
||||
selectable: true,
|
||||
},
|
||||
clickedRows: [],
|
||||
formContractData: {
|
||||
statusNew: true,
|
||||
formData: {
|
||||
vertragsstatus_kurzbz: null,
|
||||
datum: new Date()
|
||||
},
|
||||
@@ -84,34 +100,64 @@ export default {
|
||||
watch: {
|
||||
vertrag_id() {
|
||||
this.$refs.table.tabulator.setData('api/frontend/v1/vertraege/vertraege/getStatiOfContract/' + this.vertrag_id);
|
||||
},
|
||||
formDataParent: {
|
||||
handler(newVal, oldVal) {
|
||||
this.formData = this.formDataParent;
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
actionNewStatus() {
|
||||
console.log("actionNewStatus");
|
||||
this.resetModal();
|
||||
this.$refs.contractStatus.show();
|
||||
},
|
||||
actionEditStatus(vertrag_id, status) {
|
||||
this.statusNew = false;
|
||||
this.$emit('loadContractStatus', {
|
||||
status: status,
|
||||
vertrag_id: vertrag_id
|
||||
});
|
||||
},
|
||||
actionDeleteStatus(vertrag_id, status) {
|
||||
console.log("action: deleteStatus " + status + " from Vertrag" + vertrag_id);
|
||||
this.$emit('deleteContractStatus', {
|
||||
status: status,
|
||||
vertrag_id: vertrag_id
|
||||
});
|
||||
},
|
||||
handleSubmit(){
|
||||
this.$emit('setContractStatus', {
|
||||
status: this.formContractData.vertragsstatus_kurzbz,
|
||||
datum: this.formContractData.datum
|
||||
});
|
||||
handleSubmit(action){
|
||||
if (action == 'new') {
|
||||
this.$emit('setContractStatus', {
|
||||
status: this.formData.vertragsstatus_kurzbz,
|
||||
datum: this.formData.datum
|
||||
});
|
||||
}
|
||||
if (action == 'edit') {
|
||||
this.$emit('updateContractStatus', {
|
||||
status: this.formData.vertragsstatus_kurzbz,
|
||||
datum: this.formData.datum
|
||||
});
|
||||
}
|
||||
},
|
||||
closeModal(){
|
||||
this.$refs.contractStatus.hide();
|
||||
this.$emit('close-modal');
|
||||
},
|
||||
openModal(){
|
||||
this.$refs.contractStatus.show();
|
||||
this.$emit('open-modal');
|
||||
},
|
||||
reload() {
|
||||
this.$refs.table.reloadTable();
|
||||
this.$emit('reload');
|
||||
},
|
||||
resetModal(){
|
||||
this.formData = {};
|
||||
this.formData.vertragsstatus_kurzbz = null;
|
||||
this.formData.datum = new Date();
|
||||
this.statusNew = true;
|
||||
}
|
||||
},
|
||||
template: `
|
||||
<!--TODO(Manu) check filter (akzeptiert, neu, erteilt?), design -->
|
||||
@@ -144,7 +190,7 @@ export default {
|
||||
type="DatePicker"
|
||||
:label="$p.t('global/datum')"
|
||||
name="datum"
|
||||
v-model="formContractData.datum"
|
||||
v-model="formData.datum"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
format="dd.MM.yyyy"
|
||||
@@ -157,8 +203,9 @@ export default {
|
||||
<form-input
|
||||
type="select"
|
||||
:label="$p.t('global/typ')"
|
||||
v-model="formContractData.vertragsstatus_kurzbz"
|
||||
v-model="formData.vertragsstatus_kurzbz"
|
||||
name="vertragsstatus_kurzbz"
|
||||
:disabled="!statusNew"
|
||||
>
|
||||
<option :value="null">{{$p.t('ui', 'bitteWaehlen')}}</option>
|
||||
<option
|
||||
@@ -173,7 +220,7 @@ export default {
|
||||
</core-form>
|
||||
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-primary" @click="handleSubmit()">{{$p.t('ui', 'speichern')}}</button>
|
||||
<button type="button" class="btn btn-primary" @click="statusNew ? handleSubmit('new') : handleSubmit('edit')">{{$p.t('ui', 'speichern')}}</button>
|
||||
</template>
|
||||
|
||||
</bs-modal>
|
||||
|
||||
@@ -132,6 +132,10 @@ export default {
|
||||
listContractTypes: [],
|
||||
contractSelected: [],
|
||||
listContractStati: [],
|
||||
contractFormData: {
|
||||
vertragsstatus_kurzbz: 'test',
|
||||
datum: new Date()
|
||||
}
|
||||
// isContractModalVisible: true,
|
||||
}
|
||||
},
|
||||
@@ -147,7 +151,6 @@ export default {
|
||||
.then(this.$refs.contractModal.show);
|
||||
},
|
||||
actionDeleteContract(vertrag_id) {
|
||||
console.log("actionDeleteContract" + vertrag_id);
|
||||
this.$fhcAlert
|
||||
.confirmDelete()
|
||||
.then(result => result
|
||||
@@ -156,7 +159,7 @@ export default {
|
||||
.then(this.endpoint.deleteContract)
|
||||
.then(result => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
||||
window.scrollTo(0, 0);
|
||||
//window.scrollTo(0, 0);
|
||||
this.reload();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
@@ -168,48 +171,11 @@ export default {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.$refs.contractModal.hide();
|
||||
this.resetModal();
|
||||
window.scrollTo(0, 0);
|
||||
//window.scrollTo(0, 0);
|
||||
this.reload();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
addNewContractStatus({status, datum}) {
|
||||
const date = new Date();
|
||||
|
||||
//TODO(Manu) refactor this
|
||||
const formattedDate = datum.toLocaleDateString('en-CA');
|
||||
let params = {
|
||||
vertrag_id : this.contractSelected.vertrag_id,
|
||||
status: {status},
|
||||
datum: formattedDate
|
||||
}
|
||||
|
||||
return this.endpoint
|
||||
.insertContractStatus(params)
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
|
||||
this.$refs.contractstati.closeModal();
|
||||
window.scrollTo(0, 0);
|
||||
this.$refs.contractstati.reload();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
deleteContractStatus({status, vertrag_id}){
|
||||
let params = {
|
||||
vertrag_id : {vertrag_id},
|
||||
status: {status}
|
||||
}
|
||||
return this.endpoint
|
||||
.deleteContractStatus(params)
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
||||
|
||||
window.scrollTo(0, 0);
|
||||
this.$refs.contractstati.reload();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
updateContract(vertrag_id) {
|
||||
return this.endpoint
|
||||
.updateContract(vertrag_id, this.formData)
|
||||
@@ -217,7 +183,6 @@ export default {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.$refs.contractModal.hide();
|
||||
this.resetModal();
|
||||
window.scrollTo(0, 0);
|
||||
this.reload();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
@@ -232,6 +197,74 @@ export default {
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
addNewContractStatus({status, datum}) {
|
||||
const date = new Date();
|
||||
//TODO(Manu) refactor this
|
||||
const formattedDate = datum.toLocaleDateString('en-CA');
|
||||
let params = {
|
||||
vertrag_id : this.contractSelected.vertrag_id,
|
||||
status: {status},
|
||||
datum: formattedDate
|
||||
};
|
||||
|
||||
return this.endpoint
|
||||
.insertContractStatus(params)
|
||||
.then(response => {
|
||||
//this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
|
||||
this.$refs.contractstati.closeModal();
|
||||
//window.scrollTo(0, 0);
|
||||
this.$refs.contractstati.reload();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
deleteContractStatus({status, vertrag_id}){
|
||||
let params = {
|
||||
vertrag_id : {vertrag_id},
|
||||
status: {status}
|
||||
};
|
||||
return this.endpoint
|
||||
.deleteContractStatus(params)
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
||||
|
||||
//window.scrollTo(0, 0);
|
||||
this.$refs.contractstati.reload();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
updateContractStatus({datum, status}){
|
||||
//TODO(Manu) refactor this
|
||||
const formattedDate = datum.toLocaleDateString('en-CA');
|
||||
let params = {
|
||||
vertrag_id : this.contractSelected.vertrag_id,
|
||||
datum : formattedDate,
|
||||
status: {status}
|
||||
};
|
||||
return this.endpoint
|
||||
.updateContractStatus(params)
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
|
||||
//window.scrollTo(0, 0);
|
||||
this.$refs.contractstati.closeModal();
|
||||
this.$refs.contractstati.reload();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
loadContractStatus({vertrag_id, status}){
|
||||
let params = {
|
||||
vertrag_id : {vertrag_id},
|
||||
status: {status}
|
||||
};
|
||||
return this.endpoint
|
||||
.loadContractStatus(params)
|
||||
.then(response => {
|
||||
this.contractFormData = response.data;
|
||||
this.$refs.contractstati.openModal();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
reload() {
|
||||
this.$refs.table.reloadTable();
|
||||
},
|
||||
@@ -259,7 +292,6 @@ export default {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.table.tabulator.on("rowClick", (e, row) => {
|
||||
this.contractSelected = row.getData();
|
||||
console.log("vertrag_id: ", this.contractSelected.vertrag_id);
|
||||
});
|
||||
});
|
||||
},
|
||||
@@ -279,7 +311,6 @@ export default {
|
||||
@click:new="actionNewContract"
|
||||
>
|
||||
</core-filter-cmpt>
|
||||
Vertrag: {{contractSelected.vertrag_id}}
|
||||
|
||||
<div class = "row">
|
||||
|
||||
@@ -293,9 +324,14 @@ export default {
|
||||
<div class="col-sm-6">
|
||||
<!-- ContractStati -->
|
||||
<div class="md-4" v-if="contractSelected.vertrag_id !=null">
|
||||
<contract-stati :vertrag_id="contractSelected.vertrag_id" :listContractStati="listContractStati"
|
||||
<contract-stati
|
||||
:vertrag_id="contractSelected.vertrag_id"
|
||||
:listContractStati="listContractStati"
|
||||
:formDataParent="contractFormData"
|
||||
@setContractStatus="addNewContractStatus"
|
||||
@deleteContractStatus="deleteContractStatus"
|
||||
@updateContractStatus="updateContractStatus"
|
||||
@loadContractStatus="loadContractStatus"
|
||||
ref="contractstati"
|
||||
></contract-stati>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user