Browse Source

Merge branch 'version1.5' into dev_wf

wufeng 2 years ago
parent
commit
222db403fe

+ 10 - 4
app/admin/controller/Good.php

@@ -64,7 +64,11 @@ class Good extends Base
         $supplierNo = isset($this->post['supplierNo']) && $this->post['supplierNo'] !=="" ? trim($this->post['supplierNo'])
             :"";
         if($supplierNo!==""){
-            $where[]=['a.supplierNo',"=",$supplierNo];
+            $where[]=['a.supplierNo',"like","%$supplierNo%"];
+        }
+         $supplier_name = isset($this->post['supplier_name']) && $this->post['supplier_name'] !=="" ? trim($this->post['supplier_name']):"";
+        if($supplier_name!==""){
+            $where[]=['s.name',"like","%$supplier_name%"];
         }
         $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] !=="" ? trim($this->post['companyNo']) :"";
         if($companyNo!==""){
@@ -118,6 +122,7 @@ class Good extends Base
         $count = Db::name('good')
             ->alias("a")
             ->leftJoin("good_platform b","a.spuCode=b.spuCode")
+            ->leftJoin("supplier s","a.supplierNo=s.code")
             ->leftJoin("depart_user u", "u.uid=b.createrid AND u.is_del=0")
             ->leftJoin("platform p","p.id=b.platform_code")
             ->where('p.platform_type',0)//只筛选非对接平台的商品
@@ -129,9 +134,10 @@ class Good extends Base
             ->alias("a")
             ->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.cat_id,a.good_name,a.good_img,a.good_info_img,a.good_thumb_img,
             b.createrid,a.is_exclusive,a.brand_id,a.supplierNo,a.good_unit,a.noble_metal,a.companyNo,a.spuCode,a.good_type,b.creater,b.addtime,
-            b.updatetime,b.exam_status,a.createrid purchase_id,a.creater purchase,u.itemid,a.is_stock")
+            b.updatetime,b.exam_status,a.createrid purchase_id,a.creater purchase,u.itemid,a.is_stock,s.name as supplier_name")
             //成本表里的创建人,也是线上商品的采购人,为了防止混淆,给creater取个别名
             ->leftJoin("good_platform b","a.spuCode=b.spuCode")
+            ->leftJoin("supplier s","a.supplierNo=s.code")
 //            ->leftJoin("good_basic gb","gb.spuCode=a.spuCode")
             ->leftJoin("depart_user u", "u.uid=b.createrid AND u.is_del=0")
             ->leftJoin("platform p","p.id=b.platform_code")
@@ -146,8 +152,8 @@ class Good extends Base
             $platform = Db::name("platform")->where(["id"=>$value['platform_code']])->find();
             $value['platform_name'] = isset($platform['platform_name']) ? $platform['platform_name']:"";
             $value['platform_code_en'] = isset($platform['platform_code_en']) ? $platform['platform_code_en']:"";
-            $supplier = Db::name("supplier")->where(["code"=>$value['supplierNo']])->find();
-            $value['supplier_name'] = isset($supplier['name']) ? $supplier['name']:"";
+//            $supplier = Db::name("supplier")->where(["code"=>$value['supplierNo']])->find();
+//            $value['supplier_name'] = isset($supplier['name']) ? $supplier['name']:"";
             $brand=Db::name("brand")->where(["id"=>$value['brand_id']])->find();
             $value["brand_name"]=isset($brand['brand_name'])?$brand['brand_name']:"";
             $unit = Db::name("unit")->where(["id"=>$value['good_unit']])->find();

+ 4 - 3
app/admin/controller/GoodOfflineLog.php

@@ -12,14 +12,15 @@ class GoodOfflineLog extends Base
     public function getList()
     {
 
-        $param = $this->request->only(['start_date' => '', 'end_date' => '', 'creater' => '', 'page' => 1, 'size' => 15], 'post', 'trim');
+        $param = $this->request->only(['start_date' => '', "spuCode"=>'',"good_name"=>'','end_date' => '', 'creater' => '',
+         'page' => 1,'size' => 15], 'post', 'trim');
 
         $where = [];
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['addtime', 'between', [$param['start_date'], $param['end_date']]];
         if ($param['creater'] != '') $where[] = ['creater', 'like', '%' . $param['creater'] . '%'];
-
+        if ($param['spuCode'] != '') $where[] = ['spuCode', 'like', '%' . $param['spuCode'] . '%'];
+        if ($param['good_name'] != '') $where[] = ['good_name', 'like', '%' . $param['good_name'] . '%'];
         $count = Db::name('good_offline_log')->where($where)->count('id');
-
         $list = Db::name('good_offline_log')
             ->field('id,spuCode,good_name,creater,addtime')
             ->where($where)

+ 4 - 4
app/admin/controller/Purch.php

@@ -86,22 +86,22 @@ class Purch extends Base
         $start = isset($this->post['start']) && $this->post['start']!="" ?$this->post['start']:"";
         if($start!=""){
             // $where['addtime'] = Db::raw(" >= '{$start}'");
-            $where[]=['po.addtime',">=", $start];
+            $where[]=['po.addtime',">=", $start." 00:00:00"];
         }
         $end = isset($this->post['end']) && $this->post['end']!="" ?$this->post['end']:"";
         if($end!=""){
-            $where[]=['po.addtime',"<=", $end];
+            $where[]=['po.addtime',"<=", $end." 23:59:59"];
         }
         $last_start = isset($this->post['last_start']) && $this->post['last_start']!="" ?$this->post['last_start']:"";
         if($last_start!=""){
             //$where['lasttime'] = Db::raw(" >= '{$last_start}'");
-            $where[]=['po.lasttime',">=", $last_start];
+            $where[]=['po.lasttime',">=", $last_start." 00:00:00"];
 
         }
         $last_end = isset($this->post['last_end']) && $this->post['last_end']!="" ?$this->post['last_end']:"";
         if($last_end!=""){
             //$where['lasttime'] = Db::raw(" <= '{$last_end}'");
-            $where[]=['po.lasttime',"<=", $last_end];
+            $where[]=['po.lasttime',"<=", $last_end." 23:59:59"];
         }
         $orderCode = isset($this->post['orderCode']) && $this->post['orderCode']!="" ?$this->post['orderCode']:"";
         if($orderCode!=""){

+ 25 - 26
app/admin/controller/Sale.php

@@ -93,15 +93,16 @@ class Sale extends Base
             }
         }
         if ($goodinfo['is_stock'] == 1) {
-            $stock = Db::name("good_stock")->alias("a")->leftJoin("warehouse_info b", "a.wsm_code=b.wsm_code")->where
-            (["spuCode" => $spuCode, "a.is_del" => 0, "a.status" => 1, "b.wsm_type" => 5, "b.companyNo" =>
-            $supplierNo])->field("a.id,a.wait_in_stock,a.usable_stock,a.wait_out_stock,a.wsm_code")->find();
-            if ($stock == false || $stock['usable_stock'] < $good_num) {
-                return error_show(1003, "库存数量不足");
-            }
-			$stock_num =Db::name("good_stock_info")->where(["stockid"=>$stock['id']])->sum('balance_num');
+            $stock_num = Db::name("good_stock")->alias("a")
+            ->leftJoin("warehouse_info b", "a.wsm_code=b.wsm_code")
+            ->leftJoin("good_stock_info c", "a.id=c.stockid")
+            ->where(["spuCode" => $spuCode, "a.is_del" => 0, "a.status" => 1, "b.wsm_type" => 5, "b.companyNo" =>$supplierNo])
+            ->sum('balance_num');
+//            if ($stock == false || $stock['usable_stock'] < $good_num) {
+//                return error_show(1003, "库存数量不足");
+//            }
             if($stock_num < $good_num){
-                return error_show(1003, "Bn库存数量不足");
+                return error_show(1003, "库存数量不足");
             }
             $origin_price = 0;
         } else {
@@ -313,28 +314,22 @@ class Sale extends Base
 //                        Db::rollback();
 //                        return error_show(1002, "库存商品关联采购单失败");
 //                    }
-                    if (isset($stock)) {
-                        $stck = [
-                            "usable_stock" => $stock['usable_stock'] - $good_num,
-                            "wait_out_stock" => $stock['wait_out_stock'] + $good_num,
-                            "updatetime" => date("Y-m-d H:i:s")
-                        ];
 
-                        $upad = Db::name("good_stock")->where($stock)->update($stck);
-                        if ($upad == false) {
-                            Db::rollback();
-                            return error_show(1002, "库存商品更新库存失败");
-                        }
-                        $stockinfo =GoodStockInfo::OrderBn($orderCode,$stock['id'],$good_num);
+                       $stockid= Db::name("good_stock")->alias("a")
+		            ->leftJoin("warehouse_info b", "a.wsm_code=b.wsm_code")
+		            ->leftJoin("good_stock_info c", "a.id=c.stockid")
+		            ->where(["spuCode" => $spuCode, "a.is_del" => 0, "a.status" => 1, "b.wsm_type" => 5, "b.companyNo" =>$supplierNo])
+		            ->column('a.id');
+                        $stockinfo =GoodStockInfo::OrderBn($orderCode,$stockid,$good_num);
                         if($stockinfo==false){
                         	 Db::rollback();
-                            return error_show(1002, "Bn库存更新库存失败");
+                            return error_show(1002, "更新库存失败");
                         }
                         //商品变动日志表,good_log_code字段存储采购单号
-                        $good_data[] = ['good_log_code' => $orderCode, "stock_id" => $stock['id'], "type" => 2, 'stock' => $good_num, "stock_name" => "usable_stock"];
-                        $good_data[] = ['good_log_code' => $orderCode, "stock_id" => $stock['id'], "type" => 1, 'stock' => $good_num, "stock_name" => "wait_out_stock"];
-                        GoodLog::LogAdd($this->post['token'], $good_data, "XSQRD");
-                    }
+//                        $good_data[] = ['good_log_code' => $orderCode, "stock_id" => $stock['id'], "type" => 2, 'stock' => $good_num, "stock_name" => "usable_stock"];
+//                        $good_data[] = ['good_log_code' => $orderCode, "stock_id" => $stock['id'], "type" => 1, 'stock' => $good_num, "stock_name" => "wait_out_stock"];
+//                        GoodLog::LogAdd($this->post['token'], $good_data, "XSQRD");
+
 
                 }
 
@@ -417,7 +412,7 @@ class Sale extends Base
                                 "send_num" => $num,
                                 "check_num" => 0,
                                 "error_num" => 0,
-                                "wsm_code" => $is_stock == 1 ?$stock['wsm_code']:$cgdinfo['wsm_code'],
+                                "wsm_code" => $is_stock == 1 ?'':$cgdinfo['wsm_code'],
                                 "order_type" => $is_stock == 1 ? 1 : 2,
                                 "status" => $outstatus,
                                 "addtime" => date("Y-m-d H:i:s"),
@@ -3301,6 +3296,10 @@ class Sale extends Base
         if ($good_name !== "") {
             $where[] = ['b.good_name', "like", "%$good_name%"];
         }
+        $supplier_name = isset($this->post['supplier_name']) && $this->post['supplier_name'] !== "" ? trim($this->post['supplier_name']) : "";
+        if ($supplier_name !== "") {
+            $where[] = ['wpo.supplier_name', "like", "%$supplier_name%"];
+        }
         $status = isset($this->post['status']) && $this->post['status'] !== "" ? trim($this->post['status']) : "";
         if ($status !== "") {
             $where[] = ['a.status', "=", $status];

+ 7 - 1
app/admin/model/GoodStockInfo.php

@@ -59,24 +59,30 @@ class GoodStockInfo extends Model
 		$arr = self::where([["stockid","=",$stockid],["balance_num",">",0]])->select()->toArray();
 		if(empty($arr)) throw new Exception("库存批次数量不足","1006");
 		$list=[];
+		$stockid = array_column($arr,"stockid");
+		$stock=self::name("good_stock")->where([["id","in",$stockid]])->column("id,usable_stock,wait_out_stock",'id');
 		foreach ($arr as $item) {
 			if($num<=0) break;
 			$temp=[];
 			$update=[];
+			$stockup=[];
 		    if($item['balance_num']<=$num){
 		    	$update['balance_num'] =0;
 		    	$update['used_num']= $item['used_num']+$item['balance_num'];
 		    	$num-=$item['balance_num'];
 		    	$update['updatetime'] =date("Y-m-d H:i:s");
 		    	$temp=["bnCode"=>$item['bnCode'],"num"=>$item['balance_num'],"origin_price"=>$item["origin_price"]];
+		    	$stockup=["usable_stock"=>$stock[$item['stockid']]['usable_stock']-$item['balance_num'],"wait_out_stock"=>$stock[$item['stockid']]['wait_out_stock']+$item['balance_num'],"updatetime"=>date("Y-m-d H:i:s")];
 		    }else{
 				$update['balance_num']=$item['balance_num']-$num;
 		    	$update['used_num']=$item['used_num']+$num;
 		    	$update['updatetime'] =date("Y-m-d H:i:s");
 		    	$temp=["bnCode"=>$item['bnCode'],"num"=>$num,"origin_price"=>$item["origin_price"]];
-		    	$num=0;
+		    	$stockup=["usable_stock"=>$stock[$item['stockid']]['usable_stock']-$num,"wait_out_stock"=>$stock[$item['stockid']]['wait_out_stock']+$num,"updatetime"=>date("Y-m-d H:i:s")];
+				$num=0;
 		    }
 			self::update($update,$item);
+		    self::name("good_stock")->where($stock[$item['stockid']])->update($stockup);
 		    $list[]=$temp;
 		}
 		return $list;