Your IP : 3.22.171.120


Current Path : /home/bitrix/ext_www/dev.home-comfort.in.ua/bitrix/admin/
Upload File :
Current File : /home/bitrix/ext_www/dev.home-comfort.in.ua/bitrix/admin/offersgroup_getTable.php

<?
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>
    <?
}