rabin hace 3 años
padre
commit
01eac103ff
Se han modificado 2 ficheros con 26 adiciones y 16 borrados
  1. 9 4
      app/mshop/lib/Buy.php
  2. 17 12
      app/shop/lib/Sell.php

+ 9 - 4
app/mshop/lib/Buy.php

@@ -1693,15 +1693,20 @@ class Buy
                         $send[$state] = $v1;
 
                         Dever::db('shop/buy_order_goods')->delete(array('id' => $v1['order_goods_id'], 'clear' => true));
-                        $price += $v1['price'];
+                        $price += ($v1['price'] * $v1['num']);
                         $num += $v1['num'];
                     }
                     $i++;
                 }
 
-                $order['price'] = $order['price'] - $price;
-                $order['num'] = $order['num'] - $num;
-                Dever::db('shop/buy_order')->update(array('where_id' => $order['id'], 'price' => $order['price'], 'num' => $order['num'], 'audit' => 1, 'order_num' => $order['order_num'] . '_' . $i, 'clear' => true));
+                $price = $order['price'] - $price;
+                $num = $order['num'] - $num;
+                if ($num >= 0) {
+                    Dever::db('shop/buy_order')->update(array('where_id' => $order['id'], 'price' => $price, 'num' => $num, 'audit' => 1, 'order_num' => $order['order_num'] . '_' . $i, 'clear' => true));
+                } else {
+                    Dever::db('shop/buy_order')->update(array('where_id' => $order['id'], 'state' => 2));
+                    Dever::load('cash/lib/order')->up($order, 1, 3);
+                }
             }
         } else {
             Dever::db('shop/buy_order')->update(array('where_id' => $order['id'], 'audit' => 1));

+ 17 - 12
app/shop/lib/Sell.php

@@ -195,11 +195,10 @@ class Sell
             $info['tk_status'] = 2;
         }
 
-        $info['card_name'] = '';
-        $info['card_price'] = 0;
+        $info['card'] = array();
         if ($info['card_code_id'] > 0) {
             $config = Dever::db('main/sell_config')->find();
-            $info['card_name'] = $config['card_name'];
+            $data['card']['name'] = $config['card_name'];
 
             $card_code = Dever::db('card/code')->find($info['card_code_id']);
             if ($card_code) {
@@ -208,7 +207,11 @@ class Sell
                     $card_type = Dever::db('card/type')->find($card_info['type_id']);
 
                     $card = substr($card_code['card'], -4);
-                    $info['card_name'] .= '('.$card_type['name'].$card.')';
+                    $data['card']['name'] .= '('.$card_type['name'].$card.')';
+                    $data['card']['info'] = $card_info;
+                    $data['card']['id'] = $card_code['id'];
+                    $data['card']['card'] = $card_code['card'];
+                    $data['card']['cash'] = $data['card_code_cash'];
                 }
             }
         }
@@ -295,7 +298,7 @@ class Sell
         if ($this->view == 2) {
             $check = false;
             if (isset($card_info) && $card_info) {
-                $card_goods = array();
+                $data['card']['goods'] = array();
                 $check = false;
                 $goods = Dever::db('card/info_goods')->getData(array('card_id' => $card_info['id']));
                 if ($goods || $card_info['category']) {
@@ -306,7 +309,6 @@ class Sell
                 $info['goods'][$k]['info'] = Dever::load('goods/lib/info')->getPayInfo($v['goods_id'], $v['sku_id']);
                 $info['goods'][$k]['status_name'] = $goods_status[$v['status']];
 
-                /*
                 if ($check) {
                     $card_info['category'] = explode(',', $card_info['category']);
                     if ($goods) {
@@ -314,17 +316,14 @@ class Sell
                     }
                     if ($goods) {
                         if (in_array($v['goods_id'], $goods)) {
-                            $card_goods[] = $info['goods'][$k]['info'];
+                            $data['card']['goods'][] = $info['goods'][$k]['info'];
                         }
                     } elseif ($card_info['category']) {
                         if (in_array($info['goods'][$k]['info']['top_category_id'], $card_info['category'])) {
-                            $info['card_price'] += ($info['goods'][$k]['info']['cash'] * $info['goods'][$k]['info']['num']);
-                            $card_goods[] = $v;
+                            $data['card']['goods'][] = $info['goods'][$k]['info'];
                         }
                     }
-                } else {
-                    $info['card_price'] += $info['goods'][$k]['info']['price'];
-                }*/
+                }
             }
 
             if ($info['invoice_id']) {
@@ -597,6 +596,7 @@ class Sell
                             # 不满足限额
                         } else {
                             $data['card'] = array();
+                            $data['card']['info'] = $card_info;
                             $data['card']['goods'] = $card_goods;
                             $data['card']['id'] = $card_code['id'];
                             $data['card']['card'] = $card_code['card'];
@@ -608,6 +608,11 @@ class Sell
                                 $data['price'] -= $data['card']['cash'];
                             }
                             $data['card']['cash'] = round($data['card']['cash'], 2);
+                            $config = Dever::db('main/sell_config')->find();
+                            $card_type = Dever::db('card/type')->find($card_info['type_id']);
+                            $data['card']['name'] = $config['card_name'];
+                            $card = substr($card_code['card'], -4);
+                            $data['card']['name'] .= '('.$card_type['name'].$card.')';
                         }
                     }
                 }