예제 #1
0
 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);
 }
예제 #2
0
 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);
         }
     }
 }
예제 #3
0
 /**
  * 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();
     }
 }
예제 #4
0
 /**
  * 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);
 }