Browse Source

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

wufeng 2 years ago
parent
commit
bd78ccbd14
1 changed files with 35 additions and 32 deletions
  1. 35 32
      app/command/ImportOrderFromCHandleData.php

+ 35 - 32
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,8 +148,9 @@ 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'];
 
 //                $order_rate = Db::name("cat")->where(["id" => $ct['cat_id']])->value('order_rate');
@@ -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,14 +180,14 @@ class ImportOrderFromCHandleData extends Command
                         "good_name" => $ct['good_name'],
                         "sale_price" => $origin_price,
                         "total_fee" => $origin_price * $good_num,
-                        "pakge_fee"=>isset($origin['package_fee']) ?$origin['package_fee']:0 ,
-                        "cert_fee"=>isset($origin['cert_fee'])?$origin['cert_fee']:0 ,
+                        "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"=>isset($origin['cost_fee'])? $origin['cost_fee']:0,
-                        "mark_fee"=>isset($origin['mark_fee'])? $origin['mark_fee']:0,
+                        "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,
+                        "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,
@@ -461,12 +464,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'],
+            "nake_fee" => $data['nake_fee'],
+            "delivery_fee" => $data['delivery_fee'],
             #"weight"=>$data['weight'],
             "diff_weight" => "0",
             "diff_fee" => "0",
-            "gold_price"=>$data['gold_price'],
+            "gold_price" => $data['gold_price'],
             "supplierNo" => $data['supplierNo'],
             "supplier_name" => $supplier['name'],
             "companyNo" => $data['companyNo'],
@@ -518,29 +521,29 @@ class ImportOrderFromCHandleData extends Command
                 $stokc = Db::name("good_stock")
                     ->where(['spuCode' => $data['spuCode'], "wsm_code" => $wsm_code, "is_del" => 0])
                     ->find();
-                if($stokc==false){
-                    $stokc=[
-                        "spuCode"=>$data['spuCode'],
-                        "wsm_code"=>$wsm_code,
-                        "wait_in_stock"=>$data['good_num'],
-                        "wait_out_stock"=>0,
-                        "usable_stock"=>0,
-                        "intra_stock"=>0,
-                        "total_stock"=>0,
-                        "status"=>1,
-                        "addtime"=>date("Y-m-d H:i:s"),
-                        "updatetime"=>date("Y-m-d H:i:s")
+                if ($stokc == false) {
+                    $stokc = [
+                        "spuCode" => $data['spuCode'],
+                        "wsm_code" => $wsm_code,
+                        "wait_in_stock" => $data['good_num'],
+                        "wait_out_stock" => 0,
+                        "usable_stock" => 0,
+                        "intra_stock" => 0,
+                        "total_stock" => 0,
+                        "status" => 1,
+                        "addtime" => date("Y-m-d H:i:s"),
+                        "updatetime" => date("Y-m-d H:i:s")
                     ];
-                }else{
-                    $stokc['wait_in_stock']+=$data['good_num'];
-                    $stokc['updatetime']=date("Y-m-d H:i:s");
+                } 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){
+                $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($this->post['token'],$good_data,"CGD");
+                $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($this->post['token'], $good_data, "CGD");
 
                 return true;
             }