function addToPositions($order_id, $product_ids) { $order = $this->getItem($order_id, true); $model_catalog = rad_instances::get('model_corecatalog_catalog'); $model_catalog->setState('with_vv', true); model_corecatalog_currcalc::init(); $rows = 0; $add_summ = 0; foreach ($product_ids as $product_id) { $prid = (int) $product_id['id']; $product_full = $model_catalog->getItem($prid); $pos_id = 0; foreach ($order->order_positions as $orpos) { $orpos->orp_catid = (int) $orpos->orp_catid; if ($orpos->orp_catid === $prid) { $pos_id = $orpos->orp_id; break; } } if ($pos_id > 0) { //if positions exists in order $position = new struct_corecatalog_order_positions(array('orp_id' => $pos_id)); $position->load(); $position->orp_count = (double) $position->orp_count + 1; $add_summ += model_corecatalog_currcalc::calcCours($product_full->cat_cost, $product_full->cat_currency_id); $position->save(); } else { //new position $position = new struct_corecatalog_order_positions(); $position->orp_catid = $product_full->cat_id; $position->orp_orderid = $order->order_id; $position->orp_count = 1; $position->orp_cost = model_corecatalog_currcalc::calcCours($product_full->cat_cost, $product_full->cat_currency_id); $add_summ += $position->orp_cost; $position->orp_curid = model_corecatalog_currcalc::$_curcours->cur_id; $position->orp_currency = model_corecatalog_currcalc::$_curcours->cur_ind; $position->orp_name = $product_full->cat_name; $position->orp_article = $product_full->cat_article; $position->orp_code = $product_full->cat_code; $position->orp_dump = serialize($product_full); $this->insert_struct($position, RAD . 'order_positions'); } } $order->order_summ += $add_summ; $this->updateItem($order); }
function __construct() { if ($this->getParamsObject()) { $params = $this->getParamsObject(); $this->_itemsperpage = $params->_get('itemsperpage', $this->_itemsperpage); $this->setVar('params', $params); if ($params->_get('type_show', false)) { //last products and other onmain $model = rad_instances::get('model_corecatalog_catalog')->setState('active', 1)->setState('lang', $this->getCurrentLangID())->setState('join.mainimage', true)->setState('only.withimages', true)->setState('lang', $this->getCurrentLangID()); switch ($params->_get('type_show')) { case 'last': $model->setState('order by', 'cat_datecreated DESC'); break; case 'showed': $model->setState('order by', 'cat_showed DESC'); break; } $this->setVar('items', $model->getItems($this->_itemsperpage)); } else { //special offers for menu $model = rad_instances::get('model_corecatalog_catalog')->setState('special_offer', $params->cs_type)->setState('limit', $params->itemsperpage)->setState('where_condition', ' 1 ')->setState('lang', $this->getCurrentLangID()); if ($params->ordering !== 0) { $model->setState('order by', $params->ordering); } $items = $model->getProductsList(); model_corecatalog_currcalc::init(); $curCurrency = model_corecatalog_currcalc::$_curcours; foreach ($items as &$item) { if ($item->cat_currency_id != $curCurrency->cur_id) { $item->cat_cost = model_corecatalog_currcalc::calcCours($item->cat_cost, $item->cat_currency_id); $item->currency_indicate = $curCurrency->cur_ind; } } $this->setVar('products', $items); } } }
/** * Start order page - show the basket * */ function startPage() { model_corecatalog_currcalc::init(); $this->setVar('curr', model_corecatalog_currcalc::$_curcours); $model = rad_instances::get('model_corecatalog_bin'); $ct_showing = $this->getParamsObject() ? $this->getParamsObject()->ct_showing : NULL; $items = $model->getCartProducts(NULL, NULL, $ct_showing); $bin_pos = $model->getItemsCart(); $counts = array(); $bin_ids = array(); $total_count = 0; $total_costs = 0; if (count($bin_pos)) { foreach ($bin_pos as $id) { $counts[$id->bp_catid] = $id->bp_count; $bin_ids[$id->bp_catid] = $id->bp_id; } } $countElement = count($items); for ($i = 0; $i < $countElement; $i++) { $items[$i]->cost = $items[$i]->cat_cost; $items[$i]->cat_cost = model_corecatalog_currcalc::calcCours($items[$i]->cat_cost, $items[$i]->cat_currency_id); $items[$i]->cat_count = $counts[$items[$i]->cat_id]; $total_count += $items[$i]->cat_count; $total_costs += $items[$i]->cat_cost * $items[$i]->cat_count; $items[$i]->bp_id = $bin_ids[$items[$i]->cat_id]; } $this->setVar('items', $items); $this->setVar('total_count', $total_count); $this->setVar('total_costs', $total_costs); $this->setVar('hash', $this->hash()); $userInfo = rad_session::getVar('user_dump'); if (!empty($userInfo)) { $this->setVar('userInfo', $userInfo); } if ($this->_showDelivery) { $this->assignDelivery(); } }
/** * Shows a bin window at goods addition * */ function showBinWindow() { model_corecatalog_currcalc::init(); $this->setVar('curr', model_corecatalog_currcalc::$_curcours); $model = rad_instances::get('model_corecatalog_bin'); $ct_showing = $this->getParamsObject() ? $this->getParamsObject()->ct_showing : NULL; $items = $model->getCartProducts(NULL, NULL, $ct_showing); $bin_pos = $model->getItemsCart(); $counts = array(); $bin_ids = array(); $total_count = 0; $total_costs = 0; if (count($bin_pos)) { foreach ($bin_pos as $id) { $counts[$id->bp_catid] = $id->bp_count; $bin_ids[$id->bp_catid] = $id->bp_id; } } for ($i = 0; $i < count($items); $i++) { $items[$i]->cost = $items[$i]->cat_cost; $items[$i]->cat_cost = model_corecatalog_currcalc::calcCours($items[$i]->cat_cost, $items[$i]->cat_currency_id); $items[$i]->cat_count = $counts[$items[$i]->cat_id]; $total_count += $items[$i]->cat_count; $total_costs += $items[$i]->cat_cost * $items[$i]->cat_count; $items[$i]->bp_id = $bin_ids[$items[$i]->cat_id]; } $this->setVar('items', $items); $this->setVar('total_count', $total_count); $this->setVar('total_costs', $total_costs); }