Your IP : 3.22.171.120
<?
use Webprofy\Offersgroup\Conflicts;
use Webprofy\Offersgroup\OffersGroupMain;
use Webprofy\Offersgroup\PropertiesMain;
use Webprofy\Offersgroup\RelationMain;
$arGroupFullInfo = array();
if ($_POST['productID']) {
//Выбрать группы по товару
$productID = intval($_POST['productID']);
$arGroup = OffersGroupMain::getGroupByProduct($productID);
//Выбрать заголовки для таблиц
$allRelation = RelationMain::getAllRelation();
$arProductsInfo = RelationMain::getProductsInfo();
$productIblockID = $arProductsInfo['RELATION_BITRIX_ID'];
$productName = PropertiesMain::getIblockData($productID, $productIblockID);
$conflictsCount = 0;
$conflictsGroupFilterID = [];
//Выбрать значения из справочника
if (!empty($arGroup) && is_array($arGroup)) {
foreach ($arGroup as $item) {
$arGroupFullInfo[$item] = OffersGroupMain::getGroupInfo($item);
//Получим свойства для каждой группу
$arProperty = OffersGroupMain::getPropertiesNameAndID($item);
//Имена и id для селектов
$arGroupFullInfo[$item]['PROPERTIES'] = $arProperty['PROPERTIES_NAME'];
if (intval($arGroupFullInfo[$item]['ACTIVE']) > 0) {
$arConflictsDeleted = Conflicts::isConflictsDeleted($arProperty['PROPERTIES_ID'], $arProperty['PROPERTIES_NAME']);
$arConflicts = Conflicts::isConflict($item, $arProperty['PROPERTIES_PRODUCTS_ID'],
$arProperty['PROPERTIES_ID']);
if (!empty($arConflicts)) {
$arGroupFullInfo[$item]['IS_CONFLICT'] = true;
$conflictsGroupFilterID[] = array_keys($arConflicts);
$conflictsCount++;
}
if(!empty($arConflictsDeleted) && ! $arGroupFullInfo[$item]['IS_CONFLICT']){
$arGroupFullInfo[$item]['IS_CONFLICT'] = true;
}
}
}
}
$sTableID = "tbl_offers_group"; // ID таблицы
$oSort = new CAdminSorting($sTableID, "ID", "desc"); // объект сортировки
$lAdmin = new CAdminList($sTableID, $oSort); // основной объект списка
$rsData = array();
// преобразуем список в экземпляр класса CAdminResult
$rsData = new CAdminResult($rsData, $sTableID);
// аналогично CDBResult инициализируем постраничную навигацию.
$rsData->NavStart();
// отправим вывод переключателя страниц в основной объект $lAdmin
$lAdmin->NavText($rsData->GetNavPrint('Next')); ?>
<?
$arHeaders = [
[
'id' => 'ID',
'content' => 'ID',
'default' => true,
'sort' => 'ID',
],
[
'id' => 'ACTIVE',
'content' => 'Активность',
'default' => true,
'sort' => 'ACTIVE',
],
];
foreach ($allRelation as $item) {
$headers = array();
$headers['id'] = $item['ID'];
$headers['content'] = $item['RELATION_NAME'];
$headers['default'] = true;
$headers['sort'] = $item['RELATION_ID'];
$arHeaders[] = $headers;
}
$headers['id'] = 'PRICE';
$headers['content'] = 'Цена';
$headers['default'] = true;
$headers['sort'] = 'PRICE';
$arHeaders[] = $headers;
$lAdmin->AddHeaders($arHeaders);
foreach ($arGroupFullInfo as $groupID => $group) {
$row = &$lAdmin->AddRow($groupID, $arGroupInfo);
$row->AddViewField("ID",
'<span class="groupID" data-group-id="' . $groupID . '" data-conflict="' . $group['IS_CONFLICT'] . '">' . $groupID . '</span>');
$groupActive = '<input type="hidden" name="active" value="' .$group['ACTIVE'] . '">';
$groupActive .= $group['ACTIVE'] ? 'Да' : 'Нет';
$row->AddViewField("ACTIVE", $groupActive);
foreach ($allRelation as $relationKey => $item) {
$data = $group['PROPERTIES'][$relationKey] ? implode(', ', $group['PROPERTIES'][$relationKey]) : "";
$row->AddViewField($relationKey, $data);
}
$row->AddViewField("PRICE", $group['PRICE']);
$arActions = array();
$arActions[] = array(
"ICON" => "delete",
"TEXT" => "Удалить",
"ACTION" => 'WebprofyOffersGroup.action.createModal(WebprofyOffersGroup.action.deleteGroup, ' . $groupID . ');'
);
if ($arGroupFullInfo[$groupID]['ACTIVE']) {
$arActions[] = array(
"ICON" => "edit",
"TEXT" => "Деактивировать",
"ACTION" => 'WebprofyOffersGroup.action.createModal(WebprofyOffersGroup.action.deactivateGroup, ' . $groupID . ');',
);
} else {
$arActions[] = array(
"ICON" => "edit",
"TEXT" => "Активировать",
"ACTION" => 'WebprofyOffersGroup.action.activateGroup(' . $groupID . ');',
);
}
$row->AddActions($arActions);
}
$lAdmin->AddGroupActionTable(
array(
"deleteGroup" => array(
"action" => "WebprofyOffersGroup.action.createModal(WebprofyOffersGroup.action.deleteGroup, '');",
"type" => "button",
"name" => 'Удалить'
),
"activate" => array(
"action" => "WebprofyOffersGroup.action.activateGroup();",
"type" => "button",
"name" => 'Активировать'
),
"deactivate" => array(
"action" => "WebprofyOffersGroup.action.createModal(WebprofyOffersGroup.action.deactivateGroup, '');",
"type" => "button",
"name" => 'Деактивировать'
),
),
array(
'disable_action_target' => false,
)
); ?>
<? if ($conflictsCount > 0): ?>
<div class="conflict-block">Внимание, конфликт! Есть <?= $conflictsCount ?> групп с пересечениями!</div>
<? endif; ?>
<h2>Торговые группы для товара <?= $productName[$productID] ?></h2>
<? $lAdmin->DisplayList(); ?>
<div class="offers-group__button-container">
<a href="#" data-action="add-group" class="offers-group__button button-green">Добавить новую группу</a>
<a href="#" data-action="update_reference" disabled="disabled" class="offers-group__button button-green">Обновить справочники</a>
</div>
<?
}