/** * Возвращает стоимость покупки или поднятия. * * @return type */ public function getPrice($up = false, $uid = 0, $prof_id = null) { //кеш для нескольких вызовов в течении сесии static $_cache = array(); $key = md5(print_r(func_get_args(), true)); if (isset($_cache[$key])) { return $_cache[$key]; } $opCode = $this->getOpCode($up); //Пробуем получить скидку для конкретного пользователя if ($uid > 0) { $bill = self::getBilling($uid); $opCode = $bill->getDiscountOpCode($opCode); } $data = op_codes::getDataByOpCode($opCode, $prof_id); if (@$data['sum']) { $_cache[$key] = @$data['sum']; } return @$data['sum']; }
/** * Возвращает цену за подняние * * @param type $prof_id * @param type $is_spec * @return type */ public function getPriceUp($prof_id, $is_spec, $uid = 0) { $opCode = $this->getOpCodeUp($prof_id, $is_spec); //Пробуем получить скидку для конкретного пользователя if ($uid > 0) { $bill = self::getBilling($uid); $opCode = $bill->getDiscountOpCode($opCode); } $data = op_codes::getDataByOpCode($opCode, $prof_id); return @$data['sum']; }
/** * Получить стоимость размещения * если передан ID пользователя то пробуем получить скидку * * @param type $prof_group_id * @param type $prof_id * @param type $uid * @return type */ static function getPlacementPrice($prof_group_id, $prof_id, $uid = 0) { $opCode = $prof_group_id ? self::OP_CODE_CATEGORY : ($prof_id == -1 ? self::OP_CODE_MAIN : self::OP_CODE_SUBCATEGORY); //Пробуем получить скидку для конкретного пользователя if ($uid > 0) { $bill = self::getBilling($uid); $opCode = $bill->getDiscountOpCode($opCode); } $data = op_codes::getDataByOpCode($opCode); return @$data['sum']; }