138 lines
4.9 KiB
PHP
138 lines
4.9 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Cartables\Mission\Report;
|
|
|
|
use App\Facades\DataTable\DataTableFacade;
|
|
use App\Models\MissionViolation;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class ReportMachineService
|
|
{
|
|
public function countryMachinesActivity(Request $request): array
|
|
{
|
|
$from = $request->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 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 start_time >= :from AND finish_time <= :to AND m.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 m.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,
|
|
]);
|
|
}
|
|
}
|