|
@@ -369,7 +369,7 @@ class StatisticsService extends Service
|
|
|
->get()->toArray();
|
|
|
|
|
|
//退换货
|
|
|
- $returnExchange_map = $this->returnExchange($data,$sale_order_id);
|
|
|
+ list($returnExchange_map,$returnExchange_map_2) = $this->returnExchange($data,$sale_order_id);
|
|
|
//产品
|
|
|
$product_list = Product::whereIn('id',array_unique(array_merge_recursive(array_column($purchase_product,'product_id'),array_keys($returnExchange_map,'product_id'))))
|
|
|
->select('id','product_category','title','code')
|
|
@@ -394,9 +394,26 @@ class StatisticsService extends Service
|
|
|
//产品信息
|
|
|
$product_tmp = $product_list_map[$value['product_id']] ?? [];
|
|
|
|
|
|
+ $time_money = 0;
|
|
|
+ if(isset($returnExchange_map_2[$crt_time])) {
|
|
|
+ $time_money = $returnExchange_map_2[$crt_time] ?? 0;
|
|
|
+ unset($returnExchange_map_2[$crt_time]);
|
|
|
+ }
|
|
|
//钱
|
|
|
if(isset($purchase_map1[$crt_time])){
|
|
|
- $purchase_map1[$crt_time]['total'] = bcadd($purchase_map1[$crt_time]['total'],$money,2);
|
|
|
+ $time_total = bcadd($purchase_map1[$crt_time]['total'],$money,2);
|
|
|
+ $time_total = bcsub($time_total,$time_money,2);
|
|
|
+ $purchase_map1[$crt_time]['total'] = $time_total;
|
|
|
+ }
|
|
|
+
|
|
|
+ $return_number = $return_total = 0;
|
|
|
+ $return_category_number = $return_category_total = 0;
|
|
|
+ if(isset($returnExchange_map[$value['product_id']])){
|
|
|
+ $tmp = $returnExchange_map[$value['product_id']];
|
|
|
+ $return_number = bcsub($value['number'], $tmp['number'],2);
|
|
|
+ $return_total = bcsub($money, $tmp['total'],2);
|
|
|
+ $return_category_number = $return_number;
|
|
|
+ $return_category_total = $return_total;
|
|
|
}
|
|
|
|
|
|
//-------根据产品
|
|
@@ -407,10 +424,13 @@ class StatisticsService extends Service
|
|
|
$purchase_map[$value['product_id']]['number'] = $tmp_number;
|
|
|
$purchase_map[$value['product_id']]['total'] = $tmp_money;
|
|
|
}else{
|
|
|
+ //减去退换货
|
|
|
+ $number = bcsub($value['number'], $return_number,2);
|
|
|
+ $total = bcsub($money, $return_total,2);
|
|
|
$purchase_map[$value['product_id']] = [
|
|
|
'title' => $product_tmp['title'] . "(" . $product_tmp['code'] .")",
|
|
|
- 'number' => $value['number'],
|
|
|
- 'total' => $money
|
|
|
+ 'number' => $number,
|
|
|
+ 'total' => $total
|
|
|
];
|
|
|
}
|
|
|
//-------根据产品
|
|
@@ -419,17 +439,23 @@ class StatisticsService extends Service
|
|
|
//数量
|
|
|
$category_tmp = json_decode($product_tmp['product_category']);
|
|
|
$category_tmp = min($category_tmp);
|
|
|
-
|
|
|
+ //退换货
|
|
|
+ $number_2 = bcsub($value['number'], $return_category_number,2);
|
|
|
+ $total_2 = bcsub($money, $return_category_total,2);
|
|
|
if(isset($purchase_category_map[$category_tmp])){
|
|
|
$tmp_number = bcadd($purchase_map[$value['product_id']]['number'], $value['number'],2);
|
|
|
+ $tmp_number = bcsub($tmp_number,$number_2,2);
|
|
|
$tmp_money = bcadd($purchase_map[$value['product_id']]['total'], $money,2);
|
|
|
+ $tmp_money = bcsub($tmp_money,$total_2,2);
|
|
|
$purchase_category_map[$category_tmp]['number'] = $tmp_number;
|
|
|
$purchase_category_map[$category_tmp]['total'] = $tmp_money;
|
|
|
}else{
|
|
|
+ $num = bcsub($value['number'],$number_2,2);
|
|
|
+ $tol = bcsub($money,$total_2,2);
|
|
|
$purchase_category_map[$category_tmp] = [
|
|
|
- 'number' => $value['number'],
|
|
|
+ 'number' => $num,
|
|
|
'title' => $category_return[$category_tmp] ?? "",
|
|
|
- 'total' => $money
|
|
|
+ 'total' => $tol
|
|
|
];
|
|
|
}
|
|
|
}
|
|
@@ -464,17 +490,16 @@ class StatisticsService extends Service
|
|
|
return $return;
|
|
|
}
|
|
|
|
|
|
- public function returnExchange($data,$sale_order_id){return [];
|
|
|
- $returnExchange_map = [];
|
|
|
+ public function returnExchange($data,$sale_order_id){
|
|
|
+ $returnExchange_map = $returnExchange_map_2 = [];
|
|
|
$returnExchange = ReturnExchangeOrder::where('del_time',0)
|
|
|
- ->where('top_depart_id',$data['top_depart_id'])
|
|
|
->where('type',ReturnExchangeOrder::Order_type)
|
|
|
->whereIn('data_id',$sale_order_id)
|
|
|
- ->select('id','difference_amount')
|
|
|
+ ->select('id')
|
|
|
->get()->toArray();
|
|
|
$returnExchange_product = ReturnExchangeOrderProductInfo::where("del_time",0)
|
|
|
->whereIn('return_exchange_id',array_column($returnExchange,'id'))
|
|
|
- ->select('return_exchange_id','product_id','number')
|
|
|
+ ->select('return_exchange_id','product_id','number','return_exchange_price as price','crt_time')
|
|
|
->get()->toArray();
|
|
|
foreach ($returnExchange_product as $value){
|
|
|
$money = bcmul($value['price'],$value['number'],2);
|
|
@@ -492,9 +517,17 @@ class StatisticsService extends Service
|
|
|
'total' => $money
|
|
|
];
|
|
|
}
|
|
|
+
|
|
|
+ $crt_time = date("Y-m-d",$value['crt_time']);
|
|
|
+ if(isset($returnExchange_map_2[$crt_time])){
|
|
|
+ $tmp_money_2 = bcadd($returnExchange_map_2[$crt_time], $money,2);
|
|
|
+ $returnExchange_map_2[$crt_time] = $tmp_money_2;
|
|
|
+ }else{
|
|
|
+ $returnExchange_map_2[$crt_time] = $money;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- return $returnExchange_map;
|
|
|
+ return [$returnExchange_map,$returnExchange_map_2];
|
|
|
}
|
|
|
|
|
|
public function statisticsJc($data,$user){
|
|
@@ -641,7 +674,7 @@ class StatisticsService extends Service
|
|
|
->whereIn('product_id',$product)
|
|
|
->select('product_id','number','price')
|
|
|
->get()->toArray();
|
|
|
-
|
|
|
+ $in = $out = [];
|
|
|
foreach ($list as $value){
|
|
|
if($value['number'] >= 0){
|
|
|
$tmp_total = bcmul($value['number'], $value['price'], 2);
|