create new stracture for Report in mission and fix form request
This commit is contained in:
@@ -3,135 +3,88 @@
|
||||
namespace App\Services\Cartables\Mission\Report;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Models\MissionViolation;
|
||||
use Carbon\Carbon;
|
||||
use App\Models\Mission;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class ReportMachineService
|
||||
{
|
||||
public function countryMachinesActivity(Request $request): array
|
||||
public function machinesActivity(Request $request): array
|
||||
{
|
||||
$from = $request->from_date ?? today()->startOfDay();
|
||||
$to = $request->date_to ? Carbon::parse($request->date_to)->endOfDay() : today()->endOfDay();
|
||||
$query = Mission::query()
|
||||
->join('cmms_machines as cm', 'cm.id', '=', 'missions.machine_id')
|
||||
->where('state_id', '=', 4)
|
||||
->when($request->province_id, function ($q) use ($request) {
|
||||
$q->where('missions.province_id', $request->province_id);
|
||||
})
|
||||
->selectRaw(
|
||||
'cm.car_name,
|
||||
missions.machine_code,
|
||||
missions.machine_id,
|
||||
COUNT(*) as missions,
|
||||
SUM(missions.end_km - missions.km) as func'
|
||||
)
|
||||
->groupBy('missions.machine_id')
|
||||
->orderByRaw('COUNT(*) DESC');
|
||||
|
||||
$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;";
|
||||
$fields = ['machine_code','machine_id','cm.car_name','missions', 'func'];
|
||||
|
||||
return DB::select($sql, [
|
||||
'from' => $from,
|
||||
'to' => $to,
|
||||
]);
|
||||
return DataTableFacade::run(
|
||||
$query,
|
||||
$request,
|
||||
allowedFilters: $fields,
|
||||
allowedSortings: $fields,
|
||||
);
|
||||
}
|
||||
|
||||
public function provinceMachinesActivity(Request $request): array
|
||||
public function machineTypesActivity(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;
|
||||
$query = Mission::query()
|
||||
->join('cmms_machines as cm', 'cm.id', '=', 'missions.machine_id')
|
||||
->where('missions.state_id','=', 4)
|
||||
->when($request->province_id, function ($q) use ($request) {
|
||||
$q->where('missions.province_id', $request->province_id);
|
||||
})
|
||||
->selectRaw(
|
||||
'cm.car_type,
|
||||
COUNT(*) as missions,
|
||||
SUM(missions.end_km - missions.km) as func'
|
||||
)
|
||||
->groupBy('cm.car_type')
|
||||
->orderByRaw('COUNT(*) DESC');
|
||||
|
||||
$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;";
|
||||
$fields = ['car_type','missions', 'func'];
|
||||
|
||||
return DB::select($sql, [
|
||||
'from' => $from,
|
||||
'to' => $to,
|
||||
'province_id' => $province,
|
||||
]);
|
||||
return DataTableFacade::run(
|
||||
$query,
|
||||
$request,
|
||||
allowedFilters: $fields,
|
||||
allowedSortings: $fields,
|
||||
);
|
||||
}
|
||||
|
||||
public function countryMachineTypesActivity(Request $request): array
|
||||
public function machineDriversActivity(Request $request): array
|
||||
{
|
||||
$from = $request->from_date ?? today()->startOfDay();
|
||||
$to = $request->date_to ? Carbon::parse($request->date_to)->endOfDay() : today()->endOfDay();
|
||||
$query = Mission::query()
|
||||
->selectRaw(
|
||||
'driver_id,
|
||||
driver_name,
|
||||
COUNT(*) as missions,
|
||||
SUM(end_km - km) as func'
|
||||
)
|
||||
->where('state_id', '=', 4)
|
||||
->when($request->province_id, function ($query) use ($request) {
|
||||
$query->where('province_id', '=', $request->province_id);
|
||||
})
|
||||
->groupBy('driver_id')
|
||||
->orderBy('COUNT(*) desc');
|
||||
|
||||
$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;";
|
||||
$fields = ['driver_id','driver_name','missions', 'func'];
|
||||
|
||||
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,
|
||||
]);
|
||||
return DataTableFacade::run(
|
||||
$query,
|
||||
$request,
|
||||
allowedFilters: $fields,
|
||||
allowedSortings: $fields,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user