ソースを参照

Merge branch 'wugg-dev' of wugg/phpstock into version1.5

wugg 2 年 前
コミット
a972510b2d

+ 8 - 2
app/admin/controller/DataGroup.php

@@ -23,7 +23,7 @@ class DataGroup extends Base
             ->leftJoin('data_group_userid b', 'b.data_group_id=a.id AND b.is_del=' . DataGroupModel::$delete_正常)
             ->leftJoin('depart_user u', 'u.uid=b.uid AND u.is_del=0')
             ->group('a.id')
-            ->where('a.is_del', DataGroupModel::$delete_正常);
+            ->where('a.is_del', DataGroupModel::$delete_正常)->column();
 
         $val = Validate::rule([
             'page|页码' => 'require|number|gt:0',
@@ -38,7 +38,13 @@ class DataGroup extends Base
 
         if ($param['status'] != '') $rs->where('a.status', $param['status']);
         if ($param['title'] != '') $rs->whereLike('a.title', '%' . $param['title'] . '%');
-        if ($param['nickname'] != '') $rs->whereLike('u.nickname', '%' . $param['nickname'] . '%');
+        if ($param['nickname'] != '') {
+        	$a =$param['nickname'];
+		    $rs->where( "a.id","IN",function ($query) use($a){
+			    $query->name("data_group_userid")->alias("m")->leftJoin('depart_user f', 'f.uid=m.uid AND f.is_del=0')
+			          ->where('f.nickname',"like","%$a%")->where("m.is_del","=",0)->field("m.data_group_id");
+        });
+        }
         if ($param['type'] != '') $rs->where('a.type', $param['type']);
 
         $count = $rs->count('a.id');

+ 9 - 2
app/admin/controller/Good.php

@@ -75,6 +75,11 @@ class Good extends Base
         $creater = isset($this->post['creater']) && $this->post['creater'] !=="" ? trim($this->post['creater']):"";
         if($creater!==""){
             $where[]=['a.creater',"like","%$creater%"];
+        }
+         $online_creater = isset($this->post['online_creater']) && $this->post['online_creater'] !=="" ? trim($this->post['online_creater'])
+         :"";
+        if($online_creater!==""){
+            $where[]=['b.creater',"like","%$online_creater%"];
         }
         $createrid = isset($this->post['createrid']) && $this->post['createrid'] !=="" ? intval($this->post['createrid']):"";
         if($createrid!==""){
@@ -107,7 +112,7 @@ class Good extends Base
 //            $where[]=["a.createrid","in",$role['write']];
 //        }
         $role = $this->checkDataShare();
-        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ['a.createrid', 'in', $role[DataGroupModel::$type_全部]];
+        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ['b.createrid', 'in', $role[DataGroupModel::$type_全部]];
 
         $company_name = isset($this->post['company_name']) && $this->post['company_name'] !== "" ? trim($this->post['company_name']) : "";
         if ($company_name !== "") $where[] = ["b.createrid", 'in', get_company_item_user_by_name($company_name)];
@@ -205,6 +210,7 @@ class Good extends Base
             'supplierNo' => '',
             'companyNo' => '',
             'creater' => '',
+            'online_creater' => '',
             'createrid' => '',
             'status' => '',
             'platform_code' => '',
@@ -224,6 +230,7 @@ class Good extends Base
         if ($param['good_type'] !== "") $where[] = ['a.good_type', "=", $param['good_type']];
         if ($param['supplierNo'] !== "") $where[] = ['a.supplierNo', "=", $param['supplierNo']];
         if ($param['companyNo'] !== "") $where[] = ['a.companyNo', "like", '%' . $param['companyNo'] . '%'];
+        if ($param['online_creater'] !== '') $where[] = ['b.creater', "like", '%' . $param['online_creater'] . '%'];
         if ($param['creater'] !== '') $where[] = ['a.creater', "like", '%' . $param['creater'] . '%'];
         if ($param['createrid'] !== '') $where[] = ['a.createrid', "=", $param['createrid']];
         if ($param['status'] !== '') $where[] = ['a.status', '=', $param['status']];
@@ -234,7 +241,7 @@ class Good extends Base
 //        $role = $this->checkRole();
 //        if (!empty($role['write'])) $where[] = ["a.createrid", "in", $role['write']];
         $role = $this->checkDataShare();
-        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ['a.createrid', 'in', $role[DataGroupModel::$type_全部]];
+        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ['b.createrid', 'in', $role[DataGroupModel::$type_全部]];
 
         if ($param['company_name'] !== '') $where[] = ["a.createrid", 'in', get_company_item_user_by_name($param['company_name'])];
 

+ 33 - 10
app/admin/controller/Sale.php

@@ -3465,7 +3465,7 @@ class Sale extends Base
             if(in_array($this->roleid,config('app.wsm_cgder_role'))) $condition .="b.is_stock=1";
             else{
                 $personid=Db::name('supplier')->field('id')->where(['is_del'=>0,'personid'=>$this->uid])->findOrEmpty();
-                if($personid)$condition.="(b.is_stock=0 and wpo.cgder_id = {$this->uid})";//供应商负责人能看到非库存品的单子
+                if($personid)$condition.="(b.is_stock=0 and sip.personid = {$this->uid})";//供应商负责人能看到非库存品的单子
                 else $condition.="a.apply_id = {$this->uid}";//其他只能看到自己创建的单子
             }
         }
@@ -3492,6 +3492,7 @@ class Sale extends Base
             ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
             ->leftJoin("order_send os", "os.outCode=a.outCode")
             ->leftJoin("purchease_order wpo", "wpo.cgdNo=os.cgdNo")
+	        ->leftJoin('supplier sip', 'sip.code=wpo.supplierNo')
             ->where($where)
             ->where($condition)
             ->count();
@@ -3505,6 +3506,7 @@ class Sale extends Base
             ->leftJoin("order_send os", "os.outCode=a.outCode")
             ->leftJoin("purchease_order wpo", "wpo.cgdNo=os.cgdNo")
             ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
+	        ->leftJoin('supplier sip', 'sip.code=wpo.supplierNo')
             ->field("a.*,b.order_type,b.order_source,b.good_name,b.good_code,b.skuCode,b.supplierNo,b.customer_code,v.companyName,b.origin_price,b.sale_price,b.total_price,os.cgdNo,u.itemid")
             ->where($where)
             ->where($condition)
@@ -3708,6 +3710,7 @@ class Sale extends Base
             $addrid = Db::name("order_addr")->insert($addrlst, true);
             if ($addrid > 0) {
                 $outCode = makeNo("DF");
+	            $order=[];
                 if($der['order_type']!=1){
                 $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
                 ->lock(true)->find();
@@ -3741,6 +3744,8 @@ class Sale extends Base
 	                    return error_show(1002, "发货地址添加创建失败");
 	                }
                 }else{
+	                $order['cgdNo']='';
+	                $cgd=[];
 //					$stockid=Db::name("sale_info")->where(["orderCode"=>$orderCode])->value("stockid","");
 //                    	if($stockid==''){
 //                    		Db::rollback();
@@ -3850,7 +3855,7 @@ class Sale extends Base
                             'updatetime' => date('Y-m-d H:i:s'),
                         ]);
 
-                    Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(IFNULL(`outCode`,''),',{$outCode}') WHERE `cgdNo`='{$cgd['cgdNo']}'");
+                    Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(IFNULL(`outCode`,''),',{$outCode}') WHERE `cgdNo`='{$order['cgdNo']}'");
 
                     Db::commit();
                     return app_show(0, "出库单新建成功");
@@ -3920,10 +3925,17 @@ class Sale extends Base
                 if (!in_array($own_roleid, config('app.wsm_cgder_role'))) throw new \think\Exception('库存品只能由库管人员操作');
             } elseif ($einfo['is_stock'] == 0 || $einfo['order_type'] == 3) {
                 //非库存品和采返商品只能由供应商负责人操作
-//                $personid = Db::name('supplier')
-//                    ->where(['code' => $einfo['supplierNo'], 'is_del' => 0])
-//                    ->value('personid');
-                if ($uid != $einfo['cgderid']) throw new \think\Exception('非库存品和采返商品只能由供应商负责人操作');
+	            if($einfo['order_type'] == 3){
+		            $personid = Db::name('good_zixun')->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
+		                          ->where(['a.spuCode' => $einfo['good_code'], 'a.is_del' => 0])
+		                          ->value('personid');
+	            }else{
+		            $personid = Db::name('good')->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
+		                          ->where(['a.spuCode' => $einfo['good_code'], 'a.is_del' => 0])
+		                          ->value('personid');
+	            }
+
+                if ($uid !=$personid) throw new \think\Exception('非库存品和采返商品只能由供应商负责人操作');
             }
 
             if ($up) {
@@ -4686,10 +4698,21 @@ class Sale extends Base
                         return app_show(1003, $value['outCode'] . '发货单只能由库管操作');
                     }
                 } else {
-                    if ($createrid != $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['cgderid']) {
-                        Db::rollback();
-                        return app_show(1003, $value['outCode'] . '发货单只能由供应商负责人操作');
-                    }
+                	if($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_type']==3){
+		                $personid = Db::name('good_zixun')->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
+		                              ->where(['a.spuCode' => $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code'], 'a.is_del' => 0])
+		                              ->value('personid');
+	                }else{
+		                $personid = Db::name('good')->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
+		                              ->where(['a.spuCode' =>
+			                              $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code'],'a.is_del' => 0])
+		                              ->value('personid');
+	                }
+
+	                if ($createrid != $personid) {
+		                Db::rollback();
+		                return app_show(1003, $value['outCode'] . '发货单只能由供应商负责人操作');
+	                }
                 }
 
                 //【发货单】

+ 7 - 1
app/command/NowReportHandle.php

@@ -295,11 +295,15 @@ class NowReportHandle extends Command
             $value['一级分类'] = isset($top[0]['name']) ? $top[0]['name'] : '';
             $value['二级分类'] = isset($top[1]['name']) ? $top[1]['name'] : '';
             $value['三级分类'] = isset($top[2]['name']) ? $top[2]['name'] : '';
-            if($value['单位']==3||$value['单位']==4){
+            if($value['单位']==3){
                 $good= Db::name("good_zixun")->where(["spuCode"=>$value['产品编码']])->find();
             }else{
                 $good= Db::name("good_basic")->where(["spuCode"=>$value['产品编码']])->find();
             }
+            if($value['单位']==1&& $value['退货采购货款']!=0){
+            	$returninfo = Db::name("return_info")->where(["returnCode"=>$value['thCode']])->field("sum(origin_price * num) as cgd_total")->find();
+            	$value['退货采购货款'] = $returninfo['cgd_total']??0;
+            }
             $value['单位']=isset($good['good_unit'])?Db::name("unit")->where(["id"=>$good['good_unit']])->value('unit',''):"";
             $value['税点']=isset($good['tax'])?$good['tax'].'%':"";
             $value['平台类型']= Db::name("platform")->where(["id"=>$value['平台类型']])->value("platform_name",'');
@@ -321,6 +325,7 @@ class NowReportHandle extends Command
             ->leftJoin("supplier ws","ws.code=wpo.supplierNo")
             ->where('woo.status',">=", 2)
             ->where('woo.is_del',"=", 0)
+            ->where('wpo.order_type',"<>", 1)
             ->whereBetween('woo.sendtime', [$start, $end])
             ->field(" year(`a`.`addtime`) AS `年`,
             month(`a`.`addtime`) AS `月`,
@@ -417,6 +422,7 @@ class NowReportHandle extends Command
             ->field("wpo.companyNo '业务公司',
                             bkcode '备库单号',
                             wpi.wsm_in_code '入库单号',
+                             wpi.bnCode 'BN批次单号',
                             wpi.cgdNo '采购单号',
                               wpo.spuCode '商品编号',
                                '' as '一级分类',

+ 1 - 1
app/command/handleYzOrderData.php

@@ -242,7 +242,7 @@ class handleYzOrderData extends Command
                 $user = Config::get('app.uid_platform_youzan.' . $platform_yz_info['platform_id']);
                 $rm = isset($user['id']) ? $user['id'] : 0;
                 $ri = isset($user['nickname']) ? $user['nickname'] : 'youzan';
-
+				if($rm==0)throw new Exception('平台转单未找到对应的平台账户');
 
                 $supplier_temp_info = Db::name('supplier')
                     ->field('id,person,personid')