dever 3 năm trước cách đây
mục cha
commit
545cc2ba92

+ 2 - 0
app/cash/lib/Order.php

@@ -29,6 +29,7 @@ class Order
         } else {
             $where['refund_id'] = $refund['id'];
         }
+        $where['clear'] = true;
 
         $info = Dever::db('cash/order')->find($where);
 
@@ -83,6 +84,7 @@ class Order
             $where['source_order_id'] = $order['id'];
             $where['jstype'] = 1;
             $where['audit'] = 1;
+            $where['clear'] = true;
             $info = Dever::db('cash/order')->find($where);
             if ($info) {
                 $set['status'] = 2;

+ 1 - 1
app/factory/admin/Auth.php

@@ -51,7 +51,7 @@ class Auth
         if ($sign) {
             $sign = Dever::checkLogin($sign);
             if ($sign && isset($sign['uid']) && $sign['uid'] > 0) {
-                $user = Dever::db('factory/member')->getManage(array('store_id' => $sign['uid'], 'role_id' => '1'));
+                $user = Dever::db('factory/member')->getManage(array('factory_id' => $sign['uid'], 'role_id' => '1'));
                 if ($user) {
                     $this->save($user);
                     Dever::location('home', 'factory');

+ 16 - 0
app/factory/admin/Order.php

@@ -57,6 +57,22 @@ class Order extends Core
                     $v['status_name'] .= '[缺货报损中]';
                 }
 
+                $order = array();
+                if ($v['parent_type'] == 2) {
+                    $order = Dever::db('shop/sell_order')->find($v['parent_order_id']);
+                }
+
+                if ($order && $order['uid']) {
+                    if ($order['address_id']) {
+                        $order['address'] = Dever::load('passport/address')->getOne($order['uid'], $order['address_id']);
+
+                        $v['type_info']['name'] = $order['address']['contact'];
+                    } else {
+                        $user = Dever::db('passport/user')->find($order['uid']);
+                        $v['type_info']['name'] = $user['username'];
+                    }
+                }
+
         		$html .= '<tr><td><input type="checkbox" name="mul_where_id[]" class="checkbox-checkall-list" lay-ignore value="'.$v['id'].'"/></td><td>'.$v['order_num'].'</td><td>'.$v['operdate'].'</td><td>'.$v['type_info']['name'].'</td><td>'.$ps_date.'</td><td>'.$v['p_price'].'</td><td>'.$v['status_name'].'</td><td>'.$button.'</td></tr>';
         	}
         }

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

@@ -757,13 +757,15 @@ class Buy
                     'link' => Dever::url('order_send?id=' . $info['id'], 'factory'),
                     'name' => '配送发货',
                 );
-
-                $button[] = array
-                (
-                    'type' => 'cancel',
-                    'link' => Dever::url('lib/buy.refund_apply_commit?json=1&order_id=' . $info['id'] . '&type_id=' . $info['source_id'], 'mshop'),
-                    'name' => '取消订单',
-                );
+                if ($parent_order && $parent_order['uid']) {
+                } else {
+                    $button[] = array
+                    (
+                        'type' => 'cancel',
+                        'link' => Dever::url('lib/buy.refund_apply_commit?json=1&order_id=' . $info['id'] . '&type_id=' . $info['source_id'], 'mshop'),
+                        'name' => '取消订单',
+                    );
+                }
             }
             $config['phone'] = '您的专属客服:' . $config['kf_name'] . ',联系电话:' . $config['phone'];
             $button[] = array
@@ -1847,7 +1849,7 @@ class Buy
 
         $info = Dever::db('shop/buy_order')->one($id);
 
-        $source_info = Dever::db('factory/info')->find($info['source_id']);
+        //$source_info = Dever::db('factory/info')->find($info['source_id']);
         if ($type == 2) {
             # 仓库
             $member = Dever::db('store/member')->find($user['id']);
@@ -1863,7 +1865,15 @@ class Buy
         } elseif ($info['type'] == 2) {
             $type_info = Dever::db('store/info')->find($info['type_id']);
         } elseif ($info['type'] == 3) {
-            $type_info = Dever::db('store/info')->find($info['type_id']);
+            $type_info = Dever::db('factory/info')->find($info['type_id']);
+        }
+
+        if ($info['source_type'] == 1) {
+            $source_info = Dever::db('shop/info')->find($info['source_id']);
+        } elseif ($info['source_type'] == 2) {
+            $source_info = Dever::db('store/info')->find($info['source_id']);
+        } elseif ($info['source_type'] == 3) {
+            $source_info = Dever::db('factory/info')->find($info['source_id']);
         }
 
         $cdate = date('Y-m-d H:i', $info['cdate']);
