diff --git a/application/controllers/Test.php b/application/controllers/Test.php new file mode 100644 index 000000000..2a7aa4e4e --- /dev/null +++ b/application/controllers/Test.php @@ -0,0 +1,16 @@ +getJSONDataInt($this->data['dienstverhaeltnisid'], $decodedData, 'dienstverhaeltnisid'); $this->getJSONData($this->data['unternehmen'], $decodedData, 'unternehmen'); $this->getJSONData($this->data['vertragsart_kurzbz'], $decodedData, 'vertragsart_kurzbz'); - $this->getJSONData($this->data['gueltigkeit'], $decodedData, 'gueltigkeit'); + $gueltigkeit = new GUIGueltigkeit(); + $gueltigkeit->mapJSON($decodedData['gueltigkeit']); + $this->data['gueltigkeit'] = $gueltigkeit; + //$this->getJSONData($this->data['gueltigkeit'], $decodedData, 'gueltigkeit'); } private function generateDvJSON() diff --git a/application/libraries/vertragsbestandteil/gui/GUIHandler.php b/application/libraries/vertragsbestandteil/gui/GUIHandler.php index 7a5695b44..5ccf9d421 100644 --- a/application/libraries/vertragsbestandteil/gui/GUIHandler.php +++ b/application/libraries/vertragsbestandteil/gui/GUIHandler.php @@ -1,9 +1,11 @@ userUID = $userUID; $this->CI = get_instance(); $this->CI->load->model('vertragsbestandteil/Dienstverhaeltnis_model', - 'Dienstverhaeltnis_model'); + 'Dienstverhaeltnis_model'); + $this->CI->load->library('vertragsbestandteil/VertragsbestandteilLib', + null, 'VertragsbestandteilLib'); } @@ -43,13 +47,19 @@ class GUIHandler // DV $dvData = $formDataMapper->getData(); - $this->handleDV($dvData); + $res = $this->handleDV($dvData); - // VBS - $vbsList = $formDataMapper->getVbs(); + if ($res === false) + { + // TODO write error message + } else { - foreach ($vbsList as $vbsID => $vbs) { - $this->handleVBS($dvData['dienstverhaeltnis_id'] ,$vbs); + // VBS + $vbsList = $formDataMapper->getVbs(); + + foreach ($vbsList as $vbsID => $vbs) { + $this->handleVBS($dvData['dienstverhaeltnisid'] ,$vbs); + } } return $formDataMapper->generateJSON(); @@ -68,29 +78,50 @@ class GUIHandler if (isset($dienstverhaeltnisid) && intval($dienstverhaeltnisid > 0)) { // DV exists - $ret = $this->updateDV($dv); + $res = $this->updateDV($dv); + if (isSuccess($res)) + { + return true; + } } else { // DV is new - $ret = $this->insertDV($dv); - // write back new id - $dv['dienstverhaeltnisid'] = $ret['dienstverhaeltnis_id']; + $res = $this->insertDV($dv); + if (isSuccess($res)) + { + // write back new id + $dv['dienstverhaeltnisid'] = $res->retval[0]->dienstverhaeltnis_id; + return true; + } + } + + return false; } - private function handleVBS($vbs) + private function handleVBS($dienstverhaeltnis_id, $vbs) { + /** @var GUIVertragsbestandteilFunktion */ $vbsMapper = GUIHandlerFactory::getGUIHandler($vbs['type']); $vbsMapper->mapJSON($vbs); $vbsData = $vbsMapper->getData(); // merge GUI-Data with DB-Data - $vbsInstance = $vbsMapper->generateVertragsbestandteil($vbsData['id']); + $vbsInstance = $vbsMapper->generateVertragsbestandteil(isset($vbsData['id'])?$vbsData['id']:null); + if ($vbsInstance->getDienstverhaeltnis_id() === null) + { + $vbsInstance->setDienstverhaeltnis_id($dienstverhaeltnis_id); + $vbsInstance->setInsertvon($this->userUID); + $vbsInstance->setInsertamum((new DateTime())->format("Y-m-d h:m:s")); + } else { + $vbsInstance->setUpdatevon($this->userUID); + $vbsInstance->setUpdateamum((new DateTime())->format("Y-m-d h:m:s")); + } // TODO Validate? // store - $this->VertragsbestandteilLib->store($vbsInstance); + $this->CI->VertragsbestandteilLib->storeVertragsbestandteil($vbsInstance); // GBS /* @@ -111,13 +142,21 @@ class GUIHandler // ------------------------------------ // DV does not have a dedicated handler - private function insertDV($dvJSON) { + $dvJSON['mitarbeiter_uid'] = $this->employeeUID; $now = new DateTime(); + $dvJSON['von'] = string2Date($dvJSON['gueltigkeit']->getData()['gueltig_ab']); + $dvJSON['bis'] = string2Date($dvJSON['gueltigkeit']->getData()['gueltig_bis']); + $dvJSON['oe_kurzbz'] = $dvJSON['unternehmen']; $dvJSON['insertvon'] = $this->userUID; $dvJSON['insertamum'] = $now->format(DateTime::ATOM); + unset($dvJSON['dienstverhaeltnisid']); + unset($dvJSON['children']); + unset($dvJSON['gueltigkeit']); + unset($dvJSON['unternehmen']); + $result = $this->CI->Dienstverhaeltnis_model->insert($dvJSON); if (isError($result)) @@ -132,15 +171,24 @@ class GUIHandler private function updateDV($dvJSON) { + $dvJSON['mitarbeiter_uid'] = $this->employeeUID; + $dvJSON['von'] = string2Date($dvJSON['gueltigkeit']->getData()['gueltig_ab']); + $dvJSON['bis'] = string2Date($dvJSON['gueltigkeit']->getData()['gueltig_bis']); + $dvJSON['oe_kurzbz'] = $dvJSON['unternehmen']; $now = new DateTime(); - $dvJSON['updatevon'] = getAuthUID(); + $dvJSON['updatevon'] = $this->userUID; $dvJSON['updateamum'] = $now->format(DateTime::ATOM); + $dvJSON['dienstverhaeltnis_id'] = $dvJSON['dienstverhaeltnisid']; unset($dvJSON['insertamum']); unset($dvJSON['insertvon']); + unset($dvJSON['dienstverhaeltnisid']); + unset($dvJSON['children']); + unset($dvJSON['gueltigkeit']); + unset($dvJSON['unternehmen']); - - $result = $this->CI->Dienstverhaeltnis_model->update($dvJSON['kontakt_id'], $dvJSON); + $result = $this->CI->Dienstverhaeltnis_model->update($dvJSON); + //$result = $this->CI->Dienstverhaeltnis_model->update($dvJSON['kontakt_id'], $dvJSON); if (isError($result)) { diff --git a/application/libraries/vertragsbestandteil/gui/GUIHandlerFactory.php b/application/libraries/vertragsbestandteil/gui/GUIHandlerFactory.php index ff1a7581d..e0140755b 100644 --- a/application/libraries/vertragsbestandteil/gui/GUIHandlerFactory.php +++ b/application/libraries/vertragsbestandteil/gui/GUIHandlerFactory.php @@ -1,5 +1,11 @@ 0) + { + // load VBS + $vbs = $this->vbsLib->fetchVertragsbestandteil($vbsData['id']); + } else { + $vbs = new vertragsbestandteil\VertragsbestandteilFunktion(); + } + // merge + $vbs->setBenutzerfunktion_id($this->data['benutzerfunktionid']); + $vbs->setVon(string2Date($this->data['gueltigkeit']->getData()['gueltig_ab'])); + $vbs->setBis(string2Date($this->data['gueltigkeit']->getData()['gueltig_bis'])); + return $vbs; } public function jsonSerialize() { diff --git a/application/libraries/vertragsbestandteil/gui/GUIVertragsbestandteilStunden.php b/application/libraries/vertragsbestandteil/gui/GUIVertragsbestandteilStunden.php index 60accea05..0e94ca16d 100644 --- a/application/libraries/vertragsbestandteil/gui/GUIVertragsbestandteilStunden.php +++ b/application/libraries/vertragsbestandteil/gui/GUIVertragsbestandteilStunden.php @@ -1,10 +1,18 @@ vbsLib->fetchVertragsbestandteil($vbsData['id']); } else { - $vbs = new vertragsbestandteil\VertragsbestandteilStunden(); - } - // merge + $vbs = new vertragsbestandteil\VertragsbestandteilStunden(); + } + // merge $vbs->setWochenstunden($this->data['stunden']); - $vbs->setVon($this->data['gueltigkeit']->getData()['gueltig_ab']); - $vbs->setBis($this->data['gueltigkeit']->getData()['gueltig_bis']); + $vbs->setVon(string2Date($this->data['gueltigkeit']->getData()['gueltig_ab'])); + $vbs->setBis(string2Date($this->data['gueltigkeit']->getData()['gueltig_bis'])); return $vbs; } diff --git a/application/libraries/vertragsbestandteil/gui/util.php b/application/libraries/vertragsbestandteil/gui/util.php new file mode 100644 index 000000000..6d70e790f --- /dev/null +++ b/application/libraries/vertragsbestandteil/gui/util.php @@ -0,0 +1,8 @@ +format('Y-m-d'); +} \ No newline at end of file diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 000000000..946312355 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,13 @@ + + + + + system/UnitTests/vertragsbestandteil/gui + + + + + + + + diff --git a/public/js/components/vbform/dvneuanlage.js b/public/js/components/vbform/dvneuanlage.js index a309acec0..c4dddf191 100644 --- a/public/js/components/vbform/dvneuanlage.js +++ b/public/js/components/vbform/dvneuanlage.js @@ -6,8 +6,8 @@ export default {
diff --git a/system/UnitTests/vertragsbestandteil/gui/FormDataTest.php b/system/UnitTests/vertragsbestandteil/gui/FormDataTest.php index 0426ba8bc..c25892670 100644 --- a/system/UnitTests/vertragsbestandteil/gui/FormDataTest.php +++ b/system/UnitTests/vertragsbestandteil/gui/FormDataTest.php @@ -22,7 +22,7 @@ class FormDataTest extends TestCase $dataDV = $formDataMapper->getData(); $this->assertNotEmpty($dataDV); $this->assertNotEmpty($dataDV['unternehmen']); - $this->assertEquals('fhtw', $dataDV['unternehmen']); + $this->assertEquals('gst', $dataDV['unternehmen']); $this->assertNull($dataDV['dienstverhaeltnisid']); $this->assertNotEmpty($dataDV['vertragsart_kurzbz']); $this->assertEquals('echterDV', $dataDV['vertragsart_kurzbz']); diff --git a/system/UnitTests/vertragsbestandteil/gui/GuiHandlerTest.php b/system/UnitTests/vertragsbestandteil/gui/GuiHandlerTest.php new file mode 100644 index 000000000..fa808ff1d --- /dev/null +++ b/system/UnitTests/vertragsbestandteil/gui/GuiHandlerTest.php @@ -0,0 +1,41 @@ +load->helper('hlp_common'); + self::$CI->load->helper('hlp_return_object'); + } + + + public function testHandleInsert(): void + { + $jsondata = file_get_contents('./system/UnitTests/vertragsbestandteil/gui/stunden01.json'); + $this->assertNotEmpty($jsondata); + $GH = new GUIHandler($this->employeeUID, $this->userUID); + $res = $GH->handle($jsondata); + } + + + + public function test_true() + { + $this->assertTrue(true); + } + + + +} \ No newline at end of file diff --git a/system/UnitTests/vertragsbestandteil/gui/funktion01.json b/system/UnitTests/vertragsbestandteil/gui/funktion01.json index 15604745b..5130a317e 100644 --- a/system/UnitTests/vertragsbestandteil/gui/funktion01.json +++ b/system/UnitTests/vertragsbestandteil/gui/funktion01.json @@ -148,8 +148,8 @@ ], "data": { "dienstverhaeltnisid": null, - "unternehmen": "fhtw", - "vertragsart_kurzbz": "echterDV", + "unternehmen": "gst", + "vertragsart_kurzbz": "echterdv", "gueltigkeit": { "guioptions": { "sharedstatemode": "set" diff --git a/system/UnitTests/vertragsbestandteil/gui/kuendigungsfrist01.json b/system/UnitTests/vertragsbestandteil/gui/kuendigungsfrist01.json index 5c9d87ff6..4e279a047 100644 --- a/system/UnitTests/vertragsbestandteil/gui/kuendigungsfrist01.json +++ b/system/UnitTests/vertragsbestandteil/gui/kuendigungsfrist01.json @@ -150,8 +150,8 @@ ], "data": { "dienstverhaeltnisid": null, - "unternehmen": "fhtw", - "vertragsart_kurzbz": "echterDV", + "unternehmen": "gst", + "vertragsart_kurzbz": "echterdv", "gueltigkeit": { "guioptions": { "sharedstatemode": "set" diff --git a/system/UnitTests/vertragsbestandteil/gui/readme.txt b/system/UnitTests/vertragsbestandteil/gui/readme.txt new file mode 100644 index 000000000..7aaeab96f --- /dev/null +++ b/system/UnitTests/vertragsbestandteil/gui/readme.txt @@ -0,0 +1,6 @@ + + +testen: + +./vendor/bin/phpunit system/UnitTests/vertragsbestandteil/gui/FormDataTest.php +./vendor/bin/phpunit system/UnitTests/vertragsbestandteil/gui/GuiHandlerTest.php \ No newline at end of file diff --git a/system/UnitTests/vertragsbestandteil/gui/stunden01.json b/system/UnitTests/vertragsbestandteil/gui/stunden01.json index 8c319f7b5..48295f742 100644 --- a/system/UnitTests/vertragsbestandteil/gui/stunden01.json +++ b/system/UnitTests/vertragsbestandteil/gui/stunden01.json @@ -148,8 +148,8 @@ ], "data": { "dienstverhaeltnisid": null, - "unternehmen": "fhtw", - "vertragsart_kurzbz": "echterDV", + "unternehmen": "gst", + "vertragsart_kurzbz": "echterdv", "gueltigkeit": { "guioptions": { "sharedstatemode": "set" diff --git a/system/checksystem.php b/system/checksystem.php index ce343cdca..bdc14c9d3 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -28,7 +28,7 @@ require_once('../version.php'); require_once('../include/benutzerberechtigung.class.php'); // Datenbank Verbindung -$db = new basis_db(); + $db = new basis_db(); echo ' CheckSystem