|
@@ -909,12 +909,8 @@ class SalesOrderService extends Service
|
|
|
}
|
|
|
if(! empty($data['plat_order'])) $model->where('plat_order','LIKE', '%'.$data['plat_order'].'%');
|
|
|
if(! empty($data['customer'])) {
|
|
|
- $model2 = Customer::Clear($user,$data);
|
|
|
- $customer = $model2->where('del_time',0)
|
|
|
- ->where('title', 'LIKE', '%'.$data['customer'].'%')
|
|
|
- ->select('id')
|
|
|
- ->get()->toArray();
|
|
|
- $model->whereIn('customer_id',array_unique(array_column($customer,'id')));
|
|
|
+ $customer_id = (new CustomerService())->titleSearch($user, $data, $data['customer']);
|
|
|
+ $model->whereIn('customer_id',$customer_id);
|
|
|
}
|
|
|
if(! empty($data['customer_id'])) $model->where('customer_id',$data['customer_id']);
|
|
|
if(! empty($data['sign_time'][0]) && ! empty($data['sign_time'][1])){
|
|
@@ -937,7 +933,7 @@ class SalesOrderService extends Service
|
|
|
}
|
|
|
if(! empty($data['purchase_order_number'])) $model->where('contact_order_no','LIKE', '%'.$data['purchase_order_number'].'%');
|
|
|
if(! empty($data['contact_info'])){
|
|
|
- $customer_id = (new RangeService())->salesOrderCustomerMessageSearch($data);
|
|
|
+ $customer_id = (new CustomerService())->contactSearch($data['contact_info']);
|
|
|
$model->whereIn('customer_id',$customer_id);
|
|
|
}
|
|
|
if(! empty($data['customer_crt_name'])){
|
|
@@ -962,6 +958,14 @@ class SalesOrderService extends Service
|
|
|
$return = $service->constructionList($for_search,$user);
|
|
|
$model->whereIn('id', array_unique(array_column($return,'sales_order_id')));
|
|
|
}
|
|
|
+ if(! empty($data['smart_search'])){
|
|
|
+ $service = new CustomerService();
|
|
|
+ $customer_id = $service->contactSearch($data['smart_search']);
|
|
|
+ $customer_id_2 = $service->titleSearch($user, $data, $data['smart_search']);
|
|
|
+ $customer_id = array_unique(array_merge_recursive($customer_id,$customer_id_2));
|
|
|
+ $model->where('order_number', 'LIKE', '%'.$data['smart_search'].'%')
|
|
|
+ ->orWhereIn('customer_id', $customer_id);
|
|
|
+ }
|
|
|
if(! empty($data['wx_crt_time'][0]) && ! empty($data['wx_crt_time'][1])) {
|
|
|
$model->where('crt_time','>=',$data['wx_crt_time'][0]);
|
|
|
$model->where('crt_time','<=',$data['wx_crt_time'][1]);
|
|
@@ -970,6 +974,16 @@ class SalesOrderService extends Service
|
|
|
return $model;
|
|
|
}
|
|
|
|
|
|
+ public function orderNumberSearch($user, $data, $message){
|
|
|
+ $model2 = SalesOrder::Clear($user,$data);
|
|
|
+ $sale = $model2->where('del_time',0)
|
|
|
+ ->where('order_number', 'LIKE', '%'.$message.'%')
|
|
|
+ ->select('id')
|
|
|
+ ->get()->toArray();
|
|
|
+
|
|
|
+ return array_column($sale,'id');
|
|
|
+ }
|
|
|
+
|
|
|
//门店搜索
|
|
|
public function searchSalesDepart($depart_title = ""){
|
|
|
$sales_id = [];
|
|
@@ -2355,15 +2369,18 @@ class SalesOrderService extends Service
|
|
|
$save = OutBoundOrderInfo::where('del_time',0)
|
|
|
->where('type', OutBoundOrderInfo::type_one)
|
|
|
->where('data_id', $sales_id)
|
|
|
- ->select('number', 'data_id as sales_order_id')
|
|
|
+ ->select('number', 'data_id as sales_order_id','return_number')
|
|
|
->get()->toArray();
|
|
|
foreach ($save as $value){
|
|
|
$key = $value['sales_order_id'];
|
|
|
if(isset($product_map[$key])){
|
|
|
- $number = bcadd($value['number'], $product_map[$key],2);
|
|
|
- $product_map[$key] = $number;
|
|
|
+ $number = bcadd($value['number'], $product_map[$key]['number'],2);
|
|
|
+ $return_number = bcadd($value['return_number'], $product_map[$key]['return_number'],2);
|
|
|
+ $product_map[$key]['number'] = $number;
|
|
|
+ $product_map[$key]['return_number'] = $return_number;
|
|
|
}else{
|
|
|
- $product_map[$key] = $value['number'];
|
|
|
+ $product_map[$key]['number'] = $value['number'];
|
|
|
+ $product_map[$key]['return_number'] = $value['return_number'];
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2398,9 +2415,33 @@ class SalesOrderService extends Service
|
|
|
//未出库 0 未完全出库 1 已完全出库 2
|
|
|
foreach ($product_sale_map as $key => $value){
|
|
|
//合同出库产品总数
|
|
|
- $p1 = $product_map[$key] ?? 0;
|
|
|
+ $p1 = $product_map[$key] ?? [];
|
|
|
+ //合同出库产品数量
|
|
|
+ $p1_number = $p1['number'] ?? 0;
|
|
|
+ //合同出库后退货产品数量
|
|
|
+ $p1_return_number = $p1['return_number'] ?? 0;
|
|
|
+ //出库数量 - 退货数量 = 已出数量
|
|
|
+ $p_re = bcsub($p1_number,$p1_return_number,2);
|
|
|
+
|
|
|
//合同退货产品
|
|
|
$p2 = $product_map2[$key] ?? 0;
|
|
|
+ $p2_re = bcsub($p2,$p1_return_number,2);
|
|
|
+ //合同 - 已出 - 退货 = 剩余能出
|
|
|
+ $number = bcsub(bcsub($value['number'], $p_re,2), $p2_re,2);
|
|
|
+
|
|
|
+ if($p_re > 0) {
|
|
|
+ if($number <= 0){
|
|
|
+ $return_id[$value['sales_order_id']] = "已出库";
|
|
|
+ }else{
|
|
|
+ $return_id[$value['sales_order_id']] = "未完全出库";
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if($number <= 0){
|
|
|
+ $return_id[$value['sales_order_id']] = "已退货";
|
|
|
+ }else{
|
|
|
+ $return_id[$value['sales_order_id']] = "未出库";
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if(! $p1){
|
|
|
$return_id[$value['sales_order_id']] = "未出库";
|