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
{
public function __construct(private ?array $activities){}
public function __construct(private ?array $data){}
public function view(): View
{
$activities = $this->activities;
$fromDate = $activities['fromDate'] ?? '2021-03-21 00:00:00';
$toDate = $activities['toDate'] ?? \Carbon\Carbon::now();
$data = $this->data;
return view('v3.Reports.RoadItems.CountryActivityPerItem', [
'activities' => $activities['data'],
'fromDate' => $fromDate,
'toDate' => $toDate
'data' => $data['activities']['data'],
'provinces' => $data['provinces'],
'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 Carbon\Carbon;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
@@ -17,7 +18,7 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class OperatorCartableReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings
{
public function __construct(private ?string $data){}
public function __construct(private ?Collection $data){}
public function view(): View
{

View File

@@ -17,18 +17,18 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class ProvinceActivityPerItemReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings
{
public function __construct(private ?array $activities){}
public function __construct(private ?array $data){}
public function view(): View
{
$activities = $this->activities;
$fromDate = $activities['fromDate'] ?? '2021-03-21 00:00:00';
$toDate = $activities['toDate'] ?? \Carbon\Carbon::now();
$data = $this->data;
return view('v3.Reports.RoadItems.ProvinceActivityPerItem', [
'activitis' => $activities['data'],
'fromDate' => $fromDate,
'toDate' => $toDate
'data' => $data['activities']['data'],
'edarateShahri' => $data['edarateShahri'],
'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 Carbon\Carbon;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
@@ -17,7 +18,7 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class SupervisorCartableReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings
{
public function __construct(private ?string $data){}
public function __construct(private ?Collection $data){}
public function view(): View
{

View File

@@ -119,7 +119,11 @@ class RoadItemsReportController extends Controller
auth()->user()->addActivityComplete(1034);
$name = 'گزارش کشوری از فعالیت روزانه و جاری - جدول 1 ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
$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
@@ -127,7 +131,11 @@ class RoadItemsReportController extends Controller
auth()->user()->addActivityComplete(1034);
$name = 'گزارش استانی از فعالیت روزانه و جاری - جدول 1 ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
$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

View File

@@ -14,19 +14,19 @@
<table>
<thead>
<tr>
<th colspan="18"
<th colspan="20"
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="18"
<th colspan="20"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th>
</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;">
گزارش فعالیت روزانه و جاری راهداری از تاریخ
{{ verta($fromDate)->format('Y/n/j') }}
@@ -38,83 +38,60 @@
</tr>
<tr>
<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>
<th rowspan="2" 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: #EBF1DE;">اداره</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">مجموع</th>
<th colspan="18" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">ایتم های فعالیت روزانه</th>
</tr>
<tr>
<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>
<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>
@foreach($items as $item)
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">{{ $item['item_str'] }}</th>
@endforeach
</tr>
</thead>
<tbody>
<tr>
<td style="border:1px solid black;text-align: center;">کل کشور</td>
<td style="border:1px solid black;text-align: center;">{{ $countryCount['totalMarematRooyeCount'] }}</td>
<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>
@php
// محاسبه مجموع مقدار s برای کل کشور
$totalForCountry = collect($data)->where('p', -1)->sum('s');
@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>
<td style="border:1px solid black;text-align: center;">{{ $activity->province_fa }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->MarematRooyeCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->PaksaziCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->AlaemCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->HefazCount }}</td>
<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>
<td style="border:1px solid black;text-align: center;">{{ $province['name_fa'] }}</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>
@endforeach
</tbody>
</table>
</body>
</html>

View File

@@ -21,56 +21,64 @@
<table>
<thead>
<tr>
<th colspan="9"
<th colspan="14"
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="9"
<th colspan="14"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th>
</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;">
گزارش کارتابل عملیات فعالیت های روزانه و جاری از تاریخ
{{ verta($fromDate)->format('Y/n/j') }}
تا
تاریخ
{{ verta($toDate)->format('Y/n/j') }}
گزارش کارتابل عملیات فعالیت های روزانه و جاری
</th>
</tr>
<tr>
<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"
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"
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"
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"
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"
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>
<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>
@@ -81,15 +89,24 @@
@foreach ($data as $item)
<tr>
<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['sub_item_fa'] ?? '-' }}</td>
<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 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['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }}</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['supervisor_description'] ?? '-' }}</td>

View File

@@ -14,19 +14,19 @@
<table>
<thead>
<tr>
<th colspan="18"
<th colspan="20"
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="18"
<th colspan="20"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th>
</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;">
گزارش فعالیت روزانه و جاری راهداری از تاریخ
{{ verta($fromDate)->format('Y/n/j') }}
@@ -38,83 +38,57 @@
</tr>
<tr>
<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>
<th rowspan="2" 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: #EBF1DE;">اداره</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">مجموع</th>
<th colspan="18" style="border:1px solid black;text-align:center;background-color: #EBF1DE;">ایتم های فعالیت روزانه</th>
</tr>
<tr>
<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>
<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>
@foreach($items as $item)
<th style="border:1px solid black;text-align:center;background-color: #C4D79B;">{{ $item['item_str'] }}</th>
@endforeach
</tr>
</thead>
<tbody>
<tr>
<td style="border:1px solid black;text-align: center;">کل استان</td>
<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>
@php
$totalForProvince = collect($data)->where('c', -1)->sum('s');
@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>
<td style="border:1px solid black;text-align: center;">{{ $activity->edarat_name }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->MarematRooyeCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->PaksaziCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->AlaemCount }}</td>
<td style="border:1px solid black;text-align: center;">{{ $activity->HefazCount }}</td>
<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>
<td style="border:1px solid black;text-align: center;">{{ $edareShahri['name_fa'] }}</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>
@endforeach
</tbody>
</table>
</body>
</html>

View File

@@ -21,24 +21,20 @@
<table>
<thead>
<tr>
<th colspan="9"
<th colspan="14"
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="9"
<th colspan="14"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th>
</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;">
گزارش کارتابل ارزیابی فعالیت های روزانه و جاری از تاریخ
{{ verta($fromDate)->format('Y/n/j') }}
تا
تاریخ
{{ verta($toDate)->format('Y/n/j') }}
گزارش کارتابل ارزیابی فعالیت های روزانه و جاری
</th>
</tr>
<tr>
@@ -58,26 +54,31 @@
فعالیت</th>
<th rowspan="1"
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"
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"
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"
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>
<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>
@@ -96,18 +97,19 @@
<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'] . '(-)') : '-' }}
</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 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['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }}</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['supervisor_description'] ?? '-' }}</td>
<td style="border: 1px solid black;text-align: center;">{{ $item['supervisor_description'] ?? '-' }}</td>
</tr>
@endforeach
</tbody>