auto fixes + some impl.

This commit is contained in:
Dennis Eichhorn 2024-01-26 22:53:59 +00:00
parent be2cc5380e
commit da200dacf6
26 changed files with 203 additions and 188 deletions

View File

@ -263,6 +263,11 @@
"type": "TINYINT(1)", "type": "TINYINT(1)",
"null": false "null": false
}, },
"investmgmt_attr_type_internal": {
"name": "investmgmt_attr_type_internal",
"type": "TINYINT(1)",
"null": false
},
"investmgmt_attr_type_required": { "investmgmt_attr_type_required": {
"description": "Every item must have this attribute type if set to true.", "description": "Every item must have this attribute type if set to true.",
"name": "investmgmt_attr_type_required", "name": "investmgmt_attr_type_required",

View File

@ -20,7 +20,6 @@ use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\HttpResponse;
use phpOMS\Module\InstallerAbstract; use phpOMS\Module\InstallerAbstract;
use phpOMS\Module\ModuleInfo; use phpOMS\Module\ModuleInfo;
use phpOMS\Uri\HttpUri;
/** /**
* Installer class. * Installer class.
@ -79,7 +78,7 @@ final class Installer extends InstallerAbstract
/** @var array $type */ /** @var array $type */
foreach ($types as $type) { foreach ($types as $type) {
$response = new HttpResponse(); $response = new HttpResponse();
$request = new HttpRequest(new HttpUri('')); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $type['name'] ?? ''); $request->setData('name', $type['name'] ?? '');
@ -105,7 +104,7 @@ final class Installer extends InstallerAbstract
} }
$response = new HttpResponse(); $response = new HttpResponse();
$request = new HttpRequest(new HttpUri('')); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('title', $l11n);

View File

@ -18,7 +18,7 @@ use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb; use phpOMS\Router\RouteVerb;
return [ return [
'^.*/finance/investment/find.*$' => [ '^.*/finance/investment/find(\?.*$|$)' => [
[ [
'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiInvestmentFind', 'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiInvestmentFind',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,

View File

@ -6,7 +6,7 @@ use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb; use phpOMS\Router\RouteVerb;
return [ return [
'^.*/finance/investment/list.*$' => [ '^.*/finance/investment/list(\?.*$|$)' => [
[ [
'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentList', 'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentList',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -17,9 +17,9 @@ return [
], ],
], ],
], ],
'^.*/finance/investment/profile.*$' => [ '^.*/finance/investment/view(\?.*$|$)' => [
[ [
'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentProfile', 'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentView',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
'permission' => [ 'permission' => [
'module' => BackendController::MODULE_NAME, 'module' => BackendController::MODULE_NAME,
@ -28,7 +28,7 @@ return [
], ],
], ],
], ],
'^.*/finance/investment/create.*$' => [ '^.*/finance/investment/create(\?.*$|$)' => [
[ [
'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentCreate', 'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentCreate',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -39,9 +39,9 @@ return [
], ],
], ],
], ],
'^.*/finance/investment/object.*$' => [ '^.*/finance/investment/object(\?.*$|$)' => [
[ [
'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentObjectProfile', 'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentObjectView',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
'permission' => [ 'permission' => [
'module' => BackendController::MODULE_NAME, 'module' => BackendController::MODULE_NAME,
@ -51,7 +51,7 @@ return [
], ],
], ],
'^.*/private/investment/list.*$' => [ '^.*/private/investment/list(\?.*$|$)' => [
[ [
'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentList', 'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentList',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -62,9 +62,9 @@ return [
], ],
], ],
], ],
'^.*/private/investment/profile.*$' => [ '^.*/private/investment/view(\?.*$|$)' => [
[ [
'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentProfile', 'dest' => '\Modules\InvestmentManagement\Controller\BackendController:viewInvestmentView',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
'permission' => [ 'permission' => [
'module' => BackendController::MODULE_NAME, 'module' => BackendController::MODULE_NAME,

View File

@ -61,12 +61,15 @@ final class ApiAttributeController extends Controller
return; return;
} }
$type = InvestmentObjectAttributeTypeMapper::get()->with('defaults')->where('id', (int) $request->getData('type'))->execute(); $type = InvestmentObjectAttributeTypeMapper::get()
->with('defaults')
->where('id', (int) $request->getData('type'))
->execute();
if (!$type->repeatable) { if (!$type->repeatable) {
$attr = InvestmentObjectAttributeMapper::count() $attr = InvestmentObjectAttributeMapper::count()
->with('type') ->with('type')
->where('type/id', (int) $request->getData('type')) ->where('type/id', $type->id)
->where('ref', (int) $request->getData('ref')) ->where('ref', (int) $request->getData('ref'))
->execute(); ->execute();
@ -164,13 +167,20 @@ final class ApiAttributeController extends Controller
->where('id', $request->getDataInt('type') ?? 0) ->where('id', $request->getDataInt('type') ?? 0)
->execute(); ->execute();
if ($type->isInternal) {
$response->header->status = RequestStatusCode::R_403;
$this->createInvalidCreateResponse($request, $response, $val);
return;
}
$attrValue = $this->createAttributeValueFromRequest($request, $type); $attrValue = $this->createAttributeValueFromRequest($request, $type);
$this->createModel($request->header->account, $attrValue, InvestmentObjectAttributeValueMapper::class, 'attr_value', $request->getOrigin()); $this->createModel($request->header->account, $attrValue, InvestmentObjectAttributeValueMapper::class, 'attr_value', $request->getOrigin());
if ($attrValue->isDefault) { if ($attrValue->isDefault) {
$this->createModelRelation( $this->createModelRelation(
$request->header->account, $request->header->account,
(int) $request->getData('type'), $type->id,
$attrValue->id, $attrValue->id,
InvestmentObjectAttributeTypeMapper::class, 'defaults', '', $request->getOrigin() InvestmentObjectAttributeTypeMapper::class, 'defaults', '', $request->getOrigin()
); );

View File

@ -99,7 +99,7 @@ final class ApiController extends Controller
$investment = new Investment(); $investment = new Investment();
$investment->name = $request->getDataString('name') ?? ''; $investment->name = $request->getDataString('name') ?? '';
$investment->description = $request->getDataString('description') ?? ''; $investment->description = $request->getDataString('description') ?? '';
$investment->status = $request->getDataInt('status') ?? InvestmentStatus::DRAFT; $investment->status = InvestmentStatus::tryFromValue($request->getDataInt('status')) ?? InvestmentStatus::DRAFT;
$investment->description = $request->getDataString('description') ?? ''; $investment->description = $request->getDataString('description') ?? '';
$investment->unit = $request->getDataInt('unit') ?? $this->app->unitId; $investment->unit = $request->getDataInt('unit') ?? $this->app->unitId;
$investment->createdBy = new NullAccount($request->header->account); $investment->createdBy = new NullAccount($request->header->account);
@ -814,7 +814,10 @@ final class ApiController extends Controller
{ {
$type = new BaseStringL11nType(); $type = new BaseStringL11nType();
$type->title = $request->getDataString('name') ?? ''; $type->title = $request->getDataString('name') ?? '';
$type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN); $type->setL11n(
$request->getDataString('title') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
);
return $type; return $type;
} }
@ -880,9 +883,7 @@ final class ApiController extends Controller
{ {
$typeL11n = new BaseStringL11n(); $typeL11n = new BaseStringL11n();
$typeL11n->ref = $request->getDataInt('type') ?? 0; $typeL11n->ref = $request->getDataInt('type') ?? 0;
$typeL11n->setLanguage( $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language;
$request->getDataString('language') ?? $request->header->l11n->language
);
$typeL11n->content = $request->getDataString('title') ?? ''; $typeL11n->content = $request->getDataString('title') ?? '';
return $typeL11n; return $typeL11n;

View File

@ -14,16 +14,11 @@ declare(strict_types=1);
namespace Modules\InvestmentManagement\Controller; namespace Modules\InvestmentManagement\Controller;
use Modules\Admin\Models\LocalizationMapper;
use Modules\Admin\Models\SettingsEnum;
use Modules\InvestmentManagement\Models\InvestmentMapper; use Modules\InvestmentManagement\Models\InvestmentMapper;
use Modules\InvestmentManagement\Models\InvestmentObjectMapper; use Modules\InvestmentManagement\Models\InvestmentObjectMapper;
use Modules\InvestmentManagement\Models\InvestmentTypeMapper; use Modules\InvestmentManagement\Models\InvestmentTypeMapper;
use Modules\Media\Models\MediaMapper;
use Modules\Media\Models\MediaTypeMapper;
use Modules\Organization\Models\UnitMapper; use Modules\Organization\Models\UnitMapper;
use phpOMS\Contract\RenderableInterface; use phpOMS\Contract\RenderableInterface;
use phpOMS\DataStorage\Database\Query\Builder;
use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract; use phpOMS\Message\ResponseAbstract;
use phpOMS\Views\View; use phpOMS\Views\View;
@ -78,10 +73,10 @@ final class BackendController extends Controller
* @since 1.0.0 * @since 1.0.0
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
public function viewInvestmentObjectProfile(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface public function viewInvestmentObjectView(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/InvestmentManagement/Theme/Backend/investment-object-profile'); $view->setTemplate('/Modules/InvestmentManagement/Theme/Backend/investment-object-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007101001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007101001, $request, $response);
$object = InvestmentObjectMapper::get() $object = InvestmentObjectMapper::get()
@ -95,11 +90,8 @@ final class BackendController extends Controller
$view->data['object'] = $object; $view->data['object'] = $object;
/** @var \Model\Setting $settings */
$settings = $this->app->appSettings->get(null, SettingsEnum::DEFAULT_LOCALIZATION);
$view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response);
$view->data['attributeView']->data['default_localization'] = LocalizationMapper::get()->where('id', (int) $settings->id)->execute(); $view->data['attributeView']->data['default_localization'] = $this->app->l11nServer;
$view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response); $view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response);
@ -118,10 +110,10 @@ final class BackendController extends Controller
* @since 1.0.0 * @since 1.0.0
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
public function viewInvestmentProfile(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface public function viewInvestmentView(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/InvestmentManagement/Theme/Backend/investment-profile'); $view->setTemplate('/Modules/InvestmentManagement/Theme/Backend/investment-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007101001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007101001, $request, $response);
$investment = InvestmentMapper::get() $investment = InvestmentMapper::get()
@ -147,11 +139,8 @@ final class BackendController extends Controller
$view->data['investment'] = $investment; $view->data['investment'] = $investment;
/** @var \Model\Setting $settings */
$settings = $this->app->appSettings->get(null, SettingsEnum::DEFAULT_LOCALIZATION);
$view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response); $view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response);
$view->data['attributeView']->data['default_localization'] = LocalizationMapper::get()->where('id', (int) $settings->id)->execute(); $view->data['attributeView']->data['default_localization'] = $this->app->l11nServer;
$investmentTypes = InvestmentTypeMapper::getAll() $investmentTypes = InvestmentTypeMapper::getAll()
->with('l11n') ->with('l11n')

View File

@ -18,7 +18,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\BaseStringL11n;
/** /**
* mapper class. * Amount type l11n mapper class.
* *
* @package Modules\InvestmentManagement\Models * @package Modules\InvestmentManagement\Models
* @license OMS License 2.0 * @license OMS License 2.0

View File

@ -43,6 +43,7 @@ final class InvestmentObjectAttributeTypeMapper extends DataMapperFactory
'investmgmt_attr_type_fields' => ['name' => 'investmgmt_attr_type_fields', 'type' => 'int', 'internal' => 'fields'], 'investmgmt_attr_type_fields' => ['name' => 'investmgmt_attr_type_fields', 'type' => 'int', 'internal' => 'fields'],
'investmgmt_attr_type_custom' => ['name' => 'investmgmt_attr_type_custom', 'type' => 'bool', 'internal' => 'custom'], 'investmgmt_attr_type_custom' => ['name' => 'investmgmt_attr_type_custom', 'type' => 'bool', 'internal' => 'custom'],
'investmgmt_attr_type_repeatable' => ['name' => 'investmgmt_attr_type_repeatable', 'type' => 'bool', 'internal' => 'repeatable'], 'investmgmt_attr_type_repeatable' => ['name' => 'investmgmt_attr_type_repeatable', 'type' => 'bool', 'internal' => 'repeatable'],
'investmgmt_attr_type_internal' => ['name' => 'investmgmt_attr_type_internal', 'type' => 'bool', 'internal' => 'isInternal'],
'investmgmt_attr_type_pattern' => ['name' => 'investmgmt_attr_type_pattern', 'type' => 'string', 'internal' => 'validationPattern'], 'investmgmt_attr_type_pattern' => ['name' => 'investmgmt_attr_type_pattern', 'type' => 'string', 'internal' => 'validationPattern'],
'investmgmt_attr_type_required' => ['name' => 'investmgmt_attr_type_required', 'type' => 'bool', 'internal' => 'isRequired'], 'investmgmt_attr_type_required' => ['name' => 'investmgmt_attr_type_required', 'type' => 'bool', 'internal' => 'isRequired'],
]; ];

View File

@ -16,7 +16,6 @@ namespace Modules\InvestmentManagement\Models;
use Modules\Admin\Models\Account; use Modules\Admin\Models\Account;
use Modules\Admin\Models\NullAccount; use Modules\Admin\Models\NullAccount;
use phpOMS\Business\Finance\DepreciationType;
use phpOMS\Localization\BaseStringL11nType; use phpOMS\Localization\BaseStringL11nType;
/** /**

View File

@ -18,7 +18,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\BaseStringL11n;
/** /**
* mapper class. * Inspection type l11n mapper class.
* *
* @package Modules\InvestmentManagement\Models * @package Modules\InvestmentManagement\Models
* @license OMS License 2.0 * @license OMS License 2.0

View File

@ -23,53 +23,53 @@ echo $this->data['nav']->render(); ?>
<section class="portlet"> <section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Investments'); ?><i class="g-icon download btn end-xs">download</i></div> <div class="portlet-head"><?= $this->getHtml('Investments'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider"> <div class="slider">
<table id="iSalesClientList" class="default sticky"> <table id="iInvestmentList" class="default sticky">
<thead> <thead>
<tr> <tr>
<td> <td>
<td><?= $this->getHtml('ID', '0', '0'); ?> <td><?= $this->getHtml('ID', '0', '0'); ?>
<label for="iSalesClientList-sort-1"> <label for="iInvestmentList-sort-1">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-1"> <input type="radio" name="iInvestmentList-sort" id="iInvestmentList-sort-1">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-2"> <label for="iInvestmentList-sort-2">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-2"> <input type="radio" name="iInvestmentList-sort" id="iInvestmentList-sort-2">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
<i class="filter g-icon">filter_alt</i> <i class="filter g-icon">filter_alt</i>
</label> </label>
<td><?= $this->getHtml('Status'); ?> <td><?= $this->getHtml('Status'); ?>
<label for="iSalesClientList-sort-3"> <label for="iInvestmentList-sort-3">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-3"> <input type="radio" name="iInvestmentList-sort" id="iInvestmentList-sort-3">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-4"> <label for="iInvestmentList-sort-4">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-4"> <input type="radio" name="iInvestmentList-sort" id="iInvestmentList-sort-4">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
<i class="filter g-icon">filter_alt</i> <i class="filter g-icon">filter_alt</i>
</label> </label>
<td class="wf-100"><?= $this->getHtml('Name'); ?> <td class="wf-100"><?= $this->getHtml('Name'); ?>
<label for="iSalesClientList-sort-5"> <label for="iInvestmentList-sort-5">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-5"> <input type="radio" name="iInvestmentList-sort" id="iInvestmentList-sort-5">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-6"> <label for="iInvestmentList-sort-6">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-6"> <input type="radio" name="iInvestmentList-sort" id="iInvestmentList-sort-6">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
<i class="filter g-icon">filter_alt</i> <i class="filter g-icon">filter_alt</i>
</label> </label>
<td><?= $this->getHtml('Creator'); ?> <td><?= $this->getHtml('Creator'); ?>
<label for="iSalesClientList-sort-7"> <label for="iInvestmentList-sort-7">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-7"> <input type="radio" name="iInvestmentList-sort" id="iInvestmentList-sort-7">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-8"> <label for="iInvestmentList-sort-8">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-8"> <input type="radio" name="iInvestmentList-sort" id="iInvestmentList-sort-8">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
@ -80,14 +80,14 @@ echo $this->data['nav']->render(); ?>
$count = 0; $count = 0;
foreach ($investments as $key => $value) : foreach ($investments as $key => $value) :
++$count; ++$count;
$url = UriFactory::build('{/base}/finance/investment/profile?{?}&id=' . $value->id); $url = UriFactory::build('{/base}/finance/investment/view?{?}&id=' . $value->id);
?> ?>
<tr data-href="<?= $url; ?>"> <tr data-href="<?= $url; ?>">
<td> <td>
<td data-label="<?= $this->getHtml('ID', '0', '0'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml((string) $value->id); ?></a> <td data-label="<?= $this->getHtml('ID', '0', '0'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml((string) $value->id); ?></a>
<td data-label="<?= $this->getHtml('Status'); ?>"><a href="<?= $url; ?>"><?= $this->getHtml(':status' . $value->status); ?></a> <td data-label="<?= $this->getHtml('Status'); ?>"><a href="<?= $url; ?>"><?= $this->getHtml(':status' . $value->status); ?></a>
<td data-label="<?= $this->getHtml('Title'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a> <td data-label="<?= $this->getHtml('Title'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a>
<td data-label="<?= $this->getHtml('Creator'); ?>"><a class="content" href="<?= UriFactory::build('{/base}/profile/single?{?}&for=' . $value->createdBy->id); ?>"><?= $this->printHtml($this->renderUserName('%3$s %2$s %1$s', [$value->createdBy->name1, $value->createdBy->name2, $value->createdBy->name3, $value->createdBy->login ?? ''])); ?></a> <td data-label="<?= $this->getHtml('Creator'); ?>"><a class="content" href="<?= UriFactory::build('{/base}/profile/view?{?}&for=' . $value->createdBy->id); ?>"><?= $this->printHtml($this->renderUserName('%3$s %2$s %1$s', [$value->createdBy->name1, $value->createdBy->name2, $value->createdBy->name3, $value->createdBy->login ?? ''])); ?></a>
<?php endforeach; ?> <?php endforeach; ?>
<?php if ($count === 0) : ?> <?php if ($count === 0) : ?>
<tr><td colspan="8" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?> <tr><td colspan="8" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>

View File

@ -234,7 +234,7 @@ echo $this->data['nav']->render(); ?>
</div> </div>
</div> </div>
<div class="portlet-foot"> <div class="portlet-foot">
<a class="button edit" href="<?= UriFactory::build('{/base}/finance/investment/object?id=' . $option->id) ?>"><?= $this->getHtml('Edit', '0', '0'); ?></a> <a class="button edit" href="<?= UriFactory::build('{/base}/finance/investment/object?id=' . $option->id); ?>"><?= $this->getHtml('Edit', '0', '0'); ?></a>
</div> </div>
</section> </section>
</div> </div>

View File

@ -1,4 +1,15 @@
<?php <?php
/**
* Jingga
*
* PHP Version 8.1
*
* @package Modules\InvestmentManagement\tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1); declare(strict_types=1);
\ini_set('memory_limit', '2048M'); \ini_set('memory_limit', '2048M');