wugg 2 år sedan
förälder
incheckning
b70b750b1b
2 ändrade filer med 52 tillägg och 5 borttagningar
  1. 10 3
      app/abutment/controller/Order.php
  2. 42 2
      app/abutment/controller/Sale.php

+ 10 - 3
app/abutment/controller/Order.php

@@ -4,7 +4,7 @@ namespace app\abutment\controller;
 
 use app\admin\model\ActionLog;
 use app\admin\model\GoodLog;
-use app\admin\model\ProcessOrder;
+use app\admin\model\GoodStockInfo;use app\admin\model\ProcessOrder;
 use think\Exception;
 use think\facade\Db;
 use think\facade\Validate;
@@ -427,7 +427,7 @@ class Order extends HomeBaseController
             ->whereIn('cgdNo', $param['cgdNo'])
             ->where(['is_del' => 0, 'supplierNo' => $this->request->user['supplierNo']])
             ->where('status', '=', 1)
-            ->column('id,wsm_code,good_num,spuCode,order_type,send_status,status', 'cgdNo');
+            ->column('id,wsm_code,good_num,good_price,spuCode,order_type,send_status,status', 'cgdNo');
 
         if (empty($cgdinfo)) return json_show(1005, "未找到采购单数据或采购单未发货");
 
@@ -453,7 +453,7 @@ class Order extends HomeBaseController
                 if (empty($cgdinfo[$cgdNo])) throw new Exception('未找到采购单数据或采购单未发货');
 
                 $wsm_in_code = makeNo("CF");
-
+				$bn_code = makeNo("BN");
                 $send_num = $cgdinfo[$cgdNo]['good_num'];
                 //改变编码规则,将原编码后两位换成序列号
                 //str_pad字符串填充
@@ -464,6 +464,7 @@ class Order extends HomeBaseController
                 $win = Db::name("purchease_in")->insertGetId([
                     "wsm_in_code" => $wsm_in_code,
                     "cgdNo" => $cgdNo,
+                    "bnCode"=>$bn_code,
                     "wsm_code" => $cgdinfo[$cgdNo]['wsm_code'],
                     "wsm_reaper" => isset($recep[$cgdinfo[$cgdNo]['wsm_code']]) ? $recep[$cgdinfo[$cgdNo]['wsm_code']] : '',
                     "send_num" => $cgdinfo[$cgdNo]['good_num'],
@@ -528,12 +529,18 @@ class Order extends HomeBaseController
                     $good['total_stock'] = $good['usable_stock'] + $good['wait_out_stock'];
                     $good['updatetime'] = date("Y-m-d H:i:s");
                     $upd = Db::name("good_stock")->save($good);
+                    $stockid=$good['id']?? Db::name("good_stock")->getLastInsID();
                     //商品变动日志表,good_log_code字段存储采购单单号
                     $good_data[] = ['good_log_code' => $wsm_in_code, "stock_id" => isset($good['id']) ? $good['id'] : Db::name("good_stock")->getLastInsID(), "type" => 1, 'stock' => $send_num, "stock_name" => "usable_stock"];
                     $good_data[] = ['good_log_code' => $wsm_in_code, "stock_id" => isset($good['id']) ? $good['id'] : Db::name("good_stock")->getLastInsID(), "type" => 2, 'stock' => $send_num, "stock_name" => "wait_in_stock"];
                     if ($upd) {
                         GoodLog::LogAdd(['id' => $uid, 'nickname' => $nickname], $good_data, 'RKD');
                         if ($cgdinfo[$cgdNo]['order_type'] == 1) {
+                        	$bnin=GoodStockInfo::AddBn($stockid,$bn_code,$send_num,$cgdinfo[$cgdNo]['good_price']);
+	                        if($bnin==false){
+	                            Db::rollback();
+	                            return error_show(1004,"库存bn数据新增失败");
+	                        }
                             $bk = Db::name("order_bk")->where(['cgdNo' => $cgdNo])->find();
                             if ($bk == false) {
                                 $bk = [

+ 42 - 2
app/abutment/controller/Sale.php

@@ -4,7 +4,7 @@ namespace app\abutment\controller;
 
 use app\admin\model\ActionLog;
 use app\admin\model\GoodLog;
-use app\admin\model\ProcessOrder;
+use app\admin\model\GoodStockInfo;use app\admin\model\ProcessOrder;
 use Exception;
 use think\facade\Cache;
 use think\facade\Db;
@@ -320,6 +320,27 @@ class Sale extends HomeBaseController
                     Db::rollback();
                     return json_show(1002, "库存更新失败");
                 }
+
+                 if($einfo["order_type"]!=1){
+                	$outsend =Db::name("order_send")->where(["outCode"=> $outCode])->findOrEmpty();
+                	if(empty($outsend)){
+                			Db::rollback();
+                             return error_show(1002, "未找到关联采购单");
+                		}
+                	$cgdinfo= Db::name("purchease_order")->where(["cgdNo"=>$outsend['cgdNo'],"is_del"=>0])
+                	->findOrEmpty();
+                	$bn_code =makeNo("BN");
+                	$bnin=GoodStockInfo::AddBn($stokc["id"],$bn_code,$outinfo['send_num'],$cgdinfo['good_price']??0);
+	                 if($bnin==false){
+	                      Db::rollback();
+	                      return error_show(1004,"库存bn数据新增失败");
+	                 }
+	                 $bnup =GoodStockInfo::OrderBn($outinfo['orderCode'],$stokc["id"],$outinfo['send_num']);
+	                 if($bnup==false){
+	                      Db::rollback();
+	                      return error_show(1004,"库存bn库存数更新失败");
+	                 }
+                }
                 $good_data[] = ['good_log_code' => $outCode, "stock_id" => $stokc['id'], "type" => 2, 'stock' => $outinfo['send_num'], "stock_name" => "wait_out_stock"];
 
                 GoodLog::LogAdd(['id' => $uid, 'nickname' => $uname], $good_data, "CKD");
@@ -490,7 +511,26 @@ class Sale extends HomeBaseController
                             ->where('id', $stock['id'])
                             ->update($stock);
                         if ($stock_rs == false) throw new Exception($value['outCode'] . '库存更新失败');
-
+						 if($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]["order_type"]!=1){
+		                    $outsend =Db::name("order_send")->where(["outCode"=> $value['outCode']])->findOrEmpty();
+		                    if(empty($outsend)){
+		                            Db::rollback();
+		                             return error_show(1002, "未找到关联采购单");
+		                        }
+		                    $cgdinfo= Db::name("purchease_order")->where(["cgdNo"=>$outsend['cgdNo'],"is_del"=>0])
+		                    ->findOrEmpty();
+		                    $bn_code =makeNo("BN");
+		                    $bnin=GoodStockInfo::AddBn($stock["id"],$bn_code,$order_out_infos[$value['outCode']]['send_num'],$cgdinfo['good_price']??0);
+			                 if($bnin==false){
+			                      Db::rollback();
+			                      return error_show(1004,"库存bn数据新增失败");
+			                 }
+			                 $bnup =GoodStockInfo::OrderBn($order_out_infos[$value['outCode']]['orderCode'],$stock["id"],$order_out_infos[$value['outCode']]['send_num']);
+			                 if($bnup==false){
+			                      Db::rollback();
+			                      return error_show(1004,"库存bn库存数更新失败");
+			                 }
+						 }
                         $good_data[] = [
                             'good_log_code' => $value['outCode'],
                             'stock_id' => $stock['id'],