АНАЛоги работают

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2022-03-23 12:59:31 +10:00
parent bcc60fcd41
commit e8454defc2
6 changed files with 82 additions and 49 deletions

View File

@ -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 {

View File

@ -145,6 +145,7 @@ class SearchController extends Controller
'imgs' => 'imgs',
'prod' => 'prod',
'dmns' => 'dmns',
'stts' => 'stts'
])) {
// Данные найдены по поиску в полях Каталожного номера

View File

@ -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)) {
// Ребро создано
// Запись в буфер

View File

@ -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) {
// Это не последняя строка с товаром и его поставками

View File

@ -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>

View File

@ -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 ?>