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 @@
+
+