mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 01:42:17 +00:00
Validations, Phrases, cleanup
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
<?php
|
||||
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
use \DateTime as DateTime;
|
||||
|
||||
@@ -12,20 +11,20 @@ class Vertraege extends FHCAPI_Controller
|
||||
'getAllVertraege' => ['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)));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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 = '<i class="fa fa-xmark"></i>';
|
||||
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: `
|
||||
<!--TODO(Manu) nicht anzeigen, wenn keine vorhanden ? check css, design -->
|
||||
|
||||
<div class="core-vertraege-details h-50 d-flex flex-column w-100">
|
||||
|
||||
<div class="ore-contracts-details h-50 d-flex flex-column w-100">
|
||||
<br>
|
||||
<h4>Vertragdetails</h4>
|
||||
<h4>{{$p.t('vertrag', 'vertragDetails')}}</h4>
|
||||
|
||||
<core-filter-cmpt
|
||||
ref="table"
|
||||
:tabulator-options="tabulatorOptions"
|
||||
:tabulator-events="tabulatorEvents"
|
||||
table-only
|
||||
:side-menu="false"
|
||||
reload
|
||||
|
||||
@@ -40,13 +40,12 @@ export default {
|
||||
{title: "Status", field: "bezeichnung"},
|
||||
{title: "Datum", field: "format_datum"},
|
||||
{title: "vertrag_id", field: "vertrag_id", visible: false},
|
||||
// {title: "User", field: "bezeichnung", visible: false},
|
||||
{title: "Vertragsstatus", field: "vertragsstatus_kurzbz", visible: false},
|
||||
{title: "User", field: "mitarbeiter_uid", visible: false},
|
||||
{title: "insertvon", field: "insertvon", visible: false},
|
||||
{title: "insertamum", field: "format_insertamum", visible: false},
|
||||
{title: "updatevon", field: "updatevon", visible: false},
|
||||
{title: "updateamum", field: "format_updateamum", visible: false},
|
||||
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false},
|
||||
{title: "Vertragsstunden", field: "vertragsstunden", visible: false},
|
||||
{
|
||||
title: 'Aktionen', field: 'actions',
|
||||
minWidth: 150,
|
||||
@@ -58,7 +57,7 @@ export default {
|
||||
let button = document.createElement('button');
|
||||
button.className = 'btn btn-outline-secondary btn-action';
|
||||
button.innerHTML = '<i class="fa fa-edit"></i>';
|
||||
button.title = 'Status bearbeiten';
|
||||
button.title = this.$p.t('vertrag', 'editStatus');
|
||||
button.addEventListener(
|
||||
'click',
|
||||
(event) =>
|
||||
@@ -69,7 +68,7 @@ export default {
|
||||
button = document.createElement('button');
|
||||
button.className = 'btn btn-outline-secondary btn-action';
|
||||
button.innerHTML = '<i class="fa fa-xmark"></i>';
|
||||
button.title = 'Status löschen';
|
||||
button.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: `
|
||||
<!--TODO(Manu) check filter (akzeptiert, neu, erteilt?), design -->
|
||||
<div class="core-vertraege-status h-50 d-flex flex-column w-100">
|
||||
<div class="core-contracts-status h-50 d-flex flex-column w-100">
|
||||
<br>
|
||||
<h4>Vertragsstatus</h4>
|
||||
<h4>{{$p.t('vertrag', 'vertragStatus')}}</h4>
|
||||
|
||||
<core-filter-cmpt
|
||||
ref="table"
|
||||
:tabulator-options="tabulatorOptions"
|
||||
:tabulator-events="tabulatorEvents"
|
||||
table-only
|
||||
:side-menu="false"
|
||||
reload
|
||||
new-btn-show
|
||||
new-btn-label="Status"
|
||||
:new-btn-label="this.$p.t('global', 'status')"
|
||||
@click:new="actionNewStatus"
|
||||
>
|
||||
</core-filter-cmpt>
|
||||
@@ -180,11 +223,11 @@ export default {
|
||||
<div >
|
||||
<bs-modal ref="contractStatus">
|
||||
<template #title>
|
||||
<p class="fw-bold mt-3">{{$p.t('ui', 'add_Status')}}</p>
|
||||
<p class="fw-bold mt-3">{{$p.t('vertrag', 'addStatus')}}</p>
|
||||
|
||||
</template>
|
||||
|
||||
<core-form>
|
||||
<core-form ref="statusData">
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
@@ -192,7 +235,7 @@ export default {
|
||||
name="datum"
|
||||
v-model="formData.datum"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
:enable-time-picker="true"
|
||||
format="dd.MM.yyyy"
|
||||
preview-format="dd.MM.yyyy"
|
||||
:teleport="true"
|
||||
|
||||
@@ -31,40 +31,21 @@ export default {
|
||||
person_id: this.person_id
|
||||
};
|
||||
},
|
||||
//TODO(Manu) auch beträge von NULL anzeigen als 0.00
|
||||
ajaxResponse: (url, params, response) => 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: `
|
||||
<!--TODO(Manu) check css, design .. mybe list.js-->
|
||||
<div class="core-vertraege h-50 d-flex flex-column w-100">
|
||||
|
||||
<!-- {{clickedRows}} <hr> sum: {{sumBetragLehrauftraege}}-->
|
||||
<!--TODO(Manu) nicht anzeigen wenn keine vertraege vorhanden, "KEINE DATEN vorhanden"-->
|
||||
|
||||
|
||||
<p>Die folgenden Lehraufträge sind noch keinem Vertrag zugeordnet. Markieren Sie die Lehraufträge um diese dem Vertrag zuzuordnen:</p>
|
||||
|
||||
<div class="core-contracts-unassigned h-50 d-flex flex-column w-100">
|
||||
<p v-if="totalRows > 0">{{$p.t('vertrag', 'text_explainLehrauftrag')}}</p>
|
||||
<core-filter-cmpt
|
||||
ref="table"
|
||||
:tabulator-options="tabulatorOptions"
|
||||
:tabulator-events="tabulatorEvents"
|
||||
table-only
|
||||
:side-menu="false"
|
||||
>
|
||||
</core-filter-cmpt>
|
||||
|
||||
|
||||
<p v-if="clickedRows.length > 0" >Folgende Lehraufträge werden hinzugefügt:</p>
|
||||
<p v-if="clickedRows.length > 0" >{{$p.t('vertrag', 'text_addLehrauftrag')}}</p>
|
||||
|
||||
<div v-for="item in clickedRows" :key="item.lehreinheit_id" class="row">
|
||||
<div class="col-md-6">
|
||||
@@ -180,8 +191,6 @@ export default {
|
||||
readonly
|
||||
>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>`
|
||||
}
|
||||
@@ -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 = '<i class="fa fa-edit"></i>';
|
||||
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 = '<i class="fa fa-xmark"></i>';
|
||||
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: `
|
||||
|
||||
<div class="core-vertraege h-100 d-flex flex-column">
|
||||
<div class="core-contracts h-100 d-flex flex-column">
|
||||
|
||||
<!-- filter: open means no status abgerechnet yet-->
|
||||
<div class="justify-content-end pb-3">
|
||||
@@ -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"
|
||||
>
|
||||
</core-filter-cmpt>
|
||||
</core-filter-cmpt>
|
||||
|
||||
<div class = "row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<!-- ContractDetails -->
|
||||
<div class="md-4" v-if="contractSelected.vertrag_id !=null">
|
||||
<contract-details
|
||||
:person_id="person_id"
|
||||
<div class="md-4" v-if="contractSelected.vertrag_id !=null">
|
||||
<contract-details
|
||||
:person_id="person_id"
|
||||
:vertrag_id="contractSelected.vertrag_id"
|
||||
@deleteLehrauftrag="deleteLehrauftrag"
|
||||
@deleteBetreuung="deleteBetreuung"
|
||||
@@ -439,12 +480,11 @@ export default {
|
||||
></contract-details>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<!-- ContractStati -->
|
||||
<div class="md-4" v-if="contractSelected.vertrag_id !=null">
|
||||
<contract-stati
|
||||
:vertrag_id="contractSelected.vertrag_id"
|
||||
<contract-stati
|
||||
:vertrag_id="contractSelected.vertrag_id"
|
||||
:listContractStati="listContractStati"
|
||||
:formDataParent="contractFormData"
|
||||
@setContractStatus="addNewContractStatus"
|
||||
@@ -455,123 +495,110 @@ export default {
|
||||
></contract-stati>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!--Modal: contractModal-->
|
||||
<bs-modal ref="contractModal" dialog-class="modal-xl">
|
||||
<template #title>
|
||||
<p v-if="statusNew" class="fw-bold mt-3">{{$p.t('vertrag', 'addVertrag')}}</p>
|
||||
<p v-else class="fw-bold mt-3">{{$p.t('vertrag', 'editVertrag')}}</p>
|
||||
</template>
|
||||
|
||||
<core-form class="row g-3" ref="unassignedData">
|
||||
|
||||
<!-- {{formData}}-->
|
||||
|
||||
<!--TODO(Manu) wenn einer gelöscht wird, wird er auch nicht sofort angezeigt
|
||||
Auswirkung von Vertragdetails of UnassignedList-->
|
||||
<list-unassigned
|
||||
:endpoint="$fhcApi.factory.vertraege.person"
|
||||
:person_id="person_id"
|
||||
ref="unassignedLehrauftraege"
|
||||
@saveClickedRows="saveClickedRows"
|
||||
@sum-updated="updateBetrag"
|
||||
></list-unassigned>
|
||||
|
||||
<hr>
|
||||
<!--Modal: contractModal-->
|
||||
<bs-modal ref="contractModal" dialog-class="modal-xl">
|
||||
<template #title>
|
||||
<p v-if="statusNew" class="fw-bold mt-3">{{$p.t('vertrag', 'addVertrag')}}</p>
|
||||
<p v-else class="fw-bold mt-3">{{$p.t('vertrag', 'editVertrag')}}</p>
|
||||
</template>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
:label="$p.t('vertrag/datum_vertrag')"
|
||||
name="vertragsdatum"
|
||||
v-model="formData.vertragsdatum"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
format="dd.MM.yyyy"
|
||||
preview-format="dd.MM.yyyy"
|
||||
:teleport="true"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('ui/bezeichnung')"
|
||||
name="bezeichnung"
|
||||
v-model="formData.bezeichnung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="select"
|
||||
:label="$p.t('global/typ')"
|
||||
v-model="formData.vertragstyp_kurzbz"
|
||||
name="vertragstyp_kurzbz"
|
||||
>
|
||||
<option :value="null">-- {{$p.t('fehlermonitoring', 'keineAuswahl')}} --</option>
|
||||
<option
|
||||
v-for="entry in listContractTypes"
|
||||
:key="entry.vertragstyp_kurzbz"
|
||||
:value="entry.vertragstyp_kurzbz"
|
||||
>
|
||||
{{entry.bezeichnung}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
:label="$p.t('ui/betrag')"
|
||||
name="betrag"
|
||||
v-model="formData.betrag"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3" v-if="!statusNew">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('ui/stunden') + ' (' + $p.t('vertrag/vertrag_urfassung')+ ')'"
|
||||
name="vertragsstunden"
|
||||
v-model="formData.vertragsstunden"
|
||||
disabled
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3" v-if="!statusNew">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('lehre/studiensemester') + ' (' + $p.t('vertrag/vertrag_urfassung')+ ')'"
|
||||
name="vertragsstunden_studiensemester_kurzbz"
|
||||
v-model="formData.vertragsstunden_studiensemester_kurzbz"
|
||||
disabled
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<list-unassigned
|
||||
:endpoint="$fhcApi.factory.vertraege.person"
|
||||
:person_id="person_id"
|
||||
ref="unassignedLehrauftraege"
|
||||
@saveClickedRows="saveClickedRows"
|
||||
@sum-updated="updateBetrag"
|
||||
></list-unassigned>
|
||||
<hr>
|
||||
<core-form ref="contractData">
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
:label="$p.t('vertrag/datum_vertrag')"
|
||||
name="vertragsdatum"
|
||||
v-model="formData.vertragsdatum"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
format="dd.MM.yyyy"
|
||||
preview-format="dd.MM.yyyy"
|
||||
:teleport="true"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="textarea"
|
||||
:label="$p.t('global/anmerkung')"
|
||||
name="anmerkung"
|
||||
v-model="formData.anmerkung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('ui/bezeichnung')"
|
||||
name="bezeichnung"
|
||||
v-model="formData.bezeichnung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="select"
|
||||
:label="$p.t('global/typ')"
|
||||
v-model="formData.vertragstyp_kurzbz"
|
||||
name="vertragstyp_kurzbz"
|
||||
>
|
||||
<option :value="null">-- {{$p.t('fehlermonitoring', 'keineAuswahl')}} --</option>
|
||||
<option
|
||||
v-for="entry in listContractTypes"
|
||||
:key="entry.vertragstyp_kurzbz"
|
||||
:value="entry.vertragstyp_kurzbz"
|
||||
>
|
||||
{{entry.bezeichnung}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
:label="$p.t('ui/betrag')"
|
||||
name="betrag"
|
||||
v-model="formData.betrag"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3" v-if="!statusNew">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('ui/stunden') + ' (' + $p.t('vertrag/vertrag_urfassung')+ ')'"
|
||||
name="vertragsstunden"
|
||||
v-model="formData.vertragsstunden"
|
||||
disabled
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3" v-if="!statusNew">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('lehre/studiensemester') + ' (' + $p.t('vertrag/vertrag_urfassung')+ ')'"
|
||||
name="vertragsstunden_studiensemester_kurzbz"
|
||||
v-model="formData.vertragsstunden_studiensemester_kurzbz"
|
||||
disabled
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="textarea"
|
||||
:label="$p.t('global/anmerkung')"
|
||||
name="anmerkung"
|
||||
v-model="formData.anmerkung"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</core-form>
|
||||
|
||||
</core-form>
|
||||
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-primary" @click="statusNew ? addNewContract() : updateContract(formData.vertrag_id)">{{$p.t('ui', 'speichern')}}</button>
|
||||
</template>
|
||||
|
||||
</bs-modal>
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @click="reload()">{{$p.t('ui', 'abbrechen')}}</button>
|
||||
<button type="button" class="btn btn-primary" @click="statusNew ? addNewContract() : updateContract(formData.vertrag_id)">{{$p.t('vertrag', 'vertragErstellen')}}</button>
|
||||
</template>
|
||||
</bs-modal>
|
||||
</core-form>
|
||||
</div>`
|
||||
}
|
||||
|
||||
|
||||
@@ -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'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user