@@ -1903,11 +1913,11 @@ class Buy
         $pdf->font(10);
         $pdf->br();
 
-        $pdf->br()->left($name . ':' . $type_info['name'], 80)->left('制单人:' . $member['name'], 60)->left('制单时间:' . date('Y-m-d H:i'), 40);
+        if ($type == 2 && $info['type'] == 2) {
+            $pdf->br()->left($name . ':' . $type_info['name'], 80)->left('制单人:' . $member['name'], 60)->left('制单时间:' . date('Y-m-d H:i'), 40);
 
-        $pdf->hr();
+            $pdf->hr();
 
-        if ($type == 2 && $info['type'] == 2) {
             $pdf->br()->left('订单状态:' . $status, 140)->left('订货时间:' . $operdate, 40);
 
             $pdf->hr();
@@ -1935,6 +1945,10 @@ class Buy
             $pdf->hr();
 
         } else {
+            $pdf->br()->left($name . ':' . $source_info['name'], 80)->left('制单人:' . $member['name'], 60)->left('制单时间:' . date('Y-m-d H:i'), 40);
+
+            $pdf->hr();
+
             $pdf->br()->left('订单状态:' . $status, 80)->left('订货时间:' . $operdate, 80);
 
             $pdf->hr();

+ 1 - 1
app/shop/database/buy_order_goods.php

@@ -130,7 +130,7 @@ return array
             'match'     => array('is_numeric', time()),
             'desc'      => '',
             # 只有insert时才生效
-            //'insert'    => true,
+            'insert'    => true,
             //'search'    => 'date',
             'list'      => 'date("Y-m-d H:i:s", {cdate})',
         ),

+ 1 - 1
app/shop/database/buy_order_ps.php

@@ -126,7 +126,7 @@ return array
             'match'     => array('is_numeric', time()),
             'desc'      => '',
             # 只有insert时才生效
-            //'insert'    => true,
+            'insert'    => true,
             'update'    => 'date',
             'search'    => 'date',
             'list'      => 'date("Y-m-d H:i:s", {cdate})',

+ 19 - 1
app/shop/database/buy_order_refund.php

@@ -62,6 +62,24 @@ return array
             'match'     => 'option',
         ),
 
+        'parent_type'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '原订单类型',
+            'default'   => '1',
+            'desc'      => '原订单类型',
+            'match'     => 'is_numeric',
+        ),
+
+        'parent_order_id'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '原订单id',
+            'default'   => '',
+            'desc'      => '原订单id',
+            'match'     => 'is_numeric',
+        ),
+
         'cash'      => array
         (
             'type'      => 'varchar-300',
@@ -173,7 +191,7 @@ return array
             'match'     => array('is_numeric', time()),
             'desc'      => '',
             # 只有insert时才生效
-            //'insert'    => true,
+            'insert'    => true,
             'search'    => 'date',
             'list'      => 'date("Y-m-d H:i:s", {cdate})',
         ),

+ 1 - 1
app/shop/database/sell_order.php

@@ -671,7 +671,7 @@ return array
             //fast_list
             'list' => array('查看详情', '"sell_order_goods&project=shop&order_id={id}&page_type=&search_option_shop_type='.$search_option_shop_type.'"'),
 
-            'list1' => array('查看采购单', '"buy_order&project=shop&search_option_type=1&&search_option_parent_type=2&search_option_parent_order_id={id}&oper_table=sell_order&search_option_shop_type='.$search_option_shop_type.'"', '{status} >= 3 && {shop_type} == 2'),
+            'list1' => array('查看采购单', '"buy_order&project=shop&search_option_type=1&&search_option_parent_type=2&search_option_parent_order_id={id}&oper_table=sell_order&search_option_shop_type='.$search_option_shop_type.'"', '{status} >= 3 && {audit} == 2 && {shop_type} == 2'),
 
             //'location2' => array('分配仓库', Dever::url('lib/set.store', 'shop')),
 

+ 1 - 1
app/shop/database/sell_order_goods.php

