Browse Source

Merge branch 'master-new-dev-wf' of wugg/phpstock into master-new

wufeng 2 years ago
parent
commit
195b944701
2 changed files with 31 additions and 14 deletions
  1. 13 2
      app/admin/controller/Goodup.php
  2. 18 12
      app/admin/controller/Sale.php

+ 13 - 2
app/admin/controller/Goodup.php

@@ -510,6 +510,12 @@ class Goodup extends Base
 		$supplier=$supplierArr['child']??[];
 //        $supplier =Db::name("supplier")->where(["code"=>$supplierNo])->findOrEmpty();
 //        if(empty($supplier)) return error_show(1004,"供应商信息未找到");
+
+        if ($this->level == 2) {
+            $supplier_account = checkHasAccountBySupplierNos([$supplierNo]);
+            if (isset($supplier_account[$supplierNo])) return json_show(1004, '该供应商已开通账号,不允许操作');
+        }
+
         $good_size = isset($this->post['good_size'])&&$this->post['good_size']!=""? trim($this->post['good_size']):"";
         if($good_size==''){
             return error_show(1004,"参数good_size不能为空");
@@ -2334,6 +2340,12 @@ class Goodup extends Base
         if($supplierNo==''){
             return error_show(1004,"参数supplierNo不能为空");
         }
+
+        if (($this->level == 2) && ($supplierNo != $data['supplierNo'])) {
+            $supplier_account = checkHasAccountBySupplierNos([$supplierNo]);
+            if (isset($supplier_account[$supplierNo])) return json_show(1004, '该供应商已开通账号,不允许操作');
+        }
+
         $userCommon= new \app\admin\common\User();
         $supplier_temp =$userCommon->handle("hqInfo",["code"=>$supplierNo]);
         if($supplier_temp['code']!=0 || empty($supplier_temp['data']) ) return error_show(1004,"供应商信息未找到");
@@ -2409,8 +2421,7 @@ class Goodup extends Base
         if($delivery_day===""){
             return error_show(1004,"参数delivery_day不能为空");
         }
-        $lead_time = isset($this->post['lead_time'])&&$this->post['lead_time']!==""? intval($this->post['lead_time'])
-            :"0";
+        $lead_time = isset($this->post['lead_time'])&&$this->post['lead_time']!==""? intval($this->post['lead_time']) :"0";
 //        if($lead_time===""){
 //            return error_show(1004,"参数lead_time不能为空");
 //        }

+ 18 - 12
app/admin/controller/Sale.php

@@ -4105,9 +4105,14 @@ class Sale extends Base
             $uname = $this->uname;//isset($user_info['data']['nickname']) ? $user_info['data']['nickname'] : '';
 
             if ($einfo['is_stock'] == 1) {
-                //如果是库存品,只能由库管和库管-张凯旋操作
-                $own_roleid = Db::name('user_role')->where(['is_del'=>0,'uid'=>$uid,'status'=>1])->value('roleid',0);
-                if (!in_array($own_roleid, config('app.wsm_cgder_role'))) throw new \think\Exception('库存品只能由库管人员操作');
+                //由于存在一个单子对应多个仓库的情况,因此库存品的判断暂时无法进行,待分仓功能完成后再考虑
+
+                //如果是库存品,只能由库管操作
+//                $contactor = Db::name('warehouse_info')
+//                    ->where(['wsm_code' => $outinfo['wsm_code'], 'is_del' => 0])
+//                    ->value('contactor');
+//                $own_roleid = Db::name('user_role')->where(['is_del'=>0,'uid'=>$uid,'status'=>1])->value('roleid',0);
+//                if ($uid != $contactor) throw new \think\Exception('库存品只能由库管人员操作');
             } elseif ($einfo['is_stock'] == 0) {
                 //非库存品和采返商品只能由供应商负责人操作
                 if ($einfo['order_type'] == 3 || $einfo['order_type'] ==4 ) {
@@ -4872,9 +4877,9 @@ class Sale extends Base
             ->column('id,status,send_num,orderCode,wsm_code,apply_id,apply_name', 'outCode');
 
         //所有库管人员信息
-        $wsm_infos=Db::name('warehouse_info')
-            ->where(['is_del'=>0,'wsm_code'=>array_column($order_out_infos,'wsm_code')])
-            ->column('contactor','wsm_code');
+//        $wsm_infos=Db::name('warehouse_info')
+//            ->where(['is_del'=>0,'wsm_code'=>array_column($order_out_infos,'wsm_code')])
+//            ->column('contactor','wsm_code');
 
         //所有商品信息及供应商编码
         $spuCodes=Db::name('sale')
@@ -4889,7 +4894,7 @@ class Sale extends Base
         $supplierNos = array_unique(array_merge($supplierNo1,$supplierNo2));
         $userCommon = new \app\admin\common\User();
         $temp = $userCommon->handle('sGetList',['more_code'=>array_values($supplierNos)]);
-        $supplier_personid = array_column($temp,'person','code');
+        $supplier_personid = array_column($temp['data']['list'],'personid','code');
 
         //处理数据
         Db::startTrans();
@@ -4919,25 +4924,26 @@ class Sale extends Base
                     //level2账号的话,库存品只能由库管操作,非库存品只能由供应商负责人操作,level3账号不限制
                     if ($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['is_stock'] == 1) {
 
-                        if($wsm_infos[$order_out_infos[$value['outCode']]['wsm_code']]??0 != $createrid) throw new \think\Exception($value['outCode'] . '发货单只能由库管操作');
+                        //由于存在一个单子对应多个仓库的情况,因此库存品的判断暂时无法进行,待分仓功能完成后再考虑
+//                        if($wsm_infos[$order_out_infos[$value['outCode']]['wsm_code']]??0 != $createrid) throw new \think\Exception($value['outCode'] . '发货单只能由库管操作');
 
 //                        if (!in_array($own_roleid, config('app.wsm_cgder_role'))) {
 //                            Db::rollback();
 //                            return app_show(1003, $value['outCode'] . '发货单只能由库管操作');
-                        }
+//                        }
                     } else {
-                        if ($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_type'] == 3 || $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_type'] == 4) {
+//                        if ($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_type'] == 3 || $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_type'] == 4) {
 //                            $supplierNo = Db::name('good_zixun')
 ////                                ->leftJoin("supplier b", "a.supplierNo=b.code")
 //                                ->where(['spuCode' => $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code'], 'is_del' => 0])
 //                                ->value('supplierNo');
-                        } else {
+//                        } else {
 //                            $supplierNo = Db::name('good')
 ////                                ->alias("a")
 ////                                ->leftJoin("supplier b", "a.supplierNo=b.code")
 //                                ->where(['spuCode' =>$sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code'], 'is_del' => 0])
 //                                ->value('supplierNo');
-                        }
+//                        }
 
                     if ($createrid != $supplier_personid[$supplierNos[$sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code']]]) throw new \think\Exception($value['outCode'] . '发货单只能由供应商负责人操作');
 //                            Db::rollback();