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 {
- +
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" > - +
-
-
- +
-
-
-
- - - - - - - - - - - -
+ + + -
- - -
- -
- - -
- -
- - - - -
- -
- - -
- -
- - -
- -
- - -
+ +
+ +
+ + +
-
- - -
+
+ + +
+
+ + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
-
- - - -
+ + +
` } 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' + ) + ) + ), );