from_date ?? today()->startOfDay(); $to = $request->date_to ? Carbon::parse($request->date_to)->endOfDay() : today()->endOfDay(); $sql = "SELECT m.machine_id, m.machine_code, cm.car_name, COUNT(*) AS missions, SUM(m.end_km - m.km) AS func FROM missions m JOIN cmms_machines cm ON cm.id = m.machine_id WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to GROUP BY machine_id;"; return DB::select($sql, [ 'from' => $from, 'to' => $to, ]); } public function provinceMachinesActivity(Request $request): array { $from = $request->from_date ?? today()->startOfDay(); $to = $request->date_to ? Carbon::parse($request->date_to)->endOfDay() : today()->endOfDay(); $province = $request->province_id; $sql = "SELECT machine_id, machine_code, cm.car_name, COUNT(*) AS missions, SUM(m.end_km - m.km) AS func FROM missions m JOIN cmms_machines cm ON cm.id = m.machine_id WHERE m.state_id = 4 AND start_time >= :from AND finish_time <= :to AND province_id = :province_id GROUP BY machine_id;"; return DB::select($sql, [ 'from' => $from, 'to' => $to, 'province_id' => $province, ]); } public function countryMachineTypesActivity(Request $request): array { $from = $request->from_date ?? today()->startOfDay(); $to = $request->date_to ? Carbon::parse($request->date_to)->endOfDay() : today()->endOfDay(); $sql = "SELECT cm.car_type, COUNT(*) AS missions, SUM(m.end_km - m.km) AS func FROM missions m JOIN cmms_machines cm ON cm.id = m.machine_id WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to GROUP BY cm.car_type;"; return DB::select($sql, [ 'from' => $from, 'to' => $to, ]); } public function provinceMachineTypesActivity(Request $request): array { $from = $request->from_date ?? today()->startOfDay(); $to = $request->date_to ? Carbon::parse($request->date_to)->endOfDay() : today()->endOfDay(); $province = $request->province_id; $sql = "SELECT cm.car_type, COUNT(*) AS missions, SUM(m.end_km - m.km) AS func FROM missions m JOIN cmms_machines cm ON cm.id = m.machine_id WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to AND province_id = :province_id GROUP BY cm.car_type;"; return DB::select($sql, [ 'from' => $from, 'to' => $to, 'province_id' => $province, ]); } public function countryMachineDriversActivity(Request $request): array { $from = $request->from_date ?? today()->startOfDay(); $to = $request->date_to ? Carbon::parse($request->date_to)->endOfDay() : today()->endOfDay(); $sql = "SELECT m.driver_id, m.driver_name, COUNT(*) AS missions, SUM(m.end_km - m.km) AS func FROM missions m WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to GROUP BY m.driver_id;"; return DB::select($sql, [ 'from' => $from, 'to' => $to, ]); } public function provinceMachineDriversActivity(Request $request): array { $from = $request->from_date ?? today()->startOfDay(); $to = $request->date_to ? Carbon::parse($request->date_to)->endOfDay() : today()->endOfDay(); $province = $request->province_id; $sql = "SELECT m.driver_id, m.driver_name, COUNT(*) AS missions, SUM(m.end_km - m.km) AS func FROM missions m WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to AND province_id = :province_id GROUP BY m.driver_id;"; return DB::select($sql, [ 'from' => $from, 'to' => $to, 'province_id' => $province, ]); } }