update childcomponent vertragstati

This commit is contained in:
ma0068
2024-11-05 16:06:14 +01:00
parent b1452698f8
commit 40baa7e08c
6 changed files with 248 additions and 48 deletions
@@ -13,12 +13,14 @@ class Vertraege extends FHCAPI_Controller
'getAllContractsNotAssigned' => ['admin:r', 'assistenz:r'],
'getAllContractsAssigned' => ['admin:r', 'assistenz:r'],
'getAllContractTypes' => self::PERM_LOGGED,
'getAllContractStati' => self::PERM_LOGGED,
'getStatiOfContract' => self::PERM_LOGGED,
'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'],
'deleteContractStatus' => ['admin:r', 'assistenz:r'],
]);
//Load Models
@@ -82,6 +84,17 @@ class Vertraege extends FHCAPI_Controller
$this->terminateWithSuccess(getData($result) ?: []);
}
public function getAllContractStati()
{
//TODO(MANUU)
$result = $this->VertragsstatusModel->load();
if (isError($result))
{
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
$this->terminateWithSuccess(getData($result) ?: []);
}
public function addNewContract($person_id)
{
//$this->validateNewOrUpdate();
@@ -221,4 +234,51 @@ class Vertraege extends FHCAPI_Controller
}
return $this->outputJsonSuccess(current(getData($result)));
}
public function insertContractStatus ($vertrag_id, $datum, $status){
$result = $this->VertragvertragsstatusModel->loadWhere(
array(
'vertrag_id' => $vertrag_id,
'vertragsstatus_kurzbz' => $status
)
);
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);
}
$status_result = $this->VertragvertragsstatusModel->insert([
'vertrag_id' => $vertrag_id,
'uid' => getAuthUID(),
'vertragsstatus_kurzbz' => $status,
'insertamum' => date('c'),
'insertvon' => getAuthUID(),
'datum' => $datum
]);
if (!$status_result) {
$this->terminateWithError('Fehler beim Hinzufügen des Vertragsstatus.');
}
return $this->outputJsonSuccess(current(getData($status_result)));
}
public function deleteContractStatus($vertrag_id, $status){
//return $this->terminateWithError($vertrag_id . " - " . $status, self::ERROR_TYPE_GENERAL);
$result = $this->VertragvertragsstatusModel->delete(
array(
'vertrag_id' => $vertrag_id,
'vertragsstatus_kurzbz' => $status
)
);
if (isError($result)) {
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
if (!hasData($result)) {
return $this->terminateWithError($this->p->t('ui', 'error_missingId', ['id' => 'vertragsstatus_kurzb']), self::ERROR_TYPE_GENERAL);
}
return $this->outputJsonSuccess(current(getData($result)));
}
}