wugg 1 vuosi sitten
vanhempi
commit
032bf2d57e
1 muutettua tiedostoa jossa 19 lisäystä ja 12 poistoa
  1. 19 12
      app/command/SplitSale.php

+ 19 - 12
app/command/SplitSale.php

@@ -73,9 +73,9 @@ class SplitSale extends Command
                 		"customerNo"=>"",
                 		"supplierNo"=>'',
                 		"supplierName"=>'',
+                		"status"=>$sale['th_num']==$sale['good_num']?3:0,
                 		"companyName"=>$sale['supplierName'],
                 		"companyNo"=>$sale['supplierNo'],
-                		"addtime"=>$sale['addtime'],
                 		];
 					if( strtotime($sale['addtime']) >= strtotime('2023-07-01 00:00:00'))$this->Tcode ='F';
 					else $this->Tcode ='';
@@ -131,7 +131,6 @@ class SplitSale extends Command
                    
                     foreach ($pay_rates as $keys=>$pay_rate) {
                         //生成新的采购单号和销售单号
-                       
                         $cgdNo = makeNo($this->Tcode.'CG');
                         $tempOrder['cgdNo'] =  $cgdNo ;
                         $cgdNo = substr($cgdNo, 0, -2) . str_pad($this->i, 2, '0', STR_PAD_LEFT);
@@ -157,7 +156,11 @@ class SplitSale extends Command
 							$orderCode = substr($orderCode, 0, -2) . str_pad($this->i, 2, '0', STR_PAD_LEFT);
 							$supplier = ['No' => $sale['supplierNo'], 'name' => $sale['supplierName'],"pay_name"=>$pay_rate['pay_name']];
 							if(!isset($cgd['cgdNo']) && $sale['is_stock']==1 ){
-								$sale['origin_price'] = Db::name("purchease_order")->where(["spuCode"=>$sale['good_code'],"is_del"=>0,"status"=>[2,3]])->order("id desc")->value("good_price",0);
+								$origin_total =Db::name('child_bn')
+								->where([['orderCode','=',$sale['orderCode']],['total_bn_num','>',0],['is_del','=',0]])
+								->field("sum(origin_price*total_bn_num) total_price,sum(total_bn_num) num")->findOrEmpty();
+								if(empty($origin_total)==false && $origin_total['num']>0)$sale['origin_price'] = bcdiv($origin_total['total_price'],$origin_total['num'],8);
+								else $sale['origin_price']=0;
 							}else{
 								$sale['origin_price'] = $cgd['good_price'];
 							}
@@ -188,6 +191,8 @@ class SplitSale extends Command
                     if($this->cgd_insert) Db::name('cgd_caixiao')->insertAll($this->cgd_insert);
                     $this->cgd_insert = [];
                     $this->cgd_key = 0;
+                    $date=date('Y-m-d H:i:s');
+	                echo "【{$date}】订单:{$sale['orderCode']}拆单 \r\n";
                     if(strtotime($sale['addtime']) >= strtotime('2024-02-01 00:00:00'))$commonOrder[]= $tempOrder;
                 }
 
@@ -212,19 +217,20 @@ class SplitSale extends Command
     }
 
     //构建销售单
-    private function _handle_sale_caixiao(array $sale = [], string $orderCode = '', string $cgdNo = '', float
-    $sale_total = 0.00, array $customer = [], array $supplier = [],array &$tempOrder=[])
+    private function _handle_sale_caixiao(array $sale = [], string $orderCode = '', string $cgdNo = '', float $sale_total = 0.00, array $customer = [], array $supplier = [],array &$tempOrder=[])
     {
         $sale_price = $sale['good_num'] > 0 ? bcdiv($sale_total, $sale['good_num'], 5) : 0;
+        
+        $origin_total =round($sale['origin_price']*$sale['good_num'],8);
         $tmp_sale = [
         	'manager'=>$sale['manager'],
             'managerid'=>$sale['managerid'],
-            'origin_price' =>round( $sale['origin_price'] ?? 0, 2),
-            'origin_plan_price' =>round( $sale['plan_price'] ?? 0, 2),
-	        'total_origin_price' => round($sale['origin_price']*$sale['good_num'],2),
+            'origin_price' =>round( $sale['origin_price'] ?? 0, 8),
+            'origin_plan_price' =>round( $sale['plan_price'] ?? 0, 8),
+	        'total_origin_price' =>$origin_total,
 	        'total_origin_price_plan' => $sale['plan_total'],
 	        'pay_source' => $supplier['pay_name'],
-            'sale_price' => round($sale_price, 2),
+            'sale_price' => round($sale_price, 8),
             'total_price' => $sale_total,
             'post_fee' => $sale['post_fee'] ?? 0,
             'is_diff' => $sale['is_diff'] ?? 0,
@@ -296,7 +302,7 @@ class SplitSale extends Command
                 'lead_time' => $sale['lead_time'] ?? 0,
                 'depart' => isset($sale['apply_id']) ? get_company_name_by_uid($sale['apply_id']) : '',
                 'cgdNo' => $cgdNo,
-                'total_origin_price' => round($sale['origin_price']*$sale['good_num'],2),
+                'total_origin_price' => $origin_total,
                 'total_origin_price_plan' => $sale['plan_total'],
                 'pay_id' => $sale['pay_id'],
                 'pay_source' => $supplier['pay_name'],
@@ -310,10 +316,10 @@ class SplitSale extends Command
      string $orderCode = '', float $cgd_total = 0.00,array &$tempOrder=[])
     {
 
-        $good_price = $sale['good_num'] > 0 ? bcdiv($cgd_total, $sale['good_num'], 5) : 0;
+        $good_price = $sale['good_num'] > 0 ? bcdiv($cgd_total, $sale['good_num'], 8) : 0;
 
         $tmp_cgd = [
-            'good_price' => round($good_price, 2),
+            'good_price' => round($good_price, 8),
             'total_fee' => $cgd_total,
             'pakage_fee' => $cgd['pakge_fee'] ?? 0,
             'open_fee' => $cgd['open_fee'] ?? 0,
@@ -424,6 +430,7 @@ class SplitSale extends Command
         	if($com->isEmpty()==false){
         		$item['id'] = $com->id;
         		$item['tyCode'] = $com->tyCode;
+        		if($com->status==1 || $com->status==2) $item['status']=$com->status;
         	}else{
         		$item['id']=null;
         	}