Your IP : 3.20.236.245
<? require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php");
Bitrix\Main\Loader::includeModule('webprofy.offersgroup');
IncludeModuleLangFile(__FILE__);
use Webprofy\Offersgroup\Conflicts;
use Webprofy\Offersgroup\OffersGroupMain;
use Webprofy\Offersgroup\PropertiesMain;
use Webprofy\Offersgroup\RelationMain;
if (!$_POST) {
return;
}
$arGroupFullInfo = array();
$groupID = $_POST['groupID'] ? intval($_POST['groupID']) : false;
$productID = $_POST['productID'] ? intval($_POST['productID']) : false;
$conflicts = false;
//Выбрать все значения из справочников
$arReference = RelationMain::getAllReference();
//Выбрать все значения по полученным справочникам
foreach ($arReference as $key => $item) {
$arReference[$key]['DATA'] = RelationMain::getReferenceDataName($item['RELATION_BITRIX_ID']);
}
if ($groupID && $_POST['action'] && ($_POST['action'] == 'getExistsForm')) {
//Получить цену и активность
$arGroupFullInfo = OffersGroupMain::getGroupInfo($groupID);
//Получить свойства и товары
$arGroupFullInfo['PROPERTIES'] = OffersGroupMain::getPropertiesID($groupID);
$arGroupFullInfo['PRODUCTS'] = PropertiesMain::getProductsByGroup($groupID);
$arConflicts = Conflicts::isConflict($groupID, $arGroupFullInfo['PRODUCTS'], $arGroupFullInfo['PROPERTIES']);
$arConflictsDeleted = Conflicts::isConflictsDeleted($arGroupFullInfo['PROPERTIES'], $arReference, true);
}
//Выбрать товары из связанного справочника
$allProducts = PropertiesMain::getProducts();
//Собрать форму
?>
<form action="/bitrix/admin/offersgroup.php" name="offersgroup-form" id="offersgroup-form">
<?
//Если есть id группы, то заполним скрытое поле
if ($groupID): ?>
<h2>Торговая группа #<?= $groupID; ?></h2>
<input type="hidden" name="groupID" value="<?= $groupID ?>">
<? else: ?>
<h2>Новая торговая группа</h2>
<? endif; ?>
<div class="form-table">
<div class="reference-container form-table__row">
<div class="reference-container__name form-table__cell form-table__padding ">Активность</div>
<div class="reference-container__data form-table__cell form-table__padding ">
<input type="checkbox" name="active" <? if ($arGroupFullInfo['ACTIVE']): echo 'checked'; endif; ?>>
</div>
</div>
<?
//Если есть список товаров, то сформировать селект Товаров
if ($allProducts): ?>
<div class="reference-container form-table__row">
<div class="reference-container__name form-table__cell form-table__padding ">Товары</div>
<div class="reference-container__data form-table__cell form-table__padding ">
<select name="products[]" id="products" class="reference-container__select js-custom-select"
multiple="multiple" data-name="products">
<? foreach ($allProducts as $key => $item): ?>
<? $selected = '';
if ($arGroupFullInfo['PRODUCTS'] && in_array($key, $arGroupFullInfo['PRODUCTS'])
|| $_POST['products'] && in_array($key, $_POST['products'])
) {
$selected = 'data-option="selected" selected';
}
?>
<option value="<?= $key ?>" <?= $selected; ?>>
<?= $item ?>
</option>
<? endforeach; ?>
</select>
</div>
</div>
<? endif; ?>
<?
//Если есть справочники, то подключить их, отметив выбранные значения
if ($arReference): ?>
<? foreach ($arReference as $item): ?>
<div class="reference-container form-table__row">
<div
class="reference-container__name form-table__cell form-table__padding "><?= $item['RELATION_NAME'] ?></div>
<? if ($item['RELATION_CODE'] == 'SIZE'):
$arIndex = OffersGroupMain::getSizeIndex($item['DATA'],
$arGroupFullInfo['PROPERTIES'][$item['ID']]);
?>
<div class="reference-container__data form-table__cell form-table__padding ">
<div class="reference-container__size form-table__row">
<span class="reference-container__size-label form-table__cell">От</span>
<select name="reference_<?= $item['ID'] ?>" data-name="<?=$item['RELATION_CODE']?>-min"
id="reference_<?= $item['ID'] ?>"
class="reference-container__select form-table__cell js-custom-select">
<? if ($item['DATA']): ?>
<?
foreach ($item['DATA'] as $key => $value): ?>
<? $option = '';
if ($arIndex['min'] && $arIndex['min'] == $key) {
$option = 'data-option="selected" selected';
if (!empty($arConflicts)) {
foreach ($arConflicts as $groupID => $arConflict) {
if (in_array($key, $arConflict[$item['ID']])) {
$option .= ' data-conflict="true"';
break;
}
}
}
} ?>
<option value="<?= $key ?>" <?= $option; ?>><?= $value ?></option>
<? endforeach; ?>
<? endif; ?>
<?if($arConflictsDeleted[$item['ID']]):?>
<?foreach ($arConflictsDeleted[$item['ID']] as $deleted):?>
<option value="<?= $deleted ?>" data-option="selected" data-conflict="true">Удаленное свойство</option>
<?endforeach;?>
<?endif;?>
</select>
<span class="form-table__cell reference-container__size-label">До</span>
<select name="reference_<?= $item['ID'] ?>" data-name="<?=$item['RELATION_CODE']?>-max"
id="reference_<?= $item['ID'] ?>"
class="reference-container__select form-table__cell js-custom-select">
<? if ($item['DATA']): ?>
<?
foreach ($item['DATA'] as $key => $value): ?>
<? $option = '';
if ($arIndex['max'] && $arIndex['max'] == $key) {
$option = 'data-option="selected" selected';
if (!empty($arConflicts)) {
foreach ($arConflicts as $groupID => $arConflict) {
if (in_array($key, $arConflict[$item['ID']])) {
$option .= ' data-conflict="true"';
break;
}
}
}
} ?>
<option value="<?= $key ?>" <?= $option; ?>><?= $value ?></option>
<? endforeach; ?>
<? endif; ?>
<?if($arConflictsDeleted[$item['ID']]):?>
<?foreach ($arConflictsDeleted[$item['ID']] as $deleted):?>
<option value="<?= $deleted ?>" data-option="selected" data-conflict="true">Удаленное свойство</option>
<?endforeach;?>
<?endif;?>
</select>
</div>
</div>
<? else: ?>
<div class="reference-container__data form-table__cell form-table__padding ">
<select name="reference_<?= $item['ID'] ?>[]" data-name="<?=$item['RELATION_CODE']?>"
id="reference_<?= $item['ID'] ?>"
multiple="multiple" class="reference-container__select js-custom-select">
<? if ($item['DATA']): ?>
<? foreach ($item['DATA'] as $key => $value): ?>
<? $option = '';
if ($arGroupFullInfo['PROPERTIES'][$item['ID']] &&
in_array($key, $arGroupFullInfo['PROPERTIES'][$item['ID']])) {
$option = 'data-option="selected" selected';
if (!empty($arConflicts)) {
foreach ($arConflicts as $groupID => $arConflict) {
if (in_array($key, $arConflict[$item['ID']])) {
$option .= ' data-conflict="true"';
break;
}
}
}
}
?>
<option value="<?= $key ?>" <?= $option; ?>><?= $value ?></option>
<? endforeach; ?>
<? endif; ?>
<?if($arConflictsDeleted[$item['ID']]):?>
<?foreach ($arConflictsDeleted[$item['ID']] as $deleted):?>
<option value="<?= $deleted ?>" data-option="selected" selected data-conflict="true">Удаленное свойство</option>
<?endforeach;?>
<?endif;?>
</select>
</div>
<? endif; ?>
</div>
<? endforeach; ?>
<? endif; ?>
<div class="reference-container form-table__row">
<div class="reference-container__name form-table__cell form-table__padding ">Цена</div>
<div class="reference-container__data form-table__cell form-table__padding ">
<input type="text" name="PRICE" value="<?= $arGroupFullInfo['PRICE'] ?>"
class="reference-container__data-price">
<a href="#" class="offers-group__button button-red" data-action="set-price" <? if ($arConflicts) {
echo 'disabled="disabled"';
} ?>>Установить</a>
</div>
</div>
</div>
<div class="offers-group__button-container">
<a href="#" class="offers-group__button button-green" data-action="save-group">Сохранить группу</a>
<? if ($groupID): ?>
<a href="#" class="offers-group__button button-green" data-action="save-new-group">Сохранить группу
как
новую</a>
<a href="#" class="offers-group__button button-red" data-action="delete-group">Удалить группу</a>
<? endif; ?>
</div>
</form>
<?
return;