Explorar el Código

校验供应商负责人取最新的,售前退货维护发货工单状态

wufeng hace 2 años
padre
commit
3d4fb483dc

+ 5 - 0
app/admin/controller/After.php

@@ -567,6 +567,11 @@ class After extends Base
                     break;
             }
 
+            //获取最新的供应商负责人
+            $s_info = \app\admin\common\User::getIns()->handle('sInfo', ['code' => $info['supplierNo']]);
+            $info['person_id'] = $s_info['data']['personid'];
+            $info['person'] = $s_info['data']['person'];
+
             //当处于以下节点时,level2账号必须是供应商负责人操作,level3账号不做限制
             if (in_array($info['status'], [9, 10]) && ($this->level == 2) && ($this->uid != $info['person_id'])) return json_show(1004, '您不是供应商负责人,此时无权操作');
 

+ 5 - 3
app/admin/controller/Filing.php

@@ -301,9 +301,11 @@ class Filing extends Base
         //level3账号都可以操作
         //level2账号的话,只有供应商负责人能操作
         if ($this->level == 2) {
-            $userCommon = \app\admin\common\User::getIns();
-            $supp = $userCommon->handle('sInfo', ['code' => $rs['supplierNo']]);
-            if ($this->uid != $supp['data']['personid']) return json_show(1004, '只有供应商负责人才能操作');
+//            $userCommon = \app\admin\common\User::getIns();
+//            $supp = $userCommon->handle('sInfo', ['code' => $rs['supplierNo']]);
+
+            $supp = get_personid_by_supplierNo([$rs['supplierNo']]);
+            if ($this->uid != $supp[$rs['supplierNo']]) return json_show(1004, '只有供应商负责人才能操作');
         }
 
         $res = Db::name('filing')

+ 6 - 5
app/admin/controller/OrderOutChild.php

@@ -431,11 +431,12 @@ class OrderOutChild extends Base
             $date = date('Y-m-d H:i:s');
 
             //所有供应商负责人
-            $userCommon = \app\admin\common\User::getIns();
-            $person_temp = $userCommon->handle('sGetList', ['more_code' => array_unique(array_column($child, 'supplierNo')), 'size' => count(array_column($child, 'supplierNo'))]);
-            $person = array_column($person_temp['data']['list'], 'personid', 'code');
-            unset($userCommon);
-            unset($person_temp);
+            $person = get_personid_by_supplierNo(array_unique(array_column($child, 'supplierNo')));
+//            $userCommon = \app\admin\common\User::getIns();
+//            $person_temp = $userCommon->handle('sGetList', ['more_code' => array_unique(array_column($child, 'supplierNo')), 'size' => count(array_column($child, 'supplierNo'))]);
+//            $person = array_column($person_temp['data']['list'], 'personid', 'code');
+//            unset($userCommon);
+//            unset($person_temp);
 
             //所有仓库管理员
             $wsm_contactor = Db::name('warehouse_info')

+ 6 - 0
app/admin/controller/Reorder.php

@@ -851,6 +851,12 @@ class Reorder extends Base
                 break;
         }
 
+
+        //获取最新的供应商负责人
+        $s_info = \app\admin\common\User::getIns()->handle('sInfo', ['code' => $info['supplierNo']]);
+        $info['person_id'] = $s_info['data']['personid'];
+        $info['person'] = $s_info['data']['person'];
+
         //当处于以下节点时,level2账号必须是供应商负责人操作,level3账号不做限制
         if (in_array($info['status'], [9, 10]) && ($this->level == 2) && ($this->uid != $info['person_id'])) return json_show(1004, '您不是供应商负责人,此时无权操作');
 

+ 14 - 5
app/admin/controller/ReorderChild.php

@@ -43,7 +43,7 @@ class ReorderChild extends Base
             //所有发货工单
             $orderOutChild = Db::name('order_out_child')
                 ->where(['is_del' => 0, 'outChildCode' => array_unique(array_column($param['list'], 'outChildCode'))])
-                ->column('id,outCode,wsm_code,num,status', 'outChildCode');
+                ->column('id,outCode,wsm_code,num,status,is_del', 'outChildCode');
 
             $saleReturnAddr = Db::name('sale_returnaddr')
                 ->field('id,return_num,is_sale_return_child')
@@ -139,14 +139,23 @@ class ReorderChild extends Base
                 ]);
 
                 //维护发货工单
+                $orderOutChild[$value['outChildCode']]['num'] -= $value['return_num'];
+                if ($orderOutChild[$value['outChildCode']]['num'] <= 0) {
+                    $orderOutChild[$value['outChildCode']]['status'] = 4;
+                    $orderOutChild[$value['outChildCode']]['is_del'] = 1;
+                }//4已全部退货
+
                 Db::name('order_out_child')
-                    ->data(['updatetime' => $date])
-                    ->dec('num', $value['return_num'])
                     ->where('id', $orderOutChild[$value['outChildCode']]['id'])
-                    ->update();
+                    ->update([
+                        'updatetime' => $date,
+                        'num' => $orderOutChild[$value['outChildCode']]['num'],
+                        'status' => $orderOutChild[$value['outChildCode']]['status'],
+                        'is_del' => $orderOutChild[$value['outChildCode']]['is_del'],
+                    ]);
 
                 if ($param['outCode'] != '') {
-                    //维护发货单和发货工单
+                    //维护发货单
                     $addrinfo = Db::name("order_addr")
                         ->where('id', $out_code_info['addrid'])
                         ->findOrEmpty();

+ 5 - 3
app/admin/controller/Sale.php

@@ -4066,10 +4066,12 @@ class Sale extends Base
                         ->value('supplierNo');
                 }
 
-                $userCommon = \app\admin\common\User::getIns();
-                $temp = $userCommon->handle('sInfo', ['code' => $supplierNo]);
+//                $userCommon = \app\admin\common\User::getIns();
+//                $temp = $userCommon->handle('sInfo', ['code' => $supplierNo]);
 
-                if (($this->level == 2) && ($uid != $temp['data']['personid'])) throw new \think\Exception('非库存品和采返商品只能由供应商负责人操作');
+                $temp = get_personid_by_supplierNo([$supplierNo]);
+
+                if (($this->level == 2) && ($uid != $temp[$supplierNo])) throw new \think\Exception('非库存品和采返商品只能由供应商负责人操作');
             }
 
             if ($up) {

+ 10 - 0
app/common.php

@@ -1689,4 +1689,14 @@ if (function_exists('get_budget') == false) {
         } else return (($sale_rate_1['sale_rate'] ?? 0) + ($sale_rate_2['sale_rate'] ?? 0)) / 100; //此时的毛利率要取两个毛利的和
 
     }
+}
+
+//获取供应商负责人
+if(function_exists('get_personid_by_supplierNo')==false){
+    function get_personid_by_supplierNo(array $codes=[]){
+        $res=\app\admin\common\User::getIns()->handle('sGetList',['more_code'=>$codes,'size'=>count($codes)]);
+        $data=array_column($res['data']['list'],'personid','code');
+        unset($res);
+        return $data;
+    }
 }