From cd9d8211f41b27c2f25b8764b0ffe7d2483f8d22 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Tue, 4 Feb 2025 13:09:27 +0330 Subject: [PATCH] add new blade for reports --- .../Dashboard/RoadItemsProjectController.php | 4 +- app/Services/DataTable/DataTableInput.php | 6 +- app/Services/DataTable/DataTableService.php | 4 +- .../DataTable/Validators/FilterValidator.php | 2 +- .../DataTable/Validators/SortingValidator.php | 2 +- .../OperatorCartableReport.blade.php | 102 +++++++++++++++ .../SupervisorCartableReport.blade.php | 117 ++++++++++++++++++ 7 files changed, 228 insertions(+), 9 deletions(-) create mode 100644 resources/views/v3/Reports/RoadItems/OperatorCartableReport.blade.php create mode 100644 resources/views/v3/Reports/RoadItems/SupervisorCartableReport.blade.php diff --git a/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php b/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php index 4893bee3..00295fb7 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php @@ -100,7 +100,7 @@ class RoadItemsProjectController extends Controller { $name = 'گزارش از کارتابل ارزیابی فعالیت روزانه ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $data = $roadItemReportService->supervisorCartableReport($request); - return Excel::download(new SupervisorCartableReport($data), $name); + return Excel::download(new SupervisorCartableReport($data['data']), $name); } public function operatorIndex(Request $request, RoadItemReportService $roadItemReportService): JsonResponse @@ -268,6 +268,6 @@ class RoadItemsProjectController extends Controller { $name = 'گزارش از کارتابل عملیات فعالیت روزانه ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $data = $roadItemReportService->operatorCartableReport($request); - return Excel::download(new OperatorCartableReport($data), $name); + return Excel::download(new OperatorCartableReport($data['data']), $name); } } diff --git a/app/Services/DataTable/DataTableInput.php b/app/Services/DataTable/DataTableInput.php index 18e7ea10..64a3f290 100644 --- a/app/Services/DataTable/DataTableInput.php +++ b/app/Services/DataTable/DataTableInput.php @@ -15,10 +15,10 @@ class DataTableInput * @param array $rels */ public function __construct( - private int $start, + private ?int $start, private ?int $size, private array $filters, - private array $sorting, + private ?array $sorting, private array $rels, private array $allowedFilters, private array $allowedSortings, @@ -74,6 +74,4 @@ class DataTableInput { return $this->rels; } - - } diff --git a/app/Services/DataTable/DataTableService.php b/app/Services/DataTable/DataTableService.php index af0d0451..647f6e44 100644 --- a/app/Services/DataTable/DataTableService.php +++ b/app/Services/DataTable/DataTableService.php @@ -76,7 +76,9 @@ class DataTableService $this->totalRowCount = $query->count(); - $query->offset($this->dataTableInput->getStart()); + if (!is_null($this->dataTableInput->getStart())) { + $query->offset($this->dataTableInput->getStart()); + } if(!is_null($this->dataTableInput->getSize())){ $query->limit($this->dataTableInput->getSize()); diff --git a/app/Services/DataTable/Validators/FilterValidator.php b/app/Services/DataTable/Validators/FilterValidator.php index cc45813e..ea837f9e 100644 --- a/app/Services/DataTable/Validators/FilterValidator.php +++ b/app/Services/DataTable/Validators/FilterValidator.php @@ -50,7 +50,7 @@ class FilterValidator protected function isAllowed(Filter $filter, array $allowedFilters): bool { - return in_array($filter->getId(), $allowedFilters); + return $allowedFilters == ['*'] || in_array($filter->getId(), $allowedFilters); } protected function isValidSearchFunction(Filter $filter): bool diff --git a/app/Services/DataTable/Validators/SortingValidator.php b/app/Services/DataTable/Validators/SortingValidator.php index a494ef6a..4409bfba 100644 --- a/app/Services/DataTable/Validators/SortingValidator.php +++ b/app/Services/DataTable/Validators/SortingValidator.php @@ -34,6 +34,6 @@ class SortingValidator protected function isAllowed(Sort $sorting, array $allowedSortings): bool { - return in_array($sorting->getId(), $allowedSortings); + return $allowedSortings == ['*'] || in_array($sorting->getId(), $allowedSortings); } } diff --git a/resources/views/v3/Reports/RoadItems/OperatorCartableReport.blade.php b/resources/views/v3/Reports/RoadItems/OperatorCartableReport.blade.php new file mode 100644 index 00000000..a020d289 --- /dev/null +++ b/resources/views/v3/Reports/RoadItems/OperatorCartableReport.blade.php @@ -0,0 +1,102 @@ + + + + + + + + گزارش فعالیت های روزانه و جاری + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @foreach ($data as $item) + + + + + + + + + + + + + @endforeach + +
+ تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }} +
+
+ گزارش کارتابل عملیات فعالیت های روزانه و جاری از تاریخ + {{ verta($fromDate)->format('Y/n/j') }} + تا + تاریخ + {{ verta($toDate)->format('Y/n/j') }} + +
کد + یکتاآیتم + فعالیت + موضوع مشاهده شده + مقدار + نقطه شروع + نقطه پایان + تاریخ ثبت + تاریخ فعالیت + وضعیت + توضیحات ناظر
{{ $item['id'] ?? '-' }}{{ $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'] . '(-)') : '-' }} + {{ 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['status_fa'] ?? '-' }}{{ $item['supervisor_description'] ?? '-' }}
+ + + diff --git a/resources/views/v3/Reports/RoadItems/SupervisorCartableReport.blade.php b/resources/views/v3/Reports/RoadItems/SupervisorCartableReport.blade.php new file mode 100644 index 00000000..4822186c --- /dev/null +++ b/resources/views/v3/Reports/RoadItems/SupervisorCartableReport.blade.php @@ -0,0 +1,117 @@ + + + + + + + + گزارش فعالیت های روزانه و جاری + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @foreach ($data as $item) + + + + + + + + + + + + + + + + @endforeach + +
+ تاریخ دریافت گزارش: {{ 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'] . '(-)') : '-' }} + + {{ 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['status_fa'] ?? '-' }} + {{ $item['supervisor_description'] ?? '-' }}
+ + +