|
@@ -5,6 +5,7 @@ namespace App\Service;
|
|
use App\Model\ApplyOrder;
|
|
use App\Model\ApplyOrder;
|
|
use App\Model\ApplyOrderDetail;
|
|
use App\Model\ApplyOrderDetail;
|
|
use App\Model\Box;
|
|
use App\Model\Box;
|
|
|
|
+use App\Model\BoxDetail;
|
|
use App\Model\DispatchSub;
|
|
use App\Model\DispatchSub;
|
|
use App\Model\Employee;
|
|
use App\Model\Employee;
|
|
use App\Model\EmployeeTeamPermission;
|
|
use App\Model\EmployeeTeamPermission;
|
|
@@ -12,6 +13,7 @@ use App\Model\InOutRecord;
|
|
use App\Model\Process;
|
|
use App\Model\Process;
|
|
use App\Model\ReportWorking;
|
|
use App\Model\ReportWorking;
|
|
use App\Model\ReportWorkingDetail;
|
|
use App\Model\ReportWorkingDetail;
|
|
|
|
+use App\Model\SaleOrdersProduct;
|
|
use App\Model\Team;
|
|
use App\Model\Team;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
@@ -181,6 +183,38 @@ class ApplyOrderService extends Service
|
|
->get()->toArray();
|
|
->get()->toArray();
|
|
$model->whereIn('id', array_unique(array_column($detail,'apply_order_id')));
|
|
$model->whereIn('id', array_unique(array_column($detail,'apply_order_id')));
|
|
}
|
|
}
|
|
|
|
+ if(! empty($data['sale_order_number'])){
|
|
|
|
+ if(in_array($data['type'], [ApplyOrder::type_one,ApplyOrder::type_two])){
|
|
|
|
+ $dispatch_id = DispatchSub::where('del_time',0)
|
|
|
|
+ ->where('out_order_no', 'LIKE', '%'.$data['sale_order_number'].'%')
|
|
|
|
+ ->select('id')
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ $dispatch_id = array_column($dispatch_id,'id');
|
|
|
|
+ $detail = ApplyOrderDetail::where('del_time',0)
|
|
|
|
+ ->where('type', $data['type'])
|
|
|
|
+ ->whereIn('data_id', $dispatch_id)
|
|
|
|
+ ->select('apply_order_id')
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ $model->whereIn('id', array_unique(array_column($detail,'apply_order_id')));
|
|
|
|
+ }else{
|
|
|
|
+ $no = SaleOrdersProduct::where('del_time',0)
|
|
|
|
+ ->where('out_order_no', 'LIKE', '%'.$data['sale_order_number'].'%')
|
|
|
|
+ ->select('order_no')
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ $no = array_unique(array_column($no,'order_no'));
|
|
|
|
+ $box_id = Box::where('del_time',0)
|
|
|
|
+ ->whereIn('top_order_no', $no)
|
|
|
|
+ ->select('id')
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ $box_id = array_column($box_id,'id');
|
|
|
|
+ $detail = ApplyOrderDetail::where('del_time',0)
|
|
|
|
+ ->where('type', $data['type'])
|
|
|
|
+ ->whereIn('data_id', $box_id)
|
|
|
|
+ ->select('apply_order_id')
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ $model->whereIn('id', array_unique(array_column($detail,'apply_order_id')));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
$list = $this->limit($model,'',$data);
|
|
$list = $this->limit($model,'',$data);
|
|
$list = $this->fillData($list);
|
|
$list = $this->fillData($list);
|
|
@@ -195,11 +229,70 @@ class ApplyOrderService extends Service
|
|
->pluck('emp_name','id')
|
|
->pluck('emp_name','id')
|
|
->toArray();
|
|
->toArray();
|
|
|
|
|
|
|
|
+ $array1 = $array2 = [];
|
|
|
|
+ foreach ($data['data'] as $value){
|
|
|
|
+ if(in_array($value['type'], [ApplyOrder::type_one,ApplyOrder::type_two])){
|
|
|
|
+ $array1[] = $value['id'];
|
|
|
|
+ }else{
|
|
|
|
+ $array2[] = $value['id'];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $order1 = ApplyOrderDetail::whereIn('type',[ApplyOrder::type_one,ApplyOrder::type_two])
|
|
|
|
+ ->whereIn('apply_order_id', $array1)
|
|
|
|
+ ->select('data_id','apply_order_id')
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ $order1_map = [];
|
|
|
|
+ foreach ($order1 as $value){
|
|
|
|
+ $order1_map[$value['apply_order_id']][] = $value['data_id'];
|
|
|
|
+ }
|
|
|
|
+ $order2 = ApplyOrderDetail::whereNotIn('type',[ApplyOrder::type_one,ApplyOrder::type_two])
|
|
|
|
+ ->whereIn('apply_order_id', $array2)
|
|
|
|
+ ->select('data_id','apply_order_id')
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ $order2_map = [];
|
|
|
|
+ foreach ($order2 as $value){
|
|
|
|
+ $order2_map[$value['apply_order_id']][] = $value['data_id'];
|
|
|
|
+ }
|
|
|
|
+ $map1 = DispatchSub::whereIn('id', array_unique(array_column($order1,'data_id')))
|
|
|
|
+ ->pluck('out_order_no','id')
|
|
|
|
+ ->toArray();
|
|
|
|
+ $map2 = Box::whereIn('id', array_unique(array_column($order2,'data_id')))
|
|
|
|
+ ->pluck('top_order_no','id')
|
|
|
|
+ ->toArray();
|
|
|
|
+ $map2_fin = SaleOrdersProduct::whereIn('order_no',array_unique(array_values($map2)))
|
|
|
|
+ ->pluck('out_order_no','order_no')
|
|
|
|
+ ->toArray();
|
|
foreach ($data['data'] as $key => $value){
|
|
foreach ($data['data'] as $key => $value){
|
|
$data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
|
|
$data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
|
|
$data['data'][$key]['status_title'] = ApplyOrder::$state_name[$value['status']] ?? "";
|
|
$data['data'][$key]['status_title'] = ApplyOrder::$state_name[$value['status']] ?? "";
|
|
$data['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
|
|
$data['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
|
|
$data['data'][$key]['apply_name'] = $emp[$value['apply_id']] ?? '';
|
|
$data['data'][$key]['apply_name'] = $emp[$value['apply_id']] ?? '';
|
|
|
|
+ if(in_array($value['type'], [ApplyOrder::type_one,ApplyOrder::type_two])){
|
|
|
|
+ $order_tmp = $order1_map[$value['id']] ?? [];
|
|
|
|
+ $order_tmp = array_unique($order_tmp);
|
|
|
|
+ $sale_order_number = [];
|
|
|
|
+ foreach ($order_tmp as $v){
|
|
|
|
+ $str = $map1[$v] ?? '';
|
|
|
|
+ if(empty($str)) continue;
|
|
|
|
+ $sale_order_number[] = $str;
|
|
|
|
+ }
|
|
|
|
+ $sale_order_number = array_unique($sale_order_number);
|
|
|
|
+ $sale_order_number = implode(',',$sale_order_number);
|
|
|
|
+ $data['data'][$key]['sale_order_number'] = $sale_order_number;
|
|
|
|
+ }else{
|
|
|
|
+ $order_tmp = $order2_map[$value['id']] ?? [];
|
|
|
|
+ $order_tmp = array_unique($order_tmp);
|
|
|
|
+ $sale_order_number = [];
|
|
|
|
+ foreach ($order_tmp as $v){
|
|
|
|
+ $m2_t = $map2[$v] ?? '';
|
|
|
|
+ $m2_t = $map2_fin[$m2_t] ?? "";
|
|
|
|
+ if(empty($m2_t)) continue;
|
|
|
|
+ $sale_order_number[] = $m2_t;
|
|
|
|
+ }
|
|
|
|
+ $sale_order_number = array_unique($sale_order_number);
|
|
|
|
+ $sale_order_number = implode(',',$sale_order_number);
|
|
|
|
+ $data['data'][$key]['sale_order_number'] = $sale_order_number;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
return $data;
|
|
return $data;
|