dever 3 سال پیش
والد
کامیت
1653318f46
1فایلهای تغییر یافته به همراه26 افزوده شده و 1 حذف شده
  1. 26 1
      app/mshop/lib/Buy.php

+ 26 - 1
app/mshop/lib/Buy.php

@@ -89,6 +89,8 @@ class Buy
             array('value' => '7,8,11', 'name' => '已取消'),
         );
 
+        $result['config'] = Dever::db('main/manage_config')->find();
+
         return $result;
     }
 
@@ -755,6 +757,8 @@ class Buy
         array_multisort($distance, SORT_ASC, SORT_NUMERIC, $factory);
 
         $this->order_num = 0;
+        $delete = array();
+        $yes = array();
         foreach ($goods as $k => $v) {
             # 开始找仓库
             $find = $this->store($order['id'], $order['order_num'] . '_' . $this->order_num, $shop, $store, $v);
@@ -764,6 +768,12 @@ class Buy
                     $find = $this->factory($order['id'], $order['order_num'] . '_' . $this->order_num, $shop, $factory, $v);
                 }
             }
+
+            if ($find[1]) {
+                $delete[$v['id']] = $v;
+            } else {
+                $yes[$v['id']] = $v;
+            }
         }
 
         if ($this->order_num > 0) {
@@ -774,7 +784,22 @@ class Buy
                 Dever::db('shop/buy_order_goods')->delete(array('order_id' => $find[2][0]));
 
             } else {
-                Dever::db('shop/buy_order')->update(array('where_id' => $order['id'], 'state' => 2));
+                if (!$yes) {
+                    Dever::db('shop/buy_order')->update(array('where_id' => $order['id'], 'state' => 2));
+                } else {
+                    $price = 0;
+                    $num = 0;
+                    foreach ($delete as $k => $v) {
+                        Dever::db('shop/buy_order_goods')->delete(array('where_id' => $v['id']));
+                        $price += $v['price'];
+                        $num += $v['num'];
+                    }
+
+                    $price = $order['price'] - $price;
+                    $num = $order['num'] - $num;
+                    Dever::db('shop/buy_order')->update(array('where_id' => $order['id'], 'status' => 8, 'price' => $price, 'num' => $num));
+                    Dever::load('shop/lib/refund')->set('buy')->apply(1, $shop['id'], $order_id, false, 3, 0);
+                }
             }
         } else {
             # 没有找到,退款