|
@@ -365,14 +365,45 @@ class CheckService extends Service
|
|
|
->where('sales_order_id',$order['id'])
|
|
|
->select('product_id','number','retail_price')
|
|
|
->get()->toArray();
|
|
|
+
|
|
|
+ //退货的差异
|
|
|
+ $returnExchange_map = [];
|
|
|
+ $returnExchange = ReturnExchangeOrder::where('del_time',0)
|
|
|
+ ->where('type',ReturnExchangeOrder::Order_type)
|
|
|
+ ->where('data_id',$order['id'])
|
|
|
+ ->select('id')
|
|
|
+ ->get()->toArray();
|
|
|
+ $return_product = ReturnExchangeOrderProductInfo::where('del_time',0)
|
|
|
+ ->where('return_exchange_id',array_column($returnExchange,'id'))
|
|
|
+ ->select('product_id','number')
|
|
|
+ ->get()->toArray();
|
|
|
+ foreach ($return_product as $value){
|
|
|
+ if(isset($returnExchange_map[$value['product_id']])){
|
|
|
+ $returnExchange_map[$value['product_id']] += $value['number'];
|
|
|
+ }else{
|
|
|
+ $returnExchange_map[$value['product_id']] = $value['number'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
$product_map = $rate = [];
|
|
|
$total = 0;
|
|
|
- foreach ($product as $value){
|
|
|
- $total += $value['number'] * $value['retail_price'];
|
|
|
+ foreach ($product as $key => $value){
|
|
|
+ $return_number = 0;
|
|
|
+ if(isset($returnExchange_map[$value['product_id']])) $return_number = $returnExchange_map[$value['product_id']];
|
|
|
+ $number = $value['number'];
|
|
|
+ if($return_number >= $value['number']) {
|
|
|
+ unset($product[$key]);
|
|
|
+ continue;
|
|
|
+ }else{
|
|
|
+ $number = bcsub($number,$return_number,2);
|
|
|
+ $product[$key]['number'] = $number;
|
|
|
+ }
|
|
|
+
|
|
|
+ $total += $number * $value['retail_price'];
|
|
|
if(isset($product_map[$value['product_id']])){
|
|
|
- $product_map[$value['product_id']] += $value['retail_price'] * $value['number'];
|
|
|
+ $product_map[$value['product_id']] += $value['retail_price'] * $number;
|
|
|
}else{
|
|
|
- $product_map[$value['product_id']] = $value['retail_price'] * $value['number'];
|
|
|
+ $product_map[$value['product_id']] = $value['retail_price'] * $number;
|
|
|
}
|
|
|
}
|
|
|
foreach ($product_map as $key => $value){
|
|
@@ -399,7 +430,7 @@ class CheckService extends Service
|
|
|
$insert = [];$product_total = 0;
|
|
|
foreach ($product as $value){
|
|
|
$rate_tmp = $rate[$value['product_id']] ?? 0;
|
|
|
- $price = bcdiv(bcmul($rate_tmp, $fee['other_fee_1'],2),$value['number'],2);
|
|
|
+ $price = bcdiv(bcmul($rate_tmp, $fee['other_fee_1'],2), $value['number'],2);
|
|
|
$product_total += $price * $value['number'];
|
|
|
$insert[] = [
|
|
|
'purchase_order_special_id' => $purchase_order_id,
|