Починил аналоги и поиск
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) {
|
||||
// Перебор найденных поставок
|
||||
|
||||
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
|
||||
{
|
||||
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;
|
||||
|
||||
// Поиск аналогов
|
||||
$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 {
|
||||
// Очистка
|
||||
$_supply = trim($_supply);
|
||||
|
||||
// Проверка на то, что передано пустое поле "Аналоги" (подразумевается)
|
||||
if (empty($_supply)) return false;
|
||||
|
||||
// Инициализация буфера документов
|
||||
$_row = [];
|
||||
|
||||
|
@ -473,7 +486,7 @@ class Supply extends Product implements ProductInterface, OfferInterface
|
|||
$_row['catn'] = $_supply;
|
||||
$_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['oemn'] = $analogs;
|
||||
$_row['oemn'] = array_walk($analogs, 'trim');
|
||||
|
||||
// Инициализация буфера поставки
|
||||
$supply = new static($_row);
|
||||
|
@ -616,7 +629,6 @@ class Supply extends Product implements ProductInterface, OfferInterface
|
|||
|
||||
// if (isset($product->prod) && $product->prod === $supply->prod) {
|
||||
// // Производитель совпадает с тем, что указан в товаре
|
||||
|
||||
for ($i = 0; $i++ < $amount;) {
|
||||
// Перебор создаваемых рёбер (так работает обозначение количества товаров в наличии)
|
||||
|
||||
|
|
Reference in New Issue