From f93f361d8ff4ce7f2340aaf1492f7aaee7af6533 Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Sat, 24 Jan 2026 13:45:51 +0330 Subject: [PATCH 1/6] change .example --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index f9adb344..bb4a5e23 100644 --- a/.env.example +++ b/.env.example @@ -100,7 +100,7 @@ HARIM_NEED_GUARANTEE_LETTER_USERNAME= BACKUP_TARGET_DIR= BACKUP_USER= -BACKUP_PASSWORD= +BACKUP_PASSWORD=1qaz HARIM_ENCRYPTION_KEY="TestKey" From 0763e1732ec464fc5995ec1814fd2f832767428b Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Sat, 24 Jan 2026 19:13:47 +0330 Subject: [PATCH 2/6] change Format table report --- .../Mission/Report/Tradod/CountryReport.php | 102 +++++++++++ .../Mission/Report/Tradod/ProvinceReport.php | 107 ++++++++++++ .../Report/{ => Violation}/CountryReport.php | 16 +- .../Report/{ => Violation}/ProvinceReport.php | 17 +- .../Mission/Report/ReportTradodController.php | 61 +++++++ .../ReportViolationController.php} | 18 +- .../Mission/Report/ReportTradodService.php | 161 ++++++++++++++++++ .../ReportViolationService.php} | 70 ++++---- .../Report/CountryActivityReport.blade.php | 23 ++- .../Report/ProvinceActivityReport.blade.php | 23 ++- .../Tradod /CountryActivityReport.blade.php | 93 ++++++++++ .../Tradod /ProvinceActivityReport.blade.php | 95 +++++++++++ routes/v3.php | 15 +- 13 files changed, 741 insertions(+), 60 deletions(-) create mode 100644 app/Exports/V3/Mission/Report/Tradod/CountryReport.php create mode 100644 app/Exports/V3/Mission/Report/Tradod/ProvinceReport.php rename app/Exports/V3/Mission/Report/{ => Violation}/CountryReport.php (75%) rename app/Exports/V3/Mission/Report/{ => Violation}/ProvinceReport.php (76%) create mode 100644 app/Http/Controllers/V3/Dashboard/Mission/Report/ReportTradodController.php rename app/Http/Controllers/V3/Dashboard/Mission/{ReportController.php => Report/ReportViolationController.php} (72%) create mode 100644 app/Services/Cartables/Mission/Report/ReportTradodService.php rename app/Services/Cartables/Mission/{ReportService.php => Report/ReportViolationService.php} (63%) create mode 100644 resources/views/v3/Reports/Mission/Report/Tradod /CountryActivityReport.blade.php create mode 100644 resources/views/v3/Reports/Mission/Report/Tradod /ProvinceActivityReport.blade.php diff --git a/app/Exports/V3/Mission/Report/Tradod/CountryReport.php b/app/Exports/V3/Mission/Report/Tradod/CountryReport.php new file mode 100644 index 00000000..c5aef909 --- /dev/null +++ b/app/Exports/V3/Mission/Report/Tradod/CountryReport.php @@ -0,0 +1,102 @@ +data as $r) { + $pid = (int) $r->province_id; + $name = $r->province_name; + + if ($pid === -1) { + $national = [ + 'province_name' => $name, + 'total_missions' => (int) ($r->total_missions ?? 0), + 'taradod_khareg_mahdode' => (int) ($r->taradod_khareg_mahdode ?? 0), + 'bafarayand_saeti' => (int) ($r->bafarayand_saeti ?? 0), + 'bafarayand_rozaneh' => (int) ($r->bafarayand_rozaneh ?? 0), + 'bedon_bafarayand_saeti' => (int) ($r->bedon_bafarayand_saeti ?? 0), + 'bedon_bafarayand_rozaneh' => (int) ($r->bedon_bafarayand_rozaneh ?? 0), + ]; + + continue; + } + + if (! isset($grid[$pid])) { + $grid[$pid] = [ + 'province_name' => $name, + ]; + } + + $grid[$pid]['total_missions'] = (int) ($r->total_missions ?? 0); + $grid[$pid]['taradod_khareg_mahdode'] = (int) ($r->taradod_khareg_mahdode ?? 0); + $grid[$pid]['bafarayand_saeti'] = (int) ($r->bafarayand_saeti ?? 0); + $grid[$pid]['bafarayand_rozaneh'] = (int) ($r->bafarayand_rozaneh ?? 0); + $grid[$pid]['bedon_bafarayand_saeti'] = (int) ($r->bedon_bafarayand_saeti ?? 0); + $grid[$pid]['bedon_bafarayand_rozaneh'] = (int) ($r->bedon_bafarayand_rozaneh ?? 0); + } + + $exportRows = []; + if ($national) { + $exportRows[] = $national; + } + foreach ($grid as $row) { + $exportRows[] = $row; + } + + return view('v3.Reports.Mission.Report.CountryActivityReport', [ + 'rows' => $exportRows, + ]); + } + + public function registerEvents(): array + { + return [ + AfterSheet::class => function (AfterSheet $event) { + $event->sheet->getDelegate()->setRightToLeft(true); + }, + ]; + } + + 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(5); + $drawing2->setOffsetY(5); + $drawing2->setCoordinates('C1'); + + return [$drawing, $drawing2]; + } +} diff --git a/app/Exports/V3/Mission/Report/Tradod/ProvinceReport.php b/app/Exports/V3/Mission/Report/Tradod/ProvinceReport.php new file mode 100644 index 00000000..256fd5c7 --- /dev/null +++ b/app/Exports/V3/Mission/Report/Tradod/ProvinceReport.php @@ -0,0 +1,107 @@ +data as $r) { + $cid = (int) $r->city_id; + $name = $r->city_name; + + if ($cid === -1) { + $province = [ + 'city_name' => $name, + 'total_missions' => (int) ($r->total_missions ?? 0), + 'taradod_khareg_mahdode' => (int) ($r->taradod_khareg_mahdode ?? 0), + 'bafarayand_saeti' => (int) ($r->bafarayand_saeti ?? 0), + 'bafarayand_rozaneh' => (int) ($r->bafarayand_rozaneh ?? 0), + 'bedon_bafarayand_saeti' => (int) ($r->bedon_bafarayand_saeti ?? 0), + 'bedon_bafarayand_rozaneh' => (int) ($r->bedon_bafarayand_rozaneh ?? 0), + ]; + + continue; + } + + if (! isset($grid[$cid])) { + $grid[$cid] = [ + 'city_name' => $name, + ]; + } + + $grid[$cid]['total_missions'] = (int) ($r->total_missions ?? 0); + $grid[$cid]['taradod_khareg_mahdode'] = (int) ($r->taradod_khareg_mahdode ?? 0); + $grid[$cid]['bafarayand_saeti'] = (int) ($r->bafarayand_saeti ?? 0); + $grid[$cid]['bafarayand_rozaneh'] = (int) ($r->bafarayand_rozaneh ?? 0); + $grid[$cid]['bedon_bafarayand_saeti'] = (int) ($r->bedon_bafarayand_saeti ?? 0); + $grid[$cid]['bedon_bafarayand_rozaneh'] = (int) ($r->bedon_bafarayand_rozaneh ?? 0); + + } + + $exportRows = []; + if ($province) { + $exportRows[] = $province; + } + foreach ($grid as $row) { + $exportRows[] = $row; + } + + return view('v3.Reports.Mission.Report.ProvinceActivityReport', [ + '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(5); + $drawing2->setOffsetY(5); + $drawing2->setCoordinates('C1'); + + return [$drawing, $drawing2]; + } +} diff --git a/app/Exports/V3/Mission/Report/CountryReport.php b/app/Exports/V3/Mission/Report/Violation/CountryReport.php similarity index 75% rename from app/Exports/V3/Mission/Report/CountryReport.php rename to app/Exports/V3/Mission/Report/Violation/CountryReport.php index a7eae8f4..c248c340 100644 --- a/app/Exports/V3/Mission/Report/CountryReport.php +++ b/app/Exports/V3/Mission/Report/Violation/CountryReport.php @@ -1,6 +1,6 @@ $name, - 'no_mission_count' => (int) ($r->no_mission_count ?? 0), - 'out_of_area_count' => (int) ($r->out_of_area_count ?? 0), + 'total_violations' => (int) ($r->total_violations ?? 0), + 'egdam_shode' => (int) ($r->egdam_shode ?? 0), + 'bedone_egdam' => (int) ($r->bedone_egdam ?? 0), + 'sabt_gps' => (int) ($r->sabt_gps ?? 0), + 'sabt_herasat' => (int) ($r->herasat ?? 0), ]; continue; @@ -41,8 +44,11 @@ class CountryReport implements FromView, ShouldAutoSize, WithDrawings, WithEvent ]; } - $grid[$pid]['no_mission_count'] = (int) ($r->no_mission_count ?? 0); - $grid[$pid]['out_of_area_count'] = (int) ($r->out_of_area_count ?? 0); + $grid[$pid]['total_violations'] = (int) ($r->total_violations ?? 0); + $grid[$pid]['egdam_shode'] = (int) ($r->egdam_shode ?? 0); + $grid[$pid]['bedone_egdam'] = (int) ($r->bedone_egdam ?? 0); + $grid[$pid]['sabt_gps'] = (int) ($r->sabt_gps ?? 0); + $grid[$pid]['sabt_herasat'] = (int) ($r->sabt_herasat ?? 0); } diff --git a/app/Exports/V3/Mission/Report/ProvinceReport.php b/app/Exports/V3/Mission/Report/Violation/ProvinceReport.php similarity index 76% rename from app/Exports/V3/Mission/Report/ProvinceReport.php rename to app/Exports/V3/Mission/Report/Violation/ProvinceReport.php index 2069f4f9..4d1b02bf 100644 --- a/app/Exports/V3/Mission/Report/ProvinceReport.php +++ b/app/Exports/V3/Mission/Report/Violation/ProvinceReport.php @@ -1,6 +1,6 @@ $name, - 'no_mission_count' => (int) ($r->no_mission_count ?? 0), - 'out_of_area_count' => (int) ($r->out_of_area_count ?? 0), + 'total_violations' => (int) ($r->total_violations ?? 0), + 'egdam_shode' => (int) ($r->egdam_shode ?? 0), + 'bedone_egdam' => (int) ($r->bedone_egdam ?? 0), + 'sabt_gps' => (int) ($r->sabt_gps ?? 0), + 'sabt_herasat' => (int) ($r->herasat ?? 0), + ]; continue; @@ -42,8 +46,11 @@ class ProvinceReport implements FromView, ShouldAutoSize, WithDrawings, WithEven ]; } - $grid[$cid]['no_mission_count'] = (int) ($r->no_mission_count ?? 0); - $grid[$cid]['out_of_area_count'] = (int) ($r->out_of_area_count ?? 0); + $grid[$cid]['total_violations'] = (int) ($r->total_violations ?? 0); + $grid[$cid]['egdam_shode'] = (int) ($r->egdam_shode ?? 0); + $grid[$cid]['bedone_egdam'] = (int) ($r->bedone_egdam ?? 0); + $grid[$cid]['sabt_gps'] = (int) ($r->sabt_gps ?? 0); + $grid[$cid]['sabt_herasat'] = (int) ($r->sabt_herasat ?? 0); } diff --git a/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportTradodController.php b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportTradodController.php new file mode 100644 index 00000000..d5610e3a --- /dev/null +++ b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportTradodController.php @@ -0,0 +1,61 @@ +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); + } +} diff --git a/app/Http/Controllers/V3/Dashboard/Mission/ReportController.php b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportViolationController.php similarity index 72% rename from app/Http/Controllers/V3/Dashboard/Mission/ReportController.php rename to app/Http/Controllers/V3/Dashboard/Mission/Report/ReportViolationController.php index f4b04424..9be4b05b 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/ReportController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportViolationController.php @@ -1,25 +1,25 @@ 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'; diff --git a/app/Services/Cartables/Mission/Report/ReportTradodService.php b/app/Services/Cartables/Mission/Report/ReportTradodService.php new file mode 100644 index 00000000..86520219 --- /dev/null +++ b/app/Services/Cartables/Mission/Report/ReportTradodService.php @@ -0,0 +1,161 @@ +user(); + + $query = MissionViolation::query()->where('edare_shahri_id', '=', $user->edarate_shahri_id); + + return DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*'], + ); + } + + public function countryActivity(Request $request): array + { + $from = $request->from_date ?? today()->startOfDay(); + $to = Carbon::parse($request->to_date)->endOfDay() ?? today()->endOfDay(); + + $sql = " + WITH r AS ( + SELECT + p.id AS province_id, + p.name_fa AS province_name, + + COUNT(DISTINCT m.id) AS total_missions, + SUM(CASE WHEN m.mission_duration != m.in_area_duration THEN 1 ELSE 0 END) AS taradod_khareg_mahdode, + SUM(CASE WHEN m.mission_status = 1 THEN 1 ELSE 0 END) AS bafarayand_saeti, + SUM(CASE WHEN m.mission_status = 2 THEN 1 ELSE 0 END) AS bafarayand_rozaneh, + SUM(CASE WHEN m.mission_status = 3 THEN 1 ELSE 0 END) AS bedon_bafarayand_saeti, + SUM(CASE WHEN m.mission_status = 4 THEN 1 ELSE 0 END) AS bedon_bafarayand_rozaneh, + + FROM provinces + + LEFT JOIN missions m + ON m.province_id = p.id + AND m.created_at >= :from_m + AND m.created_at <= :to_m + + GROUP BY p.id, p.name_fa + ) + + SELECT + -1 AS province_id, + 'کل کشور' AS province_name, + SUM(total_missions) AS total_missions, + SUM(taradod_khareg_mahdode) AS taradod_khareg_mahdode, + SUM(bafarayand_saeti) AS bafarayand_saeti, + SUM(bafarayand_rozaneh) AS bafarayand_rozaneh, + SUM(bedon_bafarayand_saeti) AS bedon_bafarayand_saeti, + SUM(bedon_bafarayand_rozaneh) AS bedon_bafarayand_rozaneh + FROM r + + UNION ALL + + SELECT + province_id, + province_name, + total_missions, + taradod_khareg_mahdode, + bafarayand_saeti, + bafarayand_rozaneh, + bedon_bafarayand_saeti, + bedon_bafarayand_rozaneh + FROM r + + ORDER BY + CASE WHEN province_id = -1 THEN 0 ELSE 1 END, + province_name + "; + + return DB::select($sql, [ + 'from_mv' => $from, + 'to_mv' => $to, + ]); + } + + public function provinceActivity(Request $request): array + { + $provinceId = $request->province_id ?? auth()->user()->province_id; + $from = $request->from_date ?? today()->startOfDay(); + $to = Carbon::parse($request->to_date)->endOfDay() ?? today()->endOfDay(); + + $sql = " + WITH r AS ( + SELECT + c.id AS city_id, + c.name_fa AS city_name, + + COUNT(DISTINCT m.id) AS total_missions, + SUM(CASE WHEN m.mission_duration != m.in_area_duration THEN 1 ELSE 0 END) AS taradod_khareg_mahdode, + SUM(CASE WHEN m.mission_status = 1 THEN 1 ELSE 0 END) AS bafarayand_saeti, + SUM(CASE WHEN m.mission_status = 2 THEN 1 ELSE 0 END) AS bafarayand_rozaneh, + SUM(CASE WHEN m.mission_status = 3 THEN 1 ELSE 0 END) AS bedon_bafarayand_saeti, + SUM(CASE WHEN m.mission_status = 4 THEN 1 ELSE 0 END) AS bedon_bafarayand_rozaneh, + + FROM cities c + LEFT JOIN cmms_machines cm + ON cm.city_id = c.id + + LEFT JOIN missions m + ON m.province_id = p.id + AND m.created_at >= :from_m + AND m.created_at <= :to_m + + WHERE c.province_id = :province_id + AND ( + c.type_id = 1 + OR c.name_fa IN ('اداره ماشين‌آلات', 'اداره نقلیه') + ) + GROUP BY c.id, c.name_fa + ) + + SELECT + -1 AS city_id, + 'کل استان' AS city_name, + SUM(total_missions) AS total_missions, + SUM(taradod_khareg_mahdode) AS taradod_khareg_mahdode, + SUM(bafarayand_saeti) AS bafarayand_saeti, + SUM(bafarayand_rozaneh) AS bafarayand_rozaneh, + SUM(bedon_bafarayand_saeti) AS bedon_bafarayand_saeti, + SUM(bedon_bafarayand_rozaneh) AS bedon_bafarayand_rozaneh + FROM r + + UNION ALL + + SELECT + city_id, + city_name, + total_missions, + taradod_khareg_mahdode, + bafarayand_saeti, + bafarayand_rozaneh, + bedon_bafarayand_saeti, + bedon_bafarayand_rozaneh + FROM r + + ORDER BY + CASE WHEN city_id = -1 THEN 0 ELSE 1 END, + city_name + "; + + return DB::select($sql, [ + 'province_id' => $provinceId, + 'from_mv' => $from, + 'to_mv' => $to, + ]); + } +} diff --git a/app/Services/Cartables/Mission/ReportService.php b/app/Services/Cartables/Mission/Report/ReportViolationService.php similarity index 63% rename from app/Services/Cartables/Mission/ReportService.php rename to app/Services/Cartables/Mission/Report/ReportViolationService.php index 902d100c..8f56dc65 100644 --- a/app/Services/Cartables/Mission/ReportService.php +++ b/app/Services/Cartables/Mission/Report/ReportViolationService.php @@ -1,6 +1,6 @@ = :from_mv - AND mv.created_at <= :to_mv - - LEFT JOIN missions m - ON m.province_id = p.id - AND m.mission_duration != m.in_area_duration - AND m.created_at >= :from_m - AND m.created_at <= :to_m + AND mv.type = 1 + AND mv.created_at >= :from_mv + AND mv.created_at <= :to_mv GROUP BY p.id, p.name_fa ) @@ -61,14 +58,23 @@ class ReportService SELECT -1 AS province_id, 'کل کشور' AS province_name, - SUM(no_mission_count) AS no_mission_count, - SUM(out_of_area_count) AS out_of_area_count + SUM(total_violations) AS total_violations, + SUM(egdam_shode) AS egdam_shode, + SUM(bedone_egdam) AS bedone_egdam, + SUM(sabt_gps) AS sabt_gps, + SUM(sabt_herasat) AS sabt_herasat FROM r UNION ALL SELECT - province_id, province_name, no_mission_count, out_of_area_count + province_id, + province_name, + total_violations, + egdam_shode, + bedone_egdam, + sabt_gps, + sabt_herasat FROM r ORDER BY @@ -79,8 +85,6 @@ class ReportService return DB::select($sql, [ 'from_mv' => $from, 'to_mv' => $to, - 'from_m' => $from, - 'to_m' => $to, ]); } @@ -96,8 +100,11 @@ class ReportService c.id AS city_id, c.name_fa AS city_name, - COUNT(DISTINCT mv.id) AS no_mission_count, - COUNT(DISTINCT m.id) AS out_of_area_count + COUNT(DISTINCT mv.id) AS total_violations, + SUM(CASE WHEN mv.status = 1 THEN 1 ELSE 0 END) AS egdam_shode, + SUM(CASE WHEN mv.status = 2 THEN 1 ELSE 0 END) AS bedone_egdam, + SUM(CASE WHEN mv.gps = 1 THEN 1 ELSE 0 END) AS sabt_gps, + SUM(CASE WHEN mv.gps = 0 THEN 1 ELSE 0 END) AS sabt_herasat FROM cities c LEFT JOIN cmms_machines cm @@ -109,12 +116,6 @@ class ReportService AND mv.created_at >= :from_mv AND mv.created_at <= :to_mv - LEFT JOIN missions m - ON m.city_id = c.id - AND m.mission_duration != m.in_area_duration - AND m.created_at >= :from_m - AND m.created_at <= :to_m - WHERE c.province_id = :province_id AND ( c.type_id = 1 @@ -126,14 +127,23 @@ class ReportService SELECT -1 AS city_id, 'کل استان' AS city_name, - SUM(no_mission_count) AS no_mission_count, - SUM(out_of_area_count) AS out_of_area_count + SUM(total_violations) AS total_violations, + SUM(egdam_shode) AS egdam_shode, + SUM(bedone_egdam) AS bedone_egdam, + SUM(sabt_gps) AS sabt_gps, + SUM(sabt_herasat) AS sabt_herasat FROM r UNION ALL SELECT - city_id, city_name, no_mission_count, out_of_area_count + city_id, + city_name, + total_violations, + egdam_shode, + bedone_egdam, + sabt_gps, + sabt_herasat FROM r ORDER BY @@ -145,8 +155,6 @@ class ReportService 'province_id' => $provinceId, 'from_mv' => $from, 'to_mv' => $to, - 'from_m' => $from, - 'to_m' => $to, ]); } } diff --git a/resources/views/v3/Reports/Mission/Report/CountryActivityReport.blade.php b/resources/views/v3/Reports/Mission/Report/CountryActivityReport.blade.php index 1abf73da..dbf58e31 100644 --- a/resources/views/v3/Reports/Mission/Report/CountryActivityReport.blade.php +++ b/resources/views/v3/Reports/Mission/Report/CountryActivityReport.blade.php @@ -50,11 +50,23 @@ -خروج بدون ماموریت +کل تخلفات - خارج از محدوده + اقدام شده + + + اقدام نشده + + + ثبت GPS + + + ثبت حراست @@ -63,8 +75,11 @@ @foreach ($rows as $item) {{ $item['province_name'] ?? '-' }} - {{ $item['no_mission_count'] ?? '-' }} - {{ $item['out_of_area_count'] ?? '-' }} + {{ $item['total_violations'] ?? '-' }} + {{ $item['egdam_shode'] ?? '-' }} + {{ $item['bedone_egdam'] ?? '-' }} + {{ $item['sabt_gps'] ?? '-' }} + {{ $item['sabt_herasat'] ?? '-' }} @endforeach diff --git a/resources/views/v3/Reports/Mission/Report/ProvinceActivityReport.blade.php b/resources/views/v3/Reports/Mission/Report/ProvinceActivityReport.blade.php index be25c1e9..c88ca80c 100644 --- a/resources/views/v3/Reports/Mission/Report/ProvinceActivityReport.blade.php +++ b/resources/views/v3/Reports/Mission/Report/ProvinceActivityReport.blade.php @@ -50,14 +50,24 @@ -خروج بدون ماموریت + کل تخلفات - خارج از محدوده + اقدام شده + + اقدام نشده + + + ثبت GPS - + + ثبت حراست + @@ -65,8 +75,11 @@ @foreach ($rows as $item) {{ $item['city_name'] ?? '-' }} - {{ $item['no_mission_count'] ?? '-' }} - {{ $item['out_of_area_count'] ?? '-' }} + {{ $item['total_violations'] ?? '-' }} + {{ $item['egdam_shode'] ?? '-' }} + {{ $item['bedone_egdam'] ?? '-' }} + {{ $item['sabt_gps'] ?? '-' }} + {{ $item['sabt_herasat'] ?? '-' }} @endforeach diff --git a/resources/views/v3/Reports/Mission/Report/Tradod /CountryActivityReport.blade.php b/resources/views/v3/Reports/Mission/Report/Tradod /CountryActivityReport.blade.php new file mode 100644 index 00000000..e94c38f2 --- /dev/null +++ b/resources/views/v3/Reports/Mission/Report/Tradod /CountryActivityReport.blade.php @@ -0,0 +1,93 @@ + + + + + + + + گزارش کل کشور + + + + + +@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['province_name'] ?? '-' }}{{ $item['total_missions'] ?? '-' }}{{ $item['taradod_khareg_mahdode'] ?? '-' }}{{ $item['bafarayand_saeti'] ?? '-' }}{{ $item['bafarayand_rozaneh'] ?? '-' }}{{ $item['bedon_bafarayand_saeti'] ?? '-' }}{{ $item['bedon_bafarayand_rozaneh'] ?? '-' }}
+ + diff --git a/resources/views/v3/Reports/Mission/Report/Tradod /ProvinceActivityReport.blade.php b/resources/views/v3/Reports/Mission/Report/Tradod /ProvinceActivityReport.blade.php new file mode 100644 index 00000000..d78d2901 --- /dev/null +++ b/resources/views/v3/Reports/Mission/Report/Tradod /ProvinceActivityReport.blade.php @@ -0,0 +1,95 @@ + + + + + + + + گزارش ادارات شهرستان + + + + + +@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['city_name'] ?? '-' }}{{ $item['total_missions'] ?? '-' }}{{ $item['taradod_khareg_mahdode'] ?? '-' }}{{ $item['bafarayand_saeti'] ?? '-' }}{{ $item['bafarayand_rozaneh'] ?? '-' }}{{ $item['bedon_bafarayand_saeti'] ?? '-' }}{{ $item['bedon_bafarayand_rozaneh'] ?? '-' }}
+ + diff --git a/routes/v3.php b/routes/v3.php index d627201f..085febb3 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -15,6 +15,8 @@ use App\Http\Controllers\V3\Dashboard\Harim\TechnicalDeputyController; use App\Http\Controllers\V3\Dashboard\ItemsManagementController; use App\Http\Controllers\V3\Dashboard\Mission\ControlUnitController; use App\Http\Controllers\V3\Dashboard\Mission\DetailController; +use App\Http\Controllers\V3\Dashboard\Mission\Report\ReportTradodController; +use App\Http\Controllers\V3\Dashboard\Mission\Report\ReportViolationController; use App\Http\Controllers\V3\Dashboard\Mission\RequestPortalController; use App\Http\Controllers\V3\Dashboard\Mission\TransportationUnitController; use App\Http\Controllers\V3\Dashboard\Mission\ViolationManagementController; @@ -535,7 +537,7 @@ Route::prefix('missions') }); Route::prefix('report') ->name('reports.') - ->controller(\App\Http\Controllers\V3\Dashboard\Mission\ReportController::class) + ->controller(ReportViolationController::class) ->group(function () { Route::get('/country_activity', 'countryActivity')->name('countryActivity') ->middleware('permission:mission-report-country'); @@ -544,6 +546,17 @@ Route::prefix('missions') Route::get('/country_excel_activity', 'countryExcelActivity')->name('countryExcelActivity'); Route::get('/province_excel_activity', 'provinceExcelActivity')->name('provinceExcelActivity'); }); + Route::prefix('report') + ->name('reports.') + ->controller(ReportTradodController::class) + ->group(function () { + Route::get('/country_activity', 'countryActivity')->name('countryActivity') + ->middleware('permission:mission-report-country'); + Route::get('/province_activity', 'provinceActivity')->name('provinceActivity') + ->middleware('permission:mission-report-province'); + Route::get('/country_excel_activity', 'countryExcelActivity')->name('countryExcelActivity'); + Route::get('/province_excel_activity', 'provinceExcelActivity')->name('provinceExcelActivity'); + }); }); Route::prefix('harim') From 18fc3eaad5cdbeb2b283953ff1bb25a4ebfb3f9a Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Sun, 25 Jan 2026 09:53:26 +0330 Subject: [PATCH 3/6] fix route --- routes/v3.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/routes/v3.php b/routes/v3.php index 085febb3..ce0d74ad 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -535,8 +535,8 @@ Route::prefix('missions') Route::post('/{violation}', 'update')->name('update'); Route::delete('/{violation}', 'destroy')->name('destroy'); }); - Route::prefix('report') - ->name('reports.') + Route::prefix('report_violation') + ->name('reportsViolation.') ->controller(ReportViolationController::class) ->group(function () { Route::get('/country_activity', 'countryActivity')->name('countryActivity') @@ -546,8 +546,8 @@ Route::prefix('missions') Route::get('/country_excel_activity', 'countryExcelActivity')->name('countryExcelActivity'); Route::get('/province_excel_activity', 'provinceExcelActivity')->name('provinceExcelActivity'); }); - Route::prefix('report') - ->name('reports.') + Route::prefix('report_tradod') + ->name('reportsTradod.') ->controller(ReportTradodController::class) ->group(function () { Route::get('/country_activity', 'countryActivity')->name('countryActivity') From 1775a8e75e2f2905045c8c4dd874a3baf090b667 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sun, 25 Jan 2026 16:16:37 +0330 Subject: [PATCH 4/6] add start and finish time --- .../Commands/DailyMovingMachineCommand.php | 8 ++++- .../Mission/ControlUnitController.php | 8 ++--- .../Mission/ViolationManagementController.php | 6 ++++ .../V3/Mission/ControlUnit/FinishRequest.php | 2 +- .../V3/Mission/ControlUnit/StartRequest.php | 1 + ...add_column_to_mission_violations_table.php | 31 +++++++++++++++++++ 6 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 database/migrations/2026_01_25_153836_add_column_to_mission_violations_table.php diff --git a/app/Console/Commands/DailyMovingMachineCommand.php b/app/Console/Commands/DailyMovingMachineCommand.php index 8790c357..5155f57d 100644 --- a/app/Console/Commands/DailyMovingMachineCommand.php +++ b/app/Console/Commands/DailyMovingMachineCommand.php @@ -58,14 +58,20 @@ class DailyMovingMachineCommand extends Command break; } + $machine = CMMSMachine::query()->firstWhere('machine_code', '=', $code); + MissionViolation::query()->create([ 'machine_code' => $code, - 'machine_id' => CMMSMachine::query()->firstWhere('machine_code', '=', $code)->id, + 'machine_id' => $machine->id, 'type' => MissionViolationType::KHOROJ_BEDONE_MOGAVEZ->value, 'request_date' => $date, 'mileage' => $cmm['mileageKM'], // 'exit_time' => $cmm['exit_time'], // 'enter_time' => $cmm['enter_time'], + 'province_id' => $machine->province_id, +// 'province_name' => $machine->province_fa, + 'city_id' => $machine->city_id, +// 'city_name' => $machine->city_fa, ]); } diff --git a/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php b/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php index 06a07c13..33e732b0 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php @@ -43,7 +43,7 @@ class ControlUnitController extends Controller $mission->update([ 'state_id' => $state, 'state_name' => MissionStates::name($state), - 'start_time' => now(), + 'start_time' => $request->time, 'km' => $request->km, ]); }); @@ -56,7 +56,7 @@ class ControlUnitController extends Controller */ public function finish(FinishRequest $request, Mission $mission, GetErrorRateService $getErrorRateService): JsonResponse { - DB::transaction(function () use ($mission, $getErrorRateService) { + DB::transaction(function () use ($mission, $getErrorRateService, $request) { $mission->histories()->create([ 'user_id' => auth()->user()->id, 'previous_state_id' => $mission->state_id, @@ -68,8 +68,8 @@ class ControlUnitController extends Controller $mission->update([ 'state_id' => $state, 'state_name' => MissionStates::name($state), - 'finish_time' => now(), - 'mission_duration' => strtotime(now()) - strtotime($mission->start_time), + 'finish_time' => $request->time, + 'mission_duration' => strtotime($request->time) - strtotime($mission->start_time), ]); $getErrorRateService->setInputParameters($mission); diff --git a/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php index 400e8428..bb8b8365 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/ViolationManagementController.php @@ -96,6 +96,8 @@ class ViolationManagementController extends Controller } public function store(StoreRequest $request): JsonResponse { + $user = auth()->user(); + MissionViolation::query()->create([ 'machine_id'=> CMMSMachine::query()->where('machine_code', '=', $request->machine_code)->value('id'), 'machine_code'=> $request->machine_code, @@ -104,6 +106,10 @@ class ViolationManagementController extends Controller 'request_date' => now(), 'km' => $request->km, 'gps' => 0, + 'province_id' => $user->province_id, + 'province_name' => $user->province_fa, + 'city_id' => $user->city_id, + 'city_name' => $user->city_fa, ]); return $this->successResponse(); diff --git a/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php b/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php index c6b48b09..899b1bb0 100644 --- a/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php +++ b/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php @@ -24,7 +24,7 @@ class FinishRequest extends FormRequest public function rules(): array { return [ - // + 'time' => 'required|date', ]; } } diff --git a/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php b/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php index e5d24b77..63c98e04 100644 --- a/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php +++ b/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php @@ -27,6 +27,7 @@ class StartRequest extends FormRequest return [ 'code' => 'required|string', 'km' => 'required', + 'time' => 'required|date', ]; } diff --git a/database/migrations/2026_01_25_153836_add_column_to_mission_violations_table.php b/database/migrations/2026_01_25_153836_add_column_to_mission_violations_table.php new file mode 100644 index 00000000..4a39c901 --- /dev/null +++ b/database/migrations/2026_01_25_153836_add_column_to_mission_violations_table.php @@ -0,0 +1,31 @@ +unsignedTinyInteger('province_id')->nullable(); + $table->string('province_name')->nullable(); + $table->unsignedSmallInteger('city_id')->nullable(); + $table->string('city_name')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('mission_violations', function (Blueprint $table) { + $table->dropColumn(['province_id', 'province_name', 'city_id', 'city_name']); + }); + } +}; From 85d2dc572870916ae3a617c93547dddd9f64e9e5 Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Mon, 26 Jan 2026 13:44:33 +0330 Subject: [PATCH 5/6] change item in report mission --- .../Mission/Report/Tradod/CountryReport.php | 34 ++- .../Mission/Report/Tradod/ProvinceReport.php | 34 ++- .../Report/Violation/CountryReport.php | 24 +- .../Report/Violation/ProvinceReport.php | 25 +- .../Mission/Report/ReportTradodService.php | 250 ++++++++++-------- .../Mission/Report/ReportViolationService.php | 203 +++++++------- .../Report/CountryActivityReport.blade.php | 5 + .../Report/ProvinceActivityReport.blade.php | 7 +- .../Tradod /CountryActivityReport.blade.php | 25 +- .../Tradod /ProvinceActivityReport.blade.php | 27 +- 10 files changed, 367 insertions(+), 267 deletions(-) diff --git a/app/Exports/V3/Mission/Report/Tradod/CountryReport.php b/app/Exports/V3/Mission/Report/Tradod/CountryReport.php index c5aef909..425879b5 100644 --- a/app/Exports/V3/Mission/Report/Tradod/CountryReport.php +++ b/app/Exports/V3/Mission/Report/Tradod/CountryReport.php @@ -28,12 +28,16 @@ class CountryReport implements FromView, ShouldAutoSize, WithDrawings, WithEvent if ($pid === -1) { $national = [ 'province_name' => $name, - 'total_missions' => (int) ($r->total_missions ?? 0), - 'taradod_khareg_mahdode' => (int) ($r->taradod_khareg_mahdode ?? 0), - 'bafarayand_saeti' => (int) ($r->bafarayand_saeti ?? 0), - 'bafarayand_rozaneh' => (int) ($r->bafarayand_rozaneh ?? 0), - 'bedon_bafarayand_saeti' => (int) ($r->bedon_bafarayand_saeti ?? 0), - 'bedon_bafarayand_rozaneh' => (int) ($r->bedon_bafarayand_rozaneh ?? 0), + 'total' => (int) ($r->total ?? 0), + 'khareg_mahdode' => (int) ($r->khareg_mahdode ?? 0), + 'gps' => (int) ($r->gps ?? 0), + 'durations' => (int) ($r->durations ?? 0), + 'bafarayand_saeti' => (int) ($r->far_h ?? 0), + 'bafarayand_rozaneh' => (int) ($r->far_d ?? 0), + 'bedon_bafarayand_saeti' => (int) ($r->un_far_h ?? 0), + 'bedon_bafarayand_rozaneh' => (int) ($r->un_far_d ?? 0), + 'item' => (int) ($r->item ?? 0), + 'patrol' => (int) ($r->patrol ?? 0), ]; continue; @@ -45,12 +49,16 @@ class CountryReport implements FromView, ShouldAutoSize, WithDrawings, WithEvent ]; } - $grid[$pid]['total_missions'] = (int) ($r->total_missions ?? 0); - $grid[$pid]['taradod_khareg_mahdode'] = (int) ($r->taradod_khareg_mahdode ?? 0); - $grid[$pid]['bafarayand_saeti'] = (int) ($r->bafarayand_saeti ?? 0); - $grid[$pid]['bafarayand_rozaneh'] = (int) ($r->bafarayand_rozaneh ?? 0); - $grid[$pid]['bedon_bafarayand_saeti'] = (int) ($r->bedon_bafarayand_saeti ?? 0); - $grid[$pid]['bedon_bafarayand_rozaneh'] = (int) ($r->bedon_bafarayand_rozaneh ?? 0); + $grid[$pid]['total'] = (int) ($r->total ?? 0); + $grid[$pid]['khareg_mahdode'] = ($r->khareg_mahdode ?? 0); + $grid[$pid]['gps'] = (int) ($r->gps ?? 0); + $grid[$pid]['durations'] = (int) ($r->durations ?? 0); + $grid[$pid]['bafarayand_saeti'] = (int) ($r->far_h ?? 0); + $grid[$pid]['bafarayand_rozaneh'] = (int) ($r->far_d ?? 0); + $grid[$pid]['bedon_bafarayand_saeti'] = (int) ($r->un_far_h ?? 0); + $grid[$pid]['bedon_bafarayand_rozaneh'] = (int) ($r->un_far_d ?? 0); + $grid[$pid]['item'] = (int) ($r->item ?? 0); + $grid[$pid]['patrol'] = (int) ($r->patrol ?? 0); } $exportRows = []; @@ -95,7 +103,7 @@ class CountryReport implements FromView, ShouldAutoSize, WithDrawings, WithEvent $drawing2->setHeight(50); $drawing2->setOffsetX(5); $drawing2->setOffsetY(5); - $drawing2->setCoordinates('C1'); + $drawing2->setCoordinates('J1'); return [$drawing, $drawing2]; } diff --git a/app/Exports/V3/Mission/Report/Tradod/ProvinceReport.php b/app/Exports/V3/Mission/Report/Tradod/ProvinceReport.php index 256fd5c7..e56d6cef 100644 --- a/app/Exports/V3/Mission/Report/Tradod/ProvinceReport.php +++ b/app/Exports/V3/Mission/Report/Tradod/ProvinceReport.php @@ -29,12 +29,16 @@ class ProvinceReport implements FromView, ShouldAutoSize, WithDrawings, WithEven if ($cid === -1) { $province = [ 'city_name' => $name, - 'total_missions' => (int) ($r->total_missions ?? 0), - 'taradod_khareg_mahdode' => (int) ($r->taradod_khareg_mahdode ?? 0), - 'bafarayand_saeti' => (int) ($r->bafarayand_saeti ?? 0), - 'bafarayand_rozaneh' => (int) ($r->bafarayand_rozaneh ?? 0), - 'bedon_bafarayand_saeti' => (int) ($r->bedon_bafarayand_saeti ?? 0), - 'bedon_bafarayand_rozaneh' => (int) ($r->bedon_bafarayand_rozaneh ?? 0), + 'total' => (int) ($r->total ?? 0), + 'khareg_mahdode' => (int) ($r->khareg_mahdode ?? 0), + 'gps' => (int) ($r->gps ?? 0), + 'durations' => (int) ($r->durations ?? 0), + 'bafarayand_saeti' => (int) ($r->far_h ?? 0), + 'bafarayand_rozaneh' => (int) ($r->far_d ?? 0), + 'bedon_bafarayand_saeti' => (int) ($r->un_far_h ?? 0), + 'bedon_bafarayand_rozaneh' => (int) ($r->un_far_d ?? 0), + 'item' => (int) ($r->item ?? 0), + 'patrol' => (int) ($r->patrol ?? 0), ]; continue; @@ -46,12 +50,16 @@ class ProvinceReport implements FromView, ShouldAutoSize, WithDrawings, WithEven ]; } - $grid[$cid]['total_missions'] = (int) ($r->total_missions ?? 0); - $grid[$cid]['taradod_khareg_mahdode'] = (int) ($r->taradod_khareg_mahdode ?? 0); - $grid[$cid]['bafarayand_saeti'] = (int) ($r->bafarayand_saeti ?? 0); - $grid[$cid]['bafarayand_rozaneh'] = (int) ($r->bafarayand_rozaneh ?? 0); - $grid[$cid]['bedon_bafarayand_saeti'] = (int) ($r->bedon_bafarayand_saeti ?? 0); - $grid[$cid]['bedon_bafarayand_rozaneh'] = (int) ($r->bedon_bafarayand_rozaneh ?? 0); + $grid[$cid]['total'] = (int) ($r->total ?? 0); + $grid[$cid]['khareg_mahdode'] = ($r->khareg_mahdode ?? 0); + $grid[$cid]['gps'] = (int) ($r->gps ?? 0); + $grid[$cid]['durations'] = (int) ($r->durations ?? 0); + $grid[$cid]['bafarayand_saeti'] = (int) ($r->far_h ?? 0); + $grid[$cid]['bafarayand_rozaneh'] = (int) ($r->far_d ?? 0); + $grid[$cid]['bedon_bafarayand_saeti'] = (int) ($r->un_far_h ?? 0); + $grid[$cid]['bedon_bafarayand_rozaneh'] = (int) ($r->un_far_d ?? 0); + $grid[$cid]['item'] = (int) ($r->item ?? 0); + $grid[$cid]['patrol'] = (int) ($r->patrol ?? 0); } @@ -100,7 +108,7 @@ class ProvinceReport implements FromView, ShouldAutoSize, WithDrawings, WithEven $drawing2->setHeight(50); $drawing2->setOffsetX(5); $drawing2->setOffsetY(5); - $drawing2->setCoordinates('C1'); + $drawing2->setCoordinates('J1'); return [$drawing, $drawing2]; } diff --git a/app/Exports/V3/Mission/Report/Violation/CountryReport.php b/app/Exports/V3/Mission/Report/Violation/CountryReport.php index c248c340..59eb65c7 100644 --- a/app/Exports/V3/Mission/Report/Violation/CountryReport.php +++ b/app/Exports/V3/Mission/Report/Violation/CountryReport.php @@ -28,11 +28,12 @@ class CountryReport implements FromView, ShouldAutoSize, WithDrawings, WithEvent if ($pid === -1) { $national = [ 'province_name' => $name, - 'total_violations' => (int) ($r->total_violations ?? 0), - 'egdam_shode' => (int) ($r->egdam_shode ?? 0), - 'bedone_egdam' => (int) ($r->bedone_egdam ?? 0), - 'sabt_gps' => (int) ($r->sabt_gps ?? 0), + 'total' => (int) ($r->total ?? 0), + 'egdam_shode' => (int) ($r->done ?? 0), + 'bedone_egdam' => (int) ($r->undon ?? 0), + 'sabt_gps' => (int) ($r->gps ?? 0), 'sabt_herasat' => (int) ($r->herasat ?? 0), + 'mil_gps' => (int) ($r->mil_gps ?? 0), ]; continue; @@ -43,13 +44,12 @@ class CountryReport implements FromView, ShouldAutoSize, WithDrawings, WithEvent 'province_name' => $name, ]; } - - $grid[$pid]['total_violations'] = (int) ($r->total_violations ?? 0); - $grid[$pid]['egdam_shode'] = (int) ($r->egdam_shode ?? 0); - $grid[$pid]['bedone_egdam'] = (int) ($r->bedone_egdam ?? 0); - $grid[$pid]['sabt_gps'] = (int) ($r->sabt_gps ?? 0); - $grid[$pid]['sabt_herasat'] = (int) ($r->sabt_herasat ?? 0); - + $grid[$pid]['total'] = (int) ($r->total ?? 0); + $grid[$pid]['egdam_shode'] = (int) ($r->done ?? 0); + $grid[$pid]['bedone_egdam'] = (int) ($r->undone ?? 0); + $grid[$pid]['sabt_gps'] = (int) ($r->gps ?? 0); + $grid[$pid]['sabt_herasat'] = (int) ($r->herasat ?? 0); + $grid[$pid]['mil_gps'] = (int) ($r->mil_gps ?? 0); } $exportRows = []; @@ -94,7 +94,7 @@ class CountryReport implements FromView, ShouldAutoSize, WithDrawings, WithEvent $drawing2->setHeight(50); $drawing2->setOffsetX(5); $drawing2->setOffsetY(5); - $drawing2->setCoordinates('C1'); + $drawing2->setCoordinates('E1'); return [$drawing, $drawing2]; } diff --git a/app/Exports/V3/Mission/Report/Violation/ProvinceReport.php b/app/Exports/V3/Mission/Report/Violation/ProvinceReport.php index 4d1b02bf..a4251c64 100644 --- a/app/Exports/V3/Mission/Report/Violation/ProvinceReport.php +++ b/app/Exports/V3/Mission/Report/Violation/ProvinceReport.php @@ -29,12 +29,12 @@ class ProvinceReport implements FromView, ShouldAutoSize, WithDrawings, WithEven if ($cid === -1) { $province = [ 'city_name' => $name, - 'total_violations' => (int) ($r->total_violations ?? 0), - 'egdam_shode' => (int) ($r->egdam_shode ?? 0), - 'bedone_egdam' => (int) ($r->bedone_egdam ?? 0), - 'sabt_gps' => (int) ($r->sabt_gps ?? 0), + 'total' => (int) ($r->total ?? 0), + 'egdam_shode' => (int) ($r->done ?? 0), + 'bedone_egdam' => (int) ($r->undon ?? 0), + 'sabt_gps' => (int) ($r->gps ?? 0), 'sabt_herasat' => (int) ($r->herasat ?? 0), - + 'mil_gps' => (int) ($r->mil_gps ?? 0), ]; continue; @@ -45,13 +45,12 @@ class ProvinceReport implements FromView, ShouldAutoSize, WithDrawings, WithEven 'city_name' => $name, ]; } - - $grid[$cid]['total_violations'] = (int) ($r->total_violations ?? 0); - $grid[$cid]['egdam_shode'] = (int) ($r->egdam_shode ?? 0); - $grid[$cid]['bedone_egdam'] = (int) ($r->bedone_egdam ?? 0); - $grid[$cid]['sabt_gps'] = (int) ($r->sabt_gps ?? 0); - $grid[$cid]['sabt_herasat'] = (int) ($r->sabt_herasat ?? 0); - + $grid[$cid]['total'] = (int) ($r->total ?? 0); + $grid[$cid]['egdam_shode'] = (int) ($r->done ?? 0); + $grid[$cid]['bedone_egdam'] = (int) ($r->undone ?? 0); + $grid[$cid]['sabt_gps'] = (int) ($r->gps ?? 0); + $grid[$cid]['sabt_herasat'] = (int) ($r->herasat ?? 0); + $grid[$cid]['mil_gps'] = (int) ($r->mil_gps ?? 0); } $exportRows = []; @@ -99,7 +98,7 @@ class ProvinceReport implements FromView, ShouldAutoSize, WithDrawings, WithEven $drawing2->setHeight(50); $drawing2->setOffsetX(5); $drawing2->setOffsetY(5); - $drawing2->setCoordinates('C1'); + $drawing2->setCoordinates('E1'); return [$drawing, $drawing2]; } diff --git a/app/Services/Cartables/Mission/Report/ReportTradodService.php b/app/Services/Cartables/Mission/Report/ReportTradodService.php index 86520219..f975662d 100644 --- a/app/Services/Cartables/Mission/Report/ReportTradodService.php +++ b/app/Services/Cartables/Mission/Report/ReportTradodService.php @@ -28,62 +28,75 @@ class ReportTradodService { $from = $request->from_date ?? today()->startOfDay(); $to = Carbon::parse($request->to_date)->endOfDay() ?? today()->endOfDay(); - $sql = " - WITH r AS ( - SELECT - p.id AS province_id, - p.name_fa AS province_name, + SELECT* + FROM( + SELECT + 'کل کشور' AS province_name, + -1 AS province_id, + SUM(t.total) AS total, + SUM(t.khareg_mahdode) AS khareg_mahdode, + SUM(t.gps) AS gps, + SUM(t.durations) AS durations, + SUM(t.far_h) AS far_h, + SUM(t.far_d) AS far_d, + SUM(t.un_far_h) AS un_far_h, + SUM(t.un_far_d) AS un_far_d, + SUM(t.item) AS item, + SUM(t.patrol) AS patrol + FROM ( + SELECT + p.id AS province_id, + COUNT(m.id) AS total, + COALESCE(SUM(m.mission_duration != m.in_area_duration), 0) AS khareg_mahdode, + COALESCE(SUM(m.in_area_duration), 0) AS gps, + COALESCE(SUM(m.mission_duration), 0) AS durations, + COALESCE(SUM(CASE WHEN m.type = 1 THEN 1 ELSE 0 END), 0) AS far_h, + COALESCE(SUM(CASE WHEN m.type = 2 THEN 1 ELSE 0 END), 0) AS far_d, + COALESCE(SUM(CASE WHEN m.type = 3 THEN 1 ELSE 0 END), 0) AS un_far_h, + COALESCE(SUM(CASE WHEN m.type = 4 THEN 1 ELSE 0 END), 0) AS un_far_d, + COALESCE(SUM(CASE WHEN m.category_id = 1 THEN 1 ELSE 0 END), 0) AS item, + COALESCE(SUM(CASE WHEN m.category_id = 2 THEN 1 ELSE 0 END), 0) AS patrol + FROM provinces p + LEFT JOIN missions m + ON m.province_id = p.id + AND m.created_at >= :from_m + AND m.created_at <= :to_m + GROUP BY p.id + ) t - COUNT(DISTINCT m.id) AS total_missions, - SUM(CASE WHEN m.mission_duration != m.in_area_duration THEN 1 ELSE 0 END) AS taradod_khareg_mahdode, - SUM(CASE WHEN m.mission_status = 1 THEN 1 ELSE 0 END) AS bafarayand_saeti, - SUM(CASE WHEN m.mission_status = 2 THEN 1 ELSE 0 END) AS bafarayand_rozaneh, - SUM(CASE WHEN m.mission_status = 3 THEN 1 ELSE 0 END) AS bedon_bafarayand_saeti, - SUM(CASE WHEN m.mission_status = 4 THEN 1 ELSE 0 END) AS bedon_bafarayand_rozaneh, + UNION ALL - FROM provinces + SELECT + p.name_fa AS province_name, + p.id AS province_id, + COUNT(m.id) AS total, + COALESCE(SUM(m.mission_duration != m.in_area_duration), 0) AS khareg_mahdode, + COALESCE(SUM(m.in_area_duration), 0) AS gps, + COALESCE(SUM(m.mission_duration), 0) AS durations, + COALESCE(SUM(CASE WHEN m.type = 1 THEN 1 ELSE 0 END), 0) AS far_h, + COALESCE(SUM(CASE WHEN m.type = 2 THEN 1 ELSE 0 END), 0) AS far_d, + COALESCE(SUM(CASE WHEN m.type = 3 THEN 1 ELSE 0 END), 0) AS un_far_h, + COALESCE(SUM(CASE WHEN m.type = 4 THEN 1 ELSE 0 END), 0) AS un_far_d, + COALESCE(SUM(CASE WHEN m.category_id = 1 THEN 1 ELSE 0 END), 0) AS item, + COALESCE(SUM(CASE WHEN m.category_id = 2 THEN 1 ELSE 0 END), 0) AS patrol + FROM provinces p + LEFT JOIN missions m + ON m.province_id = p.id + AND m.created_at >= :from_m + AND m.created_at <= :to_m + GROUP BY p.id, p.name_fa + )q + ORDER BY + CASE WHEN province_id = -1 THEN 0 ELSE 1 END, + province_name; - LEFT JOIN missions m - ON m.province_id = p.id - AND m.created_at >= :from_m - AND m.created_at <= :to_m - - GROUP BY p.id, p.name_fa - ) - - SELECT - -1 AS province_id, - 'کل کشور' AS province_name, - SUM(total_missions) AS total_missions, - SUM(taradod_khareg_mahdode) AS taradod_khareg_mahdode, - SUM(bafarayand_saeti) AS bafarayand_saeti, - SUM(bafarayand_rozaneh) AS bafarayand_rozaneh, - SUM(bedon_bafarayand_saeti) AS bedon_bafarayand_saeti, - SUM(bedon_bafarayand_rozaneh) AS bedon_bafarayand_rozaneh - FROM r - - UNION ALL - - SELECT - province_id, - province_name, - total_missions, - taradod_khareg_mahdode, - bafarayand_saeti, - bafarayand_rozaneh, - bedon_bafarayand_saeti, - bedon_bafarayand_rozaneh - FROM r - - ORDER BY - CASE WHEN province_id = -1 THEN 0 ELSE 1 END, - province_name - "; + "; + return DB::select($sql, [ - 'from_mv' => $from, - 'to_mv' => $to, + 'from_m' => $from, + 'to_m' => $to, ]); } @@ -94,68 +107,87 @@ class ReportTradodService $to = Carbon::parse($request->to_date)->endOfDay() ?? today()->endOfDay(); $sql = " - WITH r AS ( - SELECT - c.id AS city_id, - c.name_fa AS city_name, - - COUNT(DISTINCT m.id) AS total_missions, - SUM(CASE WHEN m.mission_duration != m.in_area_duration THEN 1 ELSE 0 END) AS taradod_khareg_mahdode, - SUM(CASE WHEN m.mission_status = 1 THEN 1 ELSE 0 END) AS bafarayand_saeti, - SUM(CASE WHEN m.mission_status = 2 THEN 1 ELSE 0 END) AS bafarayand_rozaneh, - SUM(CASE WHEN m.mission_status = 3 THEN 1 ELSE 0 END) AS bedon_bafarayand_saeti, - SUM(CASE WHEN m.mission_status = 4 THEN 1 ELSE 0 END) AS bedon_bafarayand_rozaneh, - - FROM cities c - LEFT JOIN cmms_machines cm - ON cm.city_id = c.id - - LEFT JOIN missions m - ON m.province_id = p.id - AND m.created_at >= :from_m - AND m.created_at <= :to_m - - WHERE c.province_id = :province_id - AND ( - c.type_id = 1 - OR c.name_fa IN ('اداره ماشين‌آلات', 'اداره نقلیه') - ) - GROUP BY c.id, c.name_fa - ) - - SELECT - -1 AS city_id, - 'کل استان' AS city_name, - SUM(total_missions) AS total_missions, - SUM(taradod_khareg_mahdode) AS taradod_khareg_mahdode, - SUM(bafarayand_saeti) AS bafarayand_saeti, - SUM(bafarayand_rozaneh) AS bafarayand_rozaneh, - SUM(bedon_bafarayand_saeti) AS bedon_bafarayand_saeti, - SUM(bedon_bafarayand_rozaneh) AS bedon_bafarayand_rozaneh - FROM r - - UNION ALL - - SELECT - city_id, - city_name, - total_missions, - taradod_khareg_mahdode, - bafarayand_saeti, - bafarayand_rozaneh, - bedon_bafarayand_saeti, - bedon_bafarayand_rozaneh - FROM r - - ORDER BY - CASE WHEN city_id = -1 THEN 0 ELSE 1 END, - city_name - "; + SELECT* + FROM( + SELECT + 'کل استان' AS city_name, + -1 AS city_id, + SUM(t.total) AS total, + SUM(t.khareg_mahdode) AS khareg_mahdode, + SUM(t.gps) AS gps, + SUM(t.durations) AS durations, + SUM(t.far_h) AS far_h, + SUM(t.far_d) AS far_d, + SUM(t.un_far_h) AS un_far_h, + SUM(t.un_far_d) AS un_far_d, + SUM(t.item) AS item, + SUM(t.patrol) AS patrol + FROM ( + SELECT + c.id AS city_id, + + COUNT(m.id) AS total, + COALESCE(SUM(m.mission_duration != m.in_area_duration), 0) AS khareg_mahdode, + COALESCE(SUM(m.in_area_duration), 0) AS gps, + COALESCE(SUM(m.mission_duration), 0) AS durations, + COALESCE(SUM(m.type = 1), 0) AS far_h, + COALESCE(SUM(m.type = 2), 0) AS far_d, + COALESCE(SUM(m.type = 3), 0) AS un_far_h, + COALESCE(SUM(m.type = 4), 0) AS un_far_d, + COALESCE(SUM(m.category_id = 1), 0) AS item, + COALESCE(SUM(m.category_id = 2), 0) AS patrol + FROM cities c + LEFT JOIN missions m + ON m.city_id = c.id + AND m.created_at >= :from_m + AND m.created_at <= :to_m + WHERE c.province_id = :province_id + AND ( + c.type_id = 1 + OR c.name_fa IN ('اداره ماشين‌آلات', 'اداره نقلیه') + ) + GROUP BY c.id + ) t + + UNION ALL + + SELECT + c.name_fa AS city_name, + c.id AS city_id, + + COUNT(m.id) AS total, + COALESCE(SUM(m.mission_duration != m.in_area_duration), 0) AS khareg_mahdode, + COALESCE(SUM(m.in_area_duration), 0) AS gps, + COALESCE(SUM(m.mission_duration), 0) AS durations, + COALESCE(SUM(m.type = 1), 0) AS far_h, + COALESCE(SUM(m.type = 2), 0) AS far_d, + COALESCE(SUM(m.type = 3), 0) AS un_far_h, + COALESCE(SUM(m.type = 4), 0) AS un_far_d, + COALESCE(SUM(m.category_id = 1), 0) AS item, + COALESCE(SUM(m.category_id = 2), 0) AS patrol + + FROM cities c + LEFT JOIN missions m + ON m.city_id = c.id + AND m.created_at >= :from_m + AND m.created_at <= :to_m + WHERE c.province_id = :province_id + AND ( + c.type_id = 1 + OR c.name_fa IN ('اداره ماشين‌آلات', 'اداره نقلیه') + ) + GROUP BY c.id, c.name_fa + ) q + ORDER BY + CASE WHEN q.city_id = -1 THEN 0 ELSE 1 END, + q.city_name; + + "; return DB::select($sql, [ 'province_id' => $provinceId, - 'from_mv' => $from, - 'to_mv' => $to, + 'from_m' => $from, + 'to_m' => $to, ]); } } diff --git a/app/Services/Cartables/Mission/Report/ReportViolationService.php b/app/Services/Cartables/Mission/Report/ReportViolationService.php index 8f56dc65..278868fa 100644 --- a/app/Services/Cartables/Mission/Report/ReportViolationService.php +++ b/app/Services/Cartables/Mission/Report/ReportViolationService.php @@ -30,56 +30,59 @@ class ReportViolationService $to = Carbon::parse($request->to_date)->endOfDay() ?? today()->endOfDay(); $sql = " - WITH r AS ( - SELECT - p.id AS province_id, - p.name_fa AS province_name, - - COUNT(DISTINCT mv.id) AS total_violations, - SUM(CASE WHEN mv.status = 1 THEN 1 ELSE 0 END) AS egdam_shode, - SUM(CASE WHEN mv.status = 2 THEN 1 ELSE 0 END) AS bedone_egdam, - SUM(CASE WHEN mv.gps = 1 THEN 1 ELSE 0 END) AS sabt_gps, - SUM(CASE WHEN mv.gps = 0 THEN 1 ELSE 0 END) AS sabt_herasat - + SELECT* + FROM( + SELECT + 'کل کشور' AS province_name, + -1 AS province_id, + SUM(t.total) AS total, + SUM(t.done) AS done, + SUM(t.undone) AS undone, + SUM(t.gps) AS gps, + SUM(t.herasat) AS herasat, + SUM(t.mil_gps) AS mil_gps + FROM ( + SELECT + p.id AS province_id, + COUNT(mv.id) AS total, + COALESCE(SUM(CASE WHEN mv.status = 1 THEN 1 ELSE 0 END), 0) as done, + COALESCE(SUM(CASE WHEN mv.status = 0 THEN 1 ELSE 0 END), 0) as undone, + COALESCE(SUM(CASE WHEN gps = 1 THEN 1 ELSE 0 END), 0) as gps, + COALESCE(SUM(CASE WHEN gps = 0 THEN 1 ELSE 0 END), 0) as herasat, + COALESCE(SUM(CASE WHEN gps = 1 THEN mileage ELSE 0 END),0) as mil_gps FROM provinces p - - LEFT JOIN cmms_machines cm - ON cm.province_id = p.id - LEFT JOIN mission_violations mv - ON TRIM(cm.machine_code) = TRIM(mv.machine_code) + ON mv.province_id = p.id AND mv.type = 1 AND mv.created_at >= :from_mv AND mv.created_at <= :to_mv - - GROUP BY p.id, p.name_fa - ) - + GROUP BY p.id + ) t + + UNION ALL + SELECT - -1 AS province_id, - 'کل کشور' AS province_name, - SUM(total_violations) AS total_violations, - SUM(egdam_shode) AS egdam_shode, - SUM(bedone_egdam) AS bedone_egdam, - SUM(sabt_gps) AS sabt_gps, - SUM(sabt_herasat) AS sabt_herasat - FROM r - - UNION ALL - - SELECT - province_id, - province_name, - total_violations, - egdam_shode, - bedone_egdam, - sabt_gps, - sabt_herasat - FROM r - + p.name_fa AS province_name, + p.id AS province_id, + COUNT(mv.id) AS total, + COALESCE(SUM(CASE WHEN mv.status = 1 THEN 1 ELSE 0 END), 0) as done, + COALESCE(SUM(CASE WHEN mv.status = 0 THEN 1 ELSE 0 END), 0) as undone, + COALESCE(SUM(CASE WHEN gps = 1 THEN 1 ELSE 0 END), 0) as gps, + COALESCE(SUM(CASE WHEN gps = 0 THEN 1 ELSE 0 END), 0) as herasat, + COALESCE(SUM(CASE WHEN gps = 1 THEN mileage ELSE 0 END),0) as mil_gps + + FROM provinces p + LEFT JOIN mission_violations mv + ON mv.province_id = p.id + AND mv.type = 1 + AND mv.created_at >= :from_mv + AND mv.created_at <= :to_mv + GROUP BY p.id, p.name_fa + )q ORDER BY - CASE WHEN province_id = -1 THEN 0 ELSE 1 END, - province_name + CASE WHEN province_id = -1 THEN 0 ELSE 1 END, + province_name; + "; return DB::select($sql, [ @@ -95,60 +98,68 @@ class ReportViolationService $to = Carbon::parse($request->to_date)->endOfDay() ?? today()->endOfDay(); $sql = " - WITH r AS ( - SELECT - c.id AS city_id, - c.name_fa AS city_name, + SELECT* + FROM( + SELECT + 'کل استان' AS city_name, + -1 AS city_id, + SUM(t.total) AS total, + SUM(t.done) AS done, + SUM(t.undone) AS undone, + SUM(t.gps) AS gps, + SUM(t.herasat) AS herasat, + SUM(t.mil_gps) AS mil_gps + FROM ( + SELECT + c.id AS city_id, + COUNT(mv.id) AS total, + COALESCE(SUM(mv.status = 1), 0) AS done, + COALESCE(SUM(mv.status = 0), 0) AS undone, + COALESCE(SUM(mv.gps = 1), 0) AS gps, + COALESCE(SUM(mv.gps = 0), 0) AS herasat, + COALESCE(SUM(CASE WHEN mv.gps = 1 THEN mv.mileage ELSE 0 END), 0) AS mil_gps + FROM cities c + LEFT JOIN mission_violations mv + ON mv.city_id = c.id + AND mv.type = 1 + AND mv.created_at >= :from_mv + AND mv.created_at <= :to_mv + WHERE c.province_id = :province_id + AND ( + c.type_id = 1 + OR c.name_fa IN ('اداره ماشين‌آلات', 'اداره نقلیه') + ) + GROUP BY c.id + ) t + + UNION ALL + + SELECT + c.name_fa AS city_name, + c.id AS city_id, + COUNT(mv.id) AS total, + COALESCE(SUM(mv.status = 1), 0) AS done, + COALESCE(SUM(mv.status = 0), 0) AS undone, + COALESCE(SUM(mv.gps = 1), 0) AS gps, + COALESCE(SUM(mv.gps = 0), 0) AS herasat, + COALESCE(SUM(CASE WHEN mv.gps = 1 THEN mv.mileage ELSE 0 END), 0) AS mil_gps + FROM cities c + LEFT JOIN mission_violations mv + ON mv.city_id = c.id + AND mv.type = 1 + AND mv.created_at >= :from_mv + AND mv.created_at <= :to_mv + WHERE c.province_id = :province_id + AND ( + c.type_id = 1 + OR c.name_fa IN ('اداره ماشين‌آلات', 'اداره نقلیه') + ) + GROUP BY c.id, c.name_fa + ) q + ORDER BY + CASE WHEN q.city_id = -1 THEN 0 ELSE 1 END, + q.city_name; - COUNT(DISTINCT mv.id) AS total_violations, - SUM(CASE WHEN mv.status = 1 THEN 1 ELSE 0 END) AS egdam_shode, - SUM(CASE WHEN mv.status = 2 THEN 1 ELSE 0 END) AS bedone_egdam, - SUM(CASE WHEN mv.gps = 1 THEN 1 ELSE 0 END) AS sabt_gps, - SUM(CASE WHEN mv.gps = 0 THEN 1 ELSE 0 END) AS sabt_herasat - - FROM cities c - LEFT JOIN cmms_machines cm - ON cm.city_id = c.id - - LEFT JOIN mission_violations mv - ON TRIM(cm.machine_code) = TRIM(mv.machine_code) - AND mv.type = 1 - AND mv.created_at >= :from_mv - AND mv.created_at <= :to_mv - - WHERE c.province_id = :province_id - AND ( - c.type_id = 1 - OR c.name_fa IN ('اداره ماشين‌آلات', 'اداره نقلیه') - ) - GROUP BY c.id, c.name_fa - ) - - SELECT - -1 AS city_id, - 'کل استان' AS city_name, - SUM(total_violations) AS total_violations, - SUM(egdam_shode) AS egdam_shode, - SUM(bedone_egdam) AS bedone_egdam, - SUM(sabt_gps) AS sabt_gps, - SUM(sabt_herasat) AS sabt_herasat - FROM r - - UNION ALL - - SELECT - city_id, - city_name, - total_violations, - egdam_shode, - bedone_egdam, - sabt_gps, - sabt_herasat - FROM r - - ORDER BY - CASE WHEN city_id = -1 THEN 0 ELSE 1 END, - city_name "; return DB::select($sql, [ diff --git a/resources/views/v3/Reports/Mission/Report/CountryActivityReport.blade.php b/resources/views/v3/Reports/Mission/Report/CountryActivityReport.blade.php index dbf58e31..2dbe9f08 100644 --- a/resources/views/v3/Reports/Mission/Report/CountryActivityReport.blade.php +++ b/resources/views/v3/Reports/Mission/Report/CountryActivityReport.blade.php @@ -68,6 +68,10 @@ style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> ثبت حراست + + کیلومتر GPS + @@ -80,6 +84,7 @@ {{ $item['bedone_egdam'] ?? '-' }} {{ $item['sabt_gps'] ?? '-' }} {{ $item['sabt_herasat'] ?? '-' }} + {{ $item['mil_gps'] ?? '-' }} @endforeach diff --git a/resources/views/v3/Reports/Mission/Report/ProvinceActivityReport.blade.php b/resources/views/v3/Reports/Mission/Report/ProvinceActivityReport.blade.php index c88ca80c..d62f37ed 100644 --- a/resources/views/v3/Reports/Mission/Report/ProvinceActivityReport.blade.php +++ b/resources/views/v3/Reports/Mission/Report/ProvinceActivityReport.blade.php @@ -50,7 +50,7 @@ - کل تخلفات + کل تخلفات @@ -68,6 +68,10 @@ style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> ثبت حراست + + مسافت ثبت شده GPS + @@ -80,6 +84,7 @@ {{ $item['bedone_egdam'] ?? '-' }} {{ $item['sabt_gps'] ?? '-' }} {{ $item['sabt_herasat'] ?? '-' }} + {{ $item['mil_gps'] ?? '-' }} @endforeach diff --git a/resources/views/v3/Reports/Mission/Report/Tradod /CountryActivityReport.blade.php b/resources/views/v3/Reports/Mission/Report/Tradod /CountryActivityReport.blade.php index e94c38f2..cfb60ac5 100644 --- a/resources/views/v3/Reports/Mission/Report/Tradod /CountryActivityReport.blade.php +++ b/resources/views/v3/Reports/Mission/Report/Tradod /CountryActivityReport.blade.php @@ -50,8 +50,14 @@ -کل تردد - + کل ماموریت + + جمع ساعات GPS + + + جمع ساعات ماموریت تردد خارج از محدوده @@ -72,6 +78,13 @@ style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> بدون فرآیند روزانه + + فعالیت روزانه + + گشت راهداری + @@ -79,12 +92,16 @@ @foreach ($rows as $item) {{ $item['province_name'] ?? '-' }} - {{ $item['total_missions'] ?? '-' }} - {{ $item['taradod_khareg_mahdode'] ?? '-' }} + {{ $item['total'] ?? '-' }} + {{ $item['khareg_mahdode'] ?? '-' }} + {{ $item['gps'] ?? '-' }} + {{ $item['durations'] ?? '-' }} {{ $item['bafarayand_saeti'] ?? '-' }} {{ $item['bafarayand_rozaneh'] ?? '-' }} {{ $item['bedon_bafarayand_saeti'] ?? '-' }} {{ $item['bedon_bafarayand_rozaneh'] ?? '-' }} + {{ $item['item'] ?? '-' }} + {{ $item['patrol'] ?? '-' }} @endforeach diff --git a/resources/views/v3/Reports/Mission/Report/Tradod /ProvinceActivityReport.blade.php b/resources/views/v3/Reports/Mission/Report/Tradod /ProvinceActivityReport.blade.php index d78d2901..a78d5b56 100644 --- a/resources/views/v3/Reports/Mission/Report/Tradod /ProvinceActivityReport.blade.php +++ b/resources/views/v3/Reports/Mission/Report/Tradod /ProvinceActivityReport.blade.php @@ -50,8 +50,14 @@ - کل تردد - + کل ماموریت + + جمع ساعات GPS + + + جمع ساعات ماموریت تردد خارج از محدوده @@ -72,8 +78,13 @@ style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> بدون فرآیند روزانه - - + +فعالیت روزانه + + گشت راهداری + @@ -81,12 +92,16 @@ @foreach ($rows as $item) {{ $item['city_name'] ?? '-' }} - {{ $item['total_missions'] ?? '-' }} - {{ $item['taradod_khareg_mahdode'] ?? '-' }} + {{ $item['total'] ?? '-' }} + {{ $item['khareg_mahdode'] ?? '-' }} + {{ $item['gps'] ?? '-' }} + {{ $item['durations'] ?? '-' }} {{ $item['bafarayand_saeti'] ?? '-' }} {{ $item['bafarayand_rozaneh'] ?? '-' }} {{ $item['bedon_bafarayand_saeti'] ?? '-' }} {{ $item['bedon_bafarayand_rozaneh'] ?? '-' }} + {{ $item['item'] ?? '-' }} + {{ $item['patrol'] ?? '-' }} @endforeach From fe45d815bcb51697b154e7b136301a4d3741f942 Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Mon, 26 Jan 2026 14:11:31 +0330 Subject: [PATCH 6/6] merge to github --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index bb4a5e23..14720635 100644 --- a/.env.example +++ b/.env.example @@ -98,7 +98,7 @@ HARIM_NEED_GUARANTEE_LETTER_URL='https://zamin.gov.ir/ow/api/ow/esb/response' HARIM_NEED_GUARANTEE_LETTER_PASSWORD= HARIM_NEED_GUARANTEE_LETTER_USERNAME= -BACKUP_TARGET_DIR= +BACKUP_TARGET_DIR=/var BACKUP_USER= BACKUP_PASSWORD=1qaz