code fixes

This commit is contained in:
Dennis Eichhorn 2024-03-15 20:24:39 +00:00
parent e6006238b4
commit bd64e5cb31
5 changed files with 31 additions and 14 deletions

View File

@ -18,10 +18,10 @@ use Modules\SupplierManagement\Models\SettingsEnum;
return [ return [
[ [
"description" => "Default item segmentation (segment, section, sales group, product group)", "description" => "Default item segmentation (segment, section, sales group, product group)",
'type' => 'setting', 'type' => 'setting',
'name' => SettingsEnum::DEFAULT_SEGMENTATION, 'name' => SettingsEnum::DEFAULT_SEGMENTATION,
'content' => '{"segment":1, "section":1, "supplier_group":1}', 'content' => '{"segment":1, "section":1, "supplier_group":1}',
'pattern' => '', 'pattern' => '',
'module' => ApiController::NAME, 'module' => ApiController::NAME,
], ],
]; ];

View File

@ -310,6 +310,7 @@
{ "value": "FI" }, { "value": "FI" },
{ "value": "FR" }, { "value": "FR" },
{ "value": "DE" }, { "value": "DE" },
{ "value": "DE_0" },
{ "value": "GR" }, { "value": "GR" },
{ "value": "HU" }, { "value": "HU" },
{ "value": "IE" }, { "value": "IE" },

View File

@ -61,8 +61,9 @@ final class Installer extends InstallerAbstract
$attrValues = self::createSupplierAttributeValues($app, $attrTypes, $attributes); $attrValues = self::createSupplierAttributeValues($app, $attrTypes, $attributes);
$data = include __DIR__ . '/Install/Admin.install.php'; $data = include __DIR__ . '/Install/Admin.install.php';
$content = \json_decode($data[0]['content'], true);
/** @var array $content */
$content = \json_decode($data[0]['content'], true);
foreach ($content as $type => $_) { foreach ($content as $type => $_) {
$content[$type] = \reset($attrValues[$type])['id']; $content[$type] = \reset($attrValues[$type])['id'];
} }

View File

@ -118,16 +118,31 @@ final class ApiController extends Controller
return $supplier; return $supplier;
} }
/**
* Create supplier segmentation.
*
* Default: segment->section->sales_group and to the side supplier_type
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param Supplier $supplier Supplier
*
* @return void
*
* @since 1.0.0
*/
private function createSupplierSegmentation(RequestAbstract $request, ResponseAbstract $response, Supplier $supplier) : void private function createSupplierSegmentation(RequestAbstract $request, ResponseAbstract $response, Supplier $supplier) : void
{ {
/** @var \Model\Setting $settings */ /** @var \Model\Setting $settings */
$settings = $this->app->appSettings->get(null, SettingsEnum::DEFAULT_SEGMENTATION); $settings = $this->app->appSettings->get(null, SettingsEnum::DEFAULT_SEGMENTATION);
/** @var array $segmentation */
$segmentation = \json_decode($settings->content, true); $segmentation = \json_decode($settings->content, true);
if ($segmentation === false || $segmentation === null) { if ($segmentation === false || $segmentation === null) {
return; return;
} }
/** @var \Modules\Attribute\Models\AttributeType[] $types */
$types = SupplierAttributeTypeMapper::getAll() $types = SupplierAttributeTypeMapper::getAll()
->where('name', \array_keys($segmentation), 'IN') ->where('name', \array_keys($segmentation), 'IN')
->execute(); ->execute();

View File

@ -48,7 +48,7 @@ final class SearchController extends Controller
*/ */
public function searchGeneral(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function searchGeneral(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
$names = \explode(' ', ($request->getDataString('search') ?? '')); $names = \explode(' ', ($request->getDataString('search') ?? ''));
$names[] = ($request->getDataString('search') ?? ''); $names[] = ($request->getDataString('search') ?? '');
$mapper = SupplierMapper::getAll() $mapper = SupplierMapper::getAll()
@ -72,7 +72,7 @@ final class SearchController extends Controller
// Get item profile image // Get item profile image
// @feature Create a new read mapper function that returns relation models instead of its own model // @feature Create a new read mapper function that returns relation models instead of its own model
// https://github.com/Karaka-Management/phpOMS/issues/320 // https://github.com/Karaka-Management/phpOMS/issues/320
$query = new Builder($this->app->dbPool->get()); $query = new Builder($this->app->dbPool->get());
$iResults = $query->selectAs(SupplierMapper::HAS_MANY['files']['external'], 'file') $iResults = $query->selectAs(SupplierMapper::HAS_MANY['files']['external'], 'file')
->from(SupplierMapper::TABLE) ->from(SupplierMapper::TABLE)
->leftJoin(SupplierMapper::HAS_MANY['files']['table']) ->leftJoin(SupplierMapper::HAS_MANY['files']['table'])
@ -92,17 +92,17 @@ final class SearchController extends Controller
->execute(); ->execute();
$results[] = [ $results[] = [
'title' => $account->account->name1 . ' ' . $account->account->name2, 'title' => $account->account->name1 . ' ' . $account->account->name2,
'link' => '{/base}/purchase/supplier/view?id=' . $account->id, 'link' => '{/base}/purchase/supplier/view?id=' . $account->id,
'email' => $account->account->getContactByType(ContactType::EMAIL)->content, 'email' => $account->account->getContactByType(ContactType::EMAIL)->content,
'phone' => $account->account->getContactByType(ContactType::PHONE)->content, 'phone' => $account->account->getContactByType(ContactType::PHONE)->content,
'city' => $account->mainAddress?->city, 'city' => $account->mainAddress->city,
'image' => $image->id === 0 'image' => $image->id === 0
? 'Web/Backend/img/logo_grey.png' ? 'Web/Backend/img/logo_grey.png'
: $image->getPath(), : $image->getPath(),
'tags' => [], 'tags' => [],
'type' => 'list_accounts', 'type' => 'list_accounts',
'module' => 'Supplier Management', 'module' => 'Supplier Management',
]; ];
} }