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'])); } } }
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); }