->indexBy('product_id')
->column();
- $providers = ShipmentProviders::find()
- ->select(['id', 'name'])
- ->indexBy('id')
- ->column();
-
- $optionsData = Products1cOptions::find()
- ->select(['id', 'colors'])
- ->all();
-
- $colorsProducts = [];
- foreach ($optionsData as $option) {
- $colorsProducts[$option->id] = explode(';', $option->colors);
- }
-
- $varietiesData = ProductsVarieties::find()
- ->select(['product_id', 'color', 'name'])
- ->orderBy(['posit' => SORT_DESC])
- ->all();
-
- $products_varieties = [];
- foreach ($varietiesData as $variety) {
- $products_varieties[$variety->product_id][$variety->color][] = $variety->name;
- }
-
return $this->asJson([
'data' => $data,
'prices' => $prices,
- 'providers' => $providers,
- 'colorsProducts' => $colorsProducts,
- 'productsVarieties' => $products_varieties,
'parent_id' => $parent_id,
]);
}
return;
}
- const {data, prices, providers, colorsProducts, productsVarieties} = response;
+ const {data, prices} = response;
let tableHtml = '<table class="table table-sm table-hover"><tbody>';
data.forEach((row) => {
const isHidden = row.view === 0 ? '<span class="btn btn-sm btn-danger">скрыто</span>' : '';
- /*const providerButton = `<div id="provider_${row.id}" class="btn btn-sm btn-warning"
- onclick="ajax_product_provider('${row.id}');">
- + поставщика ${providers[row.id] ? providers[row.id] : ''}</div>`;*/
+
const addCharButton = `<div id="provider_${row.id}" class="btn btn-sm btn-primary"
onclick="ajax_product_characteristics('${row.id}');">
Доп. характеристики </div>`;
- let colorsHtml = '';
- if (colorsProducts[row.id]) {
- colorsProducts[row.id].forEach((color) => {
- color = color.trim();
- if (color) {
- colorsHtml += `<span class="btn btn-sm btn-info me-1 mt-1 mb-1">${color}</span>`;
- if (productsVarieties[row.id] && productsVarieties[row.id][color]) {
- productsVarieties[row.id][color].forEach((variety) => {
- colorsHtml += `<span class="btn btn-sm btn-warning me-2">${variety}</span>`;
- });
- }
- }
- });
-
- if (colorsHtml) {
- colorsHtml += `<a href="/products/productVarieties/?id=${row.id}" target="_new" class="btn btn-info btn-sm">+ добавить сорта</a>`;
- }
- }
- const price = `<div id="diver_${row.id}" class="btn btn-primary">
+ const price = `<div id="diver_${row.id}" class="btn btn-primary">
Цена: ${prices[row.id] || 'Нет цены'}</div>`;
- const removeProductButtons = row.entity_id
- ? `<div id="diver_${row.id}" class="btn btn-sm btn-danger" onclick="ajax_remove_product('${row.id}');">удалить продукт</div>
- <div id="diver2_${row.id}" class="btn btn-sm btn-danger" onclick="ajaxRemoveExport('${row.id}');">удалить только связь</div>`
- : '';
-
tableHtml += `
<tr class="${row.entity_id ? '' : 'bg-gray-500'}">
<td>