mirror of
https://github.com/Karaka-Management/oms-ContractManagement.git
synced 2026-02-14 17:38:42 +00:00
update
This commit is contained in:
parent
fe4ffcf4ef
commit
005bde94d1
|
|
@ -59,7 +59,7 @@
|
||||||
},
|
},
|
||||||
"contractmgmt_contract_template": {
|
"contractmgmt_contract_template": {
|
||||||
"name": "contractmgmt_contract_template",
|
"name": "contractmgmt_contract_template",
|
||||||
"type": "TINYINT",
|
"type": "TINYINT(1)",
|
||||||
"null": false
|
"null": false
|
||||||
},
|
},
|
||||||
"contractmgmt_contract_title": {
|
"contractmgmt_contract_title": {
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,6 @@ final class ApiController extends Controller
|
||||||
{
|
{
|
||||||
$val = [];
|
$val = [];
|
||||||
if (($val['title'] = !$request->hasData('title'))
|
if (($val['title'] = !$request->hasData('title'))
|
||||||
|| ($val['start'] = !$request->hasData('start'))
|
|
||||||
|| ($val['duration'] = !$request->hasData('duration'))
|
|| ($val['duration'] = !$request->hasData('duration'))
|
||||||
|| ($val['type'] = !$request->hasData('type'))
|
|| ($val['type'] = !$request->hasData('type'))
|
||||||
) {
|
) {
|
||||||
|
|
@ -119,6 +118,7 @@ final class ApiController extends Controller
|
||||||
$contract->account = new NullAccount($request->getDataInt('account') ?? 0);
|
$contract->account = new NullAccount($request->getDataInt('account') ?? 0);
|
||||||
$contract->renewal = $request->getDataInt('renewal') ?? 0;
|
$contract->renewal = $request->getDataInt('renewal') ?? 0;
|
||||||
$contract->autoRenewal = $request->getDataBool('autorenewal') ?? false;
|
$contract->autoRenewal = $request->getDataBool('autorenewal') ?? false;
|
||||||
|
$contract->isTemplate = $request->getDataBool('template') ?? false;
|
||||||
$contract->unit = new NullUnit($request->getDataInt('unit') ?? 0);
|
$contract->unit = new NullUnit($request->getDataInt('unit') ?? 0);
|
||||||
$contract->end = $request->getDataDateTime('end');
|
$contract->end = $request->getDataDateTime('end');
|
||||||
|
|
||||||
|
|
@ -190,4 +190,131 @@ final class ApiController extends Controller
|
||||||
|
|
||||||
$this->createStandardUpdateResponse($request, $response, $uploaded);
|
$this->createStandardUpdateResponse($request, $response, $uploaded);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to update Contract
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param mixed $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiContractUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateContractUpdate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidUpdateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var \Modules\ContractManagement\Models\Contract $old */
|
||||||
|
$old = ContractMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||||
|
$new = $this->updateContractFromRequest($request, clone $old);
|
||||||
|
|
||||||
|
$this->updateModel($request->header->account, $old, $new, ContractMapper::class, 'contract', $request->getOrigin());
|
||||||
|
$this->createStandardUpdateResponse($request, $response, $new);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to update Contract from request.
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param Contract $new Model to modify
|
||||||
|
*
|
||||||
|
* @return Contract
|
||||||
|
*
|
||||||
|
* @todo: implement
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function updateContractFromRequest(RequestAbstract $request, Contract $new) : Contract
|
||||||
|
{
|
||||||
|
$new->title = $request->getDataString('title') ?? $new->title;
|
||||||
|
$new->description = $request->getDataString('description') ?? $new->description;
|
||||||
|
$new->type = $request->hasData('type') ? new NullBaseStringL11nType($request->getDataInt('type') ?? 0) : $new->type;
|
||||||
|
$new->start = $request->getDataDateTime('start') ?? $new->start;
|
||||||
|
$new->account = $request->hasData('account') ? new NullAccount($request->getDataInt('account') ?? 0) : $new->account;
|
||||||
|
$new->renewal = $request->getDataInt('renewal') ?? $new->renewal;
|
||||||
|
$new->autoRenewal = $request->getDataBool('autorenewal') ?? $new->autoRenewal;
|
||||||
|
$new->unit = $request->hasData('unit') ? new NullUnit($request->getDataInt('unit') ?? 0) : $new->unit;
|
||||||
|
$new->end = $request->getDataDateTime('end') ?? $new->end;
|
||||||
|
|
||||||
|
return $new;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate Contract update request
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
*
|
||||||
|
* @return array<string, bool>
|
||||||
|
*
|
||||||
|
* @todo: implement
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private function validateContractUpdate(RequestAbstract $request) : array
|
||||||
|
{
|
||||||
|
$val = [];
|
||||||
|
if (($val['id'] = !$request->hasData('id'))) {
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to delete Contract
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param mixed $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiContractDelete(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateContractDelete($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidDeleteResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var \Modules\ContractManagement\Models\Contract $contract */
|
||||||
|
$contract = ContractMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||||
|
$this->deleteModel($request->header->account, $contract, ContractMapper::class, 'contract', $request->getOrigin());
|
||||||
|
$this->createStandardDeleteResponse($request, $response, $contract);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate Contract delete request
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
*
|
||||||
|
* @return array<string, bool>
|
||||||
|
*
|
||||||
|
* @todo: implement
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
private function validateContractDelete(RequestAbstract $request) : array
|
||||||
|
{
|
||||||
|
$val = [];
|
||||||
|
if (($val['id'] = !$request->hasData('id'))) {
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ namespace Modules\ContractManagement\Models;
|
||||||
|
|
||||||
use Modules\Admin\Models\Account;
|
use Modules\Admin\Models\Account;
|
||||||
use Modules\Admin\Models\NullAccount;
|
use Modules\Admin\Models\NullAccount;
|
||||||
use Modules\Media\Models\Media;
|
|
||||||
use Modules\Organization\Models\Unit;
|
use Modules\Organization\Models\Unit;
|
||||||
use phpOMS\Localization\BaseStringL11nType;
|
use phpOMS\Localization\BaseStringL11nType;
|
||||||
use phpOMS\Localization\Money;
|
use phpOMS\Localization\Money;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user