Merge branch 'feature/MapScattering' into 'develop'
Feature/map scattering See merge request witelgroup/rms_v2!65
This commit is contained in:
@@ -21,9 +21,10 @@ class CountryActivity implements FromView, WithEvents, ShouldAutoSize, WithDrawi
|
||||
$activities = $this->activities;
|
||||
|
||||
return view('v3.Reports.RoadPatrols.CountryActivity', [
|
||||
'activities' => $activities["activities"],
|
||||
'fromDate' => $activities["fromDate"],
|
||||
'toDate' => $activities["toDate"]
|
||||
'activities' => $activities["activities"]['data'],
|
||||
'provinces' => $activities["provinces"],
|
||||
'fromDate' => $activities["activities"]["fromDate"],
|
||||
'toDate' => $activities["activities"]["toDate"]
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Exports\V3\RoadPatrols;
|
||||
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Maatwebsite\Excel\Concerns\FromView;
|
||||
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
||||
use Maatwebsite\Excel\Concerns\WithDrawings;
|
||||
@@ -14,7 +15,7 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
|
||||
class OperatorCartableReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings
|
||||
|
||||
{
|
||||
public function __construct(private array $data){}
|
||||
public function __construct(private Collection $data){}
|
||||
|
||||
public function view(): View
|
||||
{
|
||||
@@ -62,7 +63,7 @@ class OperatorCartableReport implements FromView, WithEvents, ShouldAutoSize, Wi
|
||||
$drawing2->setHeight(50);
|
||||
$drawing2->setOffsetX(5);
|
||||
$drawing2->setOffsetY(5);
|
||||
$drawing2->setCoordinates('q1');
|
||||
$drawing2->setCoordinates('i1');
|
||||
return [$drawing, $drawing2];
|
||||
}
|
||||
}
|
||||
@@ -21,9 +21,10 @@ class ProvinceActivity implements FromView, WithEvents, ShouldAutoSize, WithDraw
|
||||
$activities = $this->activities;
|
||||
|
||||
return view('v3.Reports.RoadPatrols.ProvinceActivity', [
|
||||
'activities' => $activities["activities"],
|
||||
'fromDate' => $activities["fromDate"],
|
||||
'toDate' => $activities["toDate"]
|
||||
'activities' => $activities["activities"]['data'],
|
||||
'edarateShahri' => $activities["edarateShahri"],
|
||||
'fromDate' => $activities["activities"]["fromDate"],
|
||||
'toDate' => $activities["activities"]["toDate"]
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Exports\V3\RoadPatrols;
|
||||
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Maatwebsite\Excel\Concerns\FromView;
|
||||
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
||||
use Maatwebsite\Excel\Concerns\WithDrawings;
|
||||
@@ -14,7 +15,7 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
|
||||
class SupervisorCartableReport implements FromView, WithEvents, ShouldAutoSize, WithDrawings
|
||||
|
||||
{
|
||||
public function __construct(private array $data){}
|
||||
public function __construct(private Collection $data){}
|
||||
|
||||
public function view(): View
|
||||
{
|
||||
@@ -62,7 +63,7 @@ class SupervisorCartableReport implements FromView, WithEvents, ShouldAutoSize,
|
||||
$drawing2->setHeight(50);
|
||||
$drawing2->setOffsetX(5);
|
||||
$drawing2->setOffsetY(5);
|
||||
$drawing2->setCoordinates('q1');
|
||||
$drawing2->setCoordinates('i1');
|
||||
return [$drawing, $drawing2];
|
||||
}
|
||||
}
|
||||
@@ -90,30 +90,6 @@ class RoadItemsReportController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function map(Request $request): JsonResponse
|
||||
{
|
||||
$provinceId = $request->province_id;
|
||||
$cityId = $request->city_id;
|
||||
$subId = $request->sub_id;
|
||||
$item = $request->item;
|
||||
$dateFrom = $request->date_from ? $request->date_from . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString();
|
||||
|
||||
$data = RoadItemsProject::query()
|
||||
->where('is_new', '=', 1)
|
||||
->when($provinceId, fn($query) => $query->where('province_id', '=', $provinceId))
|
||||
->when($cityId, fn($query) => $query->where('city_id', '=', $cityId))
|
||||
->when($subId, fn($query) => $query->where('sub_items', 'like', '%' . $subId . '%'))
|
||||
->when($item, fn($query) => $query->where('item', '=', $item))
|
||||
->when(!is_null($request->status), fn($query) => $query->where('status', '=', $request->status))
|
||||
->whereBetween('activity_date', [$dateFrom, $dateTo])
|
||||
->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
|
||||
->select('road_items_projects.id as i', 'start_lat as l', 'start_lng as g', 'status')
|
||||
->get();
|
||||
|
||||
return $this->successResponse($data);
|
||||
}
|
||||
|
||||
public function countryActivityExcelPerItem(Request $request, RoadItemReportService $roadItemReportService): BinaryFileResponse
|
||||
{
|
||||
auth()->user()->addActivityComplete(1034);
|
||||
@@ -169,4 +145,34 @@ class RoadItemsReportController extends Controller
|
||||
'edarateShahri' => EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']),
|
||||
]), $name);
|
||||
}
|
||||
|
||||
public function activitiesOnMap(Request $request): JsonResponse
|
||||
{
|
||||
$provinceId = $request->province_id;
|
||||
$cityId = $request->city_id;
|
||||
$subId = $request->sub_id;
|
||||
$item = $request->item;
|
||||
$status = $request->status;
|
||||
$dateFrom = $request->date_from ? $request->date_from . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString();
|
||||
|
||||
$data = RoadItemsProject::query()
|
||||
->where('is_new', '=', 1)
|
||||
->when($provinceId, fn($query, $provinceId) => $query->where('road_items_projects.province_id', '=', $provinceId))
|
||||
->when($cityId, fn($query, $cityId) => $query->where('road_items_projects.city_id', '=', $cityId))
|
||||
->when($subId, fn($query, $subId) => $query->where('sub_items', 'like', '%' . $subId . '%'))
|
||||
->when($item, fn($query, $item) => $query->where('item', '=', $item))
|
||||
->when(!is_null($status), fn($query, $status) => $query->where('status', '=', $status))
|
||||
->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
|
||||
->whereBetween('road_items_projects.activity_date', [$dateFrom, $dateTo])
|
||||
->select('road_items_projects.id as i', 'start_lat as l', 'start_lng as g', 'status')
|
||||
->get();
|
||||
|
||||
return $this->successResponse($data);
|
||||
}
|
||||
|
||||
public function showOnMap(RoadItemsProject $roadItemsProject): JsonResponse
|
||||
{
|
||||
return $this->successResponse($roadItemsProject->load(['files', 'rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,10 +21,7 @@ class RoadPatrolReportController extends Controller
|
||||
use ApiResponse;
|
||||
public function countryPatrolActivity(Request $request, RoadPatrolReportService $roadPatrolReportService): JsonResponse
|
||||
{
|
||||
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$toDate = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
|
||||
|
||||
$activities = $roadPatrolReportService->countryActivity($fromDate, $toDate);
|
||||
$activities = $roadPatrolReportService->countryActivity($request);
|
||||
|
||||
$provinces = Province::all(['id', 'name_fa']);
|
||||
|
||||
@@ -37,13 +34,10 @@ class RoadPatrolReportController extends Controller
|
||||
public function provincePatrolActivity(Request $request, RoadPatrolReportService $roadPatrolReportService): JsonResponse
|
||||
{
|
||||
$request->validate(["province_id" => "required",]);
|
||||
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$toDate = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
|
||||
$provinceId = $request->province_id;
|
||||
|
||||
$activities = $roadPatrolReportService->provinceActivity($fromDate, $toDate, $provinceId);
|
||||
$activities = $roadPatrolReportService->provinceActivity($request);
|
||||
|
||||
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $provinceId)->get(['id', 'name_fa']);
|
||||
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']);
|
||||
|
||||
return $this->successResponse([
|
||||
'activities' => $activities['data'],
|
||||
@@ -53,40 +47,49 @@ class RoadPatrolReportController extends Controller
|
||||
|
||||
public function countryActivityExcel(Request $request, RoadPatrolReportService $roadPatrolReportService): BinaryFileResponse
|
||||
{
|
||||
$activities = $roadPatrolReportService->countryActivity($request->from_date, $request->to_date);
|
||||
$activities = $roadPatrolReportService->countryActivity($request);
|
||||
$provinces = Province::all(['id', 'name_fa']);
|
||||
|
||||
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
|
||||
return Excel::download(new CountryActivity($activities), $name);
|
||||
return Excel::download(new CountryActivity([
|
||||
'activities' => $activities,
|
||||
'provinces' => $provinces,
|
||||
]), $name);
|
||||
}
|
||||
|
||||
public function provinceActivityExcel(Request $request, RoadPatrolReportService $roadPatrolReportService): BinaryFileResponse
|
||||
{
|
||||
$activities = $roadPatrolReportService->provinceActivity($request->from_date, $request->to_date, $request->province_id);
|
||||
$activities = $roadPatrolReportService->provinceActivity($request);
|
||||
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']);
|
||||
|
||||
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
|
||||
return Excel::download(new ProvinceActivity($activities), $name);
|
||||
return Excel::download(new ProvinceActivity([
|
||||
'activities' => $activities,
|
||||
'edarateShahri' => $edarateShahri,
|
||||
]), $name);
|
||||
}
|
||||
|
||||
public function activitiesOnMap(Request $request): JsonResponse
|
||||
{
|
||||
$date_from = $request->date_from ? $request->date_from .' 00:00:00' : Date('Y-m-d') .' 00:00:00';
|
||||
$date_to = $request->date_to ? $request->date_to.' 23:59:59' : (new \DateTime('tomorrow'))->format('Y-m-d').' 23:59:59';
|
||||
$date_from = $request->from_date ? $request->from_date .' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$date_to = $request->date_to ? $request->date_to.' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString();
|
||||
$provinceId = $request->province_id;
|
||||
$edareId = $request->edare_id;
|
||||
|
||||
$data = RoadPatrol::query()->when($request->province_id, function ($query, $province) {
|
||||
return $query->where('province_id', '=', $province);
|
||||
})
|
||||
->when($request->edare_id, function ($query, $edare_id) {
|
||||
return $query->where('edare_id', '=', $edare_id);
|
||||
})
|
||||
->whereBetween('created_at', [
|
||||
$date_from,
|
||||
$date_to,
|
||||
])
|
||||
$data = RoadPatrol::query()
|
||||
->when($provinceId, fn($query, $provinceId) => $query->where('province_id', '=', $provinceId))
|
||||
->when($edareId, fn($query, $edareId) => $query->where('edare_id', '=', $edareId))
|
||||
->whereBetween('created_at', [$date_from, $date_to])
|
||||
->select('id', 'start_lat', 'start_lon')
|
||||
->get();
|
||||
|
||||
return $this->successResponse($data);
|
||||
}
|
||||
|
||||
public function showOnMap(RoadPatrol $roadPatrol): JsonResponse
|
||||
{
|
||||
return $this->successResponse($roadPatrol->load(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,11 +2,8 @@
|
||||
|
||||
namespace App\Http\Controllers\V3\Dashboard;
|
||||
|
||||
use App\Exports\V2\RoadPatrol\OperatorCartableExport;
|
||||
use App\Exports\V2\RoadPatrol\SupervisorCartableExport;
|
||||
use App\Exports\V3\RoadPatrols\OperatorCartableReport;
|
||||
use App\Exports\V3\RoadPatrols\SupervisorCartableReport;
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Facades\Sms\Sms;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\V3\RoadPatrolProject\DeleteRequest;
|
||||
@@ -87,7 +84,7 @@ class RoadPatrolProjectController extends Controller
|
||||
{
|
||||
$name = 'گزارش از کارتابل ارزیابی گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx';
|
||||
$data = $roadPatrolReportService->supervisorCartableReport($request);
|
||||
return Excel::download(new SupervisorCartableReport($data), $name);
|
||||
return Excel::download(new SupervisorCartableReport($data['data']), $name);
|
||||
}
|
||||
|
||||
public function operatorIndex(Request $request, RoadPatrolReportService $roadPatrolReportService): JsonResponse
|
||||
@@ -284,8 +281,8 @@ class RoadPatrolProjectController extends Controller
|
||||
$status = $request->status;
|
||||
$rms_status = $request->rms_status;
|
||||
|
||||
if ($request->date_from && $request->date_to) {
|
||||
$date_from = $request->date_from.' 00:00:00';
|
||||
if ($request->from_date && $request->date_to) {
|
||||
$date_from = $request->from_date.' 00:00:00';
|
||||
$date_to = $request->date_to.' 23:59:59';
|
||||
} else {
|
||||
$date_from = Date('Y-m-d');
|
||||
@@ -324,6 +321,6 @@ class RoadPatrolProjectController extends Controller
|
||||
{
|
||||
$name = 'گزارش از کارتابل عملیات گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx';
|
||||
$data = $roadPatrolReportService->operatorCartableReport($request);
|
||||
return Excel::download(new OperatorCartableReport($data), $name);
|
||||
return Excel::download(new OperatorCartableReport($data['data']), $name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,8 +71,11 @@ class RoadPatrolReportService
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function countryActivity(string $fromDate, string $toDate): array
|
||||
public function countryActivity(Request $request): array
|
||||
{
|
||||
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$toDate = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
|
||||
|
||||
$activities = DB::select('SELECT
|
||||
"کشوری" as province_fa,
|
||||
-1 as province_id,
|
||||
@@ -124,8 +127,12 @@ class RoadPatrolReportService
|
||||
];
|
||||
}
|
||||
|
||||
public function provinceActivity(string $fromDate, string $toDate, int $provinceId): array
|
||||
public function provinceActivity(Request $request): array
|
||||
{
|
||||
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$toDate = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
|
||||
$provinceId = $request->province_id;
|
||||
|
||||
$activities = DB::select(
|
||||
'SELECT
|
||||
province_fa,
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<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: 13px;">
|
||||
گزارش کارتابل عملیات فعالیت های روزانه و جاری
|
||||
</th>
|
||||
</tr>
|
||||
@@ -97,7 +97,7 @@
|
||||
<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['cmms_machines'] != null ? $item['cmms_machines']->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'] : '-' }}
|
||||
@@ -107,7 +107,6 @@
|
||||
</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>
|
||||
</tr>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<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: 13px;">
|
||||
گزارش کارتابل ارزیابی فعالیت های روزانه و جاری
|
||||
</th>
|
||||
</tr>
|
||||
@@ -97,7 +97,7 @@
|
||||
<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['cmms_machines'] != null ? $item['cmms_machines']->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'] : '-' }}
|
||||
@@ -107,7 +107,6 @@
|
||||
</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>
|
||||
</tr>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="8"
|
||||
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: 13px;">
|
||||
گزارش گشت راهداری و ترابری از تاریخ
|
||||
{{ verta($fromDate)->format('Y/n/j') }}
|
||||
تا
|
||||
@@ -80,23 +80,52 @@
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($activities as $activity)
|
||||
@php
|
||||
// محاسبه مجموع مقدار s برای کل کشور
|
||||
$totalForCountry = collect($activities)->where('province_id', -1)->first();
|
||||
@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->tedade }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_moshede_shode_adi }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_moshede_shode_fori }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_moshede_shode_ani }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_peygiri_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->masafat_tey_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_faliyat_sabt_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">کل کشور</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForCountry->tedade }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForCountry->tedad_mavarede_moshede_shode_adi }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForCountry->tedad_mavarede_moshede_shode_fori }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForCountry->tedad_mavarede_moshede_shode_ani }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForCountry->tedad_mavarede_peygiri_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForCountry->masafat_tey_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForCountry->tedad_faliyat_sabt_shode }}</td>
|
||||
</tr>
|
||||
|
||||
@foreach ($provinces as $province)
|
||||
@php
|
||||
$totalForProvince = collect($activities)->where('province_id', $province->id)->first();
|
||||
@endphp
|
||||
@if($totalForProvince)
|
||||
<tr>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->province_fa }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedade }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_mavarede_moshede_shode_adi }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_mavarede_moshede_shode_fori }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_mavarede_moshede_shode_ani }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_mavarede_peygiri_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->masafat_tey_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_faliyat_sabt_shode }}</td>
|
||||
</tr>
|
||||
@else
|
||||
<tr>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $province->name_fa }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>گزارش گشت راهداری</title>
|
||||
|
||||
<style>
|
||||
table,
|
||||
th,
|
||||
td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body dir="rtl" style="text-align: center;">
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<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="14"
|
||||
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="14"
|
||||
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
|
||||
گزارش کارتابل عملیات گشت راهداری
|
||||
</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 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>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@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['edare_name'] ?? '-' }}</td>
|
||||
<td style="border: 1px solid black;text-align: center;">{{ $item['cmms_machines'] != null ? $item['cmms_machines']->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;">{{ $item['start_time'] ? verta($item['start_time'])->format('Y/n/j H:i:s') : '-' }}
|
||||
<td style="border: 1px solid black;text-align: center;">{{ $item['end_time'] ? verta($item['end_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 style="border: 1px solid black;text-align: center;">{{ $item['description'] ?? '-' }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -27,7 +27,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="8"
|
||||
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: 13px;">
|
||||
گزارش گشت راهداری و ترابری از تاریخ
|
||||
{{ verta($fromDate)->format('Y/n/j') }}
|
||||
تا
|
||||
@@ -80,17 +80,50 @@
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($activities as $activity)
|
||||
<tr>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->edare_name }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedade }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_moshede_shode_adi }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_moshede_shode_fori }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_moshede_shode_ani }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_mavarede_peygiri_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->masafat_tey_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $activity->tedad_faliyat_sabt_shode }}</td>
|
||||
</tr>
|
||||
@php
|
||||
// محاسبه مجموع مقدار s برای کل کشور
|
||||
$totalForProvince = collect($activities)->where('edare_id', -1)->first();
|
||||
@endphp
|
||||
|
||||
{{-- ردیف کل کشور --}}
|
||||
<tr>
|
||||
<td style="border:1px solid black;text-align: center;">کل استان</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedade ?? 0 }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_mavarede_moshede_shode_adi ?? 0 }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_mavarede_moshede_shode_fori ?? 0 }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_mavarede_moshede_shode_ani ?? 0 }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_mavarede_peygiri_shode ?? 0 }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->masafat_tey_shode ?? 0 }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForProvince->tedad_faliyat_sabt_shode ?? 0 }}</td>
|
||||
</tr>
|
||||
|
||||
@foreach ($edarateShahri as $edareShahri)
|
||||
@php
|
||||
$totalForEdare = collect($activities)->where('edare_id', $edareShahri->id)->first();
|
||||
@endphp
|
||||
@if($totalForEdare)
|
||||
<tr>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForEdare->edare_name }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForEdare->tedade }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForEdare->tedad_mavarede_moshede_shode_adi }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForEdare->tedad_mavarede_moshede_shode_fori }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForEdare->tedad_mavarede_moshede_shode_ani }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForEdare->tedad_mavarede_peygiri_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForEdare->masafat_tey_shode }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $totalForEdare->tedad_faliyat_sabt_shode }}</td>
|
||||
</tr>
|
||||
@else
|
||||
<tr>
|
||||
<td style="border:1px solid black;text-align: center;">{{ $edareShahri->name_fa }}</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
<td style="border:1px solid black;text-align: center;">0</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>گزارش گشت راهداری</title>
|
||||
|
||||
<style>
|
||||
table,
|
||||
th,
|
||||
td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body dir="rtl" style="text-align: center;">
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="9"
|
||||
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"
|
||||
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="9"
|
||||
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
|
||||
گزارش کارتابل ارزیابی گشت راهداری
|
||||
</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 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>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@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['edare_name'] ?? '-' }}</td>
|
||||
<td style="border: 1px solid black;text-align: center;">{{ $item['cmms_machines'] != null ? $item['cmms_machines']->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;">{{ $item['start_time'] ? verta($item['start_time'])->format('Y/n/j H:i:s') : '-' }}
|
||||
<td style="border: 1px solid black;text-align: center;">{{ $item['end_time'] ? verta($item['end_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 style="border: 1px solid black;text-align: center;">{{ $item['description'] ?? '-' }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -196,11 +196,12 @@ Route::prefix('road_item_reports')
|
||||
Route::get('/province_activity_per_sub_item', 'provinceActivityPerSubItem')->name('provinceActivityPerSubItem');
|
||||
Route::get('/country_activity_per_item', 'countryActivityPerItem')->name('countryActivityPerItem');
|
||||
Route::get('/province_activity_per_item', 'provinceActivityPerItem')->name('provinceActivityPerItem');
|
||||
Route::get('/map', 'map')->name('map');
|
||||
Route::get('/country_activity_excel_per_item', 'countryActivityExcelPerItem')->name('countryActivityExcelPerItem');
|
||||
Route::get('/province_activity_excel_per_item', 'provinceActivityExcelPerItem')->name('provinceActivityExcelPerItem');
|
||||
Route::get('/country_activity_excel_per_sub_item', 'countryActivityExcelPerSubItem')->name('countryActivityExcelPerSubItem');
|
||||
Route::get('/province_activity_excel_per_sub_item', 'provinceActivityExcelPerSubItem')->name('provinceActivityExcelPerSubItem');
|
||||
Route::get('/activities_on_map', 'activitiesOnMap')->name('activitiesOnMap');
|
||||
Route::get('/show_on_map/{roadItemsProject}', 'showOnMap')->name('showOnMap');
|
||||
});
|
||||
|
||||
Route::prefix('road_patrol_reports')
|
||||
@@ -212,4 +213,5 @@ Route::prefix('road_patrol_reports')
|
||||
Route::get('/country_activity_excel', 'countryActivityExcel')->name('countryActivityExcel');
|
||||
Route::get('/province_activity_excel', 'provinceActivityExcel')->name('provinceActivityExcel');
|
||||
Route::get('/activities_on_map', 'activitiesOnMap')->name('activitiesOnMap');
|
||||
Route::get('/show_on_map/{roadPatrol}', 'showOnMap')->name('showOnMap');
|
||||
});
|
||||
|
||||
@@ -518,6 +518,6 @@ INSERT INTO edarate_shahri (name_fa,province_id,created_at,updated_at) VALUES
|
||||
('اداره آق قلا',27,'2023-03-13 14:12:25','2023-03-13 14:12:25');
|
||||
INSERT INTO edarate_shahri (name_fa,province_id,created_at,updated_at) VALUES
|
||||
('اداره خمام',28,'2023-06-17 08:43:14','2023-06-17 08:43:14'),
|
||||
('اداره اصلاندوز',3,'2023-08-15 09:33:55','2023-08-15 09:33:55');
|
||||
('اداره گالیکش',27,'2024-11-16 14:33:55','2024-11-16 14:33:55');
|
||||
('اداره اصلاندوز',3,'2023-08-15 09:33:55','2023-08-15 09:33:55'),
|
||||
('اداره گالیکش',27,'2024-11-16 14:33:55','2024-11-16 14:33:55'),
|
||||
('آزادراه ساوه-تهران',32,'2025-01-06 14:33:55','2025-01-06 14:33:55');
|
||||
|
||||
@@ -160,4 +160,4 @@ INSERT INTO log_lists (description,log_unique_code,action_type,is_done) VALUES
|
||||
('حذف نوع آزمایش','1164','action',0),
|
||||
('ثبت نمونه آزمایش','1165','action',0),
|
||||
('ویرایش نمونه آزمایش','1166','action',0),
|
||||
('حذف نمونه آزمایش','1167','action',0),
|
||||
('حذف نمونه آزمایش','1167','action',0);
|
||||
|
||||
@@ -132,6 +132,6 @@ INSERT INTO permissions (name,guard_name,name_fa,description,created_at,updated_
|
||||
('delete-safety-and-privacy','web','حذف نگهداری و حریم','کاربر امکان حذف یک فعالیت نگهداری حریم راه را دارد',NULL,NULL,NULL,NULL,'safety-and-privacy','نگهداری حریم راه',0,0),
|
||||
('show-receipt','web','نمایش خسارت (کشوری)','نمایش خسارات کشوری',NULL,NULL,NULL,NULL,'receipt','خسارات وارد بر ابنیه فنی راه',0,0),
|
||||
('show-receipt-province','web','نمایش خسارت (استانی)','نمایش خسارات استانی',NULL,NULL,NULL,NULL,'receipt','خسارات وارد بر ابنیه فنی راه',1,0),
|
||||
('supervise-road-item-by-edareostani','web','نظارت بر ثبت فعالیت روزانه و جاری(ادارات استانی)',NULL,'2023-07-09 09:48:35','2023-07-09 09:48:37',NULL,NULL,'road-item','فعالیت روزانه',0,0);
|
||||
('azmayesh-management','web','مدیریت آزمایشات',NULL,'2024-11-18 09:48:35','2024-11-18 09:48:35',NULL,NULL,'azmayesh','آزمایشات',0,0);
|
||||
('supervise-road-item-by-edareostani','web','نظارت بر ثبت فعالیت روزانه و جاری(ادارات استانی)',NULL,'2023-07-09 09:48:35','2023-07-09 09:48:37',NULL,NULL,'road-item','فعالیت روزانه',0,0),
|
||||
('azmayesh-management','web','مدیریت آزمایشات',NULL,'2024-11-18 09:48:35','2024-11-18 09:48:35',NULL,NULL,'azmayesh','آزمایشات',0,0),
|
||||
('azmayesh-type-management','web','مدیریت نوع آزمایشات',NULL,'2024-11-18 09:48:35','2024-11-18 09:48:35',NULL,NULL,'azmayesh','آزمایشات',0,0);
|
||||
|
||||
Reference in New Issue
Block a user