dever 3 years ago
parent
commit
527c3c0bcd
2 changed files with 49 additions and 30 deletions
  1. 15 4
      app/goods/lib/Info.php
  2. 34 26
      app/mshop/lib/Buy.php

+ 15 - 4
app/goods/lib/Info.php

@@ -241,12 +241,18 @@ class Info
     }
 
     # 获取支付所需要的信息
-    public function getPayInfo($id, $sku = 0, $num = 1, $user = array())
+    public function getPayInfo($id, $sku = 0, $type = 1)
     {
         $info = is_array($id) ? $id : Dever::db($this->table_info)->find($id);
 
         if ($info) {
-            unset($info['f_price']);
+            if ($type == 2) {
+                $info['price'] = $info['f_price'];
+                unset($info['s_price']);
+            } else {
+                unset($info['f_price']);
+            }
+            
             $sku = $sku > 0 ? $sku : $info['sku_id'];
             if ($sku > 0) {
                 $where['info_id'] = $info['id'];
@@ -254,8 +260,13 @@ class Info
                 $sku = Dever::db('goods/info_sku')->find($where);
                 if ($sku) {
                     $info['sku_id'] = $sku['id'];
-                    $info['price'] = $sku['price'];
-                    $info['s_price'] = $sku['s_price'];
+                    if ($type == 2) {
+                        $info['price'] = $sku['f_price'];
+                    } else {
+                        $info['price'] = $sku['price'];
+                        $info['s_price'] = $sku['s_price'];
+                    }
+
                     //$info['num'] = $sku['num'];
                     //$info['attr_json'] = $sku['attr'];
                     $info['attr'] = Dever::json_decode($sku['attr']);

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

@@ -580,11 +580,14 @@ class Buy
     # 采购订单审核 拆单
     public function audit()
     {
-        $order_id = Dever::input('id');
+        $order_id = Dever::input('order_id');
         $info = Dever::db('shop/buy_order')->find($order_id);
 
+        if (!$info || ($info && $info['status'] != 2)) {
+            Dever::alert('当前订单状态无法拆单');
+        }
+
         $goods = Dever::db('shop/buy_order_goods')->select(array('order_id' => $order_id));
-        print_r($goods);die;
 
         $shop = Dever::db('shop/info')->find($info['shop_id']);
 
@@ -619,42 +622,44 @@ class Buy
 
         array_multisort($distance, SORT_ASC, SORT_NUMERIC, $factory);
 
-        if ($store) {
-            $num = 0;
-            foreach ($goods as $k => $v) {
-                # 开始找仓库
-                $find = $this->store($order_id, $shop, $store, $v);
-                if (!$find[1]) {
-                    # 仓库没有,找厂家
-                    if ($factory) {
-                        $find = $this->factory($order_id, $shop, $factory, $v);
-                    }
-                    
-                    if (!$find[1]) {
-                        # 下单失败 缺货
-                        Dever::db('shop/buy_order_goods')->update(array('where_id' => $v['id'], 'status' => 4));
-                        # 要退款吧
-                    }
-                }
+        print_r($store);
+        print_r($factory);die;
 
-                if ($find[1]) {
-                    $num++;
-                    Dever::db('shop/buy_order_goods')->update(array('where_id' => $v['id'], 'status' => 2, 'type' => $find[0], 'type_id' => implode(',', $find[1])));
+        $num = 0;
+        foreach ($goods as $k => $v) {
+            # 开始找仓库
+            $find = $this->store($order_id, $shop, $store, $v);
+            if (!$find[1]) {
+                # 仓库没有,找厂家
+                if ($factory) {
+                    $find = $this->factory($order_id, $shop, $factory, $v);
+                }
+                
+                if (!$find[1]) {
+                    # 啥都没找到怎么办?
                 }
             }
 
-            if ($num > 0) {
-                Dever::db('shop/buy_order')->update(array('where_id' => $info['id'], 'status' => 3));
-            } else {
-                Dever::db('shop/buy_order')->update(array('where_id' => $info['id'], 'status' => 7));
+            if ($find[1]) {
+                $num++;
+                Dever::db('shop/buy_order_goods')->update(array('where_id' => $v['id'], 'status' => 2, 'type' => $find[0], 'type_id' => implode(',', $find[1])));
             }
         }
+
+        if ($num > 0) {
+            Dever::db('shop/buy_order')->update(array('where_id' => $info['id'], 'status' => 3));
+        } else {
+            Dever::db('shop/buy_order')->update(array('where_id' => $info['id'], 'status' => 7));
+        }
     }
 
     private function store($order_id, $shop, $store, $goods, $state = 2)
     {
         $find = array();
         $id = array();
+        if (!$store) {
+            return array(1, $id);
+        }
         foreach ($store as $k => $v) {
             $where['store_id'] = $v['id'];
             $where['goods_id'] = $goods['goods_id'];
@@ -695,6 +700,9 @@ class Buy
     {
         $find = array();
         $id = array();
+        if (!$factory) {
+            return array(1, $id);
+        }
         foreach ($factory as $k => $v) {
             $where['factory_id'] = $v['id'];
             $where['goods_id'] = $goods['goods_id'];