diff --git a/application/controllers/api/frontend/v1/vertraege/Vertraege.php b/application/controllers/api/frontend/v1/vertraege/Vertraege.php
index 21fb310fc..d9564da70 100644
--- a/application/controllers/api/frontend/v1/vertraege/Vertraege.php
+++ b/application/controllers/api/frontend/v1/vertraege/Vertraege.php
@@ -1,6 +1,5 @@
['admin:r', 'assistenz:r'],
'getAllContractsNotAssigned' => ['admin:r', 'assistenz:r'],
'getAllContractsAssigned' => ['admin:r', 'assistenz:r'],
- 'getAllContractTypes' => self::PERM_LOGGED,
- 'getAllContractStati' => self::PERM_LOGGED,
- 'getStatiOfContract' => self::PERM_LOGGED,
+ 'getAllContractTypes' => ['admin:r', 'assistenz:r'],
+ 'getAllContractStati' => ['admin:r', 'assistenz:r'],
+ 'getStatiOfContract' => ['admin:r', 'assistenz:r'],
'loadContract' => ['admin:r', 'assistenz:r'],
- 'updateContract' => ['admin:r', 'assistenz:r'],
- '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'],
- 'deleteLehrauftrag' => ['admin:r', 'assistenz:r'],
- 'deleteBetreuung' => ['admin:r', 'assistenz:r']
- ]);
+ 'updateContract' => self::PERM_LOGGED,
+ 'addNewContract' => self::PERM_LOGGED,
+ 'deleteContract' => self::PERM_LOGGED,
+ 'insertContractStatus' => self::PERM_LOGGED,
+ 'deleteContractStatus' => self::PERM_LOGGED,
+ 'updateContractStatus' => self::PERM_LOGGED,
+ 'deleteLehrauftrag' => self::PERM_LOGGED,
+ 'deleteBetreuung' => self::PERM_LOGGED
+ ]);
//Load Models and Libraries
$this->load->model('accounting/Vertrag_model', 'VertragModel');
@@ -33,8 +32,6 @@ class Vertraege extends FHCAPI_Controller
$this->load->model('accounting/Vertragstyp_model', 'VertragstypModel');
$this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
- //TODO(Manu) additional permission checks
-
// Load language phrases
$this->loadPhrases([
'ui',
@@ -42,7 +39,6 @@ class Vertraege extends FHCAPI_Controller
]);
}
- //TODO(Manu) validations, phrases
public function getAllVertraege($person_id)
{
$result = $this->VertragModel->loadContractsOfPerson($person_id);
@@ -121,15 +117,25 @@ class Vertraege extends FHCAPI_Controller
$_POST['vertragsdatum']= $formData['vertragsdatum'];
$_POST['bezeichnung']= $formData['bezeichnung'];
$_POST['betrag'] = $formData['betrag'];
- $_POST['vertragsstunden']= isset($formData['vertragsstunden']) ? $formData['vertragsstunden'] : null;
- $_POST['vertragsstunden_studiensemester_kurzbz']= isset($formData['vertragsstunden_studiensemester_kurzbz']) ? $formData['vertragsstunden_studiensemester_kurzbz'] : null;
- $_POST['anmerkung']= isset($formData['anmerkung']) ? $formData['anmerkung'] : null;
+ $_POST['vertragsstunden'] =
+ isset($formData['vertragsstunden'])
+ ? $formData['vertragsstunden']
+ : null;
+ $_POST['vertragsstunden_studiensemester_kurzbz'] =
+ isset($formData['vertragsstunden_studiensemester_kurzbz'])
+ ? $formData['vertragsstunden_studiensemester_kurzbz']
+ : null;
+ $_POST['anmerkung'] = isset($formData['anmerkung']) ? $formData['anmerkung'] : null;
+ $this->form_validation->set_rules('bezeichnung', 'Bezeichnung', 'required', [
+ 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Bezeichnung'])
+ ]);
$this->form_validation->set_rules('vertragstyp_kurzbz', 'Vertragstyp', 'required', [
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Vertragstyp'])
]);
- $this->form_validation->set_rules('vertragsdatum', 'Vertragsdatum', 'required', [
+ $this->form_validation->set_rules('vertragsdatum', 'Vertragsdatum', 'required|is_valid_date', [
+ 'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Vertragsdatum']),
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Vertragsdatum'])
]);
$this->form_validation->set_rules('betrag', 'Betrag', 'required|numeric', [
@@ -151,13 +157,13 @@ class Vertraege extends FHCAPI_Controller
$result = $this->VertragModel->insert([
'person_id' => $person_id,
- 'vertragsdatum' => $_POST['vertragsdatum'],
- 'bezeichnung' => $_POST['bezeichnung'],
- 'vertragstyp_kurzbz' => $_POST['vertragstyp_kurzbz'],
- 'betrag' => $_POST['betrag'],
- 'vertragsstunden' => $_POST['vertragsstunden'],
- 'vertragsstunden_studiensemester_kurzbz' => $_POST['vertragsstunden_studiensemester_kurzbz'],
- 'anmerkung' => $_POST['anmerkung'],
+ 'vertragsdatum' => $this->input->post('vertragsdatum'),
+ 'bezeichnung' => $this->input->post('bezeichnung'),
+ 'vertragstyp_kurzbz' => $this->input->post('vertragstyp_kurzbz'),
+ 'betrag' => $this->input->post('betrag'),
+ 'vertragsstunden' => $this->input->post('vertragsstunden'),
+ 'vertragsstunden_studiensemester_kurzbz' => $this->input->post('vertragsstunden_studiensemester_kurzbz'),
+ 'anmerkung' => $this->input->post('anmerkung'),
'insertamum' => date('c'),
'insertvon' => getAuthUID()
]);
@@ -180,8 +186,8 @@ class Vertraege extends FHCAPI_Controller
}
//Hinzufügen der Lehraufträge
- foreach ($lehrauftraege as $row) {
-
+ foreach ($lehrauftraege as $row)
+ {
if ($row['type'] == 'Lehrauftrag')
{
$this->load->model('education/Lehreinheitmitarbeiter_model', 'LehreinheitmitarbeiterModel');
@@ -193,7 +199,8 @@ class Vertraege extends FHCAPI_Controller
],
[
'vertrag_id' => $vertrag_id
- ]);
+ ]
+ );
if (!$result_lehrauftrag) {
$this->db->trans_rollback();
@@ -213,7 +220,8 @@ class Vertraege extends FHCAPI_Controller
],
[
'vertrag_id' => $vertrag_id
- ]);
+ ]
+ );
if (!$result_projektbetreuer)
{
@@ -241,15 +249,25 @@ class Vertraege extends FHCAPI_Controller
$_POST['vertragsdatum']= $formData['vertragsdatum'];
$_POST['bezeichnung']= $formData['bezeichnung'];
$_POST['betrag'] = $formData['betrag'];
- $_POST['vertragsstunden']= isset($formData['vertragsstunden']) ? $formData['vertragsstunden'] : null;
- $_POST['vertragsstunden_studiensemester_kurzbz']= isset($formData['vertragsstunden_studiensemester_kurzbz']) ? $formData['vertragsstunden_studiensemester_kurzbz'] : null;
+ $_POST['vertragsstunden'] =
+ isset($formData['vertragsstunden'])
+ ? $formData['vertragsstunden']
+ : null;
+ $_POST['vertragsstunden_studiensemester_kurzbz']=
+ isset($formData['vertragsstunden_studiensemester_kurzbz'])
+ ? $formData['vertragsstunden_studiensemester_kurzbz']
+ : null;
$_POST['anmerkung']= isset($formData['anmerkung']) ? $formData['anmerkung'] : null;
+ $this->form_validation->set_rules('bezeichnung', 'Bezeichnung', 'required', [
+ 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Bezeichnung'])
+ ]);
$this->form_validation->set_rules('vertragstyp_kurzbz', 'Vertragstyp', 'required', [
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Vertragstyp'])
]);
- $this->form_validation->set_rules('vertragsdatum', 'Vertragsdatum', 'required', [
+ $this->form_validation->set_rules('vertragsdatum', 'Vertragsdatum', 'required|is_valid_date', [
+ 'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Vertragsdatum']),
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Vertragsdatum'])
]);
$this->form_validation->set_rules('betrag', 'Betrag', 'required|numeric', [
@@ -271,23 +289,23 @@ class Vertraege extends FHCAPI_Controller
$vertrag_id,
[
'person_id' => $person_id,
- 'vertragsdatum' => $_POST['vertragsdatum'],
- 'bezeichnung' => $_POST['bezeichnung'],
- 'vertragstyp_kurzbz' => $_POST['vertragstyp_kurzbz'],
- 'betrag' => $_POST['betrag'],
- 'vertragsstunden' => $_POST['vertragsstunden'],
- 'vertragsstunden_studiensemester_kurzbz' => $_POST['vertragsstunden_studiensemester_kurzbz'],
- 'anmerkung' => $_POST['anmerkung'],
- 'vertragsstunden' => $_POST['vertragsstunden'],
+ 'vertragsdatum' => $this->input->post('vertragsdatum'),
+ 'bezeichnung' => $this->input->post('bezeichnung'),
+ 'vertragstyp_kurzbz' => $this->input->post('vertragstyp_kurzbz'),
+ 'betrag' => $this->input->post('betrag'),
+ 'vertragsstunden' => $this->input->post('vertragsstunden'),
+ 'vertragsstunden_studiensemester_kurzbz' => $this->input->post('vertragsstunden_studiensemester_kurzbz'),
+ 'anmerkung' => $this->input->post('anmerkung'),
'updateamum' => date('c'),
'updatevon' => getAuthUID()
- ]);
+ ]
+ );
$this->getDataOrTerminateWithError($result);
//Adding of Lehraufträge
- foreach ($lehrauftraege as $row) {
-
+ foreach ($lehrauftraege as $row)
+ {
if ($row['type'] == 'Lehrauftrag')
{
$this->load->model('education/Lehreinheitmitarbeiter_model', 'LehreinheitmitarbeiterModel');
@@ -299,7 +317,8 @@ class Vertraege extends FHCAPI_Controller
],
[
'vertrag_id' => $vertrag_id
- ]);
+ ]
+ );
if (!$result_lehrauftrag) {
$this->db->trans_rollback();
@@ -319,7 +338,8 @@ class Vertraege extends FHCAPI_Controller
],
[
'vertrag_id' => $vertrag_id
- ]);
+ ]
+ );
if (!$result_projektbetreuer)
{
@@ -350,9 +370,6 @@ class Vertraege extends FHCAPI_Controller
public function deleteContract($vertrag_id)
{
- //TODO(Manu) validations
-
- //TODO(manu) use private function
$this->load->model('education/Lehreinheitmitarbeiter_model', 'LehreinheitmitarbeiterModel');
//check if attached Lehrauftrag
@@ -366,17 +383,17 @@ class Vertraege extends FHCAPI_Controller
foreach($resultLehrauftrag as $lehrauftrag)
{
$result = $this->LehreinheitmitarbeiterModel->update(
- [
- 'lehreinheit_id' => $lehrauftrag->lehreinheit_id,
- 'mitarbeiter_uid' => $lehrauftrag->mitarbeiter_uid,
- 'vertrag_id' => $vertrag_id
- ],
- [
- 'vertrag_id' => null
- ]);
+ [
+ 'lehreinheit_id' => $lehrauftrag->lehreinheit_id,
+ 'mitarbeiter_uid' => $lehrauftrag->mitarbeiter_uid,
+ 'vertrag_id' => $vertrag_id
+ ],
+ [
+ 'vertrag_id' => null
+ ]
+ );
$this->getDataOrTerminateWithError($result);
-
}
}
@@ -402,7 +419,8 @@ class Vertraege extends FHCAPI_Controller
],
[
'vertrag_id' => null
- ]);
+ ]
+ );
$this->getDataOrTerminateWithError($result);
}
@@ -412,10 +430,11 @@ class Vertraege extends FHCAPI_Controller
'vertrag_id' => $vertrag_id
]);
- //TODO(Manu) check if there are exceptions for deletions (status abgerechnet?)
- if(hasData($result)){
+ if(hasData($result))
+ {
$data = getData($result);
- foreach ($data as $item) {
+ foreach ($data as $item)
+ {
//delete all entries in lehre.tbl_vertrag_vertragsstatus
$result = $this->VertragvertragsstatusModel->delete([
'vertrag_id' => $vertrag_id,
@@ -442,26 +461,42 @@ class Vertraege extends FHCAPI_Controller
return $this->terminateWithSuccess(current(getData($result)));
}
- public function insertContractStatus ($vertrag_id, $datum, $status){
+ public function insertContractStatus($vertrag_id)
+ {
+ $this->load->library('form_validation');
+
+ $this->form_validation->set_rules('vertragsstatus_kurzbz', 'vertragsstatus_kurzbz', 'required', [
+ 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'vertragsstatus_kurzbz'])
+ ]);
+ $this->form_validation->set_rules('datum', 'Datum', 'required|is_valid_date', [
+ 'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Datum']),
+ 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Datum'])
+ ]);
+
+ if ($this->form_validation->run() == false)
+ {
+ $this->terminateWithValidationErrors($this->form_validation->error_array());
+ }
+
$result = $this->VertragvertragsstatusModel->loadWhere(
array(
'vertrag_id' => $vertrag_id,
- 'vertragsstatus_kurzbz' => $status
+ 'vertragsstatus_kurzbz' => $this->input->post('vertragsstatus_kurzbz')
)
);
- 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);
+ if (hasData($result))
+ {
+ $this->terminateWithError($this->p->t('vertrag', 'error_statusVorhanden'), self::ERROR_TYPE_GENERAL);
}
$status_result = $this->VertragvertragsstatusModel->insert([
'vertrag_id' => $vertrag_id,
'uid' => getAuthUID(),
- 'vertragsstatus_kurzbz' => $status,
+ 'vertragsstatus_kurzbz' => $this->input->post('vertragsstatus_kurzbz'),
'insertamum' => date('c'),
'insertvon' => getAuthUID(),
- 'datum' => $datum
+ 'datum' => $this->input->post('datum')
]);
if (!$status_result) {
@@ -471,7 +506,9 @@ class Vertraege extends FHCAPI_Controller
return $this->terminateWithSuccess(current(getData($status_result)));
}
- public function deleteContractStatus($vertrag_id, $status){
+ public function deleteContractStatus($vertrag_id)
+ {
+ $status = $this->input->post('vertragsstatus_kurzbz');
$result = $this->VertragvertragsstatusModel->delete(
array(
@@ -480,16 +517,20 @@ class Vertraege extends FHCAPI_Controller
)
);
- if (isError($result)) {
+ if (isError($result))
+ {
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
- if (!hasData($result)) {
+ if (!hasData($result))
+ {
return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id' => 'vertragsstatus_kurzb']), self::ERROR_TYPE_GENERAL);
}
return $this->terminateWithSuccess(current(getData($result)));
}
- public function loadContractStatus ($vertrag_id, $status){
+ public function loadContractStatus($vertrag_id)
+ {
+ $status = $this->input->post('vertragsstatus_kurzbz');
$result = $this->VertragvertragsstatusModel->loadWhere(
array(
@@ -503,28 +544,34 @@ class Vertraege extends FHCAPI_Controller
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
- )
- );
+ public function updateContractStatus($vertrag_id)
+ {
+ $this->load->library('form_validation');
- 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);
- }*/
+ $this->form_validation->set_rules('vertragsstatus_kurzbz', 'vertragsstatus_kurzbz', 'required', [
+ 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'vertragsstatus_kurzbz'])
+ ]);
+ $this->form_validation->set_rules('datum', 'Datum', 'required|is_valid_date', [
+ 'is_valid_date' => $this->p->t('ui', 'error_notValidDate', ['field' => 'Datum']),
+ 'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Datum'])
+ ]);
- $status_result = $this->VertragvertragsstatusModel->update([
+ if ($this->form_validation->run() == false)
+ {
+ $this->terminateWithValidationErrors($this->form_validation->error_array());
+ }
+
+ $status_result = $this->VertragvertragsstatusModel->update(
+ [
'vertrag_id' => $vertrag_id,
- 'vertragsstatus_kurzbz' => $status],
+ 'vertragsstatus_kurzbz' => $this->input->post('vertragsstatus_kurzbz')],
[
'uid' => getAuthUID(),
'updateamum' => date('c'),
'updatevon' => getAuthUID(),
- 'datum' => $datum
- ]);
+ 'datum' => $this->input->post('datum')
+ ]
+ );
if (!$status_result) {
$this->terminateWithError('Fehler beim Updaten des Vertragsstatus.');
@@ -533,8 +580,11 @@ class Vertraege extends FHCAPI_Controller
return $this->terminateWithSuccess(current(getData($status_result)));
}
- public function deleteLehrauftrag($vertrag_id, $lehreinheit_id, $mitarbeiter_uid)
+ public function deleteLehrauftrag($vertrag_id)
{
+ $lehreinheit_id = $this->input->post('lehreinheit_id');
+ $mitarbeiter_uid = $this->input->post('mitarbeiter_uid');
+
$this->load->model('education/Lehreinheitmitarbeiter_model', 'LehreinheitmitarbeiterModel');
//kein delete: ein update, bei dem die vertrag_id auf null gesetzt wird
@@ -546,19 +596,26 @@ class Vertraege extends FHCAPI_Controller
],
[
'vertrag_id' => null
- ]);
+ ]
+ );
- if (isError($result)) {
+ if (isError($result))
+ {
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
- if (!hasData($result)) {
+ if (!hasData($result))
+ {
return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id' => 'Id_Lehrauftrag']), self::ERROR_TYPE_GENERAL);
}
return $this->terminateWithSuccess(current(getData($result)));
}
- public function deleteBetreuung($vertrag_id, $person_id, $projektarbeit_id, $betreuerart_kurzbz)
+ public function deleteBetreuung($vertrag_id)
{
+ $person_id= $this->input->post('person_id');
+ $projektarbeit_id = $this->input->post('projektarbeit_id');
+ $betreuerart_kurzbz = $this->input->post('betreuerart_kurzbz');
+
$this->load->model('education/Projektbetreuer_model', 'Projektbetreuermodel');
$result = $this->Projektbetreuermodel->update(
@@ -570,16 +627,17 @@ class Vertraege extends FHCAPI_Controller
],
[
'vertrag_id' => null
- ]);
+ ]
+ );
- if (isError($result)) {
+ if (isError($result))
+ {
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
- if (!hasData($result)) {
- return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id' => 'Id_Lehrauftrag']), self::ERROR_TYPE_GENERAL);
+ if (!hasData($result))
+ {
+ return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id' => 'Id_Projektbetreuung']), self::ERROR_TYPE_GENERAL);
}
return $this->terminateWithSuccess(current(getData($result)));
}
-
-
-}
\ No newline at end of file
+}
diff --git a/public/js/api/vertraege/person.js b/public/js/api/vertraege/person.js
index 5befc16c1..5c562a273 100644
--- a/public/js/api/vertraege/person.js
+++ b/public/js/api/vertraege/person.js
@@ -20,58 +20,34 @@ export default {
getAllContractStati(){
return this.$fhcApi.get('api/frontend/v1/vertraege/vertraege/getAllContractStati/');
},
-/* addNewContract(person_id, formData) {
- return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/addNewContract/' +
- person_id, formData
- );
- },*/
- addNewContract(data) {
- //TODO(Manu) Refactor
- const { person_id, formData, clickedRows } = data;
- console.log("Person ID:", person_id);
- console.log("Form Data:", formData);
- console.log("Clicked Rows:", clickedRows);
- //return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/addNewContract/' + Object.values(params.person_id).join('/') + '/' + Object.values(params.formData).join('/') + '/' + Object.values(params.clickedRows).join('/'));
- return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/addNewContract/', data);
+ addNewContract(form, data) {
+ return this.$fhcApi.post(form,'api/frontend/v1/vertraege/vertraege/addNewContract/', data);
},
loadContract(vertrag_id){
return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/loadContract/' + vertrag_id);
},
-/* updateContract(vertrag_id, formData) {
- return this.$fhcApi.post( 'api/frontend/v1/vertraege/vertraege/updateContract/' + vertrag_id,
- formData);
- },*/
- updateContract(data) {
- //TODO(Manu) Refactor
- const { vertrag_id, person_id, formData, clickedRows } = data;
- console.log("Person ID:", person_id);
- console.log("Vertrag ID:", vertrag_id);
- console.log("Form Data:", formData);
- console.log("Clicked Rows:", clickedRows);
- return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/updateContract/', data);
+ updateContract(form, data) {
+ return this.$fhcApi.post(form,'api/frontend/v1/vertraege/vertraege/updateContract/', data);
},
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('/'));
+ return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/loadContractStatus/' + params.vertrag_id, params);
},
- insertContractStatus(params) {
- return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/insertContractStatus/' + params.vertrag_id + '/' + params.datum + '/' + Object.values(params.status).join('/'));
+ insertContractStatus(form, params) {
+ return this.$fhcApi.post(form,'api/frontend/v1/vertraege/vertraege/insertContractStatus/' + params.vertrag_id, params);
},
- updateContractStatus(params) {
- return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/updateContractStatus/' + params.vertrag_id + '/' + params.datum + '/' + Object.values(params.status).join('/'));
+ updateContractStatus(form, params) {
+ return this.$fhcApi.post(form,'api/frontend/v1/vertraege/vertraege/updateContractStatus/' + params.vertrag_id, params);
},
deleteContractStatus(params) {
- return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/deleteContractStatus/' + Object.values(params.vertrag_id).join('/') + '/' + Object.values(params.status).join('/'));
+ return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/deleteContractStatus/' + params.vertrag_id, params);
},
deleteLehrauftrag(params) {
- //TODO Manu (Refactor!)
- console.log(params.vertrag_id, params.lehreinheit_id, params.mitarbeiter_uid);
- return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/deleteLehrauftrag/' + Object.values(params.vertrag_id).join('/') + '/' + Object.values(params.lehreinheit_id).join('/') + '/' + Object.values(params.mitarbeiter_uid).join('/'));
+ return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/deleteLehrauftrag/' + params.vertrag_id, params);
},
deleteBetreuung(params) {
- console.log(params.vertrag_id, params.person_id, params.projektarbeit_id, params.betreuerart_kurzbz);
- return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/deleteBetreuung/' + Object.values(params.vertrag_id).join('/') + '/' + Object.values(params.person_id).join('/') + '/' + Object.values(params.projektarbeit_id).join('/') + '/' + Object.values(params.betreuerart_kurzbz).join('/'));
+ return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/deleteBetreuung/' + params.vertrag_id, params);
}
}
\ No newline at end of file
diff --git a/public/js/components/Vertraege/List/Details.js b/public/js/components/Vertraege/List/Details.js
index f11a50d12..2de19a06b 100644
--- a/public/js/components/Vertraege/List/Details.js
+++ b/public/js/components/Vertraege/List/Details.js
@@ -36,21 +36,23 @@ export default {
ajaxResponse: (url, params, response) => response.data,
columns: [
{title: "Typ", field: "type"},
- {title: "Betrag", field: "betrag"},
+ {title: "Betrag", field: "betrag",
+ formatter: function(cell) {
+ let value = cell.getValue();
+ if (value == null) {
+ return "0.00";
+ }
+ return parseFloat(value).toFixed(2);
+ }
+ },
{title: "Bezeichnung", field: "bezeichnung"},
{title: "Studiensemester", field: "studiensemester_kurzbz"},
- {title: "PruefungId", field: "betrag", visible: false},
+ {title: "Pruefung_id", field: "pruefung_id", visible: false},
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false},
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false},
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true},
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false},
- {title: "Vertragsstunden", field: "vertragsstunden", visible: false},
{title: "vertrag_id", field: "vertrag_id", visible: false}, //just for testing
- {
- title: "VertragsstundenStudiensemester",
- field: "vertragsstunden_studiensemester_kurzbz",
- visible: false
- },
{
title: 'Aktionen', field: 'actions',
minWidth: 50,
@@ -62,10 +64,9 @@ export default {
let button = document.createElement('button');
button.className = 'btn btn-outline-secondary btn-action';
button.innerHTML = '';
- button.title = 'Lehrauftrag löschen';
+ button.title = this.$p.t('vertrag', 'deleteLehrauftrag');
let type = cell.getData().type;
- console.log(type);
if (type == 'Lehrauftrag')
{
button.addEventListener(
@@ -96,12 +97,57 @@ export default {
height: '200',
selectableRangeMode: 'click',
selectable: true,
+ persistenceID: 'core-contracts-details'
},
+ tabulatorEvents: [
+ {
+ event: 'tableBuilt',
+ handler: async() => {
+
+ await this.$p.loadCategory(['ui', 'global', 'vertrag', 'projektarbeitsbeurteilung', 'lehre']);
+
+ let cm = this.$refs.table.tabulator.columnManager;
+
+ cm.getColumnByField('type').component.updateDefinition({
+ title: this.$p.t('global', 'typ')
+ });
+ cm.getColumnByField('bezeichnung').component.updateDefinition({
+ title: this.$p.t('ui', 'bezeichnung')
+ });
+ cm.getColumnByField('lehreinheit_id').component.updateDefinition({
+ title: this.$p.t('ui', 'lehreinheit_id')
+ });
+ cm.getColumnByField('betrag').component.updateDefinition({
+ title: this.$p.t('ui', 'betrag')
+ });
+ cm.getColumnByField('studiensemester_kurzbz').component.updateDefinition({
+ title: this.$p.t('lehre', 'studiensemester')
+ });
+ cm.getColumnByField('mitarbeiter_uid').component.updateDefinition({
+ title: this.$p.t('ui', 'mitarbeiter_uid')
+ });
+ cm.getColumnByField('projektarbeit_id').component.updateDefinition({
+ title: this.$p.t('ui', 'projektarbeit_id')
+ });
+ cm.getColumnByField('betreuerart_kurzbz').component.updateDefinition({
+ title: this.$p.t('projektarbeitsbeurteilung', 'betreuerart')
+ });
+ cm.getColumnByField('pruefung_id').component.updateDefinition({
+ title: this.$p.t('ui', 'pruefung_id')
+ });
+ cm.getColumnByField('vertrag_id').component.updateDefinition({
+ title: this.$p.t('ui', 'vertrag_id')
+ });
+ cm.getColumnByField('actions').component.updateDefinition({
+ title: this.$p.t('global', 'aktionen')
+ });
+ }
+ }
+ ],
clickedRows: [],
}
},
watch: {
-
person_id() {
this.$refs.table.tabulator.setData('api/frontend/v1/vertraege/vertraege/getAllContractsAssigned/' + this.person_id + '/' + this.vertrag_id);
},
@@ -131,15 +177,15 @@ export default {
},
},
template: `
-
-
-
+
+
-
Vertragdetails
+
{{$p.t('vertrag', 'vertragDetails')}}
@@ -69,7 +68,7 @@ export default {
button = document.createElement('button');
button.className = 'btn btn-outline-secondary btn-action';
button.innerHTML = '';
- button.title = 'Status löschen';
+ button.title = this.$p.t('vertrag', 'deleteStatus');
button.addEventListener(
'click',
() =>
@@ -88,7 +87,50 @@ export default {
height: '200',
selectableRangeMode: 'click',
selectable: true,
+ persistenceID: 'core-contracts-status'
},
+ tabulatorEvents: [
+ {
+ event: 'tableBuilt',
+ handler: async() => {
+
+ await this.$p.loadCategory(['ui', 'global', 'vertrag']);
+
+ let cm = this.$refs.table.tabulator.columnManager;
+
+ cm.getColumnByField('bezeichnung').component.updateDefinition({
+ title: this.$p.t('global', 'status')
+ });
+ cm.getColumnByField('format_datum').component.updateDefinition({
+ title: this.$p.t('global', 'datum')
+ });
+ cm.getColumnByField('mitarbeiter_uid').component.updateDefinition({
+ title: this.$p.t('person', 'uid')
+ });
+ cm.getColumnByField('vertrag_id').component.updateDefinition({
+ title: this.$p.t('ui', 'vertrag_id')
+ });
+ cm.getColumnByField('vertragsstatus_kurzbz').component.updateDefinition({
+ title: this.$p.t('vertrag', 'vertragStatus')
+ });
+ cm.getColumnByField('actions').component.updateDefinition({
+ title: this.$p.t('global', 'aktionen')
+ });
+ cm.getColumnByField('updatevon').component.updateDefinition({
+ title: this.$p.t('global', 'updatevon')
+ });
+ cm.getColumnByField('format_updateamum').component.updateDefinition({
+ title: this.$p.t('global', 'updateamum')
+ });
+ cm.getColumnByField('insertvon').component.updateDefinition({
+ title: this.$p.t('global', 'insertvon')
+ });
+ cm.getColumnByField('format_insertamum').component.updateDefinition({
+ title: this.$p.t('global', 'insertamum')
+ });
+ }
+ }
+ ],
clickedRows: [],
statusNew: true,
formData: {
@@ -99,6 +141,7 @@ export default {
},
watch: {
vertrag_id() {
+ //this.reloadTable();
this.$refs.table.tabulator.setData('api/frontend/v1/vertraege/vertraege/getStatiOfContract/' + this.vertrag_id);
},
formDataParent: {
@@ -160,19 +203,19 @@ export default {
}
},
template: `
-
-
+
-
Vertragsstatus
+
{{$p.t('vertrag', 'vertragStatus')}}
@@ -180,11 +223,11 @@ export default {
- {{$p.t('ui', 'add_Status')}}
+ {{$p.t('vertrag', 'addStatus')}}
-
+
response.data,
columns: [
- {title: "Typ", field: "type"},
-/* {
+ {title: "Typ", field: "type", width: 100},
+ {
title: "Betrag",
- field: "betrag",
- formatter: function(cell) {
- // Hole den Wert der Zelle
- let value = cell.getValue();
-
- // Falls der Wert null oder undefined ist, setze ihn auf "0,00"
- if (value == null) {
- return "0,00";
- }
-
- // Andernfalls formatiere ihn auf zwei Dezimalstellen
- return parseFloat(value).toFixed(2).replace(".", ",");
- }
- },*/
- {title: "Betrag",
field: "betrag1",
formatter: function(cell) {
let value = cell.getValue();
-
if (value == null) {
return "0.00";
}
-
return parseFloat(value).toFixed(2);
}},
{title: "Bezeichnung", field: "bezeichnung", width: 150},
- {title: "Studiensemester", field: "studiensemester_kurzbz"},
- {title: "PruefungId", field: "betrag", visible: false},
+ {title: "Studiensemester", field: "studiensemester_kurzbz", width: 160},
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false},
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false},
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true},
@@ -82,37 +63,83 @@ export default {
height: '200',
selectableRangeMode: 'click',
selectable: true,
+ persistenceID: 'core-contracts-unassigned'
},
+ tabulatorEvents: [
+ {
+ event: 'rowClick',
+ handler: (e, row) => {
+ const data = row.getData();
+ this.toggleRowClick(data);
+ }
+ },
+ {
+ event: 'dataLoaded',
+ handler: (data) => {
+ this.totalRows = data.length;
+ }
+ },
+ {
+ event: 'tableBuilt',
+ handler: () => {
+ this.$p.loadCategory(['ui', 'global', 'vertrag', 'projektarbeitsbeurteilung', 'lehre']).then(() => {
+ let cm = this.$refs.table.tabulator.columnManager;
+
+ cm.getColumnByField('type').component.updateDefinition({
+ title: this.$p.t('global', 'typ')
+ });
+ cm.getColumnByField('bezeichnung').component.updateDefinition({
+ title: this.$p.t('ui', 'bezeichnung')
+ });
+ cm.getColumnByField('lehreinheit_id').component.updateDefinition({
+ title: this.$p.t('ui', 'lehreinheit_id')
+ });
+ cm.getColumnByField('betrag1').component.updateDefinition({
+ title: this.$p.t('ui', 'betrag')
+ });
+ cm.getColumnByField('studiensemester_kurzbz').component.updateDefinition({
+ title: this.$p.t('lehre', 'studiensemester')
+ });
+ cm.getColumnByField('mitarbeiter_uid').component.updateDefinition({
+ title: this.$p.t('ui', 'mitarbeiter_uid')
+ });
+ cm.getColumnByField('projektarbeit_id').component.updateDefinition({
+ title: this.$p.t('ui', 'projektarbeit_id')
+ });
+ cm.getColumnByField('betreuerart_kurzbz').component.updateDefinition({
+ title: this.$p.t('projektarbeitsbeurteilung', 'betreuerart')
+ });
+ cm.getColumnByField('vertragsstunden').component.updateDefinition({
+ title: this.$p.t('vertrag', 'vertragsstunden')
+ });
+ cm.getColumnByField('vertrag_id').component.updateDefinition({
+ title: this.$p.t('ui', 'vertrag_id')
+ });
+ cm.getColumnByField('vertragsstunden_studiensemester_kurzbz').component.updateDefinition({
+ title: this.$p.t('vertrag', 'vertragsstunden_studiensemester')
+ });
+ });
+ }
+ }
+ ],
clickedRows: [],
- sumBetragLehrauftraege: 0
+ sumBetragLehrauftraege: 0,
+ totalRows: 0
}
},
- //TODO(Manu) auch auf fhcapi umbauen?
watch: {
+ //TODO(Manu) check if still working
person_id() {
- this.$refs.table.tabulator.setData('api/frontend/v1/vertraege/vertraege/getAllContractsNotAssigned/' + this.person_id);
+ this.$refs.table.reloadTable();
+ //this.$refs.table.tabulator.setData('api/frontend/v1/vertraege/vertraege/getAllContractsNotAssigned/' + this.person_id);
},
clickedRows() {
- this.$refs.table.tabulator.setData('api/frontend/v1/vertraege/vertraege/getAllContractsNotAssigned/' + this.person_id);
+ this.$refs.table.reloadTable();
+ //this.$refs.table.tabulator.setData('api/frontend/v1/vertraege/vertraege/getAllContractsNotAssigned/' + this.person_id);
},
},
methods: {
toggleRowClick(rowData){
- //id already existing?
- //const index = this.clickedRows.findIndex(row => row.id === id);
-
-
- //id alleine reicht nicht: Betreuerart ebenfalls, am besten gleich ganze Row!
-/* if (this.clickedRows.indexOf(id) == -1) {
- console.log("Die Zahl " + id + " ist NICHT Array enthalten.");
- this.clickedRows.push(id);
-
- } else {
- console.log("Die Zahl " + id + " ist im Array enthalten.");
- const index = this.clickedRows.indexOf(id);
- this.clickedRows.splice(index, 1);
- }*/
-
// check row
const exists = this.clickedRows.some(row => JSON.stringify(row) === JSON.stringify(rowData));
@@ -122,7 +149,6 @@ export default {
this.handleSumUp();
} else {
this.clickedRows.push(rowData);
- //hier soll der variable sumBetragLehrauftraege der Wert von this.clickedRows.betrag1 hinzugefügt werden
this.sumBetragLehrauftraege += Number(rowData.betrag1);
console.log(rowData.betrag1);
this.handleSumUp();
@@ -133,42 +159,27 @@ export default {
this.$emit('saveClickedRows', this.clickedRows);
},
reloadUnassigned() {
- this.$refs.table.reloadTable();
- this.$emit('reloadUnassigned');
this.clickedRows = [];
+ //this.$refs.table.reloadTable();
+ this.$emit('reloadUnassigned');
},
handleSumUp() {
this.$emit("sum-updated", this.sumBetragLehrauftraege);
},
},
- mounted() {
- this.$nextTick(() => {
- this.$refs.table.tabulator.on("rowClick", (e, row) => {
- const data = row.getData();
- this.toggleRowClick(data);
- });
- });
- },
template: `
-
-
-
-
-
-
-
-
Die folgenden Lehraufträge sind noch keinem Vertrag zugeordnet. Markieren Sie die Lehraufträge um diese dem Vertrag zuzuordnen:
-
+
+
{{$p.t('vertrag', 'text_explainLehrauftrag')}}
-
-
Folgende Lehraufträge werden hinzugefügt:
+
{{$p.t('vertrag', 'text_addLehrauftrag')}}
@@ -180,8 +191,6 @@ export default {
readonly
>
-
-
`
}
\ No newline at end of file
diff --git a/public/js/components/Vertraege/Vertraege.js b/public/js/components/Vertraege/Vertraege.js
index e03085faa..a525f859e 100644
--- a/public/js/components/Vertraege/Vertraege.js
+++ b/public/js/components/Vertraege/Vertraege.js
@@ -34,7 +34,6 @@ export default {
},
data() {
return {
- //TODO(Manu) filter: alle vs offene Verträge
tabulatorOptions: {
ajaxURL: 'dummy',
ajaxRequestFunc: this.$fhcApi.factory.vertraege.person.getAllVertraege,
@@ -47,11 +46,21 @@ export default {
columns: [
{title: "Bezeichnung", field: "bezeichnung", width: 150},
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true},
- {title: "Betrag", field: "betrag", width: 150},
+ {
+ title: "Betrag", field: "betrag", width: 150,
+ formatter: function (cell) {
+ let value = cell.getValue();
+
+ if (value == null) {
+ return "0.00";
+ }
+
+ return parseFloat(value).toFixed(2);
+ }
+ },
{title: "Vertragstyp", field: "vertragstyp_bezeichnung", width: 125},
{title: "Status", field: "status"},
{title: "Vertragsdatum", field: "format_vertragsdatum", width: 128},
- {title: "VertragstypKurzbz", field: "vertragstyp_kurzbz", visible: false},
{title: "VertragId", field: "vertrag_id", visible: false},
{title: "Vertragsdatum_iso", field: "vertragsdatum", visible: false},
{title: "Vertragsstunden", field: "vertragsstunden", visible: false},
@@ -69,7 +78,7 @@ export default {
let button = document.createElement('button');
button.className = 'btn btn-outline-secondary btn-action';
button.innerHTML = '
';
- button.title = 'Vertrag bearbeiten';
+ button.title = this.$p.t('vertrag', 'editVertrag');
button.addEventListener(
'click',
(event) =>
@@ -80,7 +89,7 @@ export default {
button = document.createElement('button');
button.className = 'btn btn-outline-secondary btn-action';
button.innerHTML = '
';
- button.title = 'Vertrag löschen';
+ button.title = this.$p.t('vertrag', 'deleteVertrag');
button.addEventListener(
'click',
() =>
@@ -101,30 +110,53 @@ export default {
},
tabulatorEvents: [
{
-/* event: 'tableBuilt',
+ event: 'tableBuilt',
handler: async() => {
- await this.$p.loadCategory(['wawi', 'global', 'infocenter']);
+ await this.$p.loadCategory(['ui', 'global', 'vertrag']);
let cm = this.$refs.table.tabulator.columnManager;
- cm.getColumnByField('nummer').component.updateDefinition({
- title: this.$p.t('wawi', 'nummer')
+ cm.getColumnByField('bezeichnung').component.updateDefinition({
+ title: this.$p.t('ui', 'bezeichnung')
+ });
+ cm.getColumnByField('lehreinheit_id').component.updateDefinition({
+ title: this.$p.t('ui', 'lehreinheit_id')
+ });
+ cm.getColumnByField('betrag').component.updateDefinition({
+ title: this.$p.t('ui', 'betrag')
+ });
+ cm.getColumnByField('status').component.updateDefinition({
+ title: this.$p.t('global', 'status')
+ });
+ cm.getColumnByField('vertragstyp_bezeichnung').component.updateDefinition({
+ title: this.$p.t('vertrag', 'vertragstyp')
+ });
+ cm.getColumnByField('format_vertragsdatum').component.updateDefinition({
+ title: this.$p.t('vertrag', 'vertragsdatum')
+ });
+ cm.getColumnByField('vertragsdatum').component.updateDefinition({
+ title: this.$p.t('vertrag', 'vertragsdatum_iso')
+ });
+ cm.getColumnByField('vertragsstunden').component.updateDefinition({
+ title: this.$p.t('vertrag', 'vertragsstunden')
+ });
+ cm.getColumnByField('vertragsstunden_studiensemester_kurzbz').component.updateDefinition({
+ title: this.$p.t('vertrag', 'vertragsstunden_studiensemester')
+ });
+ cm.getColumnByField('vertrag_id').component.updateDefinition({
+ title: this.$p.t('ui', 'vertrag_id')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
- cm.getColumnByField('format_retour').component.updateDefinition({
- title: this.$p.t('wawi', 'retourdatum')
+ cm.getColumnByField('isabgerechnet').component.updateDefinition({
+ title: this.$p.t('vertrag', 'abgerechnet')
});
- cm.getColumnByField('kaution').component.updateDefinition({
- title: this.$p.t('infocenter', 'kaution')
+ cm.getColumnByField('actions').component.updateDefinition({
+ title: this.$p.t('global', 'aktionen')
});
- cm.getColumnByField('format_ausgabe').component.updateDefinition({
- title: this.$p.t('wawi', 'ausgabedatum')
- });
-
- }*/
+ }
}
],
statusNew: true,
@@ -143,7 +175,8 @@ export default {
},
watch: {
person_id() {
- this.$refs.table.tabulator.setData('api/frontend/v1/vertraege/vertraege/getAllVertraege/' + this.person_id);
+ this.$refs.table.reloadTable();
+ //this.$refs.table.tabulator.setData('api/frontend/v1/vertraege/vertraege/getAllVertraege/' + this.person_id);
},
},
methods: {
@@ -184,12 +217,11 @@ export default {
};
return this.endpoint
- .addNewContract(dataToSend)
+ .addNewContract(this.$refs.contractData, dataToSend)
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.$refs.contractModal.hide();
this.resetModal();
- //this.$refs.contractdetails.reload(); //TOOD(Manu) check why error
//this.$refs.contractdetails.reload();
this.$refs.unassignedLehrauftraege.reloadUnassigned();
this.reload();
@@ -207,7 +239,7 @@ export default {
};
return this.endpoint
- .updateContract(dataToSend)
+ .updateContract(this.$refs.contractData, dataToSend)
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.$refs.contractModal.hide();
@@ -231,91 +263,68 @@ export default {
//Methods Contract Stati
addNewContractStatus({status, datum}) {
const date = new Date();
- //TODO(Manu) refactor this
- const formattedDate = datum.toLocaleDateString('en-CA');
+ const formattedDate = datum != null ? datum.toLocaleDateString('en-CA',
+ {
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ hour: '2-digit',
+ minute: '2-digit',
+ hour12: false, // Use 24-hour format
+ }
+ ) : null;
let params = {
vertrag_id : this.contractSelected.vertrag_id,
- status: {status},
+ vertragsstatus_kurzbz: status,
datum: formattedDate
};
return this.endpoint
- .insertContractStatus(params)
+ .insertContractStatus(this.$refs.contractstati.$refs.statusData, params)
.then(response => {
//this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.$refs.contractstati.closeModal();
- //window.scrollTo(0, 0);
this.$refs.contractstati.reload();
+ this.reload();
})
.catch(this.$fhcAlert.handleSystemError);
},
deleteContractStatus({status, vertrag_id}){
let params = {
- vertrag_id : {vertrag_id},
- status: {status}
+ vertrag_id : vertrag_id,
+ vertragsstatus_kurzbz: 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);
},
- deleteLehrauftrag({lehreinheit_id, vertrag_id, mitarbeiter_uid}){
-
- let params = {
- vertrag_id : {vertrag_id},
- lehreinheit_id: {lehreinheit_id},
- mitarbeiter_uid: {mitarbeiter_uid},
- };
- return this.endpoint
- .deleteLehrauftrag(params)
- .then(response => {
- this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
-
- //window.scrollTo(0, 0);
- this.resetModal();
- this.$refs.contractdetails.reload();
- this.$refs.unassignedLehrauftraege.reloadUnassigned();
- })
- .catch(this.$fhcAlert.handleSystemError);
- },
- deleteBetreuung({person_id, vertrag_id, projektarbeit_id, betreuerart_kurzbz}){
- let params = {
- vertrag_id : {vertrag_id},
- person_id: {person_id},
- projektarbeit_id: {projektarbeit_id},
- betreuerart_kurzbz: {betreuerart_kurzbz},
- };
- return this.endpoint
- .deleteBetreuung(params)
- .then(response => {
- this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
-
- //window.scrollTo(0, 0);
- this.$refs.contractdetails.reload();
- this.$refs.unassignedLehrauftraege.reloadUnassigned();
- })
- .catch(this.$fhcAlert.handleSystemError);
- },
updateContractStatus({datum, status}){
- //TODO(Manu) refactor this
- const formattedDate = datum.toLocaleDateString('en-CA');
+ const date = new Date();
+ const formattedDate = datum != null ? datum.toLocaleDateString('en-CA',
+ {
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ hour: '2-digit',
+ minute: '2-digit',
+ hour12: false, // Use 24-hour format
+ }
+ ) : null;
let params = {
vertrag_id : this.contractSelected.vertrag_id,
datum : formattedDate,
- status: {status}
+ vertragsstatus_kurzbz: status
};
return this.endpoint
- .updateContractStatus(params)
+ .updateContractStatus(this.$refs.contractstati.$refs.statusData, params)
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
-
- //window.scrollTo(0, 0);
this.$refs.contractstati.closeModal();
this.$refs.contractstati.reload();
this.reload();
@@ -324,8 +333,8 @@ export default {
},
loadContractStatus({vertrag_id, status}){
let params = {
- vertrag_id : {vertrag_id},
- status: {status}
+ vertrag_id : vertrag_id,
+ vertragsstatus_kurzbz: status
};
return this.endpoint
.loadContractStatus(params)
@@ -335,6 +344,40 @@ export default {
})
.catch(this.$fhcAlert.handleSystemError);
},
+ deleteLehrauftrag({lehreinheit_id, vertrag_id, mitarbeiter_uid}){
+
+ let params = {
+ vertrag_id : vertrag_id,
+ lehreinheit_id: lehreinheit_id,
+ mitarbeiter_uid: mitarbeiter_uid
+ };
+ return this.endpoint
+ .deleteLehrauftrag(params)
+ .then(response => {
+ this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
+ this.resetModal();
+ this.$refs.contractdetails.reload();
+ this.$refs.unassignedLehrauftraege.reloadUnassigned();
+ })
+ .catch(this.$fhcAlert.handleSystemError);
+ },
+ deleteBetreuung({person_id, vertrag_id, projektarbeit_id, betreuerart_kurzbz}){
+ let params = {
+ vertrag_id : vertrag_id,
+ person_id: person_id,
+ projektarbeit_id: projektarbeit_id,
+ betreuerart_kurzbz: betreuerart_kurzbz
+ };
+ return this.endpoint
+ .deleteBetreuung(params)
+ .then(response => {
+ this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
+ this.$refs.contractdetails.reload();
+ this.$refs.unassignedLehrauftraege.reloadUnassigned();
+ })
+ .catch(this.$fhcAlert.handleSystemError);
+ },
+
//Methods Unassigned List
saveClickedRows(clickedRows) {
this.childData = clickedRows;
@@ -397,8 +440,7 @@ export default {
},
template: `
-
-
+
@@ -420,18 +462,17 @@ export default {
:side-menu="false"
reload
new-btn-show
- new-btn-label="Vertrag"
+ :new-btn-label="this.$p.t('ui', 'vertrag')"
@click:new="actionNewContract"
>
-
+
-
-
-
-
- {{$p.t('vertrag', 'addVertrag')}}
- {{$p.t('vertrag', 'editVertrag')}}
-
-
-
-
-
-
-
-
-
+
+
+
+ {{$p.t('vertrag', 'addVertrag')}}
+ {{$p.t('vertrag', 'editVertrag')}}
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
`
}
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index ddd774ac4..252baa03e 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -31207,6 +31207,106 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'deleteVertrag',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertrag löschen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Delete contract',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'addStatus',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertragstatus hinzufügen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Add contract status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'editStatus',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertragstatus bearbeiten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Edit contract status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'deleteStatus',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertragstatus löschen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Delete contract status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'deleteLehrauftrag',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Lehrauftrag löschen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Delete teaching assignment',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'vertrag',
@@ -31307,6 +31407,366 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'error_statusVorhanden',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Status bereits vorhanden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Status already existing',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'lehreinheit_id',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Lehreinheit ID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Teaching Unit ID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'vertragstyp',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertragstyp',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Contract Type',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'vertragsdatum',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertragsdatum',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Contract Date',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'vertragsdatum_iso',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertragsdatum Iso',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Contract Date Iso',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'vertrag_id',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertrag ID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Contract ID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'vertragsstunden',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertragsstunden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Contract hours',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'vertragsstunden_studiensemester',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'vertragsstunden Studiensemester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Contract hours study semester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'abgerechnet',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'abgerechnetr',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'billed',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'mitarbeiter_uid',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Mitarbeiter UID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Employee UID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'projektarbeit_id',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Projektarbeit UID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Projekt work ID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'pruefung_id',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfung UID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Exam ID',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'vertragErstellen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertrag erstellen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Create contract',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'vertragDetails',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertragdetails',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Contract Details',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'vertragStatus',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vertragsstatus',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Contract Status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'error_fieldNotValidDate',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Eingabefeld {field} hat kein gültiges Datumsformat',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The input field {field} does not have a valid date format',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'text_explainLehrauftrag',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die folgenden Lehraufträge sind noch keinem Vertrag zugeordnet. Markieren Sie die Lehraufträge um diese dem Vertrag zuzuordnen:',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The following teaching assignments have not yet been assigned to a contract. Mark the teaching assignments to assign them to the contract:',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'vertrag',
+ 'phrase' => 'text_addLehrauftrag',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Folgende Lehraufträge werden hinzugefügt:',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The following teaching assignments will be added:',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
);