diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index ac80b4e..6c98a52 100755 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -44,7 +44,7 @@ "children": [] }, { - "id": 1007903001, + "id": 1007904001, "pid": "/contract", "type": 3, "subtype": 1, diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 60bd4ce..b82fa51 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -124,6 +124,7 @@ final class ApiController extends Controller $contract->isTemplate = $request->getDataBool('template') ?? false; $contract->unit = new NullUnit($request->getDataInt('unit') ?? 0); $contract->end = $request->getDataDateTime('end'); + $contract->parent = $request->getDataInt('parent'); return $contract; } @@ -159,7 +160,7 @@ final class ApiController extends Controller $path = $this->createContractDir($contract); - $uploaded = $this->app->moduleManager->get('Media')->uploadFiles( + $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: $request->getDataList('names'), fileNames: $request->getDataList('filenames'), files: $uploadedFiles, @@ -313,8 +314,6 @@ final class ApiController extends Controller * * @return array * - * @todo Implement API validation function - * * @since 1.0.0 */ private function validateContractDelete(RequestAbstract $request) : array diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 650adec..1d6c4f6 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -19,6 +19,7 @@ use Modules\ContractManagement\Models\ContractMapper; use Modules\ContractManagement\Models\ContractTypeMapper; use Modules\Organization\Models\UnitMapper; use phpOMS\Contract\RenderableInterface; +use phpOMS\DataStorage\Database\Query\OrderType; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; use phpOMS\Views\View; @@ -164,10 +165,16 @@ final class BackendController extends Controller ->with('notes') ->where('id', (int) $request->getData('id')) ->where('attributes/type/l11n/language', $response->header->l11n->language) - ->sort('files/id', 'DESC') + ->sort('files/id', OrderType::DESC) ->execute(); - $view->data['contractTypes'] = ContractTypeMapper::getAll() + $view->data['children'] = ContractMapper::getAll() + ->with('account') + ->where('parent', (int) $request->getData('id')) + ->sort('createdAt', OrderType::DESC) + ->execute(); + + $view->data['contractTypes'] = ContractTypeMapper::getAll() ->with('l11n') ->where('l11n/language', $response->header->l11n->language) ->execute(); diff --git a/Theme/Backend/contract-list.tpl.php b/Theme/Backend/contract-list.tpl.php index 4019cc0..855c5f5 100755 --- a/Theme/Backend/contract-list.tpl.php +++ b/Theme/Backend/contract-list.tpl.php @@ -47,7 +47,7 @@ echo $this->data['nav']->render(); ?> - getHtml('With'); ?> + getHtml('With'); ?> - $value) : + $value) : + ++$count; $url = UriFactory::build('{/base}/contract/view?{?}&id=' . $value->id); $type = 'ok'; @@ -91,6 +94,9 @@ echo $this->data['nav']->render(); ?> printHtml($value->account->name1); ?> printHtml($value->account->name2); ?> end !== null ? $value->end->format('Y-m-d') : ''; ?> + + getHtml('Empty', '0', '0'); ?> +
diff --git a/Theme/Backend/contract-view.tpl.php b/Theme/Backend/contract-view.tpl.php index d194834..fb5f6e3 100644 --- a/Theme/Backend/contract-view.tpl.php +++ b/Theme/Backend/contract-view.tpl.php @@ -12,6 +12,8 @@ */ declare(strict_types=1); +use phpOMS\Uri\UriFactory; + /** * @var \phpOMS\Views\View $this * @var \Modules\ContractManagement\Models\Contract $contract @@ -27,9 +29,7 @@ echo $this->data['nav']->render(); ?>
  • - +
  • @@ -137,5 +137,85 @@ echo $this->data['nav']->render(); ?> ?>
    + + request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>> +
    +
    +
    +
    +
    getHtml('Contracts'); ?>download
    +
    + + + + + data['children'] as $key => $value) : + ++$count; + $url = UriFactory::build('{/base}/contract/view?{?}&id=' . $value->id); + + $type = 'ok'; + if (($value->end->getTimestamp() < $now->getTimestamp() && $value->end->getTimestamp() + 7776000 > $now->getTimestamp()) + || ($value->end->getTimestamp() > $now->getTimestamp() && $value->end->getTimestamp() - 7776000 < $now->getTimestamp()) + ) { + $type = 'error'; + } elseif ($value->end->getTimestamp() < $now->getTimestamp()) { + $type = 'info'; + } elseif ($value->end->getTimestamp() + 7776000 < $now->getTimestamp()) { + $type = 'warning'; + } + ?> + +
    getHtml('End'); ?> + + + + getHtml('With'); ?> + + + + getHtml('Title'); ?> + + + +
    end !== null ? $value->end->format('Y-m-d') : ''; ?> + printHtml($value->account->name1); ?> printHtml($value->account->name2); ?> + printHtml($value->title); ?> + + +
    getHtml('Empty', '0', '0'); ?> + +
    +
    +
    +
    +
    +