Quellcode durchsuchen

Merge branch 'dev_wf' of wugg/phpstock into version1.5

wufeng vor 2 Jahren
Ursprung
Commit
9a31b2807c
1 geänderte Dateien mit 26 neuen und 4 gelöschten Zeilen
  1. 26 4
      app/admin/controller/Purchin.php

+ 26 - 4
app/admin/controller/Purchin.php

@@ -1,6 +1,8 @@
 <?php
 namespace app\admin\controller;
 
+use app\abutment\model\SupplierRelationUser as SupplierRelationUserModel;
+use app\abutment\model\SupplierUser as SupplierUserModel;
 use app\admin\model\ActionLog;
 use app\admin\model\GoodLog;
 use app\admin\model\GoodStockInfo;use app\admin\model\ProcessOrder;
@@ -244,10 +246,30 @@ class Purchin extends Base
                 //维护台账信息
                 Db::execute("UPDATE `wsm_standing_book` SET `wsm_in_code`=CONCAT(IFNULL(`wsm_in_code`,''),',{$wsm_in_code}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `cgdNo`='{$cgdNo}'");
 
-                //库存品,只能由库管操作入库
-                $own_roleid = Db::name('user_role')->where(['is_del' => 0, 'status' => 1, 'uid' => $this->uid])->value('roleid');
-                if (!in_array($own_roleid, config('app.wsm_cgder_role'))) throw new Exception('只能由库管人员操作');
-                
+
+                $is_stock = Db::name('good_basic')
+                    ->where(['is_del'=>0,'spuCode'=>$cgdinfo['spuCode']])
+                    ->value('is_stock');
+                if($is_stock == 1){
+                    //库存品,只能由库管操作
+                    $own_roleid = Db::name('user_role')->where(['is_del' => 0, 'status' => 1, 'uid' => $this->uid])->value('roleid');
+                    if (!in_array($own_roleid, config('app.wsm_cgder_role'))) throw new Exception('只能由库管人员操作');
+                }else{
+                    //非库存品,只能由供应商负责人操作(开通账号的不能操作)
+                    //判断该供应商是否开通账号
+                    //好像status==4里面的判断没用了,但是没时间修改
+                    $res = SupplierRelationUserModel::field('id')
+                        ->where(['is_del' => SupplierUserModel::$is_del_normal, 'supplierNo' => $cgdinfo['supplierNo'], 'status' => SupplierUserModel::$status_normal])
+                        ->findOrEmpty()
+                        ->isEmpty();
+                    if($res) throw new Exception('供应商已开通账号,只能由供应商端操作');
+
+                    $personid = Db::name('supplier')
+                        ->where('code',$cgdinfo['supplierNo'])
+                        ->value('personid');
+                    if ($this->uid != $personid) throw new Exception('只能由供应商负责人操作');
+                }
+
                 if($status==1){
                             Db::commit();
                             return app_show(0,'新建成功',["wsm_in_code"=>$wsm_in_code]);