<?php
include $_SERVER['DOCUMENT_ROOT'] . "/standalone.php";
function getDiscountPrice($price, $percent) {
$discount = $price * $percent / 100;
return $price - $discount;
}
// Получаем тип объектов
$typesCollection = umiObjectTypesCollection::getInstance();
$objectTypeId = $typesCollection->getBaseType('catalog', 'object'); // Здесь id объекта
// Получаем объекты
$objects = umiObjectsCollection::getInstance();
// фильтрация
$sel = new umiSelection;
$objectType = $typesCollection->getType($objectTypeId);
$sel->addObjectType($objectTypeId); //Устанавливаем фильтр по типу данных
$sel->addPropertyFilterNotEqual($objectType->getFieldId('sale_start'), NULL);
$sel->addPropertyFilterNotEqual($objectType->getFieldId('sale_end'), NULL);
//Получаем результаты
$result = umiSelectionsParser::runSelection($sel); //Массив id объектов
$total = umiSelectionsParser::runSelectionCounts($sel); //Количество записей
foreach ($result as $key) {
$object = $objects->getObject($key);
$percent = $object->getValue('sale_percent');
$dateStart = $object->getValue('sale_start');
$dateEnd = $object->getValue('sale_end');
$price = $object->getValue('price');
$priceOld = $object->getValue('old_price');
$dateNow = new DateTime();
$dateNow = $dateNow->format('Y-m-d');
$needDiscount = ($dateNow >= $dateStart && $dateNow <= $dateEnd) ? true : false;
if ($needDiscount) { // Ставим скидку
if ($priceOld == 0) {
$object->setValue('price', getDiscountPrice($price, $percent));
$object->setValue('old_price', $price);
$object->commit();
}
} else { // убираем скидку
if ($priceOld != 0) { // если есть старая цена
$object->setValue('price', $priceOld);
$object->setValue('old_price', 0);
$object->commit();
}
}
// Очищаем переменные
unset($percent, $dateStart, $dateEnd, $price, $priceOld);
}