add report for machines
This commit is contained in:
@@ -10,31 +10,128 @@ use Illuminate\Support\Facades\DB;
|
||||
|
||||
class ReportMachineService
|
||||
{
|
||||
public function activity(Request $request): array
|
||||
public function countryMachinesActivity(Request $request): array
|
||||
{
|
||||
$code = $request->machine_code;
|
||||
$from = $request->from_date ?? today()->startOfDay();
|
||||
$to = $request->date_to ? Carbon::parse($request->date_to)->endOfDay() : today()->endOfDay();
|
||||
|
||||
$sql = "
|
||||
SELECT*
|
||||
m.city_name AS c.name,
|
||||
m.city_id AS c_id,
|
||||
m.province_name AS p_name,
|
||||
m.province_id AS p_id,
|
||||
COUNT(m.id) As missions,
|
||||
(SUM(m.end_km)-SUM(m.km)) AS distance
|
||||
|
||||
FROM missions m
|
||||
WHERE m.machine_code = :machineCode
|
||||
AND m.created_at >= :from
|
||||
AND m.created_at <= :to;
|
||||
";
|
||||
$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,
|
||||
'machineCode' => $code,
|
||||
]);
|
||||
}
|
||||
|
||||
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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user