Browse Source

平台订单导入优化,修复线上代码丢失

wufeng 2 years ago
parent
commit
8dc4a3c727
1 changed files with 27 additions and 13 deletions
  1. 27 13
      app/command/ImportOrderFromCHandleData.php

+ 27 - 13
app/command/ImportOrderFromCHandleData.php

@@ -137,7 +137,9 @@ class ImportOrderFromCHandleData extends Command
                             ->find();
                         if ($good == false) throw new Exception('未找到相关阶梯价格');
 
-                        $sale_price = $good['sale_price'];
+                        //$sale_price = $good['sale_price']; //不改动售价
+
+                        //理论上不会出现实时金价的订单
                         if ($ct['is_gold_price'] == 1 && $is_stock != 1) {
                             $gold = Db::name("gold_price1")
                                 ->field('id,price')
@@ -146,7 +148,8 @@ class ImportOrderFromCHandleData extends Command
                                 ->find();
 
                             //$saleprice(最终售价) = (打样费/购买数量 + 开模费/购买数量 + 商品重量* 最新金价 + 工艺费* 商品重量+包装费+加标费+证书费+产品裸价+物流费)/(1-成本售价/100);
-                            $sale_price = $ct['demo_fee'] / $good_num + $ct['open_fee'] / $good_num + $ct['noble_weight'] * $gold["price"] + $good['cost_fee'] * $ct['noble_weight'] + $origin['package_fee'] + $origin['mark_fee'] + $origin['cert_fee'] + $origin['nake_fee'] + $origin['delivery_fee'];
+                            $gold_sale_price = $ct['demo_fee'] / $good_num + $ct['open_fee'] / $good_num + $ct['noble_weight'] * $gold["price"] + $good['cost_fee'] * $ct['noble_weight'] + $origin['package_fee'] + $origin['mark_fee'] + $origin['cert_fee'] + $origin['nake_fee'] + $origin['delivery_fee'];
+                            if ($sale_price < $gold_sale_price) throw new Exception('价格不符合根据实时金价计算出的最终售价');
 
                             $ct['cgd_gold_price'] = $gold['price'];
 
@@ -165,7 +168,7 @@ class ImportOrderFromCHandleData extends Command
                             if ($act == false) throw new Exception('未找到相关活动价');
                             if ($act['moq_num'] > $good_num) throw new Exception('商品不满足活动价起订量' . $act['moq_num']);
                             if ($act['activity_stock'] < $good_num) throw new Exception('商品活动库存剩余' . $act['activity_stock']);
-                            $sale_price = $act['activity_price'];
+                            //$sale_price = $act['activity_price'];//不能改动价格
                         }
                     }
                     $cgd = [
@@ -177,18 +180,21 @@ class ImportOrderFromCHandleData extends Command
                         "good_name" => $ct['good_name'],
                         "sale_price" => $origin_price,
                         "total_fee" => $origin_price * $good_num,
-                        "pakge_fee" => $ct['packing_fee'],
-                        "cert_fee" => $ct['cert_fee'],
+                        "pakge_fee" => isset($origin['package_fee']) ? $origin['package_fee'] : 0,
+                        "cert_fee" => isset($origin['cert_fee']) ? $origin['cert_fee'] : 0,
                         "open_fee" => $ct['open_fee'],
-                        "cost_fee" => $ct['cost_fee'],
-                        "mark_fee" => $ct['mark_fee'],
+                        "cost_fee" => isset($origin['cost_fee']) ? $origin['cost_fee'] : 0,
+                        "mark_fee" => isset($origin['mark_fee']) ? $origin['mark_fee'] : 0,
                         "demo_fee" => $ct['demo_fee'],
+                        "nake_fee" => isset($origin['nake_fee']) ? $origin['nake_fee'] : 0,
+                        "delivery_fee" => isset($origin['delivery_fee']) ? $origin['delivery_fee'] : 0,
                         "good_num" => $good_num,
                         "good_type" => $goodtype,
                         "order_type" => $order_type,
                         "createrid" => $ct['createrid'],
                         "creater" => $ct['creater'],
-                        'send_way' => 2
+                        'send_way' => 2,
+                        'gold_price' => $ct['cgd_gold_price'],
                     ];
 
                     $send_num = $extend_data['num'];
@@ -459,10 +465,12 @@ class ImportOrderFromCHandleData extends Command
             "teach_fee" => $data['cost_fee'],
             "mark_fee" => $data['mark_fee'],
             "demo_fee" => $data['demo_fee'],
+            "nake_fee" => $data['nake_fee'],
+            "delivery_fee" => $data['delivery_fee'],
             #"weight"=>$data['weight'],
             "diff_weight" => "0",
             "diff_fee" => "0",
-            "gold_price" => "0",
+            "gold_price" => $data['gold_price'],
             "supplierNo" => $data['supplierNo'],
             "supplier_name" => $supplier['name'],
             "companyNo" => $data['companyNo'],
@@ -518,7 +526,7 @@ class ImportOrderFromCHandleData extends Command
                     $stokc = [
                         "spuCode" => $data['spuCode'],
                         "wsm_code" => $wsm_code,
-                        "wait_in_stock" => 0,
+                        "wait_in_stock" => $data['good_num'],
                         "wait_out_stock" => 0,
                         "usable_stock" => 0,
                         "intra_stock" => 0,
@@ -527,10 +535,16 @@ class ImportOrderFromCHandleData extends Command
                         "addtime" => date("Y-m-d H:i:s"),
                         "updatetime" => date("Y-m-d H:i:s")
                     ];
-                    $stoc = Db::name("good_stock")->save($stokc);
-                    if ($stoc == false) return false;
-
+                } else {
+                    $stokc['wait_in_stock'] += $data['good_num'];
+                    $stokc['updatetime'] = date("Y-m-d H:i:s");
+                }
+                $stoc = Db::name("good_stock")->save($stokc);
+                if ($stoc == false) {
+                    return false;
                 }
+                $good_data[] = ['good_log_code' => $cgdCode, "stock_id" => isset($stoc['id']) ? $stoc['id'] : Db::name("good_stock")->getLastInsID(), "type" => 1, 'stock' => $data['good_num'], "stock_name" => "wait_in_stock"];
+                GoodLog::LogAdd(['id' => 0, 'nickname' => 'system'], $good_data, "CGD");
 
                 return true;
             }