Charlie 9 éve
szülő
commit
9fed93a880

+ 10 - 0
www/protected/controllers/ProductController.php

@@ -15,6 +15,16 @@ class ProductController extends AdminController{
         ));
     }
 
+    public function actionGet(){
+        $id = Yii::app()->request->getParam('id', '');
+        $criteria = new EMongoCriteria();
+        $criteria->_id = new MongoId($id);
+        $product = Product::model()->find($criteria);
+
+        $data = $product->parseRow($product->attributes);
+        echo json_encode($data);exit;
+    }
+
     public function actionList(){
         $params = CommonFn::getPageParams();
 

+ 33 - 3
www/protected/controllers/ROrderController.php

@@ -10,6 +10,17 @@ class ROrderController extends AdminController{
         $channels = CommonFn::getComboboxData($channel_option, 100, true, 100);
 
 
+        // 服务信息
+        $criteria_main = new EMongoCriteria();
+        $criteria_main->status('==', 1);
+        $cursor_main = Product::model()->findAll($criteria_main);
+        $rows_main = CommonFn::getRowsFromCursor($cursor_main);
+        $main_row = array();
+        foreach($rows_main as $row){
+            $ids = (string)$row['_id'];
+            $main_row[$ids] = array('name' =>$row['name']);
+        }
+        $main_products = CommonFn::getComboboxData($main_row, 100, true, 100);
         // 服务点信息
         $criteria_station = new EMongoCriteria();
         $cursor = Station::model()->findAll($criteria_station);
@@ -27,6 +38,7 @@ class ROrderController extends AdminController{
 
         $this->render('index', array(
             'status'       => $status,
+            'main_products'=> $main_products,
             'channels'     => $channels,
             'station'      => $station,
             'type'         => $type
@@ -486,10 +498,11 @@ class ROrderController extends AdminController{
         $channel       = Yii::app()->request->getParam('channel', '');
         $booking_time  = Yii::app()->request->getParam('booking_time_add', '');
         $order_time    = Yii::app()->request->getParam('order_time_add', '');
+        $main_products = Yii::app()->request->getParam('main_products', '');
         $price         = Yii::app()->request->getParam('price', 0);
         $final_price   = Yii::app()->request->getParam('final_price', 0);
         $status        = Yii::app()->request->getParam('status', -3);
-        $station       = Yii::app()->request->getParam('station', '5548b05e0eb9fbc5728b51ea');
+        $station       = Yii::app()->request->getParam('station', '57db39709f5160bb048b456a');
         // --------- 地址信息 ---------
         $mobile        = Yii::app()->request->getParam('mobile', 0);
         $latitude      = Yii::app()->request->getParam('latitude', 0);
@@ -499,6 +512,8 @@ class ROrderController extends AdminController{
         $area          = Yii::app()->request->getParam('area', '');
         $poi_name      = Yii::app()->request->getParam('poi_name', '');
         $detail        = Yii::app()->request->getParam('detail', '');
+        $extra =  Yii::app()->request->getParam('extra',array());
+        $extra = json_decode($extra);
 
         // 数据完整性检查
         // 2015-11-02 因存在赠送订单,删除金额的数据检查 : $price == 0 || $final_price == 0 ||
@@ -540,7 +555,21 @@ class ROrderController extends AdminController{
         // 支付渠道
         $pay_channel = $channel;
 
-
+        // 服务数据整合
+        $products[] = array(
+            'product' => new MongoId($main_products),
+            'count'   => 1,
+            'extra'     =>$extra
+        );
+        if (!empty($box)) {
+            foreach ($box as $key => $value) {
+                $products[] = array(
+                    'product' => new MongoId($value),
+                    'count'   => 1,
+                    'extra'     =>$extra
+                );
+            }
+        }
 
         // 地址数据整合
         $address = array(
@@ -574,6 +603,7 @@ class ROrderController extends AdminController{
         $rOrder->channel      = $channel;
         $rOrder->booking_time = intval($booking_time);
         $rOrder->order_time   = intval($order_time);
+        $rOrder->products     = $products;
         $rOrder->price        = intval($price);
         $rOrder->final_price  = intval($final_price);
         //$rOrder->precedence   = intval($precedence);
@@ -588,7 +618,7 @@ class ROrderController extends AdminController{
         $rOrder->address      = $address;
         $rOrder->pay_channel  = $pay_channel;
 
-        $addROrder_arr = array('channel', 'booking_time', 'order_time', 'price', 'final_price', 'precedence', 'coupons', 'user', 'status', 'memo', 'remark', 'type', 'have_comment', 'station', 'address', 'pay_channel');
+        $addROrder_arr = array('channel', 'booking_time', 'order_time', 'price','products', 'final_price', 'precedence', 'coupons', 'user', 'status', 'memo', 'remark', 'type', 'have_comment', 'station', 'address', 'pay_channel');
         $success = $rOrder->save(true, $addROrder_arr);
 
         CommonFn::requestAjax($success, '', array());

+ 1 - 1
www/protected/views/product/index.php

@@ -184,7 +184,7 @@
                         <div class="box_flex f_content">
                             <div id="extra_add_info"></div>
                             <div><a class='easyui-linkbutton' plain="true" iconCls="icon-add" onclick="add_extra();return false;">添加分类信息</a></div>
-                            <input type="hidden" name="extra" id="add_extra" value='' />
+                            <input type="hidden" name="extra" id="add_extraadd_extra" value='' />
                         </div>
                     </div>
                 </li>

+ 50 - 13
www/protected/views/rOrder/index.php

@@ -384,7 +384,18 @@
                         </div>
                     </div>
                 </li>
-
+                <li class="f_item">
+                    <div class="box">
+                        <div class="f_label">
+                            <span>订购的服务: </span>
+                        </div>
+                        <div class="box_flex f_content">
+                            <input id="main_products" name="main_products" />
+                            <br>
+                            <div id="extra_items"></div>
+                        </div>
+                    </div>
+                </li>
                 <li class="f_item">
                     <div class="box">
                         <div class="f_label">
@@ -516,6 +527,7 @@
     var module_router = site_root + '/index.php?r=ROrder';
     var status_data = <?php echo json_encode($status); ?>;
     var channel_data = <?php echo json_encode($channels); ?>;
+    var main_products = <?php echo json_encode($main_products); ?>;
     var type = <?php echo json_encode($type); ?>;
     var station_data = <?php echo json_encode($station); ?>;
 
@@ -715,6 +727,37 @@
             // }
         });
 
+        $('#main_products').combobox({
+            editable: false,
+            data: (function () {
+                var main_products_temp = new Array();
+                $.extend(main_products_temp, main_products)
+                main_products_temp.shift();
+
+                return main_products_temp;
+            })(),
+            onSelect: function(rec){
+                $.ajax({
+                    type: "GET",
+                    url: "index.php?r=product/get",
+                    data: {id:rec.value},
+                    dataType: "json",
+                    success: function(data){
+                    //console.log(data)
+                        var _html = "";
+                        for (i in data.extra){
+                        console.log(JSON.stringify(data.extra[i]));
+                            _html += '<input type="radio" name="extra" value=\''+JSON.stringify(data.extra[i])+'\' />'+data.extra[i]['type']+'--'+data.extra[i]['price']+'元';
+                        }
+
+                        $('#extra_items').html(_html);
+
+                    }
+                });
+                console.log(rec.value);
+            }
+        });
+
         jq_setStatus.combobox({
             editable: false,
             data: status_data
@@ -952,6 +995,9 @@
                     }else{
                         product_info += products[j].name;
                     }
+                    if(!$.isEmptyObject(products[j].extra)){
+                        product_info += '('+products[j].extra[0].type+'--'+products[j].extra[0].price+')';
+                    }
 
                 }else{
                     if(products[j].count>1) {
@@ -959,22 +1005,13 @@
                     }else{
                         product_info += products[j].name + " + ";
                     }
+                    if(!$.isEmptyObject(products[j].extra)){
+                        product_info += '('+products[j].extra[0].type+'--'+products[j].extra[0].price+')';
+                    }
                 }
             }
 
-            var append_orders = data['append_orders'];
-            var append_info = '';
-            for(var j in append_orders){
-                if(j == append_orders.length-1){
-                    append_info += append_orders[j].products_str+'('+append_orders[j].id+')';
-                }else{
-                    append_info += append_orders[j].products_str+'('+append_orders[j].id+")+";
-                }
-            }
 
-            if(data['precedence']){
-                product_info += '+'+'加急';
-            }
 
             var coupons = data['coupons'];
             var coupon_info = '';