From 943b2dbb93ee50236e19895499aae0ef2542e63b Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 5 Feb 2025 13:36:40 +0330 Subject: [PATCH] refactor blades --- .../CountryActivityPerItemReport.php | 14 +-- .../OperatorCartableReport.php | 3 +- .../ProvinceActivityPerItemReport.php | 14 +-- .../SupervisorCartableReport.php | 3 +- .../Reports/RoadItemsReportController.php | 12 +- .../CountryActivityPerItem.blade.php | 113 +++++++----------- .../OperatorCartableReport.blade.php | 55 ++++++--- .../ProvinceActivityPerItem.blade.php | 110 +++++++---------- .../SupervisorCartableReport.blade.php | 36 +++--- 9 files changed, 170 insertions(+), 190 deletions(-) diff --git a/app/Exports/V3/RoadItemsProjects/CountryActivityPerItemReport.php b/app/Exports/V3/RoadItemsProjects/CountryActivityPerItemReport.php index d85f83f3..60261c20 100644 --- a/app/Exports/V3/RoadItemsProjects/CountryActivityPerItemReport.php +++ b/app/Exports/V3/RoadItemsProjects/CountryActivityPerItemReport.php @@ -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'] ]); } diff --git a/app/Exports/V3/RoadItemsProjects/OperatorCartableReport.php b/app/Exports/V3/RoadItemsProjects/OperatorCartableReport.php index 43583ba5..ea736dd2 100644 --- a/app/Exports/V3/RoadItemsProjects/OperatorCartableReport.php +++ b/app/Exports/V3/RoadItemsProjects/OperatorCartableReport.php @@ -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 { diff --git a/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerItemReport.php b/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerItemReport.php index 15b1a1c0..9b7b33d0 100644 --- a/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerItemReport.php +++ b/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerItemReport.php @@ -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'] ]); } diff --git a/app/Exports/V3/RoadItemsProjects/SupervisorCartableReport.php b/app/Exports/V3/RoadItemsProjects/SupervisorCartableReport.php index 4aa03957..d559cf50 100644 --- a/app/Exports/V3/RoadItemsProjects/SupervisorCartableReport.php +++ b/app/Exports/V3/RoadItemsProjects/SupervisorCartableReport.php @@ -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 { diff --git a/app/Http/Controllers/V3/Dashboard/Reports/RoadItemsReportController.php b/app/Http/Controllers/V3/Dashboard/Reports/RoadItemsReportController.php index 3196ff73..11174fac 100644 --- a/app/Http/Controllers/V3/Dashboard/Reports/RoadItemsReportController.php +++ b/app/Http/Controllers/V3/Dashboard/Reports/RoadItemsReportController.php @@ -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 diff --git a/resources/views/v3/Reports/RoadItems/CountryActivityPerItem.blade.php b/resources/views/v3/Reports/RoadItems/CountryActivityPerItem.blade.php index cc387f3d..8185757e 100644 --- a/resources/views/v3/Reports/RoadItems/CountryActivityPerItem.blade.php +++ b/resources/views/v3/Reports/RoadItems/CountryActivityPerItem.blade.php @@ -14,19 +14,19 @@ - - - - - - + + + - - - - - - - - - - - - - - - - + @foreach($items as $item) + + @endforeach - - - - - - - - - - - - - - - - - - - - + @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 + + {{-- ردیف کل کشور --}} + + + + @foreach($items as $item) + + @endforeach + + + {{-- ردیف‌های مربوط به هر استان --}} + @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 - - - - - - - - - - - - - - - - - - + + + @foreach($items as $item) + + @endforeach @endforeach - -
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
گزارش فعالیت روزانه و جاری راهداری از تاریخ {{ verta($fromDate)->format('Y/n/j') }} @@ -38,83 +38,60 @@
اداره کل - فعالیت های - جاری و روزانه راهداری - کلادارهمجموعایتم های فعالیت روزانه
مرمت رویهپاکسازیعلائمحفاظروشناییخط کشیرنگ آمیزیشستشوایمن سازیحریمپلتونل و گالریعملیات زمستانیماشین آلاتراهدارخانهموارد اضطراری{{ $item['item_str'] }}
کل کشور{{ $countryCount['totalMarematRooyeCount'] }}{{ $countryCount['totalPaksaziCount'] }}{{ $countryCount['totalAlaemCount'] }}{{ $countryCount['totalHefazCount'] }}{{ $countryCount['totalRoshanayiCount'] }}{{ $countryCount['totalKhatkeshiCount'] }}{{ $countryCount['totalRangamiziCount'] }}{{ $countryCount['totalWashingCount'] }}{{ $countryCount['totalImenSaziCount'] }}{{ $countryCount['totalHarimCount'] }}{{ $countryCount['totalPolCount'] }}{{ $countryCount['totalToonelCount'] }}{{ $countryCount['totalAmaliatZemestaniCount'] }}{{ $countryCount['totalMashinAlatCount'] }}{{ $countryCount['totalTollhouseCount'] }}{{ $countryCount['totalEmergencyCount'] }}{{ $countryCount['totalCountryCount'] }}
کل کشور{{ $totalForCountry }}{{ $itemTotalsForCountry[$item['item']] ?? '-' }}
{{ $activity->province_fa }}{{ $activity->MarematRooyeCount }}{{ $activity->PaksaziCount }}{{ $activity->AlaemCount }}{{ $activity->HefazCount }}{{ $activity->RoshanayiCount }}{{ $activity->KhatkeshiCount }}{{ $activity->RangamiziCount }}{{ $activity->WashingCount }}{{ $activity->ImenSaziCount }}{{ $activity->HarimCount }}{{ $activity->PolCount }}{{ $activity->ToonelCount }}{{ $activity->AmaliatZemestaniCount }}{{ $activity->MashinAlatCount }}{{ $activity->TollhouseCount }}{{ $activity->EmergencyCount }}{{ $activity->TotalProvinceCount }}{{ $province['name_fa'] }}{{ $totalForProvince }}{{ $itemTotalsForProvince[$item['item']] ?? '-' }}
- - diff --git a/resources/views/v3/Reports/RoadItems/OperatorCartableReport.blade.php b/resources/views/v3/Reports/RoadItems/OperatorCartableReport.blade.php index a020d289..8c45948a 100644 --- a/resources/views/v3/Reports/RoadItems/OperatorCartableReport.blade.php +++ b/resources/views/v3/Reports/RoadItems/OperatorCartableReport.blade.php @@ -21,56 +21,64 @@ - - - + + + + + اقدام انجام شده - + + - + تاریخ ثبت + @@ -81,15 +89,24 @@ @foreach ($data as $item) + + + + + + + - - - diff --git a/resources/views/v3/Reports/RoadItems/ProvinceActivityPerItem.blade.php b/resources/views/v3/Reports/RoadItems/ProvinceActivityPerItem.blade.php index 55a708ee..2a10a5f4 100644 --- a/resources/views/v3/Reports/RoadItems/ProvinceActivityPerItem.blade.php +++ b/resources/views/v3/Reports/RoadItems/ProvinceActivityPerItem.blade.php @@ -14,19 +14,19 @@
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
- گزارش کارتابل عملیات فعالیت های روزانه و جاری از تاریخ - {{ verta($fromDate)->format('Y/n/j') }} - تا - تاریخ - {{ verta($toDate)->format('Y/n/j') }} - + گزارش کارتابل عملیات فعالیت های روزانه و جاری
کد یکتا + استان + ادارهآیتم فعالیت - موضوع مشاهده شده مقدار + کد خودرو(ها) + کد راهدار(ها) نقطه شروع نقطه پایان - تاریخ ثبت تاریخ فعالیت - وضعیت + وضعیت نظارت توضیحات ناظر
{{ $item['id'] ?? '-' }}{{ $item['province_fa'] ?? '-' }}{{ $item['edarat_name'] ?? '-' }}{{ $item['item_fa'] ?? '-' }} {{ $item['sub_item_fa'] ?? '-' }} - {{ $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'] . '(-)') : '-' }} + {{ $item['cmmsMachines'] != null ? $item['cmmsMachines']->pluck('machine_code')->implode(', ') : '-' }}{{ $item['rahdaran'] != null ? $item['rahdaran']->pluck('code')->implode(', ') : '-' }} + {{ isset($item['start_lat']) && isset($item['start_lng']) ? $item['start_lat'] . ' ' . $item['start_lng'] : '-' }} + + {{ isset($item['end_lat']) && isset($item['end_lng']) ? $item['end_lat'] . ' ' . $item['end_lng'] : '-' }} {{ isset($item['start_lat']) && isset($item['start_lng']) ? $item['start_lat'] . ' ' . $item['start_lng'] : '-' }}{{ isset($item['end_lat']) && isset($item['end_lng']) ? $item['end_lat'] . ' ' . $item['end_lng'] : '-' }}{{ $item['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }} {{ $item['activity_date_time'] ? verta($item['activity_date_time'])->format('Y/n/j H:i:s') : '-' }} + {{ $item['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }} {{ $item['status_fa'] ?? '-' }} {{ $item['supervisor_description'] ?? '-' }}
- - - - - - + + + - - - - - - - - - - - - - - - - + @foreach($items as $item) + + @endforeach - - - - - - - - - - - - - - - - - - - - + @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 + + + + + @foreach($items as $item) + + @endforeach + + + {{-- ردیف‌های مربوط به هر استان --}} + @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 - - - - - - - - - - - - - - - - - - + + + @foreach($items as $item) + + @endforeach @endforeach - -
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
گزارش فعالیت روزانه و جاری راهداری از تاریخ {{ verta($fromDate)->format('Y/n/j') }} @@ -38,83 +38,57 @@
اداره کل - فعالیت های - جاری و روزانه راهداری - کلادارهمجموعایتم های فعالیت روزانه
مرمت رویهپاکسازیعلائمحفاظروشناییخط کشیرنگ آمیزیشستشوایمن سازیحریمپلتونل و گالریعملیات زمستانیماشین آلاتراهدارخانهموارد اضطراری{{ $item['item_str'] }}
کل استان{{ $provinceCount['totalMarematRooyeCount'] }}{{ $provinceCount['totalPaksaziCount'] }}{{ $provinceCount['totalAlaemCount'] }}{{ $provinceCount['totalHefazCount'] }}{{ $provinceCount['totalRoshanayiCount'] }}{{ $provinceCount['totalKhatkeshiCount'] }}{{ $provinceCount['totalRangamiziCount'] }}{{ $provinceCount['totalWashingCount'] }}{{ $provinceCount['totalImenSaziCount'] }}{{ $provinceCount['totalHarimCount'] }}{{ $provinceCount['totalPolCount'] }}{{ $provinceCount['totalToonelCount'] }}{{ $provinceCount['totalAmaliatZemestaniCount'] }}{{ $provinceCount['totalMashinAlatCount'] }}{{ $provinceCount['totalTollhouseCount'] }}{{ $provinceCount['totalEmergencyCount'] }}{{ $provinceCount['TotalProvinceCount'] }}
کل استان{{ $totalForProvince }}{{ $itemTotalsForProvince[$item['item']] ?? '-' }}
{{ $activity->edarat_name }}{{ $activity->MarematRooyeCount }}{{ $activity->PaksaziCount }}{{ $activity->AlaemCount }}{{ $activity->HefazCount }}{{ $activity->RoshanayiCount }}{{ $activity->KhatkeshiCount }}{{ $activity->RangamiziCount }}{{ $activity->WashingCount }}{{ $activity->ImenSaziCount }}{{ $activity->HarimCount }}{{ $activity->PolCount }}{{ $activity->ToonelCount }}{{ $activity->AmaliatZemestaniCount }}{{ $activity->MashinAlatCount }}{{ $activity->TollhouseCount }}{{ $activity->EmergencyCount }}{{ $activity->TotalCityCount }}{{ $edareShahri['name_fa'] }}{{ $totalForProvince }}{{ $itemTotalsForProvince[$item['item']] ?? '-' }}
- - diff --git a/resources/views/v3/Reports/RoadItems/SupervisorCartableReport.blade.php b/resources/views/v3/Reports/RoadItems/SupervisorCartableReport.blade.php index 4822186c..c92fc3ab 100644 --- a/resources/views/v3/Reports/RoadItems/SupervisorCartableReport.blade.php +++ b/resources/views/v3/Reports/RoadItems/SupervisorCartableReport.blade.php @@ -21,24 +21,20 @@ - - - @@ -58,26 +54,31 @@ فعالیت + اقدام انجام شده - + + - + تاریخ ثبت + @@ -96,18 +97,19 @@ + + - - + @endforeach
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
- گزارش کارتابل ارزیابی فعالیت های روزانه و جاری از تاریخ - {{ verta($fromDate)->format('Y/n/j') }} - تا - تاریخ - {{ verta($toDate)->format('Y/n/j') }} + گزارش کارتابل ارزیابی فعالیت های روزانه و جاری
- موضوع مشاهده شده مقدار + کد خودرو(ها) + کد راهدار(ها) نقطه شروع نقطه پایان - تاریخ ثبت تاریخ فعالیت - وضعیت + وضعیت نظارت توضیحات ناظر {{ $item['sub_item_data'] ? ($item['unit_fa'] ? $item['sub_item_data'] . '(' . $item['unit_fa'] . ')' : $item['sub_item_data'] . '(-)') : '-' }} {{ $item['cmmsMachines'] != null ? $item['cmmsMachines']->pluck('machine_code')->implode(', ') : '-' }}{{ $item['rahdaran'] != null ? $item['rahdaran']->pluck('code')->implode(', ') : '-' }} {{ isset($item['start_lat']) && isset($item['start_lng']) ? $item['start_lat'] . ' ' . $item['start_lng'] : '-' }} {{ isset($item['end_lat']) && isset($item['end_lng']) ? $item['end_lat'] . ' ' . $item['end_lng'] : '-' }} {{ $item['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }} {{ $item['activity_date_time'] ? verta($item['activity_date_time'])->format('Y/n/j H:i:s') : '-' }} + {{ $item['created_at'] ? verta($item['created_at'])->format('Y/n/j H:i:s') : '-' }} {{ $item['status_fa'] ?? '-' }} - {{ $item['supervisor_description'] ?? '-' }}{{ $item['supervisor_description'] ?? '-' }}