refactor blades

This commit is contained in:
2025-02-05 13:36:40 +03:30
parent 05f6e42a80
commit 943b2dbb93
9 changed files with 170 additions and 190 deletions

View File

@@ -17,18 +17,18 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class CountryActivityPerItemReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings class CountryActivityPerItemReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings
{ {
public function __construct(private ?array $activities){} public function __construct(private ?array $data){}
public function view(): View public function view(): View
{ {
$activities = $this->activities; $data = $this->data;
$fromDate = $activities['fromDate'] ?? '2021-03-21 00:00:00';
$toDate = $activities['toDate'] ?? \Carbon\Carbon::now();
return view('v3.Reports.RoadItems.CountryActivityPerItem', [ return view('v3.Reports.RoadItems.CountryActivityPerItem', [
'activities' => $activities['data'], 'data' => $data['activities']['data'],
'fromDate' => $fromDate, 'provinces' => $data['provinces'],
'toDate' => $toDate 'items' => $data['items'],
'fromDate' => $data['activities']['fromDate'],
'toDate' => $data['activities']['toDate']
]); ]);
} }

View File

@@ -6,6 +6,7 @@ use App\Models\Province;
use App\Models\RoadItemsProject; use App\Models\RoadItemsProject;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromView; use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize; use Maatwebsite\Excel\Concerns\ShouldAutoSize;
@@ -17,7 +18,7 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class OperatorCartableReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings class OperatorCartableReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings
{ {
public function __construct(private ?string $data){} public function __construct(private ?Collection $data){}
public function view(): View public function view(): View
{ {

View File

@@ -17,18 +17,18 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class ProvinceActivityPerItemReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings class ProvinceActivityPerItemReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings
{ {
public function __construct(private ?array $activities){} public function __construct(private ?array $data){}
public function view(): View public function view(): View
{ {
$activities = $this->activities; $data = $this->data;
$fromDate = $activities['fromDate'] ?? '2021-03-21 00:00:00';
$toDate = $activities['toDate'] ?? \Carbon\Carbon::now();
return view('v3.Reports.RoadItems.ProvinceActivityPerItem', [ return view('v3.Reports.RoadItems.ProvinceActivityPerItem', [
'activitis' => $activities['data'], 'data' => $data['activities']['data'],
'fromDate' => $fromDate, 'edarateShahri' => $data['edarateShahri'],
'toDate' => $toDate 'items' => $data['items'],
'fromDate' => $data['activities']['fromDate'],
'toDate' => $data['activities']['toDate']
]); ]);
} }

View File

@@ -6,6 +6,7 @@ use App\Models\Province;
use App\Models\RoadItemsProject; use App\Models\RoadItemsProject;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromView; use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize; use Maatwebsite\Excel\Concerns\ShouldAutoSize;
@@ -17,7 +18,7 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class SupervisorCartableReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings class SupervisorCartableReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings
{ {
public function __construct(private ?string $data){} public function __construct(private ?Collection $data){}
public function view(): View public function view(): View
{ {

View File

@@ -119,7 +119,11 @@ class RoadItemsReportController extends Controller
auth()->user()->addActivityComplete(1034); auth()->user()->addActivityComplete(1034);
$name = 'گزارش کشوری از فعالیت روزانه و جاری - جدول 1 ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش کشوری از فعالیت روزانه و جاری - جدول 1 ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
$activities = $roadItemReportService->countryActivityPerItem($request); $activities = $roadItemReportService->countryActivityPerItem($request);
return Excel::download(new CountryActivityPerItemReport($activities), $name); return Excel::download(new CountryActivityPerItemReport([
'activities' => $activities,
'provinces' => Province::all(['id', 'name_fa']),
'items' => InfoItem::query()->distinct()->get(['item', 'item_str']),
]), $name);
} }
public function provinceActivityExcelPerItem(Request $request, RoadItemReportService $roadItemReportService): BinaryFileResponse public function provinceActivityExcelPerItem(Request $request, RoadItemReportService $roadItemReportService): BinaryFileResponse
@@ -127,7 +131,11 @@ class RoadItemsReportController extends Controller
auth()->user()->addActivityComplete(1034); auth()->user()->addActivityComplete(1034);
$name = 'گزارش استانی از فعالیت روزانه و جاری - جدول 1 ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش استانی از فعالیت روزانه و جاری - جدول 1 ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
$activities = $roadItemReportService->provinceActivityPerItem($request); $activities = $roadItemReportService->provinceActivityPerItem($request);
return Excel::download(new ProvinceActivityPerItemReport($activities), $name); return Excel::download(new ProvinceActivityPerItemReport([
'activities' => $activities,
'edarateShahri' => EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']),
'items' => InfoItem::query()->distinct()->get(['item', 'item_str']),
]), $name);
} }
public function countryActivityExcelPerSubItem(Request $request, RoadItemReportService $roadItemReportService): BinaryFileResponse public function countryActivityExcelPerSubItem(Request $request, RoadItemReportService $roadItemReportService): BinaryFileResponse

View File

@@ -14,19 +14,19 @@
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="18" <th colspan="20"
style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;"> style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;">
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }} تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
</th> </th>
</tr> </tr>
<tr> <tr>
<th colspan="18" <th colspan="20"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;"> style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th> </th>
</tr> </tr>
<tr> <tr>
<th colspan="18" <th colspan="20"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;"> style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
گزارش فعالیت روزانه و جاری راهداری از تاریخ گزارش فعالیت روزانه و جاری راهداری از تاریخ
{{ verta($fromDate)->format('Y/n/j') }} {{ verta($fromDate)->format('Y/n/j') }}
@@ -38,83 +38,60 @@
</tr> </tr>
<tr> <tr>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">اداره کل <th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">اداره</th>
</th> <th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">مجموع</th>
<th colspan="16" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">فعالیت های <th colspan="18" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">ایتم های فعالیت روزانه</th>
جاری و روزانه راهداری
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">کل</th>
</tr> </tr>
<tr> <tr>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">مرمت رویه</th> @foreach($items as $item)
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">پاکسازی</th> <th style="border:1px solid black;text-align:center;background-color: #C4D79B;">{{ $item['item_str'] }}</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">علائم</th> @endforeach
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">حفاظ</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">روشنایی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">خط کشی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">رنگ آمیزی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">شستشو</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">ایمن سازی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">حریم</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">پل</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">تونل و گالری</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">عملیات زمستانی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">ماشین آلات</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">راهدارخانه</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">موارد اضطراری</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> @php
<td style="border:1px solid black;text-align: center;">کل کشور</td> // محاسبه مجموع مقدار s برای کل کشور
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalMarematRooyeCount'] }}</td> $totalForCountry = collect($data)->where('p', -1)->sum('s');
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalPaksaziCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalAlaemCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalHefazCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalRoshanayiCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalKhatkeshiCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalRangamiziCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalWashingCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalImenSaziCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalHarimCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalPolCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalToonelCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalAmaliatZemestaniCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalMashinAlatCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalTollhouseCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalEmergencyCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalCountryCount'] }}</td>
</tr>
@foreach ($provinceCount as $activity) // محاسبه مجموع مقدار s برای هر آیتم در کل کشور
$itemTotalsForCountry = [];
foreach ($items as $item) {
$itemTotalsForCountry[$item['item']] = collect($data)->where('p', -1)->where('i', $item['item'])->sum('s');
}
@endphp
{{-- ردیف کل کشور --}}
<tr>
<td style="border:1px solid black;text-align: center;">کل کشور</td>
<td style="border:1px solid black;text-align: center;">{{ $totalForCountry }}</td>
@foreach($items as $item)
<td style="border:1px solid black;text-align: center;">{{ $itemTotalsForCountry[$item['item']] ?? '-' }}</td>
@endforeach
</tr>
{{-- ردیف‌های مربوط به هر استان --}}
@foreach($provinces as $province)
@php
// محاسبه مجموع مقدار s برای این استان
$totalForProvince = collect($data)->where('p', $province['id'])->sum('s');
// محاسبه مجموع مقدار s برای هر آیتم در این استان
$itemTotalsForProvince = [];
foreach ($items as $item) {
$itemTotalsForProvince[$item['item']] = collect($data)->where('p', $province['id'])->where('i', $item['item'])->sum('s');
}
@endphp
<tr> <tr>
<td style="border:1px solid black;text-align: center;">{{ $activity->province_fa }}</td> <td style="border:1px solid black;text-align: center;">{{ $province['name_fa'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->MarematRooyeCount }}</td> <td style="border:1px solid black;text-align: center;">{{ $totalForProvince }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->PaksaziCount }}</td> @foreach($items as $item)
<td style="border:1px solid black;text-align: center;">{{ $activity->AlaemCount }}</td> <td style="border:1px solid black;text-align: center;">{{ $itemTotalsForProvince[$item['item']] ?? '-' }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->HefazCount }}</td> @endforeach
<td style="border:1px solid black;text-align: center;">{{ $activity->RoshanayiCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->KhatkeshiCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->RangamiziCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->WashingCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->ImenSaziCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->HarimCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->PolCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->ToonelCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->AmaliatZemestaniCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->MashinAlatCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->TollhouseCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->EmergencyCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->TotalProvinceCount }}</td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</body> </body>
</html> </html>

View File

@@ -21,56 +21,64 @@
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="9" <th colspan="14"
style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;"> style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;">
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }} تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
</th> </th>
</tr> </tr>
<tr> <tr>
<th colspan="9" <th colspan="14"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;"> style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th> </th>
</tr> </tr>
<tr> <tr>
<th colspan="9" <th colspan="14"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;"> style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
گزارش کارتابل عملیات فعالیت های روزانه و جاری از تاریخ گزارش کارتابل عملیات فعالیت های روزانه و جاری
{{ verta($fromDate)->format('Y/n/j') }}
تا
تاریخ
{{ verta($toDate)->format('Y/n/j') }}
</th> </th>
</tr> </tr>
<tr> <tr>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">کد style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">کد
یکتا</th> یکتا</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
استان</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
اداره</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">آیتم style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">آیتم
فعالیت</th> فعالیت</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
موضوع مشاهده شده</th> اقدام انجام شده</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
مقدار</th> مقدار</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
کد خودرو(ها)</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
کد راهدار(ها)</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
نقطه شروع</th> نقطه شروع</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
نقطه پایان</th> نقطه پایان</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
تاریخ ثبت</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
تاریخ فعالیت</th> تاریخ فعالیت</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
وضعیت</th> تاریخ ثبت</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
وضعیت نظارت</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
توضیحات ناظر</th> توضیحات ناظر</th>
@@ -81,15 +89,24 @@
@foreach ($data as $item) @foreach ($data as $item)
<tr> <tr>
<td style="border: 1px solid black;text-align: center;">{{ $item['id'] ?? '-' }}</td> <td style="border: 1px solid black;text-align: center;">{{ $item['id'] ?? '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['province_fa'] ?? '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['edarat_name'] ?? '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['item_fa'] ?? '-' }}</td> <td style="border: 1px solid black;text-align: center;">{{ $item['item_fa'] ?? '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['sub_item_fa'] ?? '-' }}</td> <td style="border: 1px solid black;text-align: center;">{{ $item['sub_item_fa'] ?? '-' }}</td>
<td style="border: 1px solid black;text-align: center;"> <td style="border: 1px solid black;text-align: center;">
{{ $item['sub_item_data'] ? ($item['unit_fa'] ? $item['sub_item_data'] . '(' . $item['unit_fa'] . ')' : $item['sub_item_data'] . '(-)') : '-' }} {{ $item['sub_item_data'] ? ($item['unit_fa'] ? $item['sub_item_data'] . '(' . $item['unit_fa'] . ')' : $item['sub_item_data'] . '(-)') : '-' }}
</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['cmmsMachines'] != null ? $item['cmmsMachines']->pluck('machine_code')->implode(', ') : '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['rahdaran'] != null ? $item['rahdaran']->pluck('code')->implode(', ') : '-' }}</td>
<td style="border: 1px solid black;text-align: center;">
{{ isset($item['start_lat']) && isset($item['start_lng']) ? $item['start_lat'] . ' ' . $item['start_lng'] : '-' }}
</td>
<td style="border: 1px solid black;text-align: center;">
{{ isset($item['end_lat']) && isset($item['end_lng']) ? $item['end_lat'] . ' ' . $item['end_lng'] : '-' }}
</td> </td>
<td style="border: 1px solid black;text-align: center;">{{ isset($item['start_lat']) && isset($item['start_lng']) ? $item['start_lat'] . ' ' . $item['start_lng'] : '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ isset($item['end_lat']) && isset($item['end_lng']) ? $item['end_lat'] . ' ' . $item['end_lng'] : '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['activity_date_time'] ? verta($item['activity_date_time'])->format('Y/n/j H:i:s') : '-' }} <td style="border: 1px solid black;text-align: center;">{{ $item['activity_date_time'] ? verta($item['activity_date_time'])->format('Y/n/j H:i:s') : '-' }}
<td style="border: 1px solid black;text-align: center;">{{ $item['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }}</td>
</td> </td>
<td style="border: 1px solid black;text-align: center;">{{ $item['status_fa'] ?? '-' }}</td> <td style="border: 1px solid black;text-align: center;">{{ $item['status_fa'] ?? '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['supervisor_description'] ?? '-' }}</td> <td style="border: 1px solid black;text-align: center;">{{ $item['supervisor_description'] ?? '-' }}</td>

View File

@@ -14,19 +14,19 @@
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="18" <th colspan="20"
style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;"> style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;">
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }} تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
</th> </th>
</tr> </tr>
<tr> <tr>
<th colspan="18" <th colspan="20"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;"> style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th> </th>
</tr> </tr>
<tr> <tr>
<th colspan="18" <th colspan="20"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;"> style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
گزارش فعالیت روزانه و جاری راهداری از تاریخ گزارش فعالیت روزانه و جاری راهداری از تاریخ
{{ verta($fromDate)->format('Y/n/j') }} {{ verta($fromDate)->format('Y/n/j') }}
@@ -38,83 +38,57 @@
</tr> </tr>
<tr> <tr>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">اداره کل <th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">اداره</th>
</th> <th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">مجموع</th>
<th colspan="16" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">فعالیت های <th colspan="18" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">ایتم های فعالیت روزانه</th>
جاری و روزانه راهداری
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">کل</th>
</tr> </tr>
<tr> <tr>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">مرمت رویه</th> @foreach($items as $item)
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">پاکسازی</th> <th style="border:1px solid black;text-align:center;background-color: #C4D79B;">{{ $item['item_str'] }}</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">علائم</th> @endforeach
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">حفاظ</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">روشنایی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">خط کشی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">رنگ آمیزی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">شستشو</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">ایمن سازی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">حریم</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">پل</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">تونل و گالری</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">عملیات زمستانی</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">ماشین آلات</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">راهدارخانه</th>
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">موارد اضطراری</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> @php
<td style="border:1px solid black;text-align: center;">کل استان</td> $totalForProvince = collect($data)->where('c', -1)->sum('s');
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalMarematRooyeCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalPaksaziCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalAlaemCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalHefazCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalRoshanayiCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalKhatkeshiCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalRangamiziCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalWashingCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalImenSaziCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalHarimCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalPolCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalToonelCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalAmaliatZemestaniCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalMashinAlatCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalTollhouseCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['totalEmergencyCount'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $provinceCount['TotalProvinceCount'] }}</td>
</tr>
@foreach ($cityCount as $activity) $itemTotalsForProvince = [];
foreach ($items as $item) {
$itemTotalsForProvince[$item['item']] = collect($data)->where('c', -1)->where('i', $item['item'])->sum('s');
}
@endphp
<tr>
<td style="border:1px solid black;text-align: center;">کل استان</td>
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince }}</td>
@foreach($items as $item)
<td style="border:1px solid black;text-align: center;">{{ $itemTotalsForProvince[$item['item']] ?? '-' }}</td>
@endforeach
</tr>
{{-- ردیف‌های مربوط به هر استان --}}
@foreach($edarateShahri as $edareShahri)
@php
// محاسبه مجموع مقدار s برای این استان
$totalForProvince = collect($data)->where('p', $edareShahri['id'])->sum('s');
// محاسبه مجموع مقدار s برای هر آیتم در این استان
$itemTotalsForProvince = [];
foreach ($items as $item) {
$itemTotalsForProvince[$item['item']] = collect($data)->where('p', $edareShahri['id'])->where('i', $item['item'])->sum('s');
}
@endphp
<tr> <tr>
<td style="border:1px solid black;text-align: center;">{{ $activity->edarat_name }}</td> <td style="border:1px solid black;text-align: center;">{{ $edareShahri['name_fa'] }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->MarematRooyeCount }}</td> <td style="border:1px solid black;text-align: center;">{{ $totalForProvince }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->PaksaziCount }}</td> @foreach($items as $item)
<td style="border:1px solid black;text-align: center;">{{ $activity->AlaemCount }}</td> <td style="border:1px solid black;text-align: center;">{{ $itemTotalsForProvince[$item['item']] ?? '-' }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->HefazCount }}</td> @endforeach
<td style="border:1px solid black;text-align: center;">{{ $activity->RoshanayiCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->KhatkeshiCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->RangamiziCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->WashingCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->ImenSaziCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->HarimCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->PolCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->ToonelCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->AmaliatZemestaniCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->MashinAlatCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->TollhouseCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->EmergencyCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->TotalCityCount }}</td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</body> </body>
</html> </html>

