mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 16:44:28 +00:00
filter offene Vertraege, validations insert, update Contract
This commit is contained in:
@@ -27,11 +27,19 @@ class Vertraege extends FHCAPI_Controller
|
||||
'deleteBetreuung' => ['admin:r', 'assistenz:r']
|
||||
]);
|
||||
|
||||
//Load Models
|
||||
//Load Models and Libraries
|
||||
$this->load->model('accounting/Vertrag_model', 'VertragModel');
|
||||
$this->load->model('accounting/Vertragsstatus_model', 'VertragsstatusModel');
|
||||
$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',
|
||||
'vertrag'
|
||||
]);
|
||||
}
|
||||
|
||||
//TODO(Manu) validations, phrases
|
||||
@@ -97,46 +105,66 @@ class Vertraege extends FHCAPI_Controller
|
||||
|
||||
public function addNewContract()
|
||||
{
|
||||
//$this->validateNewOrUpdate();
|
||||
//TODO(Manu) check validations
|
||||
//$bezeichnung = $formData->bezeichnung;
|
||||
$this->load->library('form_validation');
|
||||
|
||||
$person_id = $this->input->post('person_id');
|
||||
|
||||
if(!$person_id)
|
||||
{
|
||||
return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=> 'Person_id']), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
$formData = $this->input->post('formData');
|
||||
|
||||
$vertragsdatum = $formData['vertragsdatum'];
|
||||
$bezeichnung = $formData['bezeichnung'];
|
||||
$vertragstyp_kurzbz = $formData['vertragstyp_kurzbz'];
|
||||
$betrag = isset($formData['betrag']) ? $formData['betrag'] : null;
|
||||
$vertragsstunden = isset($formData['vertragsstunden']) ? $formData['vertragsstunden'] : null;
|
||||
$vertragsstunden_studiensemester_kurzbz = isset($formData['vertragsstunden_studiensemester_kurzbz']) ? $formData['vertragsstunden_studiensemester_kurzbz'] : null;
|
||||
$anmerkung = isset($formData['anmerkung']) ? $formData['anmerkung'] : null;
|
||||
//Manually rewrite to postparameter for form validation
|
||||
$_POST['vertragstyp_kurzbz'] = $formData['vertragstyp_kurzbz'];
|
||||
$_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;
|
||||
|
||||
|
||||
$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', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Vertragsdatum'])
|
||||
]);
|
||||
$this->form_validation->set_rules('betrag', 'Betrag', 'required|numeric', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Betrag']),
|
||||
'numeric' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'Betrag'])
|
||||
]);
|
||||
$this->form_validation->set_rules('vertragsstunden', 'Stunden(Vertrags-Urfassung)', 'numeric', [
|
||||
'numeric' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'Stunden(Vertrags-Urfassung)'])
|
||||
]);
|
||||
|
||||
if ($this->form_validation->run() == false)
|
||||
{
|
||||
$this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
}
|
||||
|
||||
$lehrauftraege = $this->input->post('clickedRows');
|
||||
|
||||
|
||||
//$this->terminateWithError("in function" . $lehrauftraege[0]['lehreinheit_id'], self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$result = $this->VertragModel->insert([
|
||||
'person_id' => $person_id,
|
||||
'vertragsdatum' => $vertragsdatum,
|
||||
'bezeichnung' => $bezeichnung,
|
||||
'vertragstyp_kurzbz' => $vertragstyp_kurzbz,
|
||||
'betrag' => $betrag,
|
||||
'vertragsstunden' => $vertragsstunden,
|
||||
'vertragsstunden_studiensemester_kurzbz' => $vertragsstunden_studiensemester_kurzbz,
|
||||
'anmerkung' => $anmerkung,
|
||||
'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'],
|
||||
'insertamum' => date('c'),
|
||||
'insertvon' => getAuthUID()
|
||||
]);
|
||||
|
||||
$this->getDataOrTerminateWithError($result);
|
||||
$vertrag_id = $result->retval;
|
||||
|
||||
//$this->terminateWithError($result->retval, self::ERROR_TYPE_GENERAL);
|
||||
|
||||
//TODO(Manu) validation, dass status nicht schon bereits vorhanden
|
||||
$status_result = $this->VertragvertragsstatusModel->insert([
|
||||
'vertrag_id' => $vertrag_id,
|
||||
'uid' => getAuthUID(),
|
||||
@@ -148,7 +176,7 @@ class Vertraege extends FHCAPI_Controller
|
||||
|
||||
if (!$status_result) {
|
||||
$this->db->trans_rollback();
|
||||
$this->terminateWithError('Fehler beim Hinzufügen des Vertragsstatus.', self::ERROR_TYPE_GENERAL);
|
||||
$this->terminateWithError($this->p->t('vertrag', 'error_insertOrUpdateStatusVertrag'), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
//Hinzufügen der Lehraufträge
|
||||
@@ -169,13 +197,12 @@ class Vertraege extends FHCAPI_Controller
|
||||
|
||||
if (!$result_lehrauftrag) {
|
||||
$this->db->trans_rollback();
|
||||
$this->terminateWithError('Fehler beim Verknüpfen Lehrauftrag mit Vertrag', self::ERROR_TYPE_GENERAL);
|
||||
$this->terminateWithError($this->p->t('vertrag', 'error_addOrUpdateLehrauftraege'), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
}
|
||||
|
||||
if ($row['type'] == 'Betreuung')
|
||||
{
|
||||
|
||||
$this->load->model('education/Projektbetreuer_model', 'Projektbetreuermodel');
|
||||
|
||||
$result_projektbetreuer = $this->Projektbetreuermodel->update(
|
||||
@@ -191,10 +218,9 @@ class Vertraege extends FHCAPI_Controller
|
||||
if (!$result_projektbetreuer)
|
||||
{
|
||||
$this->db->trans_rollback();
|
||||
$this->terminateWithError('Fehler beim Verknüpfen Lehrauftrag mit Betreuung', self::ERROR_TYPE_GENERAL);
|
||||
$this->terminateWithError($this->p->t('vertrag', 'error_addOrUpdateLehrauftraege'), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->db->trans_complete();
|
||||
@@ -203,41 +229,62 @@ class Vertraege extends FHCAPI_Controller
|
||||
|
||||
public function updateContract()
|
||||
{
|
||||
$this->load->library('form_validation');
|
||||
|
||||
$vertrag_id = $this->input->post('vertrag_id');
|
||||
$person_id = $this->input->post('person_id');
|
||||
$formData = $this->input->post('formData');
|
||||
|
||||
$vertragsdatum = $formData['vertragsdatum'];
|
||||
$bezeichnung = $formData['bezeichnung'];
|
||||
$vertragstyp_kurzbz = $formData['vertragstyp_kurzbz'];
|
||||
$betrag = isset($formData['betrag']) ? $formData['betrag'] : null;
|
||||
$vertragsstunden = isset($formData['vertragsstunden']) ? $formData['vertragsstunden'] : null;
|
||||
$vertragsstunden_studiensemester_kurzbz = isset($formData['vertragsstunden_studiensemester_kurzbz']) ? $formData['vertragsstunden_studiensemester_kurzbz'] : null;
|
||||
$anmerkung = isset($formData['anmerkung']) ? $formData['anmerkung'] : null;
|
||||
|
||||
$lehrauftraege = $this->input->post('clickedRows');
|
||||
|
||||
//Manually rewrite to postparameter for form validation
|
||||
$_POST['vertragstyp_kurzbz'] = $formData['vertragstyp_kurzbz'];
|
||||
$_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;
|
||||
|
||||
|
||||
$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', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Vertragsdatum'])
|
||||
]);
|
||||
$this->form_validation->set_rules('betrag', 'Betrag', 'required|numeric', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Betrag']),
|
||||
'numeric' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'Betrag'])
|
||||
]);
|
||||
$this->form_validation->set_rules('vertragsstunden', 'Stunden(Vertrags-Urfassung)', 'numeric', [
|
||||
'numeric' => $this->p->t('ui', 'error_fieldNotNumeric', ['field' => 'Stunden(Vertrags-Urfassung)'])
|
||||
]);
|
||||
|
||||
if ($this->form_validation->run() == false)
|
||||
{
|
||||
$this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
}
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$result = $this->VertragModel->update(
|
||||
$vertrag_id, [
|
||||
'person_id' => $person_id,
|
||||
'vertragsdatum' => $vertragsdatum,
|
||||
'bezeichnung' => $bezeichnung,
|
||||
'vertragstyp_kurzbz' => $vertragstyp_kurzbz,
|
||||
'betrag' => $betrag,
|
||||
'vertragsstunden' => $vertragsstunden,
|
||||
'vertragsstunden_studiensemester_kurzbz' => $vertragsstunden_studiensemester_kurzbz,
|
||||
'anmerkung' => $anmerkung,
|
||||
'vertragsstunden' => $vertragsstunden,
|
||||
'updateamum' => date('c'),
|
||||
'updatevon' => getAuthUID()
|
||||
$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'],
|
||||
'updateamum' => date('c'),
|
||||
'updatevon' => getAuthUID()
|
||||
]);
|
||||
|
||||
$this->getDataOrTerminateWithError($result);
|
||||
|
||||
//TODO(MANU) Transaction: splitting of in error und rollback sonst weiter
|
||||
|
||||
//Adding of Lehraufträge
|
||||
foreach ($lehrauftraege as $row) {
|
||||
|
||||
@@ -256,13 +303,12 @@ class Vertraege extends FHCAPI_Controller
|
||||
|
||||
if (!$result_lehrauftrag) {
|
||||
$this->db->trans_rollback();
|
||||
$this->terminateWithError('Fehler beim Verknüpfen Lehrauftrag mit Vertrag', self::ERROR_TYPE_GENERAL);
|
||||
$this->terminateWithError($this->p->t('vertrag', 'error_addOrUpdateLehrauftraege'), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
}
|
||||
|
||||
if ($row['type'] == 'Betreuung')
|
||||
{
|
||||
|
||||
$this->load->model('education/Projektbetreuer_model', 'Projektbetreuermodel');
|
||||
|
||||
$result_projektbetreuer = $this->Projektbetreuermodel->update(
|
||||
@@ -278,12 +324,10 @@ class Vertraege extends FHCAPI_Controller
|
||||
if (!$result_projektbetreuer)
|
||||
{
|
||||
$this->db->trans_rollback();
|
||||
$this->terminateWithError('Fehler beim Verknüpfen Lehrauftrag mit Betreuung', self::ERROR_TYPE_GENERAL);
|
||||
$this->terminateWithError($this->p->t('vertrag', 'error_addOrUpdateLehrauftraege'), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->db->trans_complete();
|
||||
|
||||
$this->terminateWithSuccess(true);
|
||||
@@ -361,15 +405,14 @@ class Vertraege extends FHCAPI_Controller
|
||||
]);
|
||||
|
||||
$this->getDataOrTerminateWithError($result);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$result = $this->VertragvertragsstatusModel->load([
|
||||
'vertrag_id' => $vertrag_id
|
||||
]);
|
||||
|
||||
//TODO(Manu) check if there are exceptions for deletions (status abgerechnet?)
|
||||
if(hasData($result)){
|
||||
$data = getData($result);
|
||||
foreach ($data as $item) {
|
||||
|
||||
Reference in New Issue
Block a user