Example #1
0
 protected function saveProductStock($productId)
 {
     //多属性库存保存
     if ($_REQUEST['is_multiple'] == 1) {
         if ($_REQUEST['attr_stock']) {
             $temp_ids = array();
             foreach ($_REQUEST['attr_stock'] as $attr_id => $row) {
                 if (empty($row)) {
                     continue;
                 }
                 $model = ProductStock::model()->findByAttributes(array('product_id' => $productId, 'attr_id' => $attr_id));
                 if (empty($model)) {
                     $model = new ProductStock();
                 }
                 $model->product_id = $productId;
                 $model->attr_id = $attr_id;
                 $model->quantity = $row;
                 $model->add_time = time();
                 $model->update_time = time();
                 $flag = $model->save();
                 array_push($temp_ids, $attr_id);
             }
             //todo 删除出了这次保存外的其他数据,防止错误数据存在
             $criteria = new CDbCriteria();
             $criteria->addCondition('product_id=' . $productId);
             $criteria->addNotInCondition('attr_id', $temp_ids);
             ProductStock::model()->deleteAll($criteria);
         }
     } else {
         $model = ProductStock::model()->findByAttributes(array('product_id' => $productId));
         if (empty($model)) {
             $model = new ProductStock();
         }
         $model->product_id = $productId;
         $model->attr_id = 0;
         $model->quantity = $_REQUEST['quantity'];
         $model->add_time = time();
         $model->update_time = time();
         $flag = $model->save();
         //todo 删除出了这次保存外的其他数据,防止错误数据存在;
         $criteria = new CDbCriteria();
         $criteria->addCondition('id != ' . $model->id);
         $criteria->addCondition('product_id =' . $productId);
         ProductStock::model()->deleteAll($criteria);
     }
     return true;
 }