public function execute()
 {
     $data = waRequest::post();
     $orderItemsModel = new shopOrderItemsModel();
     $where = 'order_id=' . $data['order_id'];
     $where .= $data['sku_id'] ? ' AND product_id=' . $data['product_id'] . ' AND sku_id=' . $data['sku_id'] : 'AND product_id=' . $data['product_id'];
     $result = $orderItemsModel->select('stock_id')->where($where)->fetchField();
     if ($result) {
         $id = $orderItemsModel->select('id')->where($where)->fetchField();
         if ($data['stock_id'] != $result) {
             $orderItemsModel->updateById($id, array('stock_id' => $data['stock_id']));
         }
     }
 }
Example #2
0
 public function reduceProductsFromStocks($order_id)
 {
     $order_params_model = new shopOrderParamsModel();
     $reduced = $order_params_model->getOne($order_id, 'reduced');
     if ($reduced) {
         return;
     }
     $items_model = new shopOrderItemsModel();
     $items = $items_model->select('*')->where("type='product' AND order_id = " . (int) $order_id)->fetchAll();
     $sku_stock = array();
     foreach ($items as $item) {
         if (!isset($sku_stock[$item['sku_id']][$item['stock_id']])) {
             $sku_stock[$item['sku_id']][$item['stock_id']] = 0;
         }
         $sku_stock[$item['sku_id']][$item['stock_id']] -= $item['quantity'];
     }
     $items_model->updateStockCount($sku_stock);
     $order_params_model->setOne($order_id, 'reduced', 1);
 }