create road patrol exports

This commit is contained in:
2025-01-26 14:00:12 +03:30
parent 3158ac3102
commit 55f8b45304
7 changed files with 493 additions and 106 deletions

View File

@@ -0,0 +1,72 @@
<?php
namespace App\Exports\V3\RoadPatrols;
use App\Models\RoadPatrolProject;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithDrawings;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class CountryActivity implements FromView, WithEvents, ShouldAutoSize, WithDrawings
{
public function __construct(private array $activities){}
public function view(): View
{
$activities = $this->activities;
return view('v3.Reports.RoadPatrols.CountryActivity', [
'activities' => $activities["activities"],
'fromDate' => $activities["fromDate"],
'toDate' => $activities["toDate"]
]);
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true);
$event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial');
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setHorizontal(Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setVertical(Alignment::VERTICAL_CENTER);
}
];
}
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('q1');
return [$drawing, $drawing2];
}
}

View File

@@ -0,0 +1,72 @@
<?php
namespace App\Exports\V3\RoadPatrols;
use App\Models\RoadPatrolProject;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithDrawings;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class ProvinceActivity implements FromView, WithEvents, ShouldAutoSize, WithDrawings
{
public function __construct(private array $activities){}
public function view(): View
{
$activities = $this->activities;
return view('v3.Reports.RoadPatrols.CountryActivity', [
'activities' => $activities["activities"],
'fromDate' => $activities["fromDate"],
'toDate' => $activities["toDate"]
]);
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true);
$event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial');
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setHorizontal(Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setVertical(Alignment::VERTICAL_CENTER);
}
];
}
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('q1');
return [$drawing, $drawing2];
}
}

View File

@@ -8,6 +8,7 @@ use App\Http\Traits\ApiResponse;
use App\Models\EdarateShahri;
use App\Models\Province;
use App\Models\RoadPatrolProject;
use App\Services\Reports\RoadPatrolReportService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
@@ -17,54 +18,12 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
class RoadPatrolReportController extends Controller
{
use ApiResponse;
public function provincePatrolActivity(Request $request): JsonResponse
public function countryPatrolActivity(Request $request, RoadPatrolReportService $roadPatrolReportService): JsonResponse
{
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
$toDate = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
$activities = DB::select('SELECT
"کشوری" as province_fa,
-1 as province_id,
COUNT(*) tedade,
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
ROUND(SUM(distance)) as masafat_tey_shode
FROM (SELECT
province_id,
province_fa,
distance,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
FROM `road_patrols` rp where rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
union
SELECT
province_fa,
province_id,
COUNT(*) tedade,
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
ROUND(SUM(distance)) as masafat_tey_shode
FROM (SELECT
province_id,
province_fa,
distance,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
FROM `road_patrols` rp where rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
GROUP BY province_id'
);
$activities = $roadPatrolReportService->countryActivity($fromDate, $toDate);
$provinces = Province::all(['id', 'name_fa']);
@@ -74,66 +33,14 @@ class RoadPatrolReportController extends Controller
]);
}
public function cityPatrolActivity(Request $request): JsonResponse
public function provincePatrolActivity(Request $request, RoadPatrolReportService $roadPatrolReportService): JsonResponse
{
$request->validate(["province_id" => "required",]);
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
$toDate = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
$provinceId = $request->province_id;
$activities = DB::select(
'SELECT
province_fa,
province_id,
-1 AS edare_id,
"استانی" AS edare_name,
COUNT(*) tedade,
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
ROUND(SUM(distance)) as masafat_tey_shode
FROM (SELECT
province_id,
province_fa,
edare_id,
edare_name,
distance,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
FROM `road_patrols` rp where rp.province_id = "'.$provinceId.'" AND rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
UNION
SELECT
province_fa,
province_id,
edare_id,
edare_name,
COUNT(*) tedade,
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
ROUND(SUM(distance)) as masafat_tey_shode
FROM (SELECT
province_id,
province_fa,
edare_id,
edare_name,
distance,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
FROM `road_patrols` rp where rp.province_id = "'.$provinceId.'" AND rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
GROUP BY edare_id
'
);
$activities = $roadPatrolReportService->provinceActivity($fromDate, $toDate, $provinceId);
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $provinceId)->get(['id', 'name_fa']);
@@ -143,12 +50,21 @@ class RoadPatrolReportController extends Controller
]);
}
public function excel(Request $request): BinaryFileResponse
public function countryActivityExcel(Request $request, RoadPatrolReportService $roadPatrolReportService): BinaryFileResponse
{
$activities = $roadPatrolReportService->countryActivity($request->from_date, $request->to_date);
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
return Excel::download(
new RoadPatrolTable($request->from_date, $request->date_to), $name
);
return Excel::download(new RoadPatrolTable($activities), $name);
}
public function provinceActivityExcel(Request $request, RoadPatrolReportService $roadPatrolReportService): BinaryFileResponse
{
$activities = $roadPatrolReportService->provinceActivity($request->from_date, $request->to_date, $request->province_id);
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
return Excel::download(new RoadPatrolTable($activities), $name);
}
}

View File

