Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- try{
- $agent = Auth::guard('agent')->user();
- $data = [];
- for($i = 1; $i <= 2; $i++) {
- if ($i == 1) {
- $request->region_code = $request->region_code1;
- $request->branch_code = $request->branch_code1;
- } else {
- $request->region_code = $request->region_code2;
- $request->branch_code = $request->branch_code2;
- }
- $vehicleColor = Color::select('id','code','name')
- ->where('agent_code',$agent->code)
- ->whereNotNull('code');
- $vehicleColor = $vehicleColor->get();
- $vehicleColorCode = $vehicleColor->pluck('code', 'id');
- $vehicleColorName = $vehicleColor->pluck('name', 'id');
- $getVehicle = Vehicle::selectRaw('COUNT(vehicles.id) as total, color_id,vehicle_type_id, customer_id')
- ->where('agent_code',$agent->code)
- ->groupBy('vehicle_type_id')
- ->orderBy(\DB::Raw('COUNT(vehicles.id)'), 'DESC')
- ->limit(10);
- if ($request->region_code || $request->branch_code) {
- $getBranchCodeIn = RegionBranchLib::regionBranchGet($request);
- $getVehicle->whereIn('branch_code', $getBranchCodeIn);
- }
- if(isset($request->user_type) && $request->user_type == 'h2')
- {
- $getVehicle->whereIn('user_type',['ASSISTH2','AHASS SYSTEM']);
- }else{
- $getVehicle->whereNotIn('user_type',['ASSISTH2','AHASS SYSTEM']);
- }
- if ($request->start_date)
- $getVehicle->where('vehicles.created_at','>=',date('Y-m-d 00:00:00',strtotime($request->start_date)));
- if ($request->end_date)
- $getVehicle->where('vehicles.created_at','<=',date('Y-m-d 23:59:59',strtotime($request->end_date)));
- if($request->vehicle_type_code || $request->vehicle_material_code || $request->vehicle_variant_code || $request->vehicle_segment_code || $request->vehicle_series_code)
- {
- $where = [];
- if($request->vehicle_variant_code)
- {
- if(is_array($request->vehicle_variant_code))
- {
- $where[] = "vehicle_type.commercial_name IN ('" .implode("','",$request->vehicle_variant_code)."') ";
- }else{
- $where[] = "vehicle_type.commercial_name = '{$request->vehicle_variant_code}'";
- }
- }
- if($request->vehicle_material_code)
- {
- if(is_array($request->vehicle_material_code))
- {
- $where[] = "vehicle_type.material_group_desc IN ('" .implode("','",$request->vehicle_material_code)."') ";
- }else{
- $where[] = "vehicle_type.material_group_desc = '{$request->vehicle_material_code}'";
- }
- }
- if($request->vehicle_type_code)
- {
- if(is_array($request->vehicle_type_code))
- {
- $where[] = "vehicle_type.code IN ('" .implode("','",$request->vehicle_type_code)."') ";
- }else{
- $where[] = "vehicle_type.code = '{$request->vehicle_type_code}'";
- }
- }
- if($request->vehicle_segment_code)
- {
- if(is_array($request->vehicle_segment_code))
- {
- $where[] = "vehicle_type.segment IN ('" .implode("','",$request->vehicle_segment_code)."') ";
- }else{
- $where[] = "vehicle_type.segment = '{$request->vehicle_segment_code}'";
- }
- }
- if($request->vehicle_series_code)
- {
- if(is_array($request->vehicle_series_code))
- {
- $where[] = "vehicle_type.series IN ('" .implode("','",$request->vehicle_series_code)."') ";
- }else{
- $where[] = "vehicle_type.series = '{$request->vehicle_series_code}'";
- }
- }
- $getVehicle->join(\DB::raw("(
- SELECT id,code,material_group_desc,commercial_name FROM vehicle_type
- WHERE agent_code = '{$agent->code}' AND ".implode("AND ",$where)."
- ) as v"),'vehicles.vehicle_type_id','v.id');
- }
- if ($request->age_range && preg_match('/-/i',$request->age_range)) {
- $dataExplode = explode('-',$request->age_range);
- $dataTo = 2628000;
- $firstTotal = trim($dataExplode[0]) * $dataTo;
- $secondTotal = trim($dataExplode[1]) * $dataTo;
- $getVehicle->join(\DB::raw("(
- SELECT
- object_id,
- IF(scan_log.aging_time IS NULL, TIMESTAMPDIFF(SECOND, scan_log.created_at, NOW()), scan_log.aging_time) AS aging_time
- FROM scan_log
- WHERE
- agent_code = '{$agent->code}'
- AND IF(scan_log.aging_time IS NULL, TIMESTAMPDIFF(SECOND, scan_log.created_at, NOW()), scan_log.aging_time) >= '{$firstTotal}'
- AND IF(scan_log.aging_time IS NULL, TIMESTAMPDIFF(SECOND, scan_log.created_at, NOW()), scan_log.aging_time) <= '{$secondTotal}'
- GROUP BY object_id
- ) as v"), 'vehicles.id', 'v.object_id');
- }
- if($request->age_range && preg_match('/>/i',$request->age_range))
- {
- $ageRange = trim(str_replace('>', '', $request->age_range));
- $minTotal = $ageRange * 2628000;
- $getVehicle->join(\DB::raw("(
- SELECT
- object_id,
- IF(scan_log.aging_time IS NULL, TIMESTAMPDIFF(SECOND, scan_log.created_at, NOW()), scan_log.aging_time) AS aging_time
- FROM scan_log
- WHERE
- agent_code = '{$agent->code}'
- AND IF(scan_log.aging_time IS NULL, TIMESTAMPDIFF(SECOND, scan_log.created_at, NOW()), scan_log.aging_time) >= '{$minTotal}'
- GROUP BY object_id
- ) as v"), 'vehicles.id', 'v.object_id');
- }
- $getVehicle = $getVehicle->get();
- $getVehicleTotal = $getVehicle->pluck('total', 'color_id')->toArray();
- arsort($getVehicleTotal);
- foreach ($getVehicleTotal as $color_id => $total) {
- $vehicle_name = [];
- $vehicle_name[] = isset($vehicleColorCode[$color_id]) ? $vehicleColorCode[$color_id] : '';
- $vehicle_name[] = isset($vehicleColorName[$color_id]) ? $vehicleColorName[$color_id] : null;
- $data['data' . $i][] = [
- 'branch_code' => isset($request->branch_code) && $request->branch_code ? $request->branch_code : '',
- 'vehicle_type' => [
- 'colour' => implode(' - ', array_filter($vehicle_name)),
- 'total' => $total,
- ]
- ];
- }
- }
- $response = [
- 'data' => [(isset($data['data1']) ? $data['data1'] : []), (isset($data['data2']) ? $data['data2'] : [])]
- ];
- return ResponseBase::success($response);
- } catch (\Exception $e) {
- return ResponseBase::error(400,$e->getMessage());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement