reform the blade files

This commit is contained in:
2025-02-05 14:08:23 +03:30
parent 943b2dbb93
commit ed832dab70
6 changed files with 51 additions and 33 deletions

View File

@@ -13,16 +13,18 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class CountryActivityPerSubItemReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings class CountryActivityPerSubItemReport 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;
return view('v3.Reports.RoadItems.CountryActivityPerSubItem', [ return view('v3.Reports.RoadItems.CountryActivityPerSubItem', [
'activities' => $activities["data"], 'data' => $data['activities']['data'],
'fromDate' => $activities["fromDate"], 'provinces' => $data['provinces'],
'toDate' => $activities["toDate"], 'subItems' => $data['subItems'],
'fromDate' => $data['activities']['fromDate'],
'toDate' => $data['activities']['toDate']
]); ]);
} }

View File

@@ -18,16 +18,18 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class ProvinceActivityPerSubItemReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings class ProvinceActivityPerSubItemReport 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;
return view('v3.Reports.RoadItems.ProvinceActivityPerSubItem', [ return view('v3.Reports.RoadItems.ProvinceActivityPerSubItem', [
'activities' => $activities["data"], 'data' => $data['activities']['data'],
'fromDate' => $activities["fromDate"], 'edarateShahri' => $data['edarateShahri'],
'toDate' => $activities["toDate"], 'subItems' => $data['subItems'],
'fromDate' => $data['activities']['fromDate'],
'toDate' => $data['activities']['toDate']
]); ]);
} }

View File

@@ -143,7 +143,15 @@ class RoadItemsReportController extends Controller
auth()->user()->addActivityComplete(1034); auth()->user()->addActivityComplete(1034);
$name = "گزارش کشوری از فعالیت روزانه و جاری - جدول 2 " . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = "گزارش کشوری از فعالیت روزانه و جاری - جدول 2 " . verta()->now()->format('Y-m-d H-i') . '.xlsx';
$activities = $roadItemReportService->countryActivityPerSubItem($request); $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 public function provinceActivityExcelPerSubItem(Request $request, RoadItemReportService $roadItemReportService): BinaryFileResponse
@@ -151,6 +159,14 @@ class RoadItemsReportController extends Controller
auth()->user()->addActivityComplete(1034); auth()->user()->addActivityComplete(1034);
$activities = $roadItemReportService->provinceActivityPerSubItem($request); $activities = $roadItemReportService->provinceActivityPerSubItem($request);
$name = "گزارش استانی از فعالیت روزانه و جاری - جدول 2 " . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $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);
} }
} }

View File

@@ -37,38 +37,36 @@
</tr> </tr>
<tr> <tr>
@foreach($details as $detail) @foreach($subItems as $subItem)
<th colspan="2" style="border:1px solid black;text-align:center;background-color:#C4D79B">{{ $detail->sub_item_str }}</th> <th colspan="2" style="border:1px solid black;text-align:center;background-color:#C4D79B">{{ $subItem->sub_item_str }}</th>
@endforeach @endforeach
</tr> </tr>
<tr> <tr>
@foreach($details as $detail) @foreach($subItems as $subItem)
<th style="background-color: #FDE9D9;border: 1px solid black;text-align: center;">تعداد</th> <th style="background-color: #FDE9D9;border: 1px solid black;text-align: center;">تعداد</th>
<th style="background-color: #FDE9D9;border: 1px solid black;text-align: center;">مجموع ({{ $detail->sub_item_unit }})</th> <th style="background-color: #FDE9D9;border: 1px solid black;text-align: center;">مجموع ({{ $subItem->sub_item_unit }})</th>
@endforeach @endforeach
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach ($activities as $activity) @foreach ($provinces as $province)
<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>
@foreach ($details as $index => $detail) @foreach ($subItems as $subItem)
<td style="border: 1px solid black;text-align: center;"> <td style="border: 1px solid black;text-align: center;">
{{ $activity->{'Count_' . ($index)} ?? '-' }} {{ $province->{'Count_' . ($index)} ?? '-' }}
</td> </td>
<td style="border: 1px solid black;text-align: center;"> <td style="border: 1px solid black;text-align: center;">
{{ isset($activity->{'Sum_' . ($index)}) ? round($activity->{'Sum_' . ($index)}, 1) : '-' }} {{ isset($province->{'Sum_' . ($index)}) ? round($province->{'Sum_' . ($index)}, 1) : '-' }}
</td> </td>
@endforeach @endforeach
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</body> </body>
</html> </html>

View File

@@ -72,12 +72,12 @@
@foreach($edarateShahri as $edareShahri) @foreach($edarateShahri as $edareShahri)
@php @php
// محاسبه مجموع مقدار s برای این استان // محاسبه مجموع مقدار s برای این استان
$totalForProvince = collect($data)->where('p', $edareShahri['id'])->sum('s'); $totalForProvince = collect($data)->where('c', $edareShahri['id'])->sum('s');
// محاسبه مجموع مقدار s برای هر آیتم در این استان // محاسبه مجموع مقدار s برای هر آیتم در این استان
$itemTotalsForProvince = []; $itemTotalsForProvince = [];
foreach ($items as $item) { 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 @endphp
<tr> <tr>

View File

@@ -37,31 +37,31 @@
</tr> </tr>
<tr> <tr>
@foreach($details as $detail) @foreach($subItems as $subItem)
<th colspan="2" style="border:1px solid black;text-align:center;background-color:#C4D79B">{{ $detail->sub_item_str }}</th> <th colspan="2" style="border:1px solid black;text-align:center;background-color:#C4D79B">{{ $subItem->sub_item_str }}</th>
@endforeach @endforeach
</tr> </tr>
<tr> <tr>
@foreach($details as $detail) @foreach($subItems as $subItem)
<th style="background-color: #FDE9D9;border: 1px solid black;text-align: center;">تعداد</th> <th style="background-color: #FDE9D9;border: 1px solid black;text-align: center;">تعداد</th>
<th style="background-color: #FDE9D9;border: 1px solid black;text-align: center;">مجموع ({{ $detail->sub_item_unit }})</th> <th style="background-color: #FDE9D9;border: 1px solid black;text-align: center;">مجموع ({{ $subItem->sub_item_unit }})</th>
@endforeach @endforeach
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach ($activities as $activity) @foreach ($edarateShahri as $edareShahri)
<tr> <tr>
<td style="border: 1px solid black;text-align: center;">{{ $activity->city_fa }}</td> <td style="border: 1px solid black;text-align: center;">{{ $activity->city_fa }}</td>
@foreach ($details as $index => $detail) @foreach ($subItems as $subItem)
<td style="border: 1px solid black;text-align: center;"> <td style="border: 1px solid black;text-align: center;">
{{ $activity->{'Count_' . ($index)} ?? '-' }} {{ $edareShahri->{'Count_' . ($subItem)} ?? '-' }}
</td> </td>
<td style="border: 1px solid black;text-align: center;"> <td style="border: 1px solid black;text-align: center;">
{{ isset($activity->{'Sum_' . ($index)}) ? round($activity->{'Sum_' . ($index)}, 1) : '-' }} {{ isset($edareShahri->{'Sum_' . ($subItem)}) ? round($edareShahri->{'Sum_' . ($subItem)}, 1) : '-' }}
</td> </td>
@endforeach @endforeach
</tr> </tr>