Your Name 3 年之前
父节点
当前提交
ec1e47911e
共有 3 个文件被更改,包括 258 次插入9 次删除
  1. 2 1
      service/agent/database/dh_order.php
  2. 8 8
      service/agent/database/dh_order_goods.php
  3. 248 0
      service/agent/lib/Dhorder.php

+ 2 - 1
service/agent/database/dh_order.php

@@ -378,7 +378,8 @@ return array
 
             'list1' => array('查看采购单', '"buy_order&project=shop&search_option_type=1&search_option_parent_type=3&search_option_parent_order_id={id}&oper_table=dh_order&oper_project=agent"', '{type} == 1 && {status} >= 3 && {audit} == 2'),
 
-            'fast' => array('审核', '"dh_order&where_id={id}&col=audit,audit_desc&oper_save_jump=dh_order&oper_table=dh_order&oper_parent=dh_order"', '{type} == 1 && {status} == 2'),
+            // 'fast' => array('审核', '"dh_order&where_id={id}&col=audit,audit_desc&oper_save_jump=dh_order&oper_table=dh_order&oper_parent=dh_order"', '{type} == 1 && {status} == 2'),
+            'list2' => array('审核', '"dh_order_goods&project=agent&order_id={id}&audit=1&page_type=1"', '{status} == 2'),
 
             'oper'  => array('确认收货', '"agent/lib/manage.setDhOrderStatus?mid={mid}&order_id={id}"', '{type} == 1 && {status} == 4'),
         ),

+ 8 - 8
service/agent/database/dh_order_goods.php

@@ -49,14 +49,14 @@ return array
             'match'     => 'is_numeric',
         ),
 
-        'shop_id'      => array
-        (
-            'type'      => 'int-11',
-            'name'      => '门店名称',
-            'default'   => '',
-            'desc'      => '门店名称',
-            'match'     => 'is_numeric',
-        ),
+        // 'shop_id'      => array
+        // (
+        //     'type'      => 'int-11',
+        //     'name'      => '门店名称',
+        //     'default'   => '',
+        //     'desc'      => '门店名称',
+        //     'match'     => 'is_numeric',
+        // ),
 
         'goods_id'      => array
         (

+ 248 - 0
service/agent/lib/Dhorder.php

@@ -801,6 +801,11 @@ class Dhorder
             'link' => Dever::url('project/database/list?project=agent&table=dh_order&menu=agent&search_option_state=1', 'manage'),
             'name' => '返回上一页',
         );
+        $audit = Dever::input('audit');
+        if($audit==1){
+            # 审核信息
+            $this->show_audit($info, $result);
+        }
 
         $head = array
         (
@@ -811,7 +816,248 @@ class Dhorder
 
         return $html;
     }
