|
@@ -136,17 +136,17 @@ class SalesOrderService extends Service
|
|
$insert = [];
|
|
$insert = [];
|
|
foreach ($data['product'] as $value){
|
|
foreach ($data['product'] as $value){
|
|
$sports_bag_product_info_id = 0;
|
|
$sports_bag_product_info_id = 0;
|
|
- if(! empty($value['sports_bag_id'])) $sports_bag_product_info_id = $value['id'];
|
|
|
|
|
|
+ if(! empty($value['sports_bag_id'])) $sports_bag_product_info_id = empty($value['id']) ? 0 : $value['id'];
|
|
$insert[] = [
|
|
$insert[] = [
|
|
'sales_order_id' => $model->id,
|
|
'sales_order_id' => $model->id,
|
|
- 'product_id' => $value['product_id'],
|
|
|
|
- 'number' => $value['number'],
|
|
|
|
|
|
+ 'product_id' => $value['product_id'] ?? 0,
|
|
|
|
+ 'number' => $value['number'] ?? 0,
|
|
'cost' => $value['cost'] ?? 0,
|
|
'cost' => $value['cost'] ?? 0,
|
|
'retail_price' => $value['retail_price'] ?? 0,
|
|
'retail_price' => $value['retail_price'] ?? 0,
|
|
'mark' => $value['mark'] ?? '',
|
|
'mark' => $value['mark'] ?? '',
|
|
'crt_time' => $time,
|
|
'crt_time' => $time,
|
|
'basic_type_id' => $value['basic_type_id'],
|
|
'basic_type_id' => $value['basic_type_id'],
|
|
- 'price' => $value['price'],
|
|
|
|
|
|
+ 'price' => $value['price'] ?? 0,
|
|
'final_amount' => $value['final_amount'] ?? 0,
|
|
'final_amount' => $value['final_amount'] ?? 0,
|
|
'sports_bag_id' => $value['sports_bag_id'] ?? 0,
|
|
'sports_bag_id' => $value['sports_bag_id'] ?? 0,
|
|
'sports_bag_product_info_id' => $sports_bag_product_info_id,
|
|
'sports_bag_product_info_id' => $sports_bag_product_info_id,
|
|
@@ -275,17 +275,17 @@ class SalesOrderService extends Service
|
|
$insert = [];
|
|
$insert = [];
|
|
foreach ($data['product'] as $value){
|
|
foreach ($data['product'] as $value){
|
|
$sports_bag_product_info_id = 0;
|
|
$sports_bag_product_info_id = 0;
|
|
- if(! empty($value['sports_bag_id'])) $sports_bag_product_info_id = $value['id'];
|
|
|
|
|
|
+ if(! empty($value['sports_bag_id'])) $sports_bag_product_info_id = empty($value['id']) ? 0 : $value['id'];;
|
|
$insert[] = [
|
|
$insert[] = [
|
|
'sales_order_id' => $model->id,
|
|
'sales_order_id' => $model->id,
|
|
- 'product_id' => $value['product_id'],
|
|
|
|
- 'number' => $value['number'],
|
|
|
|
|
|
+ 'product_id' => $value['product_id'] ?? 0,
|
|
|
|
+ 'number' => $value['number'] ?? 0,
|
|
'cost' => $value['cost'] ?? 0,
|
|
'cost' => $value['cost'] ?? 0,
|
|
'retail_price' => $value['retail_price'] ?? 0,
|
|
'retail_price' => $value['retail_price'] ?? 0,
|
|
'mark' => $value['mark'] ?? '',
|
|
'mark' => $value['mark'] ?? '',
|
|
'crt_time' => $time,
|
|
'crt_time' => $time,
|
|
- 'basic_type_id' => $value['basic_type_id'],
|
|
|
|
- 'price' => $value['price'],
|
|
|
|
|
|
+ 'basic_type_id' => $value['basic_type_id'] ?? 0,
|
|
|
|
+ 'price' => $value['price'] ?? 0,
|
|
'final_amount' => $value['final_amount'] ?? 0,
|
|
'final_amount' => $value['final_amount'] ?? 0,
|
|
'sports_bag_id' => $value['sports_bag_id'] ?? 0,
|
|
'sports_bag_id' => $value['sports_bag_id'] ?? 0,
|
|
'sports_bag_product_info_id' => $sports_bag_product_info_id,
|
|
'sports_bag_product_info_id' => $sports_bag_product_info_id,
|
|
@@ -437,19 +437,25 @@ class SalesOrderService extends Service
|
|
|
|
|
|
$basic_price = BasicType::whereIn('id',array_unique(array_column($sales_p_info,'basic_type_id')))->pluck('title','id')->toArray();
|
|
$basic_price = BasicType::whereIn('id',array_unique(array_column($sales_p_info,'basic_type_id')))->pluck('title','id')->toArray();
|
|
$map = (new ProductService())->getProductDetail(array_column($sales_p_info,'product_id'));
|
|
$map = (new ProductService())->getProductDetail(array_column($sales_p_info,'product_id'));
|
|
|
|
+ $sports_bag_arr = [];
|
|
|
|
+ $sports_bag_pro = [];
|
|
foreach ($sales_p_info as $value){
|
|
foreach ($sales_p_info as $value){
|
|
$tmp = $map[$value['product_id']] ?? [];
|
|
$tmp = $map[$value['product_id']] ?? [];
|
|
- if(!empty($value['sports_bag_id'])){
|
|
|
|
|
|
+ if(! empty($value['sports_bag_id'])){
|
|
$bag_tmp = $bag_map[$value['sports_bag_id']] ?? [];
|
|
$bag_tmp = $bag_map[$value['sports_bag_id']] ?? [];
|
|
|
|
+ if(! isset($sports_bag_arr[$value['sports_bag_id']])) $sports_bag_arr[$value['sports_bag_id']] = $bag_tmp;
|
|
$bag_pro_tmp = $bag_pro_map[$value['sports_bag_id']] ?? [];
|
|
$bag_pro_tmp = $bag_pro_map[$value['sports_bag_id']] ?? [];
|
|
foreach ($bag_pro_tmp as $k => $v){
|
|
foreach ($bag_pro_tmp as $k => $v){
|
|
|
|
+ if($v['product_id'] != $value['product_id']) continue;
|
|
$is_choose = false;
|
|
$is_choose = false;
|
|
$final_amount = 0;
|
|
$final_amount = 0;
|
|
$number = $v['number'];
|
|
$number = $v['number'];
|
|
|
|
+ $mark = "";
|
|
if($v['id'] == $value['sports_bag_product_info_id']){
|
|
if($v['id'] == $value['sports_bag_product_info_id']){
|
|
$is_choose = true;
|
|
$is_choose = true;
|
|
$final_amount = $value['final_amount'];
|
|
$final_amount = $value['final_amount'];
|
|
$number = $value['number'];
|
|
$number = $value['number'];
|
|
|
|
+ $mark = $value['mark'];
|
|
}
|
|
}
|
|
$bag_pro_tmp[$k]['is_choose'] = $is_choose;
|
|
$bag_pro_tmp[$k]['is_choose'] = $is_choose;
|
|
$bag_pro_tmp[$k]['final_amount'] = $final_amount;
|
|
$bag_pro_tmp[$k]['final_amount'] = $final_amount;
|
|
@@ -459,9 +465,9 @@ class SalesOrderService extends Service
|
|
$bag_pro_tmp[$k]['size'] = $tmp['size'] ?? "";
|
|
$bag_pro_tmp[$k]['size'] = $tmp['size'] ?? "";
|
|
$bag_pro_tmp[$k]['unit'] = $tmp['unit'] ?? "";
|
|
$bag_pro_tmp[$k]['unit'] = $tmp['unit'] ?? "";
|
|
$bag_pro_tmp[$k]['bar_code'] = $tmp['bar_code'] ?? "";
|
|
$bag_pro_tmp[$k]['bar_code'] = $tmp['bar_code'] ?? "";
|
|
|
|
+ $bag_pro_tmp[$k]['mark'] = $mark ?? "";
|
|
|
|
+ $sports_bag_pro[$value['sports_bag_id']][] = $bag_pro_tmp[$k];
|
|
}
|
|
}
|
|
- $bag_tmp['product'] = $bag_pro_tmp;
|
|
|
|
- $sales['activity_product'][] = $bag_tmp;
|
|
|
|
}else{
|
|
}else{
|
|
$value['title'] = $tmp['title'] ?? "";
|
|
$value['title'] = $tmp['title'] ?? "";
|
|
$value['code'] = $tmp['code'] ?? "";
|
|
$value['code'] = $tmp['code'] ?? "";
|
|
@@ -472,6 +478,10 @@ class SalesOrderService extends Service
|
|
$sales['product'][] = $value;
|
|
$sales['product'][] = $value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ foreach ($sports_bag_arr as $key => $value){
|
|
|
|
+ $value['product'] = $sports_bag_pro[$key] ?? [];
|
|
|
|
+ $sales['activity_product'][] = $value;
|
|
|
|
+ }
|
|
$sales['crt_name'] = $emp_map[$sales['crt_id']] ?? '';
|
|
$sales['crt_name'] = $emp_map[$sales['crt_id']] ?? '';
|
|
$sales['crt_time'] = $sales['crt_time'] ? date("Y-m-d H:i:s",$sales['crt_time']): '';
|
|
$sales['crt_time'] = $sales['crt_time'] ? date("Y-m-d H:i:s",$sales['crt_time']): '';
|
|
$sales['dispatch_time_first'] = $sales['dispatch_time_first'] ? date("Y-m-d H:i:s",$sales['dispatch_time_first']): '';
|
|
$sales['dispatch_time_first'] = $sales['dispatch_time_first'] ? date("Y-m-d H:i:s",$sales['dispatch_time_first']): '';
|
|
@@ -501,6 +511,7 @@ class SalesOrderService extends Service
|
|
->select('title','id','sales_order_type','model_type','order_number','selling_price','vin_no','car_type','order_type','deal_type','customer_id','sign_time','contract_state','crt_id','crt_time','mark','product_total','rate','construction_time','handover_time','expire_time','other_fee','discount_fee','contract_fee','contract_type','pay_way','send_state','logistics_company','logistics_number','car_type','year','mileage','color','original_set','processing','state')
|
|
->select('title','id','sales_order_type','model_type','order_number','selling_price','vin_no','car_type','order_type','deal_type','customer_id','sign_time','contract_state','crt_id','crt_time','mark','product_total','rate','construction_time','handover_time','expire_time','other_fee','discount_fee','contract_fee','contract_type','pay_way','send_state','logistics_company','logistics_number','car_type','year','mileage','color','original_set','processing','state')
|
|
->orderby('id', 'desc');
|
|
->orderby('id', 'desc');
|
|
|
|
|
|
|
|
+ if(! empty($data['order_number'])) $model->where('order_number','LIKE', '%'.$data['order_number'].'%');
|
|
if(! empty($data['sales_order_type'])) $model->where('sales_order_type',$data['sales_order_type']);
|
|
if(! empty($data['sales_order_type'])) $model->where('sales_order_type',$data['sales_order_type']);
|
|
if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
|
|
if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
|
|
if(! empty($data['model_type'])) $model->where('model_type',$data['model_type']);
|
|
if(! empty($data['model_type'])) $model->where('model_type',$data['model_type']);
|
|
@@ -807,7 +818,7 @@ class SalesOrderService extends Service
|
|
if(empty($sale)) return [false,'合同不存在或已被删除'];
|
|
if(empty($sale)) return [false,'合同不存在或已被删除'];
|
|
$sale = $sale->toArray();
|
|
$sale = $sale->toArray();
|
|
if($sale['sales_order_type'] != SalesOrder::Order_type_one) return [false,'非安装件合同,操作失败'];
|
|
if($sale['sales_order_type'] != SalesOrder::Order_type_one) return [false,'非安装件合同,操作失败'];
|
|
- if($sale['state'] != SalesOrder::State_two) return [false,'合同未确认,操作失败'];
|
|
|
|
|
|
+ if($sale['state'] < SalesOrder::State_two) return [false,'合同还未确认,操作失败'];
|
|
if($sale['state'] > SalesOrder::State_three) return [false,'请确认合同状态,操作失败'];
|
|
if($sale['state'] > SalesOrder::State_three) return [false,'请确认合同状态,操作失败'];
|
|
$bool = SalesOrderProductInfo::where('del_time',0)
|
|
$bool = SalesOrderProductInfo::where('del_time',0)
|
|
->where('sales_order_id',$data['id'])
|
|
->where('sales_order_id',$data['id'])
|
|
@@ -886,6 +897,7 @@ class SalesOrderService extends Service
|
|
if(empty($sale)) return [false,'合同不存在或已被删除'];
|
|
if(empty($sale)) return [false,'合同不存在或已被删除'];
|
|
$sale = $sale->toArray();
|
|
$sale = $sale->toArray();
|
|
if($sale['sales_order_type'] != SalesOrder::Order_type_one) return [false,'非安装件合同,操作失败'];
|
|
if($sale['sales_order_type'] != SalesOrder::Order_type_one) return [false,'非安装件合同,操作失败'];
|
|
|
|
+ if($sale['state'] != SalesOrder::State_three) return [false,'合同还未指派销售,操作失败'];
|
|
if($sale['state'] > SalesOrder::State_four) return [false,'请确认合同状态,操作失败'];
|
|
if($sale['state'] > SalesOrder::State_four) return [false,'请确认合同状态,操作失败'];
|
|
$product = SalesOrderProductInfo::where('del_time',0)
|
|
$product = SalesOrderProductInfo::where('del_time',0)
|
|
->where('sales_order_id',$data['id'])
|
|
->where('sales_order_id',$data['id'])
|