@@ -0,0 +1,126 @@
<?php
namespace App\Services\Reports;
use App\Models\InfoItem;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
class RoadPatrolReportService
{
public function countryActivity(string $fromDate, string $toDate): array
{
$activities = DB::select('SELECT
"کشوری" as province_fa,
-1 as province_id,
COUNT(*) tedade,
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
ROUND(SUM(distance)) as masafat_tey_shode
FROM (SELECT
province_id,
province_fa,
distance,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
FROM `road_patrols` rp where rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
union
SELECT
province_fa,
province_id,
COUNT(*) tedade,
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
ROUND(SUM(distance)) as masafat_tey_shode
FROM (SELECT
province_id,
province_fa,
distance,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
FROM `road_patrols` rp where rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
GROUP BY province_id'
);
return [
'activities' => $activities,
'fromDate' => $fromDate,
'toDate' => $toDate
];
}
public function provinceActivity(string $fromDate, string $toDate, int $provinceId): array
{
$activities = DB::select(
'SELECT
province_fa,
province_id,
-1 AS edare_id,
"استانی" AS edare_name,
COUNT(*) tedade,
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
ROUND(SUM(distance)) as masafat_tey_shode
FROM (SELECT
province_id,
province_fa,
edare_id,
edare_name,
distance,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
FROM `road_patrols` rp where rp.province_id = "'.$provinceId.'" AND rp.start_time BETWEEN "'.$fromDate.'" AND "'.$toDate.'") temp
UNION
SELECT
province_fa,
province_id,
edare_id,
edare_name,
COUNT(*) tedade,
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
ROUND(SUM(distance)) as masafat_tey_shode
FROM (SELECT
province_id,
province_fa,
edare_id,
edare_name,
distance,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
FROM `road_patrols` rp where rp.province_id = "'.$provinceId.'" AND rp.start_time BETWEEN "'.$fromDate.'" AND "'.$toDate.'") temp
GROUP BY edare_id
'
);
return [
'activities' => $activities,
'fromDate' => $fromDate,
'toDate' => $toDate
];
}
}

View File

@@ -0,0 +1,102 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>کشوری</title>
</head>
<body dir="rtl" style="text-align: center;">
<table>
<thead>
<tr>
<th colspan="8"
style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;">
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
</th>
</tr>
<tr>
<th colspan="8"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th>
</tr>
<tr>
<th colspan="8"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
گزارش گشت راهداری و ترابری از تاریخ
{{ verta($fromFa)->format('Y/n/j') }}
تا
تاریخ
{{ verta($toFa)->format('Y/n/j') }}
</th>
</tr>
<tr class="headercolortable">
<th rowspan="3" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
اداره کل
</th>
<th colspan="7" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
گشت راهداری
</th>
</tr>
<tr>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
تعداد کل
</th>
<th colspan="3" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
اقدامات لازم جهت رسیدگی آتی
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
اقدامات رسیدگی شده
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
مجموع مسافت پیمایش شده(کیلومتر)
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
تعداد فعالیت صورت گرفته حین گشت زنی
</th>
</tr>
<tr>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
عادی
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
فوری
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
آنی
</th>
</tr>
</thead>
<tbody>
@foreach ($activities as $activity)
<tr>
<td style="border:1px solid black;text-align: center;">{{ $activity->province_fa }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->tedade }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_moshede_shode_adi }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_moshede_shode_fori }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_moshede_shode_ani }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_peygiri_shode }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->masafat_tey_shode }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_faliyat_sabt_shode }}</td>
</tr>
@endforeach
</tbody>
</table>
</body>
</html>

View File

@@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>استانی</title>
</head>
<body dir="rtl" style="text-align: center;">
<table>
<thead>
<tr>
<th colspan="8"
style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;">
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
</th>
</tr>
<tr>
<th colspan="8"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th>
</tr>
<tr>
<th colspan="8"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
گزارش گشت راهداری و ترابری از تاریخ
{{ verta($fromFa)->format('Y/n/j') }}
تا
تاریخ
{{ verta($toFa)->format('Y/n/j') }}
</th>
</tr>
<tr class="headercolortable">
<th rowspan="3" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
اداره کل
</th>
<th colspan="7" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
گشت راهداری
</th>
</tr>
<tr>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
تعداد کل
</th>
<th colspan="3" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
اقدامات لازم جهت رسیدگی آتی
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
اقدامات رسیدگی شده
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
مجموع مسافت پیمایش شده(کیلومتر)
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
تعداد فعالیت صورت گرفته حین گشت زنی
</th>
</tr>
<tr>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
عادی
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
فوری
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
آنی
</th>
</tr>
</thead>
<tbody>
@foreach ($activities as $activity)
<tr>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">{{ $activity['name'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">{{ $activity['tedade'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">{{ $activity['tedad_mavarede_moshede_shode_adi'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">{{ $activity['tedad_mavarede_moshede_shode_fori'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">{{ $activity['tedad_mavarede_moshede_shode_ani'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">{{ $activity['tedad_mavarede_peygiri_shode'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">{{ $activity['masafat_tey_shode'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">{{ $activity['tedad_faliyat_sabt_shode'] }}</td>
</tr>
@endforeach
</tbody>
</table>
</body>
</html>

View File

@@ -210,7 +210,8 @@ Route::prefix('road_patrol_reports')
->name('roadPatrolReports.')
->controller(RoadPatrolReportController::class)
->group(function () {
Route::get('/country_activity', 'countryPatrolActivity')->name('countryPatrolActivity');
Route::get('/province_activity', 'provincePatrolActivity')->name('provincePatrolActivity');
Route::get('/city_activity', 'cityPatrolActivity')->name('cityPatrolActivity');
Route::get('/excel', 'excel')->name('excel');
Route::get('/country_activity_excel', 'countryActivityExcel')->name('countryActivityExcel');
Route::get('/province_activity_excel', 'provinceActivityExcel')->name('provinceActivityExcel');
});