diff --git a/app/Exports/V3/RoadItemsProjects/CountryActivityPerSubItemReport.php b/app/Exports/V3/RoadItemsProjects/CountryActivityPerSubItemReport.php index da5497e2..7e383bdf 100644 --- a/app/Exports/V3/RoadItemsProjects/CountryActivityPerSubItemReport.php +++ b/app/Exports/V3/RoadItemsProjects/CountryActivityPerSubItemReport.php @@ -13,16 +13,18 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing; class CountryActivityPerSubItemReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings { - public function __construct(private array $activities){} + public function __construct(private array $data){} public function view(): View { - $activities = $this->activities; + $data = $this->data; return view('v3.Reports.RoadItems.CountryActivityPerSubItem', [ - 'activities' => $activities["data"], - 'fromDate' => $activities["fromDate"], - 'toDate' => $activities["toDate"], + 'data' => $data['activities']['data'], + 'provinces' => $data['provinces'], + 'subItems' => $data['subItems'], + 'fromDate' => $data['activities']['fromDate'], + 'toDate' => $data['activities']['toDate'] ]); } diff --git a/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerSubItemReport.php b/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerSubItemReport.php index cf558cab..32faa0de 100644 --- a/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerSubItemReport.php +++ b/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerSubItemReport.php @@ -18,16 +18,18 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing; class ProvinceActivityPerSubItemReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings { - public function __construct(private array $activities){} + public function __construct(private array $data){} public function view(): View { - $activities = $this->activities; + $data = $this->data; return view('v3.Reports.RoadItems.ProvinceActivityPerSubItem', [ - 'activities' => $activities["data"], - 'fromDate' => $activities["fromDate"], - 'toDate' => $activities["toDate"], + 'data' => $data['activities']['data'], + 'edarateShahri' => $data['edarateShahri'], + 'subItems' => $data['subItems'], + 'fromDate' => $data['activities']['fromDate'], + 'toDate' => $data['activities']['toDate'] ]); } diff --git a/app/Http/Controllers/V3/Dashboard/Reports/RoadItemsReportController.php b/app/Http/Controllers/V3/Dashboard/Reports/RoadItemsReportController.php index 11174fac..81a8425d 100644 --- a/app/Http/Controllers/V3/Dashboard/Reports/RoadItemsReportController.php +++ b/app/Http/Controllers/V3/Dashboard/Reports/RoadItemsReportController.php @@ -143,7 +143,15 @@ class RoadItemsReportController extends Controller auth()->user()->addActivityComplete(1034); $name = "گزارش کشوری از فعالیت روزانه و جاری - جدول 2 " . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $activities = $roadItemReportService->countryActivityPerSubItem($request); - return Excel::download(new CountryActivityPerSubItemReport($activities), $name); + $subItems = InfoItem::query() + ->where('item', $request->item) + ->get(['id', 'item', 'item_str', 'sub_item_str', 'sub_item_unit', 'sub_item']); + + return Excel::download(new CountryActivityPerSubItemReport([ + 'activities' => $activities, + 'provinces' => Province::all(['id', 'name_fa']), + 'subItems' => $subItems + ]), $name); } public function provinceActivityExcelPerSubItem(Request $request, RoadItemReportService $roadItemReportService): BinaryFileResponse @@ -151,6 +159,14 @@ class RoadItemsReportController extends Controller auth()->user()->addActivityComplete(1034); $activities = $roadItemReportService->provinceActivityPerSubItem($request); $name = "گزارش استانی از فعالیت روزانه و جاری - جدول 2 " . verta()->now()->format('Y-m-d H-i') . '.xlsx'; - return Excel::download(new ProvinceActivityPerSubItemReport($activities), $name); + $subItems = InfoItem::query() + ->where('item', $request->item) + ->get(['id', 'item', 'item_str', 'sub_item_str', 'sub_item_unit', 'sub_item']); + + return Excel::download(new ProvinceActivityPerSubItemReport([ + 'activities' => $activities, + 'subItems' => $subItems, + 'edarateShahri' => EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']), + ]), $name); } } diff --git a/resources/views/v3/Reports/RoadItems/CountryActivityPerSubItem.blade.php b/resources/views/v3/Reports/RoadItems/CountryActivityPerSubItem.blade.php index 62d19ec5..00c574d0 100644 --- a/resources/views/v3/Reports/RoadItems/CountryActivityPerSubItem.blade.php +++ b/resources/views/v3/Reports/RoadItems/CountryActivityPerSubItem.blade.php @@ -37,38 +37,36 @@ - @foreach($details as $detail) - {{ $detail->sub_item_str }} + @foreach($subItems as $subItem) + {{ $subItem->sub_item_str }} @endforeach - @foreach($details as $detail) + @foreach($subItems as $subItem) تعداد - مجموع ({{ $detail->sub_item_unit }}) + مجموع ({{ $subItem->sub_item_unit }}) @endforeach - @foreach ($activities as $activity) + @foreach ($provinces as $province) - {{ $activity->province_fa }} + {{ $province['name_fa'] }} - @foreach ($details as $index => $detail) + @foreach ($subItems as $subItem) - {{ $activity->{'Count_' . ($index)} ?? '-' }} + {{ $province->{'Count_' . ($index)} ?? '-' }} - {{ isset($activity->{'Sum_' . ($index)}) ? round($activity->{'Sum_' . ($index)}, 1) : '-' }} + {{ isset($province->{'Sum_' . ($index)}) ? round($province->{'Sum_' . ($index)}, 1) : '-' }} @endforeach @endforeach - - \ No newline at end of file diff --git a/resources/views/v3/Reports/RoadItems/ProvinceActivityPerItem.blade.php b/resources/views/v3/Reports/RoadItems/ProvinceActivityPerItem.blade.php index 2a10a5f4..5b621aa5 100644 --- a/resources/views/v3/Reports/RoadItems/ProvinceActivityPerItem.blade.php +++ b/resources/views/v3/Reports/RoadItems/ProvinceActivityPerItem.blade.php @@ -72,12 +72,12 @@ @foreach($edarateShahri as $edareShahri) @php // محاسبه مجموع مقدار s برای این استان - $totalForProvince = collect($data)->where('p', $edareShahri['id'])->sum('s'); + $totalForProvince = collect($data)->where('c', $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'); + $itemTotalsForProvince[$item['item']] = collect($data)->where('c', $edareShahri['id'])->where('i', $item['item'])->sum('s'); } @endphp diff --git a/resources/views/v3/Reports/RoadItems/ProvinceActivityPerSubItem.blade.php b/resources/views/v3/Reports/RoadItems/ProvinceActivityPerSubItem.blade.php index 9ff1b3cf..656bf81c 100644 --- a/resources/views/v3/Reports/RoadItems/ProvinceActivityPerSubItem.blade.php +++ b/resources/views/v3/Reports/RoadItems/ProvinceActivityPerSubItem.blade.php @@ -37,31 +37,31 @@ - @foreach($details as $detail) - {{ $detail->sub_item_str }} + @foreach($subItems as $subItem) + {{ $subItem->sub_item_str }} @endforeach - @foreach($details as $detail) + @foreach($subItems as $subItem) تعداد - مجموع ({{ $detail->sub_item_unit }}) + مجموع ({{ $subItem->sub_item_unit }}) @endforeach - @foreach ($activities as $activity) + @foreach ($edarateShahri as $edareShahri) {{ $activity->city_fa }} - @foreach ($details as $index => $detail) + @foreach ($subItems as $subItem) - {{ $activity->{'Count_' . ($index)} ?? '-' }} + {{ $edareShahri->{'Count_' . ($subItem)} ?? '-' }} - {{ isset($activity->{'Sum_' . ($index)}) ? round($activity->{'Sum_' . ($index)}, 1) : '-' }} + {{ isset($edareShahri->{'Sum_' . ($subItem)}) ? round($edareShahri->{'Sum_' . ($subItem)}, 1) : '-' }} @endforeach