diff --git a/Admin/Install/db.json b/Admin/Install/db.json index 3492d29..73cb317 100755 --- a/Admin/Install/db.json +++ b/Admin/Install/db.json @@ -186,6 +186,11 @@ "type": "TINYINT(1)", "null": false }, + "suppliermgmt_attr_type_internal": { + "name": "suppliermgmt_attr_type_internal", + "type": "TINYINT(1)", + "null": false + }, "suppliermgmt_attr_type_required": { "description": "Every item must have this attribute type if set to true.", "name": "suppliermgmt_attr_type_required", diff --git a/Admin/Installer.php b/Admin/Installer.php index 898435d..5a9d07e 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -20,7 +20,6 @@ use phpOMS\Message\Http\HttpRequest; use phpOMS\Message\Http\HttpResponse; use phpOMS\Module\InstallerAbstract; use phpOMS\Module\ModuleInfo; -use phpOMS\Uri\HttpUri; /** * Installer class. @@ -47,8 +46,6 @@ final class Installer extends InstallerAbstract { parent::install($app, $info, $cfgHandler); - \Modules\Admin\Admin\Installer::installExternal($app, ['path' => __DIR__ . '/Install/Admin.install.json']); - /* Attributes */ $fileContent = \file_get_contents(__DIR__ . '/Install/attributes.json'); if ($fileContent === false) { @@ -63,6 +60,16 @@ final class Installer extends InstallerAbstract $attrTypes = self::createSupplierAttributeTypes($app, $attributes); $attrValues = self::createSupplierAttributeValues($app, $attrTypes, $attributes); + $data = \json_decode(\file_get_contents(__DIR__ . '/Install/Admin.install.json'), true); + $content = \json_decode($data[0]['content'], true); + + foreach ($content as $type => $_) { + $content[$type] = \reset($attrValues[$type])['id']; + } + + $data[0]['content'] = \json_encode($content); + \Modules\Admin\Admin\Installer::createSettings($app, $data[0]); + /* Localizations */ $fileContent = \file_get_contents(__DIR__ . '/Install/localizations.json'); if ($fileContent === false) { @@ -97,7 +104,7 @@ final class Installer extends InstallerAbstract foreach ($l11ns as $l11n) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n['name']); @@ -139,12 +146,14 @@ final class Installer extends InstallerAbstract /** @var array $attribute */ foreach ($attributes as $attribute) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $attribute['name'] ?? ''); $request->setData('title', \reset($attribute['l11n'])); $request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en'); + $request->setData('repeatable', $attribute['repeatable'] ?? false); + $request->setData('internal', $attribute['internal'] ?? false); $request->setData('is_required', $attribute['is_required'] ?? false); $request->setData('custom', $attribute['is_custom_allowed'] ?? false); $request->setData('validation_pattern', $attribute['validation_pattern'] ?? ''); @@ -169,7 +178,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); @@ -208,7 +217,7 @@ final class Installer extends InstallerAbstract /** @var array $value */ foreach ($attribute['values'] as $value) { $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('value', $value['value'] ?? ''); @@ -242,7 +251,7 @@ final class Installer extends InstallerAbstract } $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 614f256..d719fed 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -18,7 +18,7 @@ use phpOMS\Account\PermissionType; use phpOMS\Router\RouteVerb; return [ - '^.*/purchase/supplier/attribute/type/list.*$' => [ + '^.*/purchase/supplier/attribute/type/list(\?.*$|$)' => [ [ 'dest' => '\Modules\SupplierManagement\Controller\BackendController:viewSupplierManagementAttributeTypeList', 'verb' => RouteVerb::GET, @@ -29,7 +29,7 @@ return [ ], ], ], - '^.*/purchase/supplier/attribute/type\?.*$' => [ + '^.*/purchase/supplier/attribute/type(\?.*$|$)' => [ [ 'dest' => '\Modules\SupplierManagement\Controller\BackendController:viewSupplierManagementAttributeType', 'verb' => RouteVerb::GET, @@ -40,7 +40,7 @@ return [ ], ], ], - '^.*/purchase/supplier/list.*$' => [ + '^.*/purchase/supplier/list(\?.*$|$)' => [ [ 'dest' => '\Modules\SupplierManagement\Controller\BackendController:viewSupplierManagementSupplierList', 'verb' => RouteVerb::GET, @@ -51,7 +51,7 @@ return [ ], ], ], - '^.*/purchase/supplier/create.*$' => [ + '^.*/purchase/supplier/create(\?.*$|$)' => [ [ 'dest' => '\Modules\SupplierManagement\Controller\BackendController:viewSupplierManagementSupplierCreate', 'verb' => RouteVerb::GET, @@ -62,9 +62,9 @@ return [ ], ], ], - '^.*/purchase/supplier/profile.*$' => [ + '^.*/purchase/supplier/view(\?.*$|$)' => [ [ - 'dest' => '\Modules\SupplierManagement\Controller\BackendController:viewSupplierManagementSupplierProfile', + 'dest' => '\Modules\SupplierManagement\Controller\BackendController:viewSupplierManagementSupplierView', 'verb' => RouteVerb::GET, 'permission' => [ 'module' => BackendController::NAME, @@ -73,7 +73,7 @@ return [ ], ], ], - '^.*/purchase/analysis/supplier.*$' => [ + '^.*/purchase/analysis/supplier(\?.*$|$)' => [ [ 'dest' => '\Modules\SupplierManagement\Controller\BackendController:viewSupplierManagementSupplierAnalysis', 'verb' => RouteVerb::GET, diff --git a/Controller/ApiAttributeController.php b/Controller/ApiAttributeController.php index a5544fd..79f4b3b 100644 --- a/Controller/ApiAttributeController.php +++ b/Controller/ApiAttributeController.php @@ -61,12 +61,15 @@ final class ApiAttributeController extends Controller return; } - $type = SupplierAttributeTypeMapper::get()->with('defaults')->where('id', (int) $request->getData('type'))->execute(); + $type = SupplierAttributeTypeMapper::get() + ->with('defaults') + ->where('id', (int) $request->getData('type')) + ->execute(); if (!$type->repeatable) { $attr = SupplierAttributeMapper::count() ->with('type') - ->where('type/id', (int) $request->getData('type')) + ->where('type/id', $type->id) ->where('ref', (int) $request->getData('ref')) ->execute(); @@ -164,13 +167,20 @@ final class ApiAttributeController extends Controller ->where('id', $request->getDataInt('type') ?? 0) ->execute(); + if ($type->isInternal) { + $response->header->status = RequestStatusCode::R_403; + $this->createInvalidCreateResponse($request, $response, $val); + + return; + } + $attrValue = $this->createAttributeValueFromRequest($request, $type); $this->createModel($request->header->account, $attrValue, SupplierAttributeValueMapper::class, 'attr_value', $request->getOrigin()); if ($attrValue->isDefault) { $this->createModelRelation( $request->header->account, - (int) $request->getData('type'), + $type->id, $attrValue->id, SupplierAttributeTypeMapper::class, 'defaults', '', $request->getOrigin() ); diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 3574e2b..f664fe7 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -18,23 +18,21 @@ use Modules\Admin\Models\Account; use Modules\Admin\Models\NullAccount; use Modules\Media\Models\MediaMapper; use Modules\Media\Models\PathSettings; +use Modules\SupplierManagement\Models\Attribute\SupplierAttributeTypeMapper; use Modules\SupplierManagement\Models\SettingsEnum; use Modules\SupplierManagement\Models\Supplier; -use Modules\SupplierManagement\Models\Attribute\SupplierAttributeTypeMapper; use Modules\SupplierManagement\Models\SupplierL11nMapper; use Modules\SupplierManagement\Models\SupplierL11nTypeMapper; use Modules\SupplierManagement\Models\SupplierMapper; -use phpOMS\Api\Geocoding\Nominatim; use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\BaseStringL11nType; -use phpOMS\Localization\ISO3166TwoEnum; +use phpOMS\Localization\ISO639x1Enum; use phpOMS\Localization\NullBaseStringL11nType; use phpOMS\Message\Http\HttpRequest; +use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; -use phpOMS\Stdlib\Base\Address; -use phpOMS\Uri\HttpUri; /** * SupplierManagement class. @@ -46,8 +44,6 @@ use phpOMS\Uri\HttpUri; */ final class ApiController extends Controller { - use \Modules\Attribute\Controller\ApiAttributeTraitController; - /** * Api method to create news article * @@ -73,6 +69,19 @@ final class ApiController extends Controller $supplier = $this->createSupplierFromRequest($request); $this->createModel($request->header->account, $supplier, SupplierMapper::class, 'supplier', $request->getOrigin()); + // Create stock + if ($this->app->moduleManager->isActive('WarehouseManagement')) { + $internalResponse = new HttpResponse(); + $internalRequest = new HttpRequest($request->uri); + + $internalRequest->header->account = $request->header->account; + $internalRequest->setData('name', $supplier->number); + $internalRequest->setData('supplier', $supplier->id); + + $this->app->moduleManager->get('WarehouseManagement', 'Api') + ->apiStockCreate($internalRequest, $internalResponse); + } + $this->createSupplierSegmentation($request, $response, $supplier); $this->createStandardCreateResponse($request, $response, $supplier); @@ -101,25 +110,10 @@ final class ApiController extends Controller $supplier = new Supplier(); $supplier->number = $request->getDataString('number') ?? ''; $supplier->account = $account; - $supplier->unit = $request->getDataInt('unit') ?? 1; + $supplier->unit = $request->getDataInt('unit') ?? 1; - // Handle main address - $addr = new Address(); - $addr->address = $request->getDataString('address') ?? ''; - $addr->postal = $request->getDataString('postal') ?? ''; - $addr->city = $request->getDataString('city') ?? ''; - $addr->state = $request->getDataString('state') ?? ''; - $addr->setCountry($request->getDataString('country') ?? ISO3166TwoEnum::_XXX); - $supplier->mainAddress = $addr; - - // Try to find lat/lon through external API - $geocoding = Nominatim::geocoding($addr->country, $addr->city, $addr->address); - if ($geocoding === ['lat' => 0.0, 'lon' => 0.0]) { - $geocoding = Nominatim::geocoding($addr->country, $addr->city); - } - - $supplier->mainAddress->lat = $geocoding['lat']; - $supplier->mainAddress->lon = $geocoding['lon']; + $request->setData('name', null, true); + $supplier->mainAddress = $this->app->moduleManager->get('Admin', 'Api')->createAddressFromRequest($request); return $supplier; } @@ -134,13 +128,13 @@ final class ApiController extends Controller return; } - $types = SupplierAttributeTypeMapper::get() + $types = SupplierAttributeTypeMapper::getAll() ->where('name', \array_keys($segmentation), 'IN') ->execute(); foreach ($types as $type) { $internalResponse = clone $response; - $internalRequest = new HttpRequest(new HttpUri('')); + $internalRequest = new HttpRequest(); $internalRequest->header->account = $request->header->account; $internalRequest->setData('ref', $supplier->id); @@ -210,13 +204,11 @@ final class ApiController extends Controller */ private function createSupplierL11nFromRequest(RequestAbstract $request) : BaseStringL11n { - $supplierL11n = new BaseStringL11n(); - $supplierL11n->ref = $request->getDataInt('supplier') ?? 0; - $supplierL11n->type = new NullBaseStringL11nType($request->getDataInt('type') ?? 0); - $supplierL11n->setLanguage( - $request->getDataString('language') ?? $request->header->l11n->language - ); - $supplierL11n->content = $request->getDataString('description') ?? ''; + $supplierL11n = new BaseStringL11n(); + $supplierL11n->ref = $request->getDataInt('supplier') ?? 0; + $supplierL11n->type = new NullBaseStringL11nType($request->getDataInt('type') ?? 0); + $supplierL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; + $supplierL11n->content = $request->getDataString('description') ?? ''; return $supplierL11n; } diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 9fde4d3..aa1f00f 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -197,7 +197,7 @@ final class BackendController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function viewSupplierManagementSupplierProfile(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface + public function viewSupplierManagementSupplierView(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $head = $response->data['Content']->head; $nonce = $this->app->appSettings->getOption('script-nonce'); @@ -208,7 +208,7 @@ final class BackendController extends Controller $head->addAsset(AssetType::JSLATE, 'Modules/ClientManagement/Controller.js', ['nonce' => $nonce, 'type' => 'module']); $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/SupplierManagement/Theme/Backend/supplier-profile'); + $view->setTemplate('/Modules/SupplierManagement/Theme/Backend/supplier-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003202001, $request, $response); /** @var \Modules\SupplierManagement\Models\Supplier $supplier */ diff --git a/Models/Attribute/SupplierAttributeTypeMapper.php b/Models/Attribute/SupplierAttributeTypeMapper.php index d49ee3b..812d5ab 100644 --- a/Models/Attribute/SupplierAttributeTypeMapper.php +++ b/Models/Attribute/SupplierAttributeTypeMapper.php @@ -42,7 +42,8 @@ final class SupplierAttributeTypeMapper extends DataMapperFactory 'suppliermgmt_attr_type_datatype' => ['name' => 'suppliermgmt_attr_type_datatype', 'type' => 'int', 'internal' => 'datatype'], 'suppliermgmt_attr_type_fields' => ['name' => 'suppliermgmt_attr_type_fields', 'type' => 'int', 'internal' => 'fields'], 'suppliermgmt_attr_type_custom' => ['name' => 'suppliermgmt_attr_type_custom', 'type' => 'bool', 'internal' => 'custom'], - 'suppliermgmt_attr_type_repeatable' => ['name' => 'suppliermgmt_attr_type_repeatable', 'type' => 'bool', 'internal' => 'repeatable'], + 'suppliermgmt_attr_type_repeatable' => ['name' => 'suppliermgmt_attr_type_repeatable', 'type' => 'bool', 'internal' => 'repeatable'], + 'suppliermgmt_attr_type_internal' => ['name' => 'suppliermgmt_attr_type_internal', 'type' => 'bool', 'internal' => 'isInternal'], 'suppliermgmt_attr_type_pattern' => ['name' => 'suppliermgmt_attr_type_pattern', 'type' => 'string', 'internal' => 'validationPattern'], 'suppliermgmt_attr_type_required' => ['name' => 'suppliermgmt_attr_type_required', 'type' => 'bool', 'internal' => 'isRequired'], ]; diff --git a/Models/Attribute/SupplierAttributeValueL11nMapper.php b/Models/Attribute/SupplierAttributeValueL11nMapper.php index 86ff5b8..177cbf1 100644 --- a/Models/Attribute/SupplierAttributeValueL11nMapper.php +++ b/Models/Attribute/SupplierAttributeValueL11nMapper.php @@ -37,10 +37,10 @@ final class SupplierAttributeValueL11nMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'suppliermgmt_attr_value_l11n_id' => ['name' => 'suppliermgmt_attr_value_l11n_id', 'type' => 'int', 'internal' => 'id'], - 'suppliermgmt_attr_value_l11n_title' => ['name' => 'suppliermgmt_attr_value_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true], - 'suppliermgmt_attr_value_l11n_value' => ['name' => 'suppliermgmt_attr_value_l11n_value', 'type' => 'int', 'internal' => 'ref'], - 'suppliermgmt_attr_value_l11n_lang' => ['name' => 'suppliermgmt_attr_value_l11n_lang', 'type' => 'string', 'internal' => 'language'], + 'suppliermgmt_attr_value_l11n_id' => ['name' => 'suppliermgmt_attr_value_l11n_id', 'type' => 'int', 'internal' => 'id'], + 'suppliermgmt_attr_value_l11n_title' => ['name' => 'suppliermgmt_attr_value_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true], + 'suppliermgmt_attr_value_l11n_value' => ['name' => 'suppliermgmt_attr_value_l11n_value', 'type' => 'int', 'internal' => 'ref'], + 'suppliermgmt_attr_value_l11n_lang' => ['name' => 'suppliermgmt_attr_value_l11n_lang', 'type' => 'string', 'internal' => 'language'], ]; /** diff --git a/Models/Attribute/SupplierAttributeValueMapper.php b/Models/Attribute/SupplierAttributeValueMapper.php index fdff4f5..04284b5 100644 --- a/Models/Attribute/SupplierAttributeValueMapper.php +++ b/Models/Attribute/SupplierAttributeValueMapper.php @@ -37,15 +37,15 @@ final class SupplierAttributeValueMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'suppliermgmt_attr_value_id' => ['name' => 'suppliermgmt_attr_value_id', 'type' => 'int', 'internal' => 'id'], - 'suppliermgmt_attr_value_default' => ['name' => 'suppliermgmt_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'], - 'suppliermgmt_attr_value_valueStr' => ['name' => 'suppliermgmt_attr_value_valueStr', 'type' => 'string', 'internal' => 'valueStr'], - 'suppliermgmt_attr_value_valueInt' => ['name' => 'suppliermgmt_attr_value_valueInt', 'type' => 'int', 'internal' => 'valueInt'], - 'suppliermgmt_attr_value_valueDec' => ['name' => 'suppliermgmt_attr_value_valueDec', 'type' => 'float', 'internal' => 'valueDec'], - 'suppliermgmt_attr_value_valueDat' => ['name' => 'suppliermgmt_attr_value_valueDat', 'type' => 'DateTime', 'internal' => 'valueDat'], - 'suppliermgmt_attr_value_unit' => ['name' => 'suppliermgmt_attr_value_unit', 'type' => 'string', 'internal' => 'unit'], - 'suppliermgmt_attr_value_deptype' => ['name' => 'suppliermgmt_attr_value_deptype', 'type' => 'int', 'internal' => 'dependingAttributeType'], - 'suppliermgmt_attr_value_depvalue' => ['name' => 'suppliermgmt_attr_value_depvalue', 'type' => 'int', 'internal' => 'dependingAttributeValue'], + 'suppliermgmt_attr_value_id' => ['name' => 'suppliermgmt_attr_value_id', 'type' => 'int', 'internal' => 'id'], + 'suppliermgmt_attr_value_default' => ['name' => 'suppliermgmt_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'], + 'suppliermgmt_attr_value_valueStr' => ['name' => 'suppliermgmt_attr_value_valueStr', 'type' => 'string', 'internal' => 'valueStr'], + 'suppliermgmt_attr_value_valueInt' => ['name' => 'suppliermgmt_attr_value_valueInt', 'type' => 'int', 'internal' => 'valueInt'], + 'suppliermgmt_attr_value_valueDec' => ['name' => 'suppliermgmt_attr_value_valueDec', 'type' => 'float', 'internal' => 'valueDec'], + 'suppliermgmt_attr_value_valueDat' => ['name' => 'suppliermgmt_attr_value_valueDat', 'type' => 'DateTime', 'internal' => 'valueDat'], + 'suppliermgmt_attr_value_unit' => ['name' => 'suppliermgmt_attr_value_unit', 'type' => 'string', 'internal' => 'unit'], + 'suppliermgmt_attr_value_deptype' => ['name' => 'suppliermgmt_attr_value_deptype', 'type' => 'int', 'internal' => 'dependingAttributeType'], + 'suppliermgmt_attr_value_depvalue' => ['name' => 'suppliermgmt_attr_value_depvalue', 'type' => 'int', 'internal' => 'dependingAttributeValue'], ]; /** diff --git a/Models/Supplier.php b/Models/Supplier.php index 185d8c5..3c5df10 100755 --- a/Models/Supplier.php +++ b/Models/Supplier.php @@ -90,44 +90,6 @@ class Supplier $this->mainAddress = new NullAddress(); } - /** - * Get id. - * - * @return int Model id - * - * @since 1.0.0 - */ - public function getId() : int - { - return $this->id; - } - - /** - * Get status. - * - * @return int - * - * @since 1.0.0 - */ - public function getStatus() : int - { - return $this->status; - } - - /** - * Set status. - * - * @param int $status Status - * - * @return void - * - * @since 1.0.0 - */ - public function setStatus(int $status) : void - { - $this->status = $status; - } - /** * Get payments * @@ -154,7 +116,7 @@ class Supplier $payments = []; foreach ($this->payments as $payment) { - if ($payment->getType() === $type) { + if ($payment->type === $type) { $payments[] = $payment; } } @@ -162,32 +124,6 @@ class Supplier return $payments; } - /** - * Get supplier type. - * - * @return int - * - * @since 1.0.0 - */ - public function getType() : int - { - return $this->type; - } - - /** - * Set supplier type. - * - * @param int $type Type - * - * @return void - * - * @since 1.0.0 - */ - public function setType(int $type) : void - { - $this->type = $type; - } - /** * Add doc to item * @@ -293,7 +229,7 @@ class Supplier \uasort($this->contactElements, [$this, 'orderContactElements']); foreach ($this->contactElements as $element) { - if ($element->getType() === $type) { + if ($element->type === $type) { return $element; } } diff --git a/Models/SupplierL11nMapper.php b/Models/SupplierL11nMapper.php index 4824a3a..7a8369d 100755 --- a/Models/SupplierL11nMapper.php +++ b/Models/SupplierL11nMapper.php @@ -37,11 +37,11 @@ final class SupplierL11nMapper extends DataMapperFactory * @since 1.0.0 */ public const COLUMNS = [ - 'suppliermgmt_supplier_l11n_id' => ['name' => 'suppliermgmt_supplier_l11n_id', 'type' => 'int', 'internal' => 'id'], - 'suppliermgmt_supplier_l11n_description' => ['name' => 'suppliermgmt_supplier_l11n_description', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true], - 'suppliermgmt_supplier_l11n_supplier' => ['name' => 'suppliermgmt_supplier_l11n_supplier', 'type' => 'int', 'internal' => 'ref'], - 'suppliermgmt_supplier_l11n_lang' => ['name' => 'suppliermgmt_supplier_l11n_lang', 'type' => 'string', 'internal' => 'language'], - 'suppliermgmt_supplier_l11n_typeref' => ['name' => 'suppliermgmt_supplier_l11n_typeref', 'type' => 'int', 'internal' => 'type'], + 'suppliermgmt_supplier_l11n_id' => ['name' => 'suppliermgmt_supplier_l11n_id', 'type' => 'int', 'internal' => 'id'], + 'suppliermgmt_supplier_l11n_description' => ['name' => 'suppliermgmt_supplier_l11n_description', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true], + 'suppliermgmt_supplier_l11n_supplier' => ['name' => 'suppliermgmt_supplier_l11n_supplier', 'type' => 'int', 'internal' => 'ref'], + 'suppliermgmt_supplier_l11n_lang' => ['name' => 'suppliermgmt_supplier_l11n_lang', 'type' => 'string', 'internal' => 'language'], + 'suppliermgmt_supplier_l11n_typeref' => ['name' => 'suppliermgmt_supplier_l11n_typeref', 'type' => 'int', 'internal' => 'type'], ]; /** diff --git a/Models/SupplierMapper.php b/Models/SupplierMapper.php index 86db1bd..91489a3 100755 --- a/Models/SupplierMapper.php +++ b/Models/SupplierMapper.php @@ -18,7 +18,6 @@ use Modules\Admin\Models\AccountMapper; use Modules\Admin\Models\AddressMapper; use Modules\Editor\Models\EditorDocMapper; use Modules\Media\Models\MediaMapper; -use Modules\Profile\Models\ContactElementMapper; use Modules\SupplierManagement\Models\Attribute\SupplierAttributeMapper; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; @@ -102,29 +101,23 @@ final class SupplierMapper extends DataMapperFactory * @since 1.0.0 */ public const HAS_MANY = [ - 'files' => [ + 'files' => [ 'mapper' => MediaMapper::class, /* mapper of the related object */ 'table' => 'suppliermgmt_supplier_media', /* table of the related object, null if no relation table is used (many->1) */ 'external' => 'suppliermgmt_supplier_media_dst', 'self' => 'suppliermgmt_supplier_media_src', ], - 'notes' => [ + 'notes' => [ 'mapper' => EditorDocMapper::class, /* mapper of the related object */ 'table' => 'suppliermgmt_supplier_note', /* table of the related object, null if no relation table is used (many->1) */ 'external' => 'suppliermgmt_supplier_note_dst', 'self' => 'suppliermgmt_supplier_note_src', ], - 'contactElements' => [ - 'mapper' => ContactElementMapper::class, - 'table' => 'suppliermgmt_supplier_contactelement', - 'external' => 'suppliermgmt_supplier_contactelement_dst', - 'self' => 'suppliermgmt_supplier_contactelement_src', - ], 'attributes' => [ - 'mapper' => SupplierAttributeMapper::class, - 'table' => 'suppliermgmt_supplier_attr', - 'self' => 'suppliermgmt_supplier_attr_supplier', - 'external' => null, + 'mapper' => SupplierAttributeMapper::class, + 'table' => 'suppliermgmt_supplier_attr', + 'self' => 'suppliermgmt_supplier_attr_supplier', + 'external' => null, ], ]; } diff --git a/Theme/Backend/attribute-type.tpl.php b/Theme/Backend/attribute-type.tpl.php index 4fe87b6..1b693f8 100755 --- a/Theme/Backend/attribute-type.tpl.php +++ b/Theme/Backend/attribute-type.tpl.php @@ -53,7 +53,7 @@ echo $this->data['nav']->render(); ?>