Shop_Order->Shop->Shop_Currency->name;
}
else
{
return '—';
}
}
/**
* Метод обратного вызова для кастомного поля shop_order_item.price_without_markup
*
* @param Shop_Order_Item_Model $oShopOrderItem
* @param array $aArgs
* @return string
*/
static public function onCallprice_without_markup(Shop_Order_Item_Model $oShopOrderItem, array $aArgs)
{
return $oShopOrderItem->price - self::_getMarkup($oShopOrderItem);
}
/**
* Добавляет наценку товара в заказе
*
* @param Shop_Order_Item_Model $oShopOrderItem
* @param array $aArgs
* @return void
*/
static public function onBeforeRedeclaredGetXml(Shop_Order_Item_Model $oShopOrderItem, array $aArgs)
{
$oShopOrderItem
->addEntity(
Core::factory('Core_Xml_Entity')
->name('markup')
->value(self::_getMarkup($oShopOrderItem))
);
}
/**
* Возвращает наценку для товара в заказе
*
* @param Shop_Order_Item_Model $oShopOrderItem
* @return number
*/
static protected function _getMarkup(Shop_Order_Item_Model $oShopOrderItem)
{
if (!$oShopOrderItem->shop_item_id)
{
return 0;
}
$oShopOrder = $oShopOrderItem->Shop_Order;
$oShopOrderPropertyList = Core_Entity::factory('Shop_Order_Property_List', $oShopOrder->Shop->id);
$oProperty = $oShopOrderPropertyList->Properties->getByTagName('markups');
if (!$oProperty)
{
return 0;
}
$aoPropertyValues = $oShopOrder->getPropertyValues(TRUE, array($oProperty->id));
if (!count($aoPropertyValues))
{
return 0;
}
$aMakups = @json_decode($aoPropertyValues[0]->value, TRUE);
if (isset($aMakups[$oShopOrderItem->shop_item_id]))
{
return $aMakups[$oShopOrderItem->shop_item_id];
}
return 0;
}
}
Страницу создал Максим Засорин 23.01.17 в 14:43