АНАЛоги работают
This commit is contained in:
parent
bcc60fcd41
commit
e8454defc2
|
@ -393,11 +393,17 @@ class ProductController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
if ($from->synchronization($to) > 0) {
|
||||
if (count($from->synchronization($to)) > 0) {
|
||||
// Созданы рёбра
|
||||
|
||||
// Запись в буфер возврата
|
||||
$return['alert'] = 'Продукты успешно соединены';
|
||||
} else {
|
||||
// Не созданы рёбра
|
||||
|
||||
// Запись в буфер возврата
|
||||
$return['alert'] = 'Не удалось соединить продукты';
|
||||
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -145,6 +145,7 @@ class SearchController extends Controller
|
|||
'imgs' => 'imgs',
|
||||
'prod' => 'prod',
|
||||
'dmns' => 'dmns',
|
||||
'stts' => 'stts'
|
||||
])) {
|
||||
// Данные найдены по поиску в полях Каталожного номера
|
||||
|
||||
|
|
|
@ -197,7 +197,7 @@ class Product extends Document
|
|||
'file_image',
|
||||
'file',
|
||||
'skipOnEmpty' => false,
|
||||
'extensions' => ['jpg', 'jpeg', 'png', 'gif', 'webp'],
|
||||
'extensions' => ['jpg', 'jpeg', 'png', 'gif', 'webp', 'jfif'],
|
||||
'checkExtensionByMimeType' => true,
|
||||
'maxFiles' => 10,
|
||||
'maxSize' => 1024 * 1024 * 30,
|
||||
|
@ -451,8 +451,12 @@ class Product extends Document
|
|||
if ($analog = Product::searchById(self::collectionName() . "/$analog")) {
|
||||
// Найден товар
|
||||
|
||||
// Запись в буфер вывода
|
||||
$return[] = $analog;
|
||||
if (isset($analog->stts) && $analog->stts === 'active') {
|
||||
// Пройдена проверка по статусу
|
||||
|
||||
// Запись в буфер вывода
|
||||
$return[] = $analog;
|
||||
}
|
||||
} else {
|
||||
// Не найден товар
|
||||
}
|
||||
|
@ -482,22 +486,22 @@ class Product extends Document
|
|||
// Перебор связей для создания связей во всех товарах
|
||||
|
||||
// Удаление обрабатываемого товара из буферного списка товаров
|
||||
unset($_products[array_search($product, $_products)]);
|
||||
// unset($_products[array_search($product, $_products)]);
|
||||
|
||||
foreach ($_products as $_product) {
|
||||
// Перебор товаров из буфера
|
||||
|
||||
if ($from = self::searchById($product)) {
|
||||
// Товар найден
|
||||
} else {
|
||||
if ($from = Product::writeEmpty($product)) {
|
||||
// Удалось записать товар
|
||||
} else {
|
||||
// Не удалось записать товар
|
||||
// if ($from = self::searchById($product)) {
|
||||
// // Товар найден
|
||||
// } else {
|
||||
// if ($from = Product::writeEmpty($product)) {
|
||||
// // Удалось записать товар
|
||||
// } else {
|
||||
// // Не удалось записать товар
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
|
||||
if ($to = self::searchById($_product)) {
|
||||
// Товар найден
|
||||
|
@ -511,7 +515,7 @@ class Product extends Document
|
|||
}
|
||||
}
|
||||
|
||||
if ($edge = $from->connect($to)) {
|
||||
if ($edge = $this->connect($to)) {
|
||||
// Ребро создано
|
||||
|
||||
// Запись в буфер
|
||||
|
|
|
@ -426,12 +426,14 @@ class Search extends Document
|
|||
$empty_block = false;
|
||||
|
||||
// Инициализация счётчика поставок
|
||||
$supplies_amount = count($row['supplies']);
|
||||
$supplies_amount = count($row['supplies'] ?? []);
|
||||
|
||||
// Инициализация указателя номера цикла
|
||||
$supply_iterator = 1;
|
||||
|
||||
foreach (empty($row['supplies']) || count($row['supplies']) === 0 ? [null] : $row['supplies'] as $supply) {
|
||||
foreach (empty($row['supplies']) || $supplies_amount === 0 ? [null] : $row['supplies'] as $supply) {
|
||||
// Перебор поставок
|
||||
|
||||
// Инициализация модификатора класса
|
||||
if ($supplies_amount > $supply_iterator) {
|
||||
// Это не последняя строка с товаром и его поставками
|
||||
|
|
|
@ -181,7 +181,7 @@ $panel ?? $panel = 'profile_panel_supplies_input_import';
|
|||
<?= ++$amount_imports ?>.
|
||||
</div>
|
||||
<div class="col">
|
||||
<?= $import[0]->name ?? 'Без названия' ?>
|
||||
<?= $import->name ?? 'Без названия' ?>
|
||||
</div>
|
||||
<a class="pr-0 my-auto col-auto fas fa-file-download text-dark" title="Скачать" href="<?= $download ?? '/#' ?>" aria-hidden="true" download></a>
|
||||
<a class="my-auto col-auto fas fa-trash-alt text-dark" title="Удалить" type="button" aria-hidden="true" onclick="return page_profile_imports_delete(<?= $import->_key ?>);"></a>
|
||||
|
|
|
@ -27,6 +27,10 @@ use app\models\Search;
|
|||
|
||||
<?php else : ?>
|
||||
<?php if (isset($response) && is_array($response) && $response) : ?>
|
||||
<?php
|
||||
// Инициализация реестра пустышек (товаров без поставок или с ошибками)
|
||||
$empties = [];
|
||||
?>
|
||||
|
||||
<section class="mb-4 col-auto">
|
||||
<h4 class="ml-4 mb-3">Товары по запросу: "<?= $query ?? 'ошибка чтения запроса' ?>"</h4>
|
||||
|
@ -38,9 +42,6 @@ use app\models\Search;
|
|||
$prod = $row['prod'] ?? 'Неизвестно';
|
||||
$catn = $row['catn'] ?? 'Неизвестно';
|
||||
|
||||
// Инициализация реестра пустышек (товаров без поставок или с ошибками)
|
||||
$empties = [];
|
||||
|
||||
// Генерация списка товаров
|
||||
$supplies_html = Search::generate($row, $covr, $empties);
|
||||
?>
|
||||
|
@ -63,40 +64,59 @@ use app\models\Search;
|
|||
|
||||
<?php if (!empty($empties)) : ?>
|
||||
<section class="col">
|
||||
<?php foreach ($empties as $catn) : ?>
|
||||
<h4 class="ml-4 mb-3">Аналогичные товары</h4>
|
||||
<?php
|
||||
// Инициализация буфера аналоdasdasdгов
|
||||
$analogs = [];
|
||||
|
||||
<?php if ($products = Search::content(products: Product::searchAnalogs($catn))) : ?>
|
||||
// Инициализация буфера записанных аналогов
|
||||
$writed = [];
|
||||
|
||||
<h4 class="ml-4 mb-3">Аналогичные товары</h4>
|
||||
foreach ($empties as $catn) {
|
||||
// Перебор товаров без поставок
|
||||
|
||||
<?php foreach ($products as $product) : ?>
|
||||
<?php
|
||||
// Инициализация данных товара
|
||||
$covr = null;
|
||||
$prod = $product['prod'] ?? 'Неизвестно';
|
||||
$catn = $product['catn'] ?? 'Неизвестно';
|
||||
// Чтение и запись asdasdas
|
||||
$analogs[$catn] = Search::content(products: Product::searchAnalogs($catn));
|
||||
|
||||
// Генерация списка товаров
|
||||
$supplies_html = Search::generate($product, $covr);
|
||||
?>
|
||||
<div class="col mb-2">
|
||||
<div class="row p-2 rounded">
|
||||
<img class="ml-0 rounded" src="<?= $covr ?>" />
|
||||
<div class="col-3 ml-3 p-0 d-flex flex-column row_fixed_height">
|
||||
<a class="my-auto text-dark" href="/product/<?= $catn ?>">
|
||||
<h5 class="m-0"><?= $catn ?></h5>
|
||||
<h6 class="m-0"><small><?= $prod ?></small></h6>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col ml-3 p-0 d-flex flex-column">
|
||||
<?= $supplies_html ?>
|
||||
</div>
|
||||
// Исключение из вывода в списке аналогов
|
||||
$writed[$catn] = true;
|
||||
}
|
||||
?>
|
||||
<?php foreach ($analogs as $products) : ?>
|
||||
<?php foreach ($products as $product) : ?>
|
||||
<?php
|
||||
// Проверка на дубликат
|
||||
if (array_key_exists($product['catn'], $writed)) continue;
|
||||
|
||||
// Инициализация данных товара
|
||||
$covr = null;
|
||||
$prod = $product['prod'] ?? 'Неизвестно';
|
||||
$catn = $product['catn'] ?? 'Неизвестно';
|
||||
|
||||
// Генерация списка товаров
|
||||
$supplies_html = Search::generate($product, $covr);
|
||||
?>
|
||||
|
||||
<div class="col mb-2">
|
||||
<div class="row p-2 rounded">
|
||||
<img class="ml-0 rounded" src="<?= $covr ?>" />
|
||||
<div class="col-3 ml-3 p-0 d-flex flex-column row_fixed_height">
|
||||
<a class="my-auto text-dark" href="/product/<?= $catn ?>">
|
||||
<h5 class="m-0"><?= $catn ?></h5>
|
||||
<h6 class="m-0"><small><?= $prod ?></small></h6>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col ml-3 p-0 d-flex flex-column">
|
||||
<?= $supplies_html ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach ?>
|
||||
|
||||
<?php endif ?>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
// Запись в буфер записанных аналогов
|
||||
$writed[$product['catn']] = true;
|
||||
?>
|
||||
<?php endforeach ?>
|
||||
<?php endforeach ?>
|
||||
</section>
|
||||
<?php endif ?>
|
||||
|
|
Reference in New Issue