АНАЛоги работают
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'] = 'Продукты успешно соединены';
|
$return['alert'] = 'Продукты успешно соединены';
|
||||||
|
} else {
|
||||||
|
// Не созданы рёбра
|
||||||
|
|
||||||
|
// Запись в буфер возврата
|
||||||
|
$return['alert'] = 'Не удалось соединить продукты';
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -145,6 +145,7 @@ class SearchController extends Controller
|
||||||
'imgs' => 'imgs',
|
'imgs' => 'imgs',
|
||||||
'prod' => 'prod',
|
'prod' => 'prod',
|
||||||
'dmns' => 'dmns',
|
'dmns' => 'dmns',
|
||||||
|
'stts' => 'stts'
|
||||||
])) {
|
])) {
|
||||||
// Данные найдены по поиску в полях Каталожного номера
|
// Данные найдены по поиску в полях Каталожного номера
|
||||||
|
|
||||||
|
|
|
@ -197,7 +197,7 @@ class Product extends Document
|
||||||
'file_image',
|
'file_image',
|
||||||
'file',
|
'file',
|
||||||
'skipOnEmpty' => false,
|
'skipOnEmpty' => false,
|
||||||
'extensions' => ['jpg', 'jpeg', 'png', 'gif', 'webp'],
|
'extensions' => ['jpg', 'jpeg', 'png', 'gif', 'webp', 'jfif'],
|
||||||
'checkExtensionByMimeType' => true,
|
'checkExtensionByMimeType' => true,
|
||||||
'maxFiles' => 10,
|
'maxFiles' => 10,
|
||||||
'maxSize' => 1024 * 1024 * 30,
|
'maxSize' => 1024 * 1024 * 30,
|
||||||
|
@ -451,8 +451,12 @@ class Product extends Document
|
||||||
if ($analog = Product::searchById(self::collectionName() . "/$analog")) {
|
if ($analog = Product::searchById(self::collectionName() . "/$analog")) {
|
||||||
// Найден товар
|
// Найден товар
|
||||||
|
|
||||||
|
if (isset($analog->stts) && $analog->stts === 'active') {
|
||||||
|
// Пройдена проверка по статусу
|
||||||
|
|
||||||
// Запись в буфер вывода
|
// Запись в буфер вывода
|
||||||
$return[] = $analog;
|
$return[] = $analog;
|
||||||
|
}
|
||||||
} else {
|
} 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) {
|
foreach ($_products as $_product) {
|
||||||
// Перебор товаров из буфера
|
// Перебор товаров из буфера
|
||||||
|
|
||||||
if ($from = self::searchById($product)) {
|
// if ($from = self::searchById($product)) {
|
||||||
// Товар найден
|
// // Товар найден
|
||||||
} else {
|
// } else {
|
||||||
if ($from = Product::writeEmpty($product)) {
|
// if ($from = Product::writeEmpty($product)) {
|
||||||
// Удалось записать товар
|
// // Удалось записать товар
|
||||||
} else {
|
// } else {
|
||||||
// Не удалось записать товар
|
// // Не удалось записать товар
|
||||||
|
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
if ($to = self::searchById($_product)) {
|
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;
|
$empty_block = false;
|
||||||
|
|
||||||
// Инициализация счётчика поставок
|
// Инициализация счётчика поставок
|
||||||
$supplies_amount = count($row['supplies']);
|
$supplies_amount = count($row['supplies'] ?? []);
|
||||||
|
|
||||||
// Инициализация указателя номера цикла
|
// Инициализация указателя номера цикла
|
||||||
$supply_iterator = 1;
|
$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) {
|
if ($supplies_amount > $supply_iterator) {
|
||||||
// Это не последняя строка с товаром и его поставками
|
// Это не последняя строка с товаром и его поставками
|
||||||
|
|
|
@ -181,7 +181,7 @@ $panel ?? $panel = 'profile_panel_supplies_input_import';
|
||||||
<?= ++$amount_imports ?>.
|
<?= ++$amount_imports ?>.
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<?= $import[0]->name ?? 'Без названия' ?>
|
<?= $import->name ?? 'Без названия' ?>
|
||||||
</div>
|
</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="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>
|
<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 else : ?>
|
||||||
<?php if (isset($response) && is_array($response) && $response) : ?>
|
<?php if (isset($response) && is_array($response) && $response) : ?>
|
||||||
|
<?php
|
||||||
|
// Инициализация реестра пустышек (товаров без поставок или с ошибками)
|
||||||
|
$empties = [];
|
||||||
|
?>
|
||||||
|
|
||||||
<section class="mb-4 col-auto">
|
<section class="mb-4 col-auto">
|
||||||
<h4 class="ml-4 mb-3">Товары по запросу: "<?= $query ?? 'ошибка чтения запроса' ?>"</h4>
|
<h4 class="ml-4 mb-3">Товары по запросу: "<?= $query ?? 'ошибка чтения запроса' ?>"</h4>
|
||||||
|
@ -38,9 +42,6 @@ use app\models\Search;
|
||||||
$prod = $row['prod'] ?? 'Неизвестно';
|
$prod = $row['prod'] ?? 'Неизвестно';
|
||||||
$catn = $row['catn'] ?? 'Неизвестно';
|
$catn = $row['catn'] ?? 'Неизвестно';
|
||||||
|
|
||||||
// Инициализация реестра пустышек (товаров без поставок или с ошибками)
|
|
||||||
$empties = [];
|
|
||||||
|
|
||||||
// Генерация списка товаров
|
// Генерация списка товаров
|
||||||
$supplies_html = Search::generate($row, $covr, $empties);
|
$supplies_html = Search::generate($row, $covr, $empties);
|
||||||
?>
|
?>
|
||||||
|
@ -63,14 +64,30 @@ use app\models\Search;
|
||||||
|
|
||||||
<?php if (!empty($empties)) : ?>
|
<?php if (!empty($empties)) : ?>
|
||||||
<section class="col">
|
<section class="col">
|
||||||
<?php foreach ($empties as $catn) : ?>
|
|
||||||
|
|
||||||
<?php if ($products = Search::content(products: Product::searchAnalogs($catn))) : ?>
|
|
||||||
|
|
||||||
<h4 class="ml-4 mb-3">Аналогичные товары</h4>
|
<h4 class="ml-4 mb-3">Аналогичные товары</h4>
|
||||||
|
<?php
|
||||||
|
// Инициализация буфера аналоdasdasdгов
|
||||||
|
$analogs = [];
|
||||||
|
|
||||||
|
// Инициализация буфера записанных аналогов
|
||||||
|
$writed = [];
|
||||||
|
|
||||||
|
foreach ($empties as $catn) {
|
||||||
|
// Перебор товаров без поставок
|
||||||
|
|
||||||
|
// Чтение и запись asdasdas
|
||||||
|
$analogs[$catn] = Search::content(products: Product::searchAnalogs($catn));
|
||||||
|
|
||||||
|
// Исключение из вывода в списке аналогов
|
||||||
|
$writed[$catn] = true;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<?php foreach ($analogs as $products) : ?>
|
||||||
<?php foreach ($products as $product) : ?>
|
<?php foreach ($products as $product) : ?>
|
||||||
<?php
|
<?php
|
||||||
|
// Проверка на дубликат
|
||||||
|
if (array_key_exists($product['catn'], $writed)) continue;
|
||||||
|
|
||||||
// Инициализация данных товара
|
// Инициализация данных товара
|
||||||
$covr = null;
|
$covr = null;
|
||||||
$prod = $product['prod'] ?? 'Неизвестно';
|
$prod = $product['prod'] ?? 'Неизвестно';
|
||||||
|
@ -79,6 +96,7 @@ use app\models\Search;
|
||||||
// Генерация списка товаров
|
// Генерация списка товаров
|
||||||
$supplies_html = Search::generate($product, $covr);
|
$supplies_html = Search::generate($product, $covr);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="col mb-2">
|
<div class="col mb-2">
|
||||||
<div class="row p-2 rounded">
|
<div class="row p-2 rounded">
|
||||||
<img class="ml-0 rounded" src="<?= $covr ?>" />
|
<img class="ml-0 rounded" src="<?= $covr ?>" />
|
||||||
|
@ -93,10 +111,12 @@ use app\models\Search;
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
// Запись в буфер записанных аналогов
|
||||||
|
$writed[$product['catn']] = true;
|
||||||
|
?>
|
||||||
<?php endforeach ?>
|
<?php endforeach ?>
|
||||||
|
|
||||||
<?php endif ?>
|
|
||||||
|
|
||||||
<?php endforeach ?>
|
<?php endforeach ?>
|
||||||
</section>
|
</section>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
|
|
Reference in New Issue