Починил аналоги и поиск
This commit is contained in:
parent
856d4f1995
commit
c5e24d7838
|
@ -1052,11 +1052,11 @@ class ProfileController extends Controller
|
||||||
foreach (Supply::searchByImport($import->readId(), limit: 9999) as $supply) {
|
foreach (Supply::searchByImport($import->readId(), limit: 9999) as $supply) {
|
||||||
// Перебор найденных поставок
|
// Перебор найденных поставок
|
||||||
|
|
||||||
if (ImportEdgeSupply::searchBySupply($supply, limit: 1)?->delete() === 1) {
|
if (ImportEdgeSupply::searchBySupply($supply)?->delete()) {
|
||||||
// Удалено ребро: ИНСТАНЦИЯ ПОСТАВКИ -> ПОСТАВКА
|
// Удалено ребро: ИНСТАНЦИЯ ПОСТАВКИ -> ПОСТАВКА
|
||||||
|
|
||||||
// Удаление поставки
|
// Удаление поставки
|
||||||
if ($supply->delete() === 1) ++$deleted;
|
if ($supply->delete()) ++$deleted;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,4 +52,9 @@ class ImportEdgeSupply extends Edge
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function searchBySupply(Supply $supply): static
|
||||||
|
{
|
||||||
|
return static::find()->where(['_to' => $supply->readId()])->one();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,7 +173,17 @@ class Supply extends Product implements ProductInterface, OfferInterface
|
||||||
*/
|
*/
|
||||||
public static function searchByImport(string|null $id = null, int|null $limit = 10): array
|
public static function searchByImport(string|null $id = null, int|null $limit = 10): array
|
||||||
{
|
{
|
||||||
return static::find()->where(['_from' => $id])->limit($limit)->all();
|
// Инициализация буфера вывода
|
||||||
|
$supplies = [];
|
||||||
|
|
||||||
|
foreach (ImportEdgeSupply::find()->where(['_from' => $id])->limit($limit)->all() as $edge) {
|
||||||
|
// Перебор найденных рёбер
|
||||||
|
|
||||||
|
// Поиск поставки и запись в буфер вывода
|
||||||
|
$supplies[] = static::searchById($edge->_to);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $supplies;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -456,13 +466,16 @@ class Supply extends Product implements ProductInterface, OfferInterface
|
||||||
$amount = $row['Количество'] ?? $row['количество'] ?? $row['Amount'] ?? $row['amount'] ?? $row['amnt'] ?? 1;
|
$amount = $row['Количество'] ?? $row['количество'] ?? $row['Amount'] ?? $row['amount'] ?? $row['amnt'] ?? 1;
|
||||||
|
|
||||||
// Поиск аналогов
|
// Поиск аналогов
|
||||||
$analogs = explode(',', $row['Артикул'] ?? $row['артикул'] ?? $row['Article'] ?? $row['article'] ?? $row['catn'], 50);
|
$analogs = explode(',', (string) ($row['Аналоги'] ?? $row['аналоги'] ?? $row['Analogs'] ?? $row['analogs'] ?? $row['ОЕМ'] ?? $row['eom'] ?? ''), 50);
|
||||||
|
|
||||||
// Инициализация функции создания поставки
|
// Инициализация функции создания поставки
|
||||||
$create = function (string $_supply) use ($row, $analogs, &$created, &$updated, &$imported, $amount, $account): bool {
|
$create = function (string $_supply) use ($row, $analogs, &$created, &$updated, &$imported, $amount, $account): bool {
|
||||||
// Очистка
|
// Очистка
|
||||||
$_supply = trim($_supply);
|
$_supply = trim($_supply);
|
||||||
|
|
||||||
|
// Проверка на то, что передано пустое поле "Аналоги" (подразумевается)
|
||||||
|
if (empty($_supply)) return false;
|
||||||
|
|
||||||
// Инициализация буфера документов
|
// Инициализация буфера документов
|
||||||
$_row = [];
|
$_row = [];
|
||||||
|
|
||||||
|
@ -473,7 +486,7 @@ class Supply extends Product implements ProductInterface, OfferInterface
|
||||||
$_row['catn'] = $_supply;
|
$_row['catn'] = $_supply;
|
||||||
$_row['cost'] = (float) preg_replace('/[^\d\.]+/', '', preg_replace('/\,+/', ' ', $row['Стоимость'] ?? $row['стоимость'] ?? $row['Цена'] ?? $row['цена'] ?? $row['Cost'] ?? $row['cost'] ?? $row['Price'] ?? $row['price']));
|
$_row['cost'] = (float) preg_replace('/[^\d\.]+/', '', preg_replace('/\,+/', ' ', $row['Стоимость'] ?? $row['стоимость'] ?? $row['Цена'] ?? $row['цена'] ?? $row['Cost'] ?? $row['cost'] ?? $row['Price'] ?? $row['price']));
|
||||||
$_row['prod'] = $row['Производитель'] ?? $row['производитель'] ?? $row['Production'] ?? $row['production'] ?? $row['prod'];
|
$_row['prod'] = $row['Производитель'] ?? $row['производитель'] ?? $row['Production'] ?? $row['production'] ?? $row['prod'];
|
||||||
$_row['oemn'] = $analogs;
|
$_row['oemn'] = array_walk($analogs, 'trim');
|
||||||
|
|
||||||
// Инициализация буфера поставки
|
// Инициализация буфера поставки
|
||||||
$supply = new static($_row);
|
$supply = new static($_row);
|
||||||
|
@ -616,7 +629,6 @@ class Supply extends Product implements ProductInterface, OfferInterface
|
||||||
|
|
||||||
// if (isset($product->prod) && $product->prod === $supply->prod) {
|
// if (isset($product->prod) && $product->prod === $supply->prod) {
|
||||||
// // Производитель совпадает с тем, что указан в товаре
|
// // Производитель совпадает с тем, что указан в товаре
|
||||||
|
|
||||||
for ($i = 0; $i++ < $amount;) {
|
for ($i = 0; $i++ < $amount;) {
|
||||||
// Перебор создаваемых рёбер (так работает обозначение количества товаров в наличии)
|
// Перебор создаваемых рёбер (так работает обозначение количества товаров в наличии)
|
||||||
|
|
||||||
|
|
Reference in New Issue