make reports datatable
This commit is contained in:
@@ -23,7 +23,7 @@ class ReportMachineController extends Controller
|
|||||||
|
|
||||||
public function machineDetailsReport(Request $request, ReportMachineService $reportMachineService,int $machine_id): JsonResponse
|
public function machineDetailsReport(Request $request, ReportMachineService $reportMachineService,int $machine_id): JsonResponse
|
||||||
{
|
{
|
||||||
$data = $reportMachineService->dataTableMachinesActivity($request,$machine_id);
|
$data = $reportMachineService->machineDetailActivity($request,$machine_id);
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ class ReportMachineController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function machineDetailsReportExcel(Request $request, int $machine_id, ReportMachineService $reportMachineService): BinaryFileResponse
|
public function machineDetailsReportExcel(Request $request, int $machine_id, ReportMachineService $reportMachineService): BinaryFileResponse
|
||||||
{
|
{
|
||||||
$data = $reportMachineService->dataTableMachinesActivity($request,$machine_id);
|
$data = $reportMachineService->machineDetailActivity($request,$machine_id);
|
||||||
$name = 'گزارش عملکرد ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx';
|
$name = 'گزارش عملکرد ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx';
|
||||||
|
|
||||||
return Excel::download(new machineDetailsReport($data['data']), $name);
|
return Excel::download(new machineDetailsReport($data['data']), $name);
|
||||||
@@ -42,10 +42,7 @@ class ReportMachineController extends Controller
|
|||||||
|
|
||||||
public function machinesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse
|
public function machinesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse
|
||||||
{
|
{
|
||||||
return $this->successResponse([
|
return response()->json($reportMachineService->machinesActivity($request));
|
||||||
'activities' => $reportMachineService->machinesActivity($request),
|
|
||||||
// 'provinces' => Province::all(['id', 'name_fa']),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,9 +59,9 @@ class ReportMachineController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function machineTypeDetailsReport(Request $request, ReportMachineService $reportMachineService,int $car_type): JsonResponse
|
public function machineTypeDetailsReport(Request $request, ReportMachineService $reportMachineService): JsonResponse
|
||||||
{
|
{
|
||||||
$data = $reportMachineService->dataTableMachineTypesActivity($request,$car_type);
|
$data = $reportMachineService->machineTypeDetailActivity($request);
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
@@ -73,9 +70,9 @@ class ReportMachineController extends Controller
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
|
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
|
||||||
*/
|
*/
|
||||||
public function machineTypeDetailsReportExcel(Request $request, ReportMachineService $reportMachineService,int $car_type): BinaryFileResponse
|
public function machineTypeDetailsReportExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse
|
||||||
{
|
{
|
||||||
$data = $reportMachineService->dataTableMachineTypesActivity($request,$car_type);
|
$data = $reportMachineService->machineTypeDetailActivity($request);
|
||||||
$name = 'گزارش عملکردیک نوع ماشین'.verta()->now()->format('Y-m-d H-i').'.xlsx';
|
$name = 'گزارش عملکردیک نوع ماشین'.verta()->now()->format('Y-m-d H-i').'.xlsx';
|
||||||
|
|
||||||
return Excel::download(new machineTypeDetailsReport($data['data']), $name);
|
return Excel::download(new machineTypeDetailsReport($data['data']), $name);
|
||||||
@@ -83,10 +80,7 @@ class ReportMachineController extends Controller
|
|||||||
|
|
||||||
public function machineTypesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse
|
public function machineTypesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse
|
||||||
{
|
{
|
||||||
return $this->successResponse([
|
return response()->json($reportMachineService->machineTypesActivity($request));
|
||||||
'activities' => $reportMachineService->machineTypesActivity($request),
|
|
||||||
// 'provinces' => Province::all(['id', 'name_fa']),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -101,9 +95,9 @@ class ReportMachineController extends Controller
|
|||||||
return Excel::download(new machineTypeReport($data), $name);
|
return Excel::download(new machineTypeReport($data), $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function machineDriverDetailsReport(Request $request, int $driver_id, ReportMachineService $reportMachineService): JsonResponse
|
public function machineDriverDetailsReport(Request $request, ReportMachineService $reportMachineService): JsonResponse
|
||||||
{
|
{
|
||||||
$data = $reportMachineService->dataTableMachineDriversActivity($request,$driver_id);
|
$data = $reportMachineService->machineDriverDetailActivity($request);
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
@@ -112,9 +106,9 @@ class ReportMachineController extends Controller
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
|
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
|
||||||
*/
|
*/
|
||||||
public function machineDriverDetailsReportExcel(Request $request, int $driver_id, ReportMachineService $reportMachineService): BinaryFileResponse
|
public function machineDriverDetailsReportExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse
|
||||||
{
|
{
|
||||||
$data = $reportMachineService->dataTableMachineDriversActivity($request,$driver_id);
|
$data = $reportMachineService->machineDriverDetailActivity($request);
|
||||||
$name = 'گزارش عملکرد راننده'.verta()->now()->format('Y-m-d H-i').'.xlsx';
|
$name = 'گزارش عملکرد راننده'.verta()->now()->format('Y-m-d H-i').'.xlsx';
|
||||||
|
|
||||||
return Excel::download(
|
return Excel::download(
|
||||||
@@ -123,10 +117,7 @@ class ReportMachineController extends Controller
|
|||||||
|
|
||||||
public function machineDriversActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse
|
public function machineDriversActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse
|
||||||
{
|
{
|
||||||
return $this->successResponse([
|
return response()->json($reportMachineService->machineDriversActivity($request));
|
||||||
'activities' => $reportMachineService->machineDriversActivity($request),
|
|
||||||
// 'provinces' => Province::all(['id', 'name_fa']),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ use Illuminate\Http\Request;
|
|||||||
|
|
||||||
class ReportMachineService
|
class ReportMachineService
|
||||||
{
|
{
|
||||||
public function dataTableMachinesActivity(Request $request, int $machine_id): array
|
public function machineDetailActivity(Request $request, int $machine_id): array
|
||||||
{
|
{
|
||||||
return DataTableFacade::run(
|
return DataTableFacade::run(
|
||||||
Mission::query()->where('machine_id', '=', $machine_id),
|
Mission::query()->where('machine_id', '=', $machine_id),
|
||||||
@@ -38,10 +38,9 @@ class ReportMachineService
|
|||||||
COUNT(*) as missions,
|
COUNT(*) as missions,
|
||||||
SUM(missions.end_km - missions.km) as func'
|
SUM(missions.end_km - missions.km) as func'
|
||||||
)
|
)
|
||||||
->groupBy('missions.machine_id')
|
->groupBy('missions.machine_id');
|
||||||
->orderByRaw('COUNT(*) DESC');
|
|
||||||
|
|
||||||
$fields = ['machine_code','machine_id','cm.car_name','missions', 'func'];
|
$fields = ['machine_code','machine_id','cm.car_name','missions', 'func', 'start_time', 'finish_time', 'province_id'];
|
||||||
return DataTableFacade::run(
|
return DataTableFacade::run(
|
||||||
$query,
|
$query,
|
||||||
$request,
|
$request,
|
||||||
@@ -50,9 +49,9 @@ class ReportMachineService
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function dataTableMachineTypesActivity(Request $request,int $car_type): array
|
public function machineTypeDetailActivity(Request $request): array
|
||||||
{
|
{
|
||||||
$machineIds = CMMSMachine::query()->where('car_type', '=', $car_type)->pluck('machine_id');
|
$machineIds = CMMSMachine::query()->where('car_type', '=', $request->query('car_type'))->pluck('id');
|
||||||
return DataTableFacade::run(
|
return DataTableFacade::run(
|
||||||
Mission::query()->whereIn('machine_id', $machineIds),
|
Mission::query()->whereIn('machine_id', $machineIds),
|
||||||
$request,
|
$request,
|
||||||
@@ -81,7 +80,7 @@ class ReportMachineService
|
|||||||
->groupBy('cm.car_type')
|
->groupBy('cm.car_type')
|
||||||
->orderByRaw('COUNT(*) DESC');
|
->orderByRaw('COUNT(*) DESC');
|
||||||
|
|
||||||
$fields = ['car_type','missions', 'func'];
|
$fields = ['car_type','missions', 'func', 'start_time', 'finish_time', 'province_id'];
|
||||||
|
|
||||||
return DataTableFacade::run(
|
return DataTableFacade::run(
|
||||||
$query,
|
$query,
|
||||||
@@ -91,10 +90,10 @@ class ReportMachineService
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function dataTableMachineDriversActivity(Request $request,int $driver_id): array
|
public function machineDriverDetailActivity(Request $request): array
|
||||||
{
|
{
|
||||||
return DataTableFacade::run(
|
return DataTableFacade::run(
|
||||||
Mission::query()->where('driver_id', '=', $driver_id),
|
Mission::query()->where('driver_id', '=', $request->query('driver_id')),
|
||||||
$request,
|
$request,
|
||||||
allowedFilters: ['*'],
|
allowedFilters: ['*'],
|
||||||
allowedSortings: ['*'],
|
allowedSortings: ['*'],
|
||||||
@@ -121,7 +120,7 @@ class ReportMachineService
|
|||||||
->groupBy('driver_id')
|
->groupBy('driver_id')
|
||||||
->orderByRaw('COUNT(*) DESC');
|
->orderByRaw('COUNT(*) DESC');
|
||||||
|
|
||||||
$fields = ['driver_id','driver_name','missions', 'func'];
|
$fields = ['driver_id','driver_name','missions', 'func', 'start_time', 'finish_time', 'province_id'];
|
||||||
|
|
||||||
return DataTableFacade::run(
|
return DataTableFacade::run(
|
||||||
$query,
|
$query,
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ return new class extends Migration
|
|||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
Schema::table('cmms_machines', function (Blueprint $table) {
|
Schema::table('cmms_machines', function (Blueprint $table) {
|
||||||
$table->integer('distance_mission')->nullable();
|
$table->integer('max_mission_duration')->nullable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ return new class extends Migration
|
|||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
Schema::table('cmms_machines', function (Blueprint $table) {
|
Schema::table('cmms_machines', function (Blueprint $table) {
|
||||||
$table->dropColumn('distance_mission');
|
$table->dropColumn('max_mission_duration');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -575,10 +575,10 @@ Route::prefix('missions')
|
|||||||
Route::get('/machine_drivers_activity_excel', 'machineDriversActivityExcel')->name('machineDriversActivityExcel');
|
Route::get('/machine_drivers_activity_excel', 'machineDriversActivityExcel')->name('machineDriversActivityExcel');
|
||||||
Route::get('/machine_details_report/{machine_id}', 'machineDetailsReport')->name('machineDetailsReport');
|
Route::get('/machine_details_report/{machine_id}', 'machineDetailsReport')->name('machineDetailsReport');
|
||||||
Route::get('/machine_details_report_excel/{machine_id}', 'machineDetailsReportExcel')->name('machineDetailsReportExcel');
|
Route::get('/machine_details_report_excel/{machine_id}', 'machineDetailsReportExcel')->name('machineDetailsReportExcel');
|
||||||
Route::get('/machine_type_details_report/{car_type}', 'machineTypeDetailsReport')->name('machineTypeDetailsReport');
|
Route::get('/machine_type_details_report', 'machineTypeDetailsReport')->name('machineTypeDetailsReport');
|
||||||
Route::get('/machine_type_details_report_excel/{car_type}', 'machineTypeDetailsReportExcel')->name('machineTypeDetailsReportExcel');
|
Route::get('/machine_type_details_report_excel', 'machineTypeDetailsReportExcel')->name('machineTypeDetailsReportExcel');
|
||||||
Route::get('/machine_driver_details_report/{driver_id}', 'machineDriverDetailsReport')->name('machineDriverDetailsReport');
|
Route::get('/machine_driver_details_report', 'machineDriverDetailsReport')->name('machineDriverDetailsReport');
|
||||||
Route::get('/machine_driver_details_report_excel/{driver_id}', 'machineDriverDetailsReportExcel')->name('machineDriverDetailsReportExcel');
|
Route::get('/machine_driver_details_report_excel', 'machineDriverDetailsReportExcel')->name('machineDriverDetailsReportExcel');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user