diff --git a/app/Exports/V3/Mission/Report/Machine/machineDetailsReport.php b/app/Exports/V3/Mission/Report/Machine/machineDetailsReport.php new file mode 100644 index 00000000..d20226a3 --- /dev/null +++ b/app/Exports/V3/Mission/Report/Machine/machineDetailsReport.php @@ -0,0 +1,77 @@ +data as $r) { + $exportRows[] = [ + 'id' => $r->id, + 'province_name' => $r->province_name, + 'city_name' => $r->city_name, + 'station_name' => $r->station_name ?? 0, + 'driver_name' => $r->driver_name ?? '', + 'km' => $r->km ?? '', + 'end_km' => $r->end_km ?? '', + ]; + } + + return view('v3.Reports.Mission.Report.Machine.ActivityDetailsReport', [ + 'rows' => $exportRows, + ]); + } + + public function registerEvents(): array + { + return [ + AfterSheet::class => function (AfterSheet $event) { + $event->sheet->getDelegate()->setRightToLeft(true); + }, + ]; + } + + /** + * @throws Exception + */ + public function drawings(): array + { + $drawing = new Drawing(); + $drawing->setName('Logo'); + $drawing->setDescription('This is my logo'); + $drawing->setPath(public_path('/dist/logo.png')); + $drawing->setWidth(50); + $drawing->setHeight(50); + $drawing->setOffsetX(5); + $drawing->setOffsetY(5); + $drawing->setCoordinates('A1'); + + $drawing2 = new Drawing(); + $drawing2->setName('Logo'); + $drawing2->setDescription('This is my logo'); + $drawing2->setPath(public_path('/dist/141icon.png')); + $drawing2->setWidth(50); + $drawing2->setHeight(50); + $drawing2->setOffsetX(+90); + $drawing2->setOffsetY(5); + $drawing2->setCoordinates('E1'); + + return [$drawing, $drawing2]; + } +} diff --git a/app/Exports/V3/Mission/Report/Machine/machineDriverDetailsReport.php b/app/Exports/V3/Mission/Report/Machine/machineDriverDetailsReport.php new file mode 100644 index 00000000..c983c023 --- /dev/null +++ b/app/Exports/V3/Mission/Report/Machine/machineDriverDetailsReport.php @@ -0,0 +1,78 @@ +data as $r) { + $exportRows[] = [ + 'id' => $r->id, + 'province_name' => $r->province_name, + 'city_name' => $r->city_name, + 'station_name' => $r->station_name ?? 0, + 'driver_name' => $r->driver_name ?? '', + 'km' => $r->km ?? '', + 'end_km' => $r->end_km ?? '', + + ]; + } + + return view('v3.Reports.Mission.Report.Machine.MachineDriverDetailsReport', [ + 'rows' => $exportRows, + ]); + } + + public function registerEvents(): array + { + return [ + AfterSheet::class => function (AfterSheet $event) { + $event->sheet->getDelegate()->setRightToLeft(true); + }, + ]; + } + + /** + * @throws Exception + */ + public function drawings(): array + { + $drawing = new Drawing(); + $drawing->setName('Logo'); + $drawing->setDescription('This is my logo'); + $drawing->setPath(public_path('/dist/logo.png')); + $drawing->setWidth(50); + $drawing->setHeight(50); + $drawing->setOffsetX(5); + $drawing->setOffsetY(5); + $drawing->setCoordinates('A1'); + + $drawing2 = new Drawing(); + $drawing2->setName('Logo'); + $drawing2->setDescription('This is my logo'); + $drawing2->setPath(public_path('/dist/141icon.png')); + $drawing2->setWidth(50); + $drawing2->setHeight(50); + $drawing2->setOffsetX(+90); + $drawing2->setOffsetY(5); + $drawing2->setCoordinates('D1'); + + return [$drawing, $drawing2]; + } +} diff --git a/app/Exports/V3/Mission/Report/Machine/machineTypeDetailsReport.php b/app/Exports/V3/Mission/Report/Machine/machineTypeDetailsReport.php new file mode 100644 index 00000000..668d9491 --- /dev/null +++ b/app/Exports/V3/Mission/Report/Machine/machineTypeDetailsReport.php @@ -0,0 +1,77 @@ +data as $r) { + $exportRows[] = [ + 'id' => $r->id, + 'province_name' => $r->province_name, + 'city_name' => $r->city_name, + 'station_name' => $r->station_name ?? 0, + 'driver_name' => $r->driver_name ?? '', + 'km' => $r->km ?? '', + 'end_km' => $r->end_km ?? '', + ]; + } + + return view('v3.Reports.Mission.Report.Machine.MachineTypeDetailsReport', [ + 'rows' => $exportRows, + ]); + } + + public function registerEvents(): array + { + return [ + AfterSheet::class => function (AfterSheet $event) { + $event->sheet->getDelegate()->setRightToLeft(true); + }, + ]; + } + + /** + * @throws Exception + */ + public function drawings(): array + { + $drawing = new Drawing(); + $drawing->setName('Logo'); + $drawing->setDescription('This is my logo'); + $drawing->setPath(public_path('/dist/logo.png')); + $drawing->setWidth(50); + $drawing->setHeight(50); + $drawing->setOffsetX(5); + $drawing->setOffsetY(5); + $drawing->setCoordinates('A1'); + + $drawing2 = new Drawing(); + $drawing2->setName('Logo'); + $drawing2->setDescription('This is my logo'); + $drawing2->setPath(public_path('/dist/141icon.png')); + $drawing2->setWidth(50); + $drawing2->setHeight(50); + $drawing2->setOffsetX(+90); + $drawing2->setOffsetY(5); + $drawing2->setCoordinates('C1'); + + return [$drawing, $drawing2]; + } +} diff --git a/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php index 888071cf..ae9bbcc1 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php @@ -2,14 +2,14 @@ namespace App\Http\Controllers\V3\Dashboard\Mission\Report; +use App\Exports\V3\Mission\Report\Machine\machineDetailsReport; +use App\Exports\V3\Mission\Report\Machine\machineDriverDetailsReport; use App\Exports\V3\Mission\Report\Machine\machineDriverReport; use App\Exports\V3\Mission\Report\Machine\machineReport; +use App\Exports\V3\Mission\Report\Machine\machineTypeDetailsReport; use App\Exports\V3\Mission\Report\Machine\machineTypeReport; -use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; use App\Http\Traits\ApiResponse; -use App\Models\CMMSMachine; -use App\Models\Mission; use App\Services\Cartables\Mission\Report\ReportMachineService; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -21,113 +21,26 @@ class ReportMachineController extends Controller { use ApiResponse; - public function countryMachinesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse + public function machineDetailsReport(Request $request, ReportMachineService $reportMachineService,int $machine_id): JsonResponse { - return $this->successResponse([ - 'activities' => $reportMachineService->countryMachinesActivity($request), -// 'provinces' => Province::all(['id', 'name_fa']), - ]); + $data = $reportMachineService->dataTableMachinesActivity($request,$machine_id); + + return response()->json($data); } /** * @throws Exception * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - public function countryMachinesActivityExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse + public function machineDetailsReportExcel(Request $request, int $machine_id, ReportMachineService $reportMachineService): BinaryFileResponse { - $data = $reportMachineService->countryMachinesActivity($request); - $name = 'گزارش ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx'; + $data = $reportMachineService->dataTableMachinesActivity($request,$machine_id); + $name = 'گزارش عملکرد ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx'; - return Excel::download(new machineReport($data), $name); + return Excel::download(new machineDetailsReport($data['data']), $name); } - public function provinceMachinesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse - { - return $this->successResponse([ - 'activities' => $reportMachineService->provinceMachinesActivity($request), -// 'city' => City::query() -// ->where('province_id', $request->province_id) -// ->where(function ($query) { -// $query->where('type_id', 1) -// ->orWhereIn('name_fa', ['اداره ماشين‌آلات', 'اداره نقلیه']); -// }) -// ->get(['id', 'name_fa']) - ]); - } - - /** - * @throws Exception - * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception - */ - public function provinceMachinesActivityExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse - { - $data = $reportMachineService->provinceMachinesActivity($request); - $name = 'گزارش ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx'; - - return Excel::download(new machineReport($data), $name); - } - - public function countryMachineTypesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse - { - return $this->successResponse([ - 'activities' => $reportMachineService->countryMachineTypesActivity($request), -// 'provinces' => Province::all(['id', 'name_fa']), - ]); - } - - /** - * @throws Exception - * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception - */ - public function countryMachineTypesActivityExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse - { - $data = $reportMachineService->countryMachineTypesActivity($request); - $name = 'گزارش نوع ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx'; - - return Excel::download(new machineTypeReport($data), $name); - } - - public function provinceMachineTypesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse - { - return $this->successResponse([ - 'activities' => $reportMachineService->provinceMachineTypesActivity($request), -// 'city' => City::query() -// ->where('province_id', $request->province_id) -// ->where(function ($query) { -// $query->where('type_id', 1) -// ->orWhereIn('name_fa', ['اداره ماشين‌آلات', 'اداره نقلیه']); -// }) -// ->get(['id', 'name_fa']) - ]); - } - - public function machineDetailsReport(Request $request, int $machine_id) - { - return DataTableFacade::run( - Mission::query()->where('machine_id', '=', $machine_id), - $request, - allowedFilters: ['*'], - allowedSortings: ['*'], - allowedSelects: [ - 'id', 'province_id', 'province_name', 'city_id', 'city_name', - 'end_km', 'km', 'driver_name', 'state_id', 'station_name' - ] - ); - } - - /** - * @throws Exception - * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception - */ - public function provinceMachineTypesActivityExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse - { - $data = $reportMachineService->provinceMachineTypesActivity($request); - $name = 'گزارش نوع ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx'; - - return Excel::download(new machineTypeReport($data), $name); - } - - public function countryMachineDriversActivity(Request $request, ReportMachineService $reportMachineService) + public function machinesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse { return $this->successResponse([ 'activities' => $reportMachineService->machinesActivity($request), @@ -149,19 +62,23 @@ class ReportMachineController extends Controller } - public function machineTypeDetailsReport(Request $request): array + public function machineTypeDetailsReport(Request $request, ReportMachineService $reportMachineService,int $car_type): JsonResponse { - $machineIds = CMMSMachine::query()->where('car_type', '=', $request->query('car_type'))->pluck('machine_id'); - return DataTableFacade::run( - Mission::query()->whereIn('machine_id', $machineIds), - $request, - allowedFilters: ['*'], - allowedSortings: ['*'], - allowedSelects: [ - 'id', 'province_id', 'province_name', 'city_id', 'city_name', - 'end_km', 'km', 'driver_name', 'state_name', 'station_name' - ] - ); + $data = $reportMachineService->dataTableMachineTypesActivity($request,$car_type); + + return response()->json($data); + } + + /** + * @throws Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + */ + public function machineTypeDetailsReportExcel(Request $request, ReportMachineService $reportMachineService,int $car_type): BinaryFileResponse + { + $data = $reportMachineService->dataTableMachineTypesActivity($request,$car_type); + $name = 'گزارش عملکردیک نوع ماشین'.verta()->now()->format('Y-m-d H-i').'.xlsx'; + + return Excel::download(new machineTypeDetailsReport($data['data']), $name); } public function machineTypesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse @@ -184,19 +101,26 @@ class ReportMachineController extends Controller return Excel::download(new machineTypeReport($data), $name); } - public function machineDriverDetailsReport(Request $request, int $driver_id): array + public function machineDriverDetailsReport(Request $request, int $driver_id, ReportMachineService $reportMachineService): JsonResponse { - return DataTableFacade::run( - Mission::query()->where('driver_id', '=', $driver_id), - $request, - allowedFilters: ['*'], - allowedSortings: ['*'], - allowedSelects: [ - 'id', 'province_id', 'province_name', 'city_id', 'city_name', - 'end_km', 'km', 'driver_name', 'state_id', 'station_name' - ] - ); + $data = $reportMachineService->dataTableMachineDriversActivity($request,$driver_id); + + return response()->json($data); } + + /** + * @throws Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + */ + public function machineDriverDetailsReportExcel(Request $request, int $driver_id, ReportMachineService $reportMachineService): BinaryFileResponse + { + $data = $reportMachineService->dataTableMachineDriversActivity($request,$driver_id); + $name = 'گزارش عملکرد راننده'.verta()->now()->format('Y-m-d H-i').'.xlsx'; + + return Excel::download( + new machineDriverDetailsReport($data['data']), $name); + } + public function machineDriversActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse { return $this->successResponse([ @@ -216,4 +140,4 @@ class ReportMachineController extends Controller return Excel::download(new machineDriverReport($data), $name); } -} +} \ No newline at end of file diff --git a/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php b/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php index c992a817..9d9890e8 100644 --- a/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php +++ b/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php @@ -3,6 +3,7 @@ namespace App\Http\Requests\V3\Mission\ControlUnit; use App\Enums\MissionStates; +use App\Models\CMMSMachine; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; @@ -34,6 +35,7 @@ class FinishRequest extends FormRequest { return [ function (Validator $validator) { + $mission = $this->mission; if (strtotime($this->time) < strtotime($mission->start_time)) { $validator->errors()->add( @@ -41,17 +43,35 @@ class FinishRequest extends FormRequest 'زمان پایان ماموریت باید بعد از زمان شروع ماموریت باشد.' ); } + if ($this->end_km <= $mission->km) { $validator->errors()->add( 'end_km', 'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.' ); } - if (($this->end_km - $mission->km ) < 100) { - $validator->errors()->add( - 'end_km', - 'اختلاف کلیلومتر شروع و پایان نباید بیشتر از 100 کیلومتر باشد' - ); + + $machine = CMMSMachine::find($mission->machine_id); + + $distance = $this->end_km - $mission->km; + + if ($machine->car_group === 'سنگین') { + + if ($distance > 15) { + $validator->errors()->add( + 'end_km', + 'اختلاف کیلومتر برای خودروهای سنگین باید کمتر از 15 باشد.' + ); + } + + } else { + + if ($distance > 1000) { + $validator->errors()->add( + 'end_km', + 'اختلاف کیلومتر برای خودروهای سبک و نیمه سنگین باید کمتر از 1000 باشد.' + ); + } } } ]; diff --git a/app/Http/Requests/V3/Mission/TransportaionUnit/AllocateRequest.php b/app/Http/Requests/V3/Mission/TransportaionUnit/AllocateRequest.php index af14fad9..3b89dca0 100644 --- a/app/Http/Requests/V3/Mission/TransportaionUnit/AllocateRequest.php +++ b/app/Http/Requests/V3/Mission/TransportaionUnit/AllocateRequest.php @@ -15,7 +15,7 @@ class AllocateRequest extends FormRequest */ public function authorize(): bool { - return $this->mission->station_id == auth()->user()->station_id && $this->mission->state_id == MissionStates::REQUEST_CREATED->value + return ($this->mission->station_id == auth()->user()->station_id && $this->mission->state_id == MissionStates::REQUEST_CREATED->value) || auth()->user()->username === 'witel'; } diff --git a/app/Services/Cartables/Mission/Report/ReportMachineService.php b/app/Services/Cartables/Mission/Report/ReportMachineService.php index 1d7a80e3..58f65c82 100644 --- a/app/Services/Cartables/Mission/Report/ReportMachineService.php +++ b/app/Services/Cartables/Mission/Report/ReportMachineService.php @@ -3,11 +3,25 @@ namespace App\Services\Cartables\Mission\Report; use App\Facades\DataTable\DataTableFacade; +use App\Models\CMMSMachine; use App\Models\Mission; use Illuminate\Http\Request; class ReportMachineService { + public function dataTableMachinesActivity(Request $request, int $machine_id): array + { + return DataTableFacade::run( + Mission::query()->where('machine_id', '=', $machine_id), + $request, + allowedFilters: ['*'], + allowedSortings: ['*'], + allowedSelects: [ + 'id', 'province_id', 'province_name', 'city_id', 'city_name', + 'end_km', 'km', 'driver_name', 'state_id', 'station_name' + ] + ); + } public function machinesActivity(Request $request): array { $query = Mission::query() @@ -35,6 +49,21 @@ class ReportMachineService ); } + public function dataTableMachineTypesActivity(Request $request,int $car_type): array + { + $machineIds = CMMSMachine::query()->where('car_type', '=', $request->query('car_type'))->pluck('machine_id'); + return DataTableFacade::run( + Mission::query()->whereIn('machine_id', $machineIds), + $request, + allowedFilters: ['*'], + allowedSortings: ['*'], + allowedSelects: [ + 'id', 'province_id', 'province_name', 'city_id', 'city_name', + 'end_km', 'km', 'driver_name', 'state_name', 'station_name' + ] + ); + } + public function machineTypesActivity(Request $request): array { $query = Mission::query() @@ -61,6 +90,20 @@ class ReportMachineService ); } + public function dataTableMachineDriversActivity(Request $request,int $driver_id): array + { + return DataTableFacade::run( + Mission::query()->where('driver_id', '=', $driver_id), + $request, + allowedFilters: ['*'], + allowedSortings: ['*'], + allowedSelects: [ + 'id', 'province_id', 'province_name', 'city_id', 'city_name', + 'end_km', 'km', 'driver_name', 'state_id', 'station_name' + ] + ); + } + public function machineDriversActivity(Request $request): array { $query = Mission::query() diff --git a/resources/views/v3/Reports/Mission/Report/Machine/ActivityDetailsReport.blade.php b/resources/views/v3/Reports/Mission/Report/Machine/ActivityDetailsReport.blade.php new file mode 100644 index 00000000..1f187fb4 --- /dev/null +++ b/resources/views/v3/Reports/Mission/Report/Machine/ActivityDetailsReport.blade.php @@ -0,0 +1,94 @@ + + + + + + + + گزارش کل تردد های یک ماشین + + + + + +@php + // show a dot if key missing or value is 0/empty + function cell($row, $key) { + return array_key_exists($key, $row) ? ($row[$key] ?: '0') : '0'; + } +@endphp + + + + + + + + + + + + + + + + + + + + + + + + + + + + @foreach ($rows as $item) + + + + + + + + + + @endforeach + +
+ تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }} +
+
+ گزارش ماشین های ماموریت رفته +
+ کد یکتا + + استان + + شهر + راهدارخانه + + نام راننده + + کیلومتر شروع + + کیلومتر پایان
{{ $item['id'] ?? '-' }}{{ $item['province_name'] ?? '-' }}{{ $item['city_name'] ?? '-' }}{{ $item['station_name'] ?? '-' }}{{ $item['driver_name'] ?? '-' }}{{ $item['km'] ?? '-' }}{{ $item['end_km'] ?? '-' }}
+ + diff --git a/resources/views/v3/Reports/Mission/Report/Machine/MachineDriverDetailsReport.blade.php b/resources/views/v3/Reports/Mission/Report/Machine/MachineDriverDetailsReport.blade.php new file mode 100644 index 00000000..49d0b218 --- /dev/null +++ b/resources/views/v3/Reports/Mission/Report/Machine/MachineDriverDetailsReport.blade.php @@ -0,0 +1,94 @@ + + + + + + + + گزارش کل تردد های راننده + + + + + +@php + // show a dot if key missing or value is 0/empty + function cell($row, $key) { + return array_key_exists($key, $row) ? ($row[$key] ?: '0') : '0'; + } +@endphp + + + + + + + + + + + + + + + + + + + + + + + + + + + + @foreach ($rows as $item) + + + + + + + + + + @endforeach + +
+ تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }} +
+
+ گزارش عملکرد راندده در ماموریت +
+ کد یکتا + + استان + + شهر + راهدارخانه + + نام راننده + + کیلومتر شروع + + کیلومتر پایان
{{ $item['id'] ?? '-' }}{{ $item['province_name'] ?? '-' }}{{ $item['city_name'] ?? '-' }}{{ $item['station_name'] ?? '-' }}{{ $item['driver_name'] ?? '-' }}{{ $item['km'] ?? '-' }}{{ $item['end_km'] ?? '-' }}
+ + diff --git a/resources/views/v3/Reports/Mission/Report/Machine/MachineTypeDetailsReport.blade.php b/resources/views/v3/Reports/Mission/Report/Machine/MachineTypeDetailsReport.blade.php new file mode 100644 index 00000000..9a1b549b --- /dev/null +++ b/resources/views/v3/Reports/Mission/Report/Machine/MachineTypeDetailsReport.blade.php @@ -0,0 +1,94 @@ + + + + + + + + گزارش ترددهای انواع ماشین ها + + + + + +@php + // show a dot if key missing or value is 0/empty + function cell($row, $key) { + return array_key_exists($key, $row) ? ($row[$key] ?: '0') : '0'; + } +@endphp + + + + + + + + + + + + + + + + + + + + + + + + + + + + @foreach ($rows as $item) + + + + + + + + + + @endforeach + +
+ تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }} +
+
+ گزارش نوع ماشین هادرماموریت +
+ کد یکتا + + استان + + شهر + راهدارخانه + + نام راننده + + کیلومتر شروع + + کیلومتر پایان
{{ $item['id'] ?? '-' }}{{ $item['province_name'] ?? '-' }}{{ $item['city_name'] ?? '-' }}{{ $item['station_name'] ?? '-' }}{{ $item['driver_name'] ?? '-' }}{{ $item['km'] ?? '-' }}{{ $item['end_km'] ?? '-' }}
+ + diff --git a/routes/v3.php b/routes/v3.php index 3bca0def..d05afc2f 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -568,13 +568,17 @@ Route::prefix('missions') ->group(function () { Route::get('/machines_activity', 'machinesActivity')->name('machinesActivity'); Route::get('/machines_activity_excel', 'machinesActivityExcel')->name('machinesActivityExcel'); + Route::get('/machine_types_activity', 'machineTypesActivity')->name('machineTypesActivity'); Route::get('/machine_types_activity_excel', 'machineTypesActivityExcel')->name('machineTypesActivityExcel'); Route::get('/machine_drivers_activity', 'machineDriversActivity')->name('machineDriversActivity'); Route::get('/machine_drivers_activity_excel', 'machineDriversActivityExcel')->name('machineDriversActivityExcel'); Route::get('/machine_details_report/{machine_id}', 'machineDetailsReport')->name('machineDetailsReport'); + 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_excel/{car_type}', 'Excel')->name('machineTypeDetailsReportExcel'); Route::get('/machine_driver_details_report/{driver_id}', 'machineDriverDetailsReport')->name('machineDriverDetailsReport'); - Route::get('/machine_type_details_report', ' machineTypeDetailsReport')->name('machineTypeDetailsReport'); + Route::get('/machine_driver_details_report_excel/{driver_id}', 'machineDriverDetailsReportExcel')->name('machineDriverDetailsReportExcel'); }); });