+     private function show_audit($info, &$result)
+    {
+        $info['type'] = 3;
+
+        $goods = Dever::db('agent/dh_order_goods')->select(array('order_id' => $info['id'], 'status' => 1));
+
+        $shop = Dever::db('shop/info')->find($info['shop_id']);
+
+        list($data, $source) = Dever::load('mshop/lib/buy')->assign($goods, $info, $shop, true);
+        // print_R($data);die;
+        if ($info) {
+
+            $head = array('序号', '商品编号', '商品名称', '供货商', '订货总数量', '商品计量单位', '订货单总金额');
+            $body = array();
+            $i = 0;
+            if ($data) {
+                foreach ($data as $k => $v) {
+                    foreach ($v as $v1) {
+                        $goods_info = Dever::load('goods/lib/info')->getInfoBySku($v1['goods_id'], $v1['sku_id']);
+                        if (isset($goods_info['sku'])) {
+                            $sku = '[' . $goods_info['sku']['string'] . ']';
+                        } else {
+                            $sku = '';
+                        }
+                        $d = array
+                        (
+                            $i+1,
+                            $goods_info['code'],
+                            $goods_info['name'] . $sku,
+                            Dever::load('mshop/lib/buy')->getSelect($source, $v1['source_id'], $v1['order_goods_id']),
+                            $v1['num'],
+                            $goods_info['unit'],
+                            $v1['price'] * $v1['num'],
+                        );
+
+                        $body[] = $d;
+
+                        $i++;
+                    }
+                }
+            }
+            
+            if ($goods) {
+                foreach ($goods as $k => $v) {
+                    $goods_info = Dever::load('goods/lib/info')->getInfoBySku($v['goods_id'], $v['sku_id']);
+                    if (isset($goods_info['sku'])) {
+                        $sku = '[' . $goods_info['sku']['string'] . ']';
+                    } else {
+                        $sku = '';
+                    }
+                    $d = array
+                    (
+                        $i+1,
+                        $goods_info['code'],
+                        $goods_info['name'] . $sku,
+                        Dever::load('mshop/lib/buy')->getSelect($source, false, $v['id']),
+                        $v['num'],
+                        $goods_info['unit'],
+                        $v['price'] * $v['num'],
+                    );
+
+                    $body[] = $d;
+
+                    $i++;
+                }
+            }
+
+            $btn = array();
+            $btn[] = array(
+                'type' => 'click',
+                'content' => 'setAudit()',
+                'name' => '全部调整<script>function setAudit(){layer.confirm(\'确定进行此项操作吗?\', function(){var audit = $(\'.audit_set\').val();$(\'.audit\').each(function(){$(this).val(audit);layui.form.render();layer.closeAll()})})}</script>'
+            );
+            $result['商品拆单'] = array
+            (
+                'type' => 'table',
+                'head' => array('name' => '供货商:' . Dever::load('mshop/lib/buy')->getSelect($source, false, false), 'btn' => $btn),
+                'content' => array
+                (
+                    'head' => $head,
+                    'body' => $body,
+                )
+            );
+
+            $url = Dever::url('lib/dhorder.audit_set_commit?json=1&order_id=' . $info['id'], 'agent');
+            // print_R($url);die;
+            $result['审核结果'] = array
+            (
+                'type' => 'html',
+                'content' => '<script>function saveAudit(){var goods = [];var audit = 1; var audit_text = $(".update_audit_text").val();$(".update_audit").each(function(){if ($(this).get(0).checked){audit = $(this).val()}});$(\'.audit\').each(function(){var v = $(this).val();var id = $(this).attr("id");goods.push(v + "_" + id);});layer.confirm(\'确定进行此项操作吗?\', function(){layui.form.render();var send = {};send.goods = goods.join(",");send.audit = audit;send.audit_text = audit_text;console.info(send);$.post("'.$url.'", send, function(t){t = JSON.parse(t);showYes(t)})})}</script><style>.layui-form-radio{padding-right: 0px;margin: 0px 0px 0 0;margin-left:40px}</style><div class="layui-form-item  show_input"><div classs="layui-col-lg6"><div><label style="font-size:14px;font-weight:bold;" class="">审核状态</label><div style="display:inline" class="am-btn-group"><input update_type="checked" class="checkbox-checkall-0_update_audit update_audit update_value validate[required]" type="radio" name="update_audit[]" value="2" checked="" show_id="audit" autocomplete="off" id="form-validation-field-1"> 审核通过 &nbsp;&nbsp;<input update_type="checked" class="autoload checkbox-checkall-0_update_audit update_audit update_value validate[required]" type="radio" name="update_audit[]" value="3" autocomplete="off" id="form-validation-field-0"> 审核未通过 &nbsp;&nbsp;</div></div></div></div><div class="layui-form-item" style="display: block;"><div classs="layui-col-lg6"><div><label style="font-size:14px;font-weight:bold;" class="">审核备注</label></div><div><textarea style="height:100px;" update_type="value" class="update_value update_audit_text form-control layui-input validate[required]" name="update_desc"></textarea></div></div></div> <div style="text-align:left" class="layui-layer-btn layui-layer-btn-"><a class="layui-btn layui-btn-primary" onclick="saveAudit()">保存</a><a class="layui-layer-btn1" style="display:none">取消</a></div>',
+            );
+        }
+    }
+     # 采购订单审核 手动拆单
+    public function audit_set_commit_api()
+    {
+        Dever::config('base')->hook = true;
+        //{goods: "2_4_audit_615,2_4_audit_614,-1_-1_audit_617,-1_-1_audit_616,-1_-1_audit_613", audit: "1", audit_text: "1231"}
+
+        $id = Dever::input('order_id');
+        $goods = Dever::input('goods');
+        $audit = Dever::input('audit');
+        $audit_text = Dever::input('audit_text');
+
+        $info = Dever::db('agent/dh_order')->one($id);
+        if ($audit > 1 && $info && $info['status'] == 2) {
+
+            $shop = Dever::db('shop/info')->find($info['shop_id']);
+
+            if ($audit == 2) {
+                Dever::db('agent/dh_order')->update(array('where_id' => $info['id'], 'audit' => $audit, 'audit_desc' => $audit_text));
+                # 成功
+                if (strstr($info['order_num'], '_')) {
+                    $temp = explode('_', $info['order_num']);
+                    $info['order_num'] = $temp[0];
+                    $info['order_index'] = $temp[1];
+                } else {
+                    $info['order_index'] = 0;
+                }
+                $goods = explode(',', $goods);
+                $data = $other = array();
+                foreach ($goods as $k => $v) {
+                    list($source_type, $source_id, $name, $goods_id) = explode('_', $v);
+                    $gv = Dever::db('agent/dh_order_goods')->find($goods_id);
+                    if ($source_id > 0) {
+                        $key = $source_type . '_' . $source_id;
+                        $data[$key][] = array
+                        (
+                            'area' => $shop['area'],
+                            'order_id' => $info['id'],
+                            'order_type' => 3,
+                            'order_num' => $info['order_num'],
+                            'order_index' => $info['order_index'],
+                            'type' => 1,
+                            'type_id' => $shop['id'],
+                            'source_type' => $source_type,
+                            'source_id' => $source_id,
+                            'order_goods_id' => $gv['id'],
+                            'goods_id' => $gv['goods_id'],
+                            'sku_id' => $gv['sku_id'],
+                            'price' => $gv['price'],
+                            'p_price' => $gv['price'],
+                            'num' => $gv['num'],
+                        );
+                    } else {
+                        $other[] = $gv;
+                    }
+                }
+
+                $this->audit_action($data, $other, $info, $shop, 1);
+            } else {
+                Dever::db('agent/dh_order')->update(array('where_id' => $info['id'], 'audit' => $audit, 'audit_desc' => $audit_text));
+                # 退款
+                $shop = Dever::db('shop/info')->find($info['shop_id']);
+                Dever::load('shop/lib/refund')->set('sell')->apply(1, $shop['id'], $id, false, 3, 0, '未通过审核');
+            }
+        }
+
+        return Dever::url('project/database/list&project=agent&table=dh_order&menu=agent&search_option_state=1&search_option_shop_type=2&menu_id=218', 'manage');
+    }
+    # 采购订单审核 拆单
+    public function audit_commit()
+    {
+        $order_id = Dever::input('order_id');
+        $order = Dever::db('agent/dh_order')->find($order_id);
 
+        if (!$order || ($order && $order['status'] != 2)) {
+            Dever::alert('当前订单状态无法拆单');
+        }
+
+        // if ($order['shop_type'] != 2) {
+        //     Dever::alert('这不是平台店的订单');
+        // }
+
+        $order['type'] = 3;
+
+        $goods = Dever::db('agent/dh_order_goods')->select(array('order_id' => $order_id));
+
+        $shop = Dever::db('shop/info')->find($order['shop_id']);
+
+        $data = Dever::load('mshop/lib/buy')->assign($goods, $order, $shop);
+
+        $this->audit_action($data, $goods, $order, $shop);
+
+        return 'ok';
+    }
+    private function audit_action($data, $goods, $order, $shop, $state = 2)
+    {
+        $send = array();
+
+        if (!$goods && $data) {
+            # 开始生成订单
+            $i = $order['order_index'];
+            foreach ($data as $k => $v) {
+                foreach ($v as $k1 => $v1) {
+                    $v1['order_num'] .= '_' . $i;
+
+                    $state = Dever::load('mshop/lib/buy')->createOrder($v1);
+                    $send[$state] = $v1;
+                }
+                $i++;
+            }
+
+            Dever::db('agent/dh_order')->update(array('where_id' => $order['id'], 'status' => 3));
+        } else {
+            Dever::db('agent/dh_order')->update(array('where_id' => $order['id'], 'audit' => 1));
+            if ($goods) {
+                $string = array();
+                foreach ($goods as $k => $v) {
+                    $info = Dever::load('goods/lib/info')->getInfoBySku($v['goods_id'], $v['sku_id']);
+                    
+                    if ($info['sku_name']) {
+                        $info['name'] .= '('.$info['sku_name'].')';
+                    }
+                    $string[] = $info['name'];
+                }
+                $string = implode('、', $string);
+                if ($state == 1) {
+                    Dever::alert('商品:'.$string.'未选择供货商');
+                } else {
+                    Dever::alert('商品:'.$string.'库存不足或厂家未生产,请联系供货商备货,该订单进入重新审核状态');
+                }
+                Dever::alert('商品:'.$string.'库存不足或厂家未生产,请联系供货商备货,该订单进入重新审核状态');
+            } else {
+                if ($state == 1) {
+                    Dever::alert('未选择供货商,该订单进入重新审核状态');
+                } else {
+                    Dever::alert('供货商库存不足,请联系供货商备货,该订单进入重新审核状态');
+                }
+                
+            }
+        }
+
+        if ($send) {
+            foreach ($send as $k => $v) {
+                Dever::load('mshop/lib/buy')->sendMsg($v['source_type'], $v['source_id'], $k);
+
+                $order_info = Dever::db('shop/buy_order')->find(array('id' => $k, 'clear' => true));
+                Dever::load('cash/lib/order')->up($order_info, 1, 1);
+            }
+        }
+    }
     # 第三方确认
     public function tixian()
     {
@@ -835,6 +1081,7 @@ class Dhorder
     }
 
     # 采购订单审核 拆单
+    /*
     public function audit_commit()
     {
         $order_id = Dever::input('order_id');
@@ -898,4 +1145,5 @@ class Dhorder
 
         return 'ok';
     }
+    */
 }