diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index 0d1976d..0204d78 100755 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -79,8 +79,8 @@ "pid": "/sales", "type": 3, "subtype": 1, - "name": "Values", - "uri": "{/base}/sales/client/attribute/value/list?{?}", + "name": "Create", + "uri": "{/base}/sales/client/attribute/type/create?{?}", "target": "self", "icon": null, "order": 15, diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 2b4f9dc..0d61cab 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -285,7 +285,7 @@ final class ApiController extends Controller /** * Create directory for an account * - * @param int $id Item number + * @param int $id Item number * @param int $createdBy Creator of the directory * * @return Collection @@ -332,7 +332,7 @@ final class ApiController extends Controller /** @var \Modules\Attribute\Models\AttributeType[] $types */ $types = ClientAttributeTypeMapper::getAll() ->where('name', \array_keys($segmentation), 'IN') - ->execute(); + ->executeGetArray(); foreach ($types as $type) { $internalResponse = clone $response; diff --git a/Controller/BackendController.php b/Controller/BackendController.php index f13e07a..9106291 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -14,6 +14,7 @@ declare(strict_types=1); namespace Modules\ClientManagement\Controller; +use Modules\Attribute\Models\NullAttributeValue; use Modules\Auditor\Models\AuditMapper; use Modules\ClientManagement\Models\Attribute\ClientAttributeTypeL11nMapper; use Modules\ClientManagement\Models\Attribute\ClientAttributeTypeMapper; @@ -21,8 +22,6 @@ use Modules\ClientManagement\Models\Attribute\ClientAttributeValueL11nMapper; use Modules\ClientManagement\Models\Attribute\ClientAttributeValueMapper; use Modules\ClientManagement\Models\ClientMapper; use Modules\ClientManagement\Models\PermissionCategory; -use Modules\ItemManagement\Models\Attribute\ItemAttributeTypeMapper; -use Modules\ItemManagement\Models\Attribute\ItemAttributeValueL11nMapper; use Modules\Media\Models\MediaMapper; use Modules\Media\Models\MediaTypeMapper; use Modules\Organization\Models\Attribute\UnitAttributeMapper; @@ -62,13 +61,13 @@ final class BackendController extends Controller */ public function viewClientManagementAttributeTypeList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { - $view = new \Modules\Attribute\Theme\Backend\Components\AttributeTypeListView($this->app->l11nManager, $request, $response); + $view = new \Modules\Attribute\Theme\Backend\Components\AttributeTypeListView($this->app->l11nManager, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003101001, $request, $response); $view->attributes = ClientAttributeTypeMapper::getAll() ->with('l11n') ->where('l11n/language', $response->header->l11n->language) - ->execute(); + ->executeGetArray(); $view->path = 'sales/client'; @@ -97,7 +96,7 @@ final class BackendController extends Controller $attributes = ClientAttributeValueMapper::getAll() ->with('l11n') ->where('l11n/language', $response->header->l11n->language) - ->execute(); + ->executeGetArray(); $view->data['attributes'] = $attributes; @@ -118,7 +117,7 @@ final class BackendController extends Controller */ public function viewClientManagementAttributeType(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { - $view = new \Modules\Attribute\Theme\Backend\Components\AttributeTypeView($this->app->l11nManager, $request, $response); + $view = new \Modules\Attribute\Theme\Backend\Components\AttributeTypeView($this->app->l11nManager, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003101001, $request, $response); $view->attribute = ClientAttributeTypeMapper::get() @@ -132,7 +131,7 @@ final class BackendController extends Controller $view->l11ns = ClientAttributeTypeL11nMapper::getAll() ->where('ref', $view->attribute->id) - ->execute(); + ->executeGetArray(); $view->path = 'sales/client'; @@ -153,7 +152,7 @@ final class BackendController extends Controller */ public function viewClientManagementAttributeValue(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { - $view = new \Modules\Attribute\Theme\Backend\Components\AttributeValueView($this->app->l11nManager, $request, $response); + $view = new \Modules\Attribute\Theme\Backend\Components\AttributeValueView($this->app->l11nManager, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003101001, $request, $response); $view->attribute = ClientAttributeValueMapper::get() @@ -164,7 +163,7 @@ final class BackendController extends Controller $view->l11ns = ClientAttributeValueL11nMapper::getAll() ->where('ref', $view->attribute->id) - ->execute(); + ->executeGetArray(); // @todo Also find the ItemAttributeType @@ -195,7 +194,7 @@ final class BackendController extends Controller ->with('mainAddress') ->where('unit', $this->app->unitId) ->limit(25) - ->execute(); + ->executeGetArray(); $view->data['client'] = $client; @@ -217,7 +216,7 @@ final class BackendController extends Controller public function viewClientManagementClientCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/ClientManagement/Theme/Backend/client-create'); + $view->setTemplate('/Modules/ClientManagement/Theme/Backend/client-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003102001, $request, $response); return $view; @@ -285,7 +284,7 @@ final class BackendController extends Controller $view->data['attributeTypes'] = ClientAttributeTypeMapper::getAll() ->with('l11n') ->where('l11n/language', $response->header->l11n->language) - ->execute(); + ->executeGetArray(); // Get item profile image // @feature Create a new read mapper function that returns relation models instead of its own model @@ -318,17 +317,18 @@ final class BackendController extends Controller $view->data['business_start'] = $businessStart->id === 0 ? 1 : $businessStart->value->getValue(); - $view->data['hasBilling'] = $this->app->moduleManager->isActive('Billing'); + $view->data['hasBilling'] = $this->app->moduleManager->isActive('Billing'); + $view->data['hasAccounting'] = $this->app->moduleManager->isActive('Accounting'); $view->data['prices'] = $view->data['hasBilling'] ? \Modules\Billing\Models\Price\PriceMapper::getAll() ->where('client', $view->data['client']->id) ->where('type', \Modules\Billing\Models\Price\PriceType::SALES) - ->execute() + ->executeGetArray() : []; /** @var \Modules\Attribute\Models\AttributeType[] $tmp */ - $tmp = ItemAttributeTypeMapper::getAll() + $tmp = ClientAttributeTypeMapper::getAll() ->with('defaults') ->with('defaults/l11n') ->where('name', [ @@ -336,9 +336,9 @@ final class BackendController extends Controller 'sales_tax_code', 'purchase_tax_code', ], 'IN') ->where('defaults/l11n', (new Where($this->app->dbPool->get())) - ->where(ItemAttributeValueL11nMapper::getColumnByMember('ref') ?? '', '=', null) - ->orWhere(ItemAttributeValueL11nMapper::getColumnByMember('language') ?? '', '=', $response->header->l11n->language)) - ->execute(); + ->where(ClientAttributeValueL11nMapper::getColumnByMember('ref') ?? '', '=', null) + ->orWhere(ClientAttributeValueL11nMapper::getColumnByMember('language') ?? '', '=', $response->header->l11n->language)) + ->executeGetArray(); $defaultAttributeTypes = []; foreach ($tmp as $t) { @@ -358,7 +358,7 @@ final class BackendController extends Controller ->where('defaults/l11n', (new Where($this->app->dbPool->get())) ->where(ClientAttributeValueL11nMapper::getColumnByMember('ref') ?? '', '=', null) ->orWhere(ClientAttributeValueL11nMapper::getColumnByMember('language') ?? '', '=', $response->header->l11n->language)) - ->execute(); + ->executeGetArray(); $clientSegmentationTypes = []; foreach ($tmp as $t) { @@ -381,7 +381,7 @@ final class BackendController extends Controller ->where('type', StringUtils::intHash(ClientMapper::class)) ->where('module', 'ClientManagement') ->where('ref', (string) $view->data['client']->id) - ->execute(); + ->executeGetArray(); } $view->data['logs'] = $logs; @@ -392,7 +392,7 @@ final class BackendController extends Controller ->with('types') ->join('id', ClientMapper::class, 'files') // id = media id, files = client relations ->on('id', $view->data['client']->id, relation: 'files') // id = item id - ->execute(); + ->executeGetArray(); $view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response); $view->data['note'] = new \Modules\Editor\Theme\Backend\Components\Note\BaseView($this->app->l11nManager, $request, $response); @@ -419,4 +419,29 @@ final class BackendController extends Controller { return new View($this->app->l11nManager, $request, $response); } + + /** + * Routing end-point for application behavior. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param array $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewClientManagementAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface + { + $view = new \Modules\Attribute\Theme\Backend\Components\AttributeValueView($this->app->l11nManager, $request, $response); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003101001, $request, $response); + + $view->type = ClientAttributeTypeMapper::get()->where('id', (int) $request->getData('type'))->execute(); + $view->attribute = new NullAttributeValue(); + + $view->path = 'sales/client'; + + return $view; + } } diff --git a/Theme/Backend/Lang/de.lang.php b/Theme/Backend/Lang/de.lang.php index 350f19b..f3a8e5f 100755 --- a/Theme/Backend/Lang/de.lang.php +++ b/Theme/Backend/Lang/de.lang.php @@ -33,6 +33,7 @@ return ['ClientManagement' => [ 'Country' => 'Land', 'Created' => 'Erstellt', 'CreateBill' => 'Rechnung erstellen', + 'ViewAccount' => 'Buchhaltung', 'CreatedAt' => 'Erstellt', 'Creditcard' => 'Kreditkarte', 'DSO' => 'DSO.', @@ -104,7 +105,7 @@ return ['ClientManagement' => [ 'PrimarySupplier' => 'Hauptlieferant', 'LeadTime' => 'Lieferzeit', 'UnitQuantity' => 'Einheitsmenge', - 'Suppliers' => 'Lieferanten', + 'Suppliers' => 'Lieferanten', 'CostCenter' => 'Kostenstelle', 'CostObject' => 'Kostenträger', 'DefaultStock' => 'Standard Lager', @@ -123,7 +124,11 @@ return ['ClientManagement' => [ 'ClientGroup' => 'Kundengruppe', 'ClientType' => 'Kundenart', 'ItemType' => 'Artikeltyp', - 'Item' => 'Item', + 'Item' => 'Artikel', + 'Status' => 'Status', 'EarningIndicator' => 'Verkaufssteuerkennzeichen', 'CostIndicator' => 'Einkaufssteuerkennzeichen', + ':status-1' => 'Aktiv', + ':status-2' => 'Inaktiv', + ':status-3' => 'Blockiert', ]]; diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php index 67367de..4729173 100755 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -33,6 +33,7 @@ return ['ClientManagement' => [ 'Country' => 'Country', 'Created' => 'Created', 'CreateBill' => 'Create Bill', + 'ViewAccount' => 'View Account', 'CreatedAt' => 'Created at', 'Creditcard' => 'Creditcard', 'DSO' => 'DSO', @@ -124,6 +125,10 @@ return ['ClientManagement' => [ 'ClientType' => 'Client Type', 'ItemType' => 'Item Type', 'Item' => 'Item', + 'Status' => 'Status', 'EarningIndicator' => 'Sales tax code', 'CostIndicator' => 'Purchase tax code', + ':status-1' => 'Active', + ':status-2' => 'Inactive', + ':status-3' => 'Banned', ]]; diff --git a/Theme/Backend/client-create.tpl.php b/Theme/Backend/client-create.tpl.php deleted file mode 100755 index 73172b4..0000000 --- a/Theme/Backend/client-create.tpl.php +++ /dev/null @@ -1,289 +0,0 @@ -data['nav']->render(); ?> - -
| IP - | = $this->getHtml('ID', '0', '0'); ?> - | = $this->getHtml('Name'); ?> - | = $this->getHtml('Log'); ?> - | = $this->getHtml('Date'); ?> - |
| = $this->printHtml($this->request->getOrigin()); ?> - | = $this->printHtml((string) $this->request->header->account); ?> - | = $this->printHtml((string) $this->request->header->account); ?> - | Creating customer - | = $this->printHtml((new \DateTime('now'))->format('Y-m-d H:i:s')); ?> - |