View File

@@ -21,24 +21,20 @@
<table> <table>
<thead> <thead>
<tr> <tr>
<th colspan="9" <th colspan="14"
style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;"> style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;">
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }} تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
</th> </th>
</tr> </tr>
<tr> <tr>
<th colspan="9" <th colspan="14"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;"> style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th> </th>
</tr> </tr>
<tr> <tr>
<th colspan="9" <th colspan="14"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;"> style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
گزارش کارتابل ارزیابی فعالیت های روزانه و جاری از تاریخ گزارش کارتابل ارزیابی فعالیت های روزانه و جاری
{{ verta($fromDate)->format('Y/n/j') }}
تا
تاریخ
{{ verta($toDate)->format('Y/n/j') }}
</th> </th>
</tr> </tr>
<tr> <tr>
@@ -58,26 +54,31 @@
فعالیت</th> فعالیت</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
موضوع مشاهده شده</th> اقدام انجام شده</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
مقدار</th> مقدار</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
کد خودرو(ها)</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
کد راهدار(ها)</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
نقطه شروع</th> نقطه شروع</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
نقطه پایان</th> نقطه پایان</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
تاریخ ثبت</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
تاریخ فعالیت</th> تاریخ فعالیت</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
وضعیت</th> تاریخ ثبت</th>
<th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
وضعیت نظارت</th>
<th rowspan="1" <th rowspan="1"
style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;"> style="text-align: center;border: 1px solid black;background-color: #EBF1DE;font-weight: bold;">
توضیحات ناظر</th> توضیحات ناظر</th>
@@ -96,18 +97,19 @@
<td style="border: 1px solid black;text-align: center;"> <td style="border: 1px solid black;text-align: center;">
{{ $item['sub_item_data'] ? ($item['unit_fa'] ? $item['sub_item_data'] . '(' . $item['unit_fa'] . ')' : $item['sub_item_data'] . '(-)') : '-' }} {{ $item['sub_item_data'] ? ($item['unit_fa'] ? $item['sub_item_data'] . '(' . $item['unit_fa'] . ')' : $item['sub_item_data'] . '(-)') : '-' }}
</td> </td>
<td style="border: 1px solid black;text-align: center;">{{ $item['cmmsMachines'] != null ? $item['cmmsMachines']->pluck('machine_code')->implode(', ') : '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['rahdaran'] != null ? $item['rahdaran']->pluck('code')->implode(', ') : '-' }}</td>
<td style="border: 1px solid black;text-align: center;"> <td style="border: 1px solid black;text-align: center;">
{{ isset($item['start_lat']) && isset($item['start_lng']) ? $item['start_lat'] . ' ' . $item['start_lng'] : '-' }} {{ isset($item['start_lat']) && isset($item['start_lng']) ? $item['start_lat'] . ' ' . $item['start_lng'] : '-' }}
</td> </td>
<td style="border: 1px solid black;text-align: center;"> <td style="border: 1px solid black;text-align: center;">
{{ isset($item['end_lat']) && isset($item['end_lng']) ? $item['end_lat'] . ' ' . $item['end_lng'] : '-' }} {{ isset($item['end_lat']) && isset($item['end_lng']) ? $item['end_lat'] . ' ' . $item['end_lng'] : '-' }}
</td> </td>
<td style="border: 1px solid black;text-align: center;">{{ $item['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['activity_date_time'] ? verta($item['activity_date_time'])->format('Y/n/j H:i:s') : '-' }} <td style="border: 1px solid black;text-align: center;">{{ $item['activity_date_time'] ? verta($item['activity_date_time'])->format('Y/n/j H:i:s') : '-' }}
<td style="border: 1px solid black;text-align: center;">{{ $item['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }}</td>
</td> </td>
<td style="border: 1px solid black;text-align: center;">{{ $item['status_fa'] ?? '-' }}</td> <td style="border: 1px solid black;text-align: center;">{{ $item['status_fa'] ?? '-' }}</td>
<td style="border: 1px solid black;text-align: center;"> <td style="border: 1px solid black;text-align: center;">{{ $item['supervisor_description'] ?? '-' }}</td>
{{ $item['supervisor_description'] ?? '-' }}</td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>