@@ -148,7 +148,7 @@ return array
             'match'     => array('is_numeric', time()),
             'desc'      => '',
             # 只有insert时才生效
-            //'insert'    => true,
+            'insert'    => true,
             'search'    => 'date',
             'list'      => 'date("Y-m-d H:i:s", {cdate})',
         ),

+ 1 - 1
app/shop/database/sell_order_ps.php

@@ -135,7 +135,7 @@ return array
             'match'     => array('is_numeric', time()),
             'desc'      => '',
             # 只有insert时才生效
-            //'insert'    => true,
+            'insert'    => true,
             'search'    => 'date',
             'list'      => 'date("Y-m-d H:i:s", {cdate})',
         ),

+ 1 - 1
app/shop/database/sell_order_refund.php

@@ -161,7 +161,7 @@ return array
             'match'     => array('is_numeric', time()),
             'desc'      => '',
             # 只有insert时才生效
-            //'insert'    => true,
+            'insert'    => true,
             'search'    => 'date',
             'list'      => 'date("Y-m-d H:i:s", {cdate})',
         ),

+ 1 - 1
app/shop/lib/Manage.php

@@ -308,7 +308,7 @@ class Manage
             }
             $gup['option_shop_id'] = $id;
             $gup['set_area'] = $area;
-            Dever::db('shop/goods_sku')->updates($gup);
+            //Dever::db('shop/goods_sku')->updates($gup);
             //Dever::db('shop/sell_order')->updates($gup);
             //Dever::db('shop/buy_order')->updates($gup);
             //Dever::db('shop/out_order')->updates($gup);

+ 36 - 24
app/shop/lib/Refund.php

@@ -64,7 +64,7 @@ class Refund
     }
 
     # 更新退款记录
