change Format table report

This commit is contained in:
2026-01-24 19:13:47 +03:30
parent 44e7f6a321
commit 0763e1732e
13 changed files with 741 additions and 60 deletions

View File

@@ -0,0 +1,61 @@
<?php
namespace App\Http\Controllers\V3\Dashboard\Mission\Report;
use App\Exports\V3\Mission\Report\Violation\CountryReport;
use App\Exports\V3\Mission\Report\Violation\ProvinceReport;
use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\City;
use App\Models\Province;
use App\Services\Cartables\Mission\Report\ReportTradodService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use PhpOffice\PhpSpreadsheet\Exception;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class ReportTradodController extends Controller
{
use ApiResponse;
public function countryActivity(Request $request, ReportTradodService $reportMissionService): JsonResponse
{
return $this->successResponse([
'activities' => $reportMissionService->countryActivity($request),
'provinces' => Province::all(['id', 'name_fa']),
]);
}
public function provinceActivity(Request $request, ReportTradodService $reportMissionService): JsonResponse
{
return $this->successResponse([
'activities' =>$reportMissionService->provinceActivity($request),
'city' => City::query()->where('province_id', $request->province_id)->get(['id', 'name_fa']),
]);
}
/**
* @throws Exception
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
public function countryExcelActivity(Request $request, ReportTradodService $reportMissionService): BinaryFileResponse
{
$data = $reportMissionService->countryActivity($request);
$name = 'گزارش کل تردد '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new CountryReport($data), $name);
}
/**
* @throws Exception
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
public function provinceExcelActivity(Request $request, ReportTradodService $reportMissionService): BinaryFileResponse
{
$data = $reportMissionService->provinceActivity($request);
$name = 'گزارش کل تردد '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new ProvinceReport($data), $name);
}
}

View File

@@ -1,25 +1,25 @@
<?php
namespace App\Http\Controllers\V3\Dashboard\Mission;
namespace App\Http\Controllers\V3\Dashboard\Mission\Report;
use App\Exports\V3\Mission\Report\CountryReport;
use App\Exports\V3\Mission\Report\ProvinceReport;
use App\Exports\V3\Mission\Report\Violation\CountryReport;
use App\Exports\V3\Mission\Report\Violation\ProvinceReport;
use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\City;
use App\Models\Province;
use App\Services\Cartables\Mission\ReportService;
use App\Services\Cartables\Mission\Report\ReportViolationService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use PhpOffice\PhpSpreadsheet\Exception;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class ReportController extends Controller
class ReportViolationController extends Controller
{
use ApiResponse;
public function countryActivity(Request $request, ReportService $reportService): JsonResponse
public function countryActivity(Request $request, ReportViolationService $reportService): JsonResponse
{
return $this->successResponse([
'activities' => $reportService->countryActivity($request),
@@ -27,7 +27,7 @@ class ReportController extends Controller
]);
}
public function provinceActivity(Request $request, ReportService $reportService): JsonResponse
public function provinceActivity(Request $request, ReportViolationService $reportService): JsonResponse
{
return $this->successResponse([
'activities' =>$reportService->provinceActivity($request),
@@ -39,7 +39,7 @@ class ReportController extends Controller
* @throws Exception
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
public function countryExcelActivity(Request $request, ReportService $reportService): BinaryFileResponse
public function countryExcelActivity(Request $request, ReportViolationService $reportService): BinaryFileResponse
{
$data = $reportService->countryActivity($request);
$name = 'گزارش تخلفات ماموریت ها '.verta()->now()->format('Y-m-d H-i').'.xlsx';
@@ -51,7 +51,7 @@ class ReportController extends Controller
* @throws Exception
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
public function provinceExcelActivity(Request $request, ReportService $reportService): BinaryFileResponse
public function provinceExcelActivity(Request $request, ReportViolationService $reportService): BinaryFileResponse
{
$data = $reportService->provinceActivity($request);
$name = 'گزارش تخلفات ماموریت ها '.verta()->now()->format('Y-m-d H-i').'.xlsx';