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

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'] = 'Продукты успешно соединены'; $return['alert'] = 'Продукты успешно соединены';
} else {
// Не созданы рёбра
// Запись в буфер возврата
$return['alert'] = 'Не удалось соединить продукты';
} }
} }
} else { } else {

View File

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

View File

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

View File

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

View File

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

View File

@ -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,40 +64,59 @@ use app\models\Search;
<?php if (!empty($empties)) : ?> <?php if (!empty($empties)) : ?>
<section class="col"> <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) : ?> // Чтение и запись asdasdas
<?php $analogs[$catn] = Search::content(products: Product::searchAnalogs($catn));
// Инициализация данных товара
$covr = null;
$prod = $product['prod'] ?? 'Неизвестно';
$catn = $product['catn'] ?? 'Неизвестно';
// Генерация списка товаров // Исключение из вывода в списке аналогов
$supplies_html = Search::generate($product, $covr); $writed[$catn] = true;
?> }
<div class="col mb-2"> ?>
<div class="row p-2 rounded"> <?php foreach ($analogs as $products) : ?>
<img class="ml-0 rounded" src="<?= $covr ?>" /> <?php foreach ($products as $product) : ?>
<div class="col-3 ml-3 p-0 d-flex flex-column row_fixed_height"> <?php
<a class="my-auto text-dark" href="/product/<?= $catn ?>"> // Проверка на дубликат
<h5 class="m-0"><?= $catn ?></h5> if (array_key_exists($product['catn'], $writed)) continue;
<h6 class="m-0"><small><?= $prod ?></small></h6>
</a> // Инициализация данных товара
</div> $covr = null;
<div class="col ml-3 p-0 d-flex flex-column"> $prod = $product['prod'] ?? 'Неизвестно';
<?= $supplies_html ?> $catn = $product['catn'] ?? 'Неизвестно';
</div>
// Генерация списка товаров
$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>
</div> </div>
<?php endforeach ?> </div>
<?php endif ?>
<?php
// Запись в буфер записанных аналогов
$writed[$product['catn']] = true;
?>
<?php endforeach ?>
<?php endforeach ?> <?php endforeach ?>
</section> </section>
<?php endif ?> <?php endif ?>