-    public function up($order_id, $order_goods_id, $status, $price, $p_price, $num = false, $desc = '', $pic = '', $process = 1)
+    public function up($order_id, $order_goods_id, $status, $price, $p_price, $num = false, $desc = '', $pic = '', $process = 1, $order = array())
     {
         $data['order_id'] = $order_id;
         if (!$order_goods_id) {
@@ -92,6 +92,10 @@ class Refund
         $data['desc'] = $desc;
         $data['pic'] = $pic;
         $data['process'] = $process;
+        if ($order && isset($order['parent_type']) && $order['parent_type'] > 1) {
+            $data['parent_type'] = $order['parent_type'];
+            $data['parent_order_id'] = $order['parent_order_id'];
+        }
         if ($info) {
             $data['where_id'] = $info['id'];
             $state = Dever::db($this->refund_table)->update($data);
@@ -179,7 +183,7 @@ class Refund
             $cash = round($cash, 2);
 
             if ($cash >= 0) {
-                $log = $this->up($data['id'], $order_goods_id, $status, $cash, $p_cash, $num, $desc, $pic, $process);
+                $log = $this->up($data['id'], $order_goods_id, $status, $cash, $p_cash, $num, $desc, $pic, $process, $data);
 
                 if (!$log) {
                     Dever::alert('退款失败');
@@ -306,28 +310,30 @@ class Refund
                         $state = Dever::db($this->order_table)->update($update);
                     }
 
-                    if (isset($order['parent_type']) && $order['parent_type'] > 1 && isset($order['parent_order_id']) && $order['parent_order_id']) {
-                        # 把关联订单也退掉
-                        $goods_info = Dever::db($this->goods_table)->find($info['order_goods_id']);
-                        if ($goods_info) {
+                    if ($buy_status != -1) {
+                        if (isset($order['parent_type']) && $order['parent_type'] > 1 && isset($order['parent_order_id']) && $order['parent_order_id']) {
+                            # 把关联订单也退掉
+                            $goods_info = Dever::db($this->goods_table)->find($info['order_goods_id']);
+                            if ($goods_info) {
 
-                            $sell_order_goods = Dever::db('shop/sell_order_goods')->find(array('order_id' => $order['parent_order_id'], 'goods_id' => $goods_info['goods_id'], 'sku_id' => $goods_info['sku_id']));
-                        }
-                    } elseif (isset($order['shop_type']) && $order['shop_type'] == 2) {
-                        # 把关联订单也退掉
-                        $buy_order = Dever::db('shop/buy_order')->select(array('parent_type' => 2, 'parent_order_id' => $info['order_id']));
-                        $goods_info = Dever::db($this->goods_table)->find($info['order_goods_id']);
-                        if ($buy_order && $goods_info) {
-                            foreach ($buy_order as $k => $v) {
-                                $temp = Dever::db('shop/buy_order_goods')->find(array('order_id' => $v['id'], 'goods_id' => $goods_info['goods_id'], 'sku_id' => $goods_info['sku_id']));
-                                if ($temp) {
-                                    $temp['type'] = $v['type'];
-                                    $temp['type_id'] = $v['type_id'];
-                                    $buy_order_goods = $temp;
+                               $sell_order_goods = Dever::db('shop/sell_order_goods')->find(array('order_id' => $order['parent_order_id'], 'goods_id' => $goods_info['goods_id'], 'sku_id' => $goods_info['sku_id']));
+                            }
+                        } elseif (isset($order['shop_type']) && $order['shop_type'] == 2) {
+                            # 把关联订单也退掉
+                            $buy_order = Dever::db('shop/buy_order')->select(array('parent_type' => 2, 'parent_order_id' => $info['order_id']));
+                            if ($buy_order) {
+                                $goods_info = Dever::db($this->goods_table)->find($info['order_goods_id']);
+                                foreach ($buy_order as $k => $v) {
+                                    $temp = Dever::db('shop/buy_order_goods')->find(array('order_id' => $v['id'], 'goods_id' => $goods_info['goods_id'], 'sku_id' => $goods_info['sku_id']));
+                                    if ($temp) {
+                                        $temp['type'] = $v['type'];
+                                        $temp['type_id'] = $v['type_id'];
+                                        $buy_order_goods = $temp;
+                                    }
                                 }
                             }
                         }
-                    }
+                    }   
                 }
             } else {
                 $update['where_id'] = $order['id'];
@@ -368,17 +374,21 @@ class Refund
         }
 
         $data = Dever::db($this->goods_table)->getDataByIds(array('ids' => $info['order_goods_id']));
+
         if ($this->type == 'sell' && $process == 2) {
             # 如果是销售单,退款后要减少销量
             Dever::load('shop/lib/goods')->oper($order, 2, 2, $data);
         } elseif ($this->type == 'buy' && $process == 3 && ($order['status'] == 5 || $order['status'] == 6)) {
             # 如果是采购单,退款后要恢复库存
             Dever::load('shop/lib/goods')->oper($order, 1, 1, $data);
+        } elseif ($this->type == 'buy' && $process == 2 && $order['source_type'] == 2) {
+            # 如果是采购单,退款后要恢复库存
+            Dever::load('store/lib/goods')->oper($order['source_id'], 2, 2, $data);
         }
         if (isset($sell_order_goods) && $sell_order_goods) {
-            Dever::load('shop/lib/refund')->set('sell')->apply(2, $sell_order_goods['shop_id'], $sell_order_goods['order_id'], $sell_order_goods['id'], 2, 0, '退货退款');
+            Dever::load('shop/lib/refund')->set('sell')->apply(2, $sell_order_goods['shop_id'], $sell_order_goods['order_id'], $sell_order_goods['id'], 2, 0, '退货退款', '', 2, -1);
         } elseif (isset($buy_order_goods) && $buy_order_goods) {
-            Dever::load('shop/lib/refund')->set('buy')->apply($buy_order_goods['type'], $buy_order_goods['type_id'], $buy_order_goods['order_id'], $buy_order_goods['id'], $buy_status, 0, $info['desc'], '', 2);
+            Dever::load('shop/lib/refund')->set('buy')->apply($buy_order_goods['type'], $buy_order_goods['type_id'], $buy_order_goods['order_id'], $buy_order_goods['id'], $buy_status, 0, $info['desc'], '', 2, -1);
         }
 
         return 'reload';
@@ -452,9 +462,11 @@ class Refund
             $msg_param['name'] = $shop['name'];
             $msg_param = Dever::json_encode($msg_param);
             $msg = '您有一笔订单已退款,退款将在3个工作日内返回原支付账户';
-            Dever::load('message/lib/data')->push(-1, $data['uid'], '退款成功通知', $msg, 2, 1, false, $msg_param);
+            if (Dever::project('message')) {
+                Dever::load('message/lib/data')->push(-1, $data['uid'], '退款成功通知', $msg, 2, 1, false, $msg_param);
+            }
 
-            if (Dever::load('wechat_applet')) {
+            if (Dever::project('wechat_applet')) {
                 $config = Dever::db($this->order_table)->config;
                 $user = Dever::db('passport/wechat')->one(array('uid' => $data['uid'], 'system_id' => 1, 'system_source' => 5));
                 if ($user && $user['openid']) {

+ 9 - 7
app/shop/lib/Sell.php

@@ -745,7 +745,7 @@ class Sell
             $wechat = Dever::db('passport/wechat')->one(array('uid' => $uid, 'type' => 1, 'system_id' => 1));
 
             if (!$wechat) {
-                Dever::alert('错误的用户信息');
+                //Dever::alert('错误的用户信息');
             }
         }
 
@@ -1059,7 +1059,7 @@ class Sell
                     $msg_param['id'] = $order['id'];
                     $msg_param['name'] = $shop['name'];
                     $msg_param = Dever::json_encode($msg_param);
-                    Dever::load('message/lib/data')->push(-1, $order['uid'], '订购成功通知', $msg, 2, 1, false, $msg_param);
+                    Dever::project('message') && Dever::load('message/lib/data')->push(-1, $order['uid'], '订购成功通知', $msg, 2, 1, false, $msg_param);
                 }
 
                 
@@ -1160,7 +1160,7 @@ class Sell
                 $msg_param['name'] = $shop['name'];
                 $msg_param = Dever::json_encode($msg_param);
                 $msg = '您有一笔订单已签收,祝您用餐愉快~';
-                Dever::load('message/lib/data')->push(-1, $info['uid'], '订单完成通知', $msg, 1, 1, false, $msg_param);
+                Dever::project('message') && Dever::project('message') && Dever::load('message/lib/data')->push(-1, $info['uid'], '订单完成通知', $msg, 1, 1, false, $msg_param);
             }
             if ($info['method'] == 2) {
                 Dever::load('shop/lib/sell')->updatePs($info, 3);
@@ -1472,9 +1472,11 @@ class Sell
                 $sku = '无';
             }
 
-            $tui = Dever::url('buy_order_tui?shop_id='.$v['shop_id'].'&order_goods_id=' . $v['id'] . '&order_id=' . $info['id'] . '&cash=' . $v['price'], 'shop');
+            if ($info['shop_type'] == 2) {
+                $tui = Dever::url('buy_order_tui?shop_id='.$v['shop_id'].'&order_goods_id=' . $v['id'] . '&order_id=' . $info['id'] . '&cash=' . $v['price'], 'shop');
 
-            $status = '<a href="javascript:;" onclick="fastEdit($(this), \''.$tui.'\', \'退款\', \'\', 1)" class="layui-btn">退款</a>';
+                $status = '<a href="javascript:;" onclick="fastEdit($(this), \''.$tui.'\', \'退款\', \'\', 1)" class="layui-btn">退款</a>';
+            }
 
             $d = array
             (
@@ -1640,9 +1642,9 @@ class Sell
                 $wechat_msg = '您的商品已开始配送';
             }
             
-            Dever::load('message/lib/data')->push(-1, $info['uid'], $name, $msg, 1, 1, false, $msg_param);
+            Dever::project('message') && Dever::load('message/lib/data')->push(-1, $info['uid'], $name, $msg, 1, 1, false, $msg_param);
 
-            if (Dever::load('wechat_applet')) {
+            if (Dever::project('wechat_applet')) {
                 $user = Dever::db('passport/wechat')->one(array('uid' => $info['uid'], 'system_id' => 1, 'system_source' => 5));
                 if ($user && $user['openid']) {
                     $info['status_name'] = $config['status'][$info['status']];

+ 0 - 2
app/shop/src/Buy.php

@@ -248,8 +248,6 @@ class Buy extends Core
 			Dever::alert('收货地址不能为空');
 		}
 
-		
-
 		$pay = Dever::load('shop/lib/sell')->pay($this->data['method'], $this->data['pay_method'], 1, $this->user, $this->shop, $this->data['name'], $this->data['num'], $this->data['list'], $this->data['oprice'], $this->data['price'], 0, $address_id, $invoice_id, $info, $this->data['card'], $this->data['wallet_cash'], $this->data['coupon_id'], $this->data['user_coupon_id'], $this->data['coupon_cash'], $cart, 5, $refer);
 		return $pay;
 	}