79 lines
2.5 KiB
PHP
79 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace Bx\Discount\Handlers;
|
|
|
|
use Bitrix\Main\Entity\Event;
|
|
use Bx\Discount\Tools;
|
|
|
|
class ADiscount
|
|
{
|
|
protected static array $lang = [
|
|
'EMPTY_PRODUCT_TYPE' => 'Не выбран тип визуального представления скидки на сайте'
|
|
];
|
|
|
|
public static function getLang($code)
|
|
{
|
|
return static::$lang[$code];
|
|
}
|
|
|
|
protected static function isValidData()
|
|
{
|
|
return isset($_POST['PRODUCT_TYPE']) && $_POST['PRODUCT_TYPE'] !== '0' && $_POST['PRODUCT_TYPE'] !== '';
|
|
}
|
|
|
|
|
|
protected static function updateAdditionalDiscountData($id)
|
|
{
|
|
$discountFactory = discountApp()->factory()->main()->getDiscountFactory();
|
|
return $discountFactory->updateOrCreate([
|
|
'=DISCOUNT_ID' => $id,
|
|
], [
|
|
'DISCOUNT_ID' => $id,
|
|
'PRODUCT_TYPE' => (string)$_POST['PRODUCT_TYPE'],
|
|
'MIN_COUNT_PROD' => (int)$_POST['MIN_COUNT_PROD'],
|
|
]);
|
|
}
|
|
|
|
protected static function addAdditionalDiscountData($id)
|
|
{
|
|
$discountFactory = discountApp()->factory()->main()->getDiscountFactory();
|
|
return $discountFactory->updateOrCreate([
|
|
'=DISCOUNT_ID' => $id,
|
|
], [
|
|
'DISCOUNT_ID' => $id,
|
|
'PRODUCT_TYPE' => (string)$_POST['PRODUCT_TYPE'],
|
|
'MIN_COUNT_PROD' => (int)$_POST['MIN_COUNT_PROD'],
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Немного бреда с седых времен
|
|
* я хз что тут происходит
|
|
* коммент от старого разработчика: при поиске оптимальной цены на товар не учитываем скидки типа "От кол-ва"
|
|
* @see /local/php_interface/include/events.php [git history]
|
|
* @see BxDiscount [old functions]
|
|
*
|
|
* Желательно избавиться от функционала Q !!!
|
|
*
|
|
* @param $arResult
|
|
* @return void
|
|
*/
|
|
public static function onGetDiscountResult(&$arResult)
|
|
{
|
|
global $scriptType;
|
|
$counter = 1;
|
|
if($scriptType === 'XML_EXPORT'){
|
|
$counter = 0;
|
|
}
|
|
|
|
if(count($arResult) > $counter){
|
|
foreach($arResult as $key => $discount){
|
|
|
|
$discountViewType = Tools::getDiscountEntity($discount['ID']);
|
|
if($discountViewType['PRODUCT_TYPE'] === 'Q'){
|
|
unset($arResult[$key]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |