diff --git a/app/Exports/V3/RoadItemsProjects/CountryActivityPerItemReport.php b/app/Exports/V3/RoadItemsProjects/CountryActivityPerItemReport.php new file mode 100644 index 00000000..95f88d94 --- /dev/null +++ b/app/Exports/V3/RoadItemsProjects/CountryActivityPerItemReport.php @@ -0,0 +1,108 @@ +fromDate ?? '2021-03-21'; + $toDate = $this->toDate ?? \Carbon\Carbon::now(); + + $query = "SELECT + COUNT(CASE WHEN item = 1 THEN 1 END) AS MarematRooyeCount, + COUNT(CASE WHEN item = 2 THEN 1 END) AS PaksaziCount, + COUNT(CASE WHEN item = 3 THEN 1 END) AS AlaemCount, + COUNT(CASE WHEN item = 4 THEN 1 END) AS HefazCount, + COUNT(CASE WHEN item = 5 THEN 1 END) AS RoshanayiCount, + COUNT(CASE WHEN item = 6 THEN 1 END) AS KhatkeshiCount, + COUNT(CASE WHEN item = 7 THEN 1 END) AS RangamiziCount, + COUNT(CASE WHEN item = 8 THEN 1 END) AS WashingCount, + COUNT(CASE WHEN item = 9 THEN 1 END) AS ImenSaziCount, + COUNT(CASE WHEN item = 10 THEN 1 END) AS HarimCount, + COUNT(CASE WHEN item = 11 THEN 1 END) AS PolCount, + COUNT(CASE WHEN item = 12 THEN 1 END) AS ToonelCount, + COUNT(CASE WHEN item = 13 THEN 1 END) AS AmaliatZemestaniCount, + COUNT(CASE WHEN item = 14 THEN 1 END) AS MashinAlatCount, + COUNT(CASE WHEN item = 15 THEN 1 END) AS TollhouseCount, + COUNT(CASE WHEN item = 16 THEN 1 END) AS EmergencyCount, + province_fa, + province_id, + COUNT(CASE WHEN item != -1 THEN 1 END) AS TotalCount + FROM ( + SELECT + province_fa, + province_id, + item, + status + FROM road_items_projects + WHERE activity_date_time BETWEEN '{$fromDate} 00:00:00' and '{$toDate} 23:59:59' + ) AS merged_table + WHERE status = 1 + GROUP BY province_id, province_fa;"; + + $countryActivities = DB::select($query); + + return view('', [ + 'activities' => $countryActivities, + 'fromDate' => $fromDate, + 'toDate' => $toDate + ]); + } + + public function registerEvents(): array + { + return [ + AfterSheet::class => function (AfterSheet $event) { + $event->sheet->getDelegate()->setRightToLeft(true); + $event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial'); + $event->sheet->getDelegate()->getStyle('A:U') + ->getAlignment() + ->setHorizontal(Alignment::HORIZONTAL_CENTER); + + $event->sheet->getDelegate()->getStyle('A:U') + ->getAlignment() + ->setVertical(Alignment::VERTICAL_CENTER); + } + ]; + } + + public function drawings(): array + { + $drawing = new Drawing(); + $drawing->setName('Logo'); + $drawing->setDescription('This is my logo'); + $drawing->setPath(public_path('/dist/logo.png')); + $drawing->setWidth(50); + $drawing->setHeight(50); + $drawing->setOffsetX(5); + $drawing->setOffsetY(5); + $drawing->setCoordinates('A1'); + + $drawing2 = new Drawing(); + $drawing2->setName('Logo'); + $drawing2->setDescription('This is my logo'); + $drawing2->setPath(public_path('/dist/141icon.png')); + $drawing2->setWidth(50); + $drawing2->setHeight(50); + $drawing2->setOffsetX(5); + $drawing2->setOffsetY(5); + $drawing2->setCoordinates('q1'); + return [$drawing, $drawing2]; + } +} \ No newline at end of file diff --git a/app/Exports/V3/RoadItemsProjects/CountryActivityPerSubItemReport.php b/app/Exports/V3/RoadItemsProjects/CountryActivityPerSubItemReport.php new file mode 100644 index 00000000..611e0a44 --- /dev/null +++ b/app/Exports/V3/RoadItemsProjects/CountryActivityPerSubItemReport.php @@ -0,0 +1,122 @@ +fromDate ?? '2021-03-21'; + $toDate = $this->toDate ?? Carbon::now(); + + $query = "SELECT + COUNT(CASE WHEN sub_item = 1 THEN 1 END) as LabeAsphaltCount, + SUM(CASE WHEN sub_item = 1 THEN sub_item_data END) as LabeAsphaltSum, + + COUNT(CASE WHEN sub_item = 2 THEN 1 END) as ShaneSaziCount, + SUM(CASE WHEN sub_item = 2 THEN sub_item_data END) as ShaneSaziSum, + + COUNT(CASE WHEN sub_item = 3 THEN 1 END) as GodOftadegiCount, + SUM(CASE WHEN sub_item = 3 THEN sub_item_data END) as GodOftadegiSum, + + COUNT(CASE WHEN sub_item = 4 THEN 1 END) as LakegiriCount, + SUM(CASE WHEN sub_item = 4 THEN sub_item_data END) as LakegiriSum, + + COUNT(CASE WHEN sub_item = 5 THEN 1 END) as MarematCount, + SUM(CASE WHEN sub_item = 5 THEN sub_item_data END) as MarematSum, + + COUNT(CASE WHEN sub_item = 6 THEN 1 END) as BastarHarimCount, + SUM(CASE WHEN sub_item = 6 THEN sub_item_data END) as BastarHarimSum, + + COUNT(CASE WHEN sub_item = 8 THEN 1 END) as DarzgiriCount, + SUM(CASE WHEN sub_item = 8 THEN sub_item_data END) as DarzgiriSum, + + COUNT(CASE WHEN sub_item = 9 THEN 1 END) as MozresCount, + SUM(CASE WHEN sub_item = 9 THEN sub_item_data END) as MozresSum, + + COUNT(CASE WHEN sub_item = 10 THEN 1 END) as TarashRooyeCount, + SUM(CASE WHEN sub_item = 10 THEN sub_item_data END) as TarashRooyeSum, + + COUNT(CASE WHEN sub_item = 11 THEN 1 END) as TighzaniCount, + SUM(CASE WHEN sub_item = 11 THEN sub_item_data END) as TighzaniSum, + + COUNT(CASE WHEN sub_item = 12 THEN 1 END) as ShenriziCount, + SUM(CASE WHEN sub_item = 12 THEN sub_item_data END) as ShenriziSum, + + COUNT(CASE WHEN sub_item = 13 THEN 1 END) as KhakbardariCount, + SUM(CASE WHEN sub_item = 13 THEN sub_item_data END) as KhakbardariSum, + + province_id, + province_fa + + FROM road_items_projects + WHERE item = 1 and status = 1 + AND activity_date_time BETWEEN '{$fromDate} 00:00:00' and '{$toDate} 23:59:59' + GROUP BY province_id, province_fa + ORDER BY province_id ASC;"; + + $countryActivities = DB::select($query); + + return view('', [ + 'activities' => $countryActivities, + 'fromDate' => $fromDate, + 'toDate' => $toDate + ]); + } + + public function registerEvents(): array + { + return [ + AfterSheet::class => function (AfterSheet $event) { + $event->sheet->getDelegate()->setRightToLeft(true); + $event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial'); + $event->sheet->getDelegate()->getStyle('A:U') + ->getAlignment() + ->setHorizontal(Alignment::HORIZONTAL_CENTER); + + $event->sheet->getDelegate()->getStyle('A:U') + ->getAlignment() + ->setVertical(Alignment::VERTICAL_CENTER); + } + ]; + } + + public function drawings(): array + { + $drawing = new Drawing(); + $drawing->setName('Logo'); + $drawing->setDescription('This is my logo'); + $drawing->setPath(public_path('/dist/logo.png')); + $drawing->setWidth(50); + $drawing->setHeight(50); + $drawing->setOffsetX(5); + $drawing->setOffsetY(5); + $drawing->setCoordinates('A1'); + + $drawing2 = new Drawing(); + $drawing2->setName('Logo'); + $drawing2->setDescription('This is my logo'); + $drawing2->setPath(public_path('/dist/141icon.png')); + $drawing2->setWidth(50); + $drawing2->setHeight(50); + $drawing2->setOffsetX(5); + $drawing2->setOffsetY(5); + $drawing2->setCoordinates('q1'); + return [$drawing, $drawing2]; + } +} \ No newline at end of file diff --git a/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerItemReport.php b/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerItemReport.php new file mode 100644 index 00000000..bd924403 --- /dev/null +++ b/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerItemReport.php @@ -0,0 +1,116 @@ +fromDate ?? '2021-03-21'; + $toDate = $this->toDate ?? \Carbon\Carbon::now(); + + $query = "SELECT + COUNT(CASE WHEN item = 1 THEN 1 END) AS MarematRooyeCount, + COUNT(CASE WHEN item = 2 THEN 1 END) AS PaksaziCount, + COUNT(CASE WHEN item = 3 THEN 1 END) AS AlaemCount, + COUNT(CASE WHEN item = 4 THEN 1 END) AS HefazCount, + COUNT(CASE WHEN item = 5 THEN 1 END) AS RoshanayiCount, + COUNT(CASE WHEN item = 6 THEN 1 END) AS KhatkeshiCount, + COUNT(CASE WHEN item = 7 THEN 1 END) AS RangamiziCount, + COUNT(CASE WHEN item = 8 THEN 1 END) AS WashingCount, + COUNT(CASE WHEN item = 9 THEN 1 END) AS ImenSaziCount, + COUNT(CASE WHEN item = 10 THEN 1 END) AS HarimCount, + COUNT(CASE WHEN item = 11 THEN 1 END) AS PolCount, + COUNT(CASE WHEN item = 12 THEN 1 END) AS ToonelCount, + COUNT(CASE WHEN item = 13 THEN 1 END) AS AmaliatZemestaniCount, + COUNT(CASE WHEN item = 14 THEN 1 END) AS MashinAlatCount, + COUNT(CASE WHEN item = 15 THEN 1 END) AS TollhouseCount, + COUNT(CASE WHEN item = 16 THEN 1 END) AS EmergencyCount, + province_fa, + province_id, + edarat_name, + edarat_id, + COUNT(CASE WHEN item != -1 THEN 1 END) AS TotalCount + FROM ( + SELECT + province_fa, + province_id, + edarat_name, + edarat_id, + item, + status + FROM road_items_projects + WHERE activity_date_time BETWEEN '{$fromDate} 00:00:00' and '{$toDate} 23:59:59' + ) AS merged_table + WHERE status = 1 + AND province_id = {$this->provinceId} + GROUP BY edarat_id, edarat_name, order by province_id ASC;"; + + $provinceActivities = DB::select($query); + + return view('', [ + 'activities' => $provinceActivities, + 'fromDate' => $fromDate, + 'toDate' => $toDate + ]); + } + + public function registerEvents(): array + { + return [ + AfterSheet::class => function (AfterSheet $event) { + $event->sheet->getDelegate()->setRightToLeft(true); + $event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial'); + $event->sheet->getDelegate()->getStyle('A:U') + ->getAlignment() + ->setHorizontal(Alignment::HORIZONTAL_CENTER); + + $event->sheet->getDelegate()->getStyle('A:U') + ->getAlignment() + ->setVertical(Alignment::VERTICAL_CENTER); + } + ]; + } + + public function drawings(): array + { + $drawing = new Drawing(); + $drawing->setName('Logo'); + $drawing->setDescription('This is my logo'); + $drawing->setPath(public_path('/dist/logo.png')); + $drawing->setWidth(50); + $drawing->setHeight(50); + $drawing->setOffsetX(5); + $drawing->setOffsetY(5); + $drawing->setCoordinates('A1'); + + $drawing2 = new Drawing(); + $drawing2->setName('Logo'); + $drawing2->setDescription('This is my logo'); + $drawing2->setPath(public_path('/dist/141icon.png')); + $drawing2->setWidth(50); + $drawing2->setHeight(50); + $drawing2->setOffsetX(5); + $drawing2->setOffsetY(5); + $drawing2->setCoordinates('q1'); + return [$drawing, $drawing2]; + } +} \ No newline at end of file diff --git a/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerSubItemReport.php b/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerSubItemReport.php new file mode 100644 index 00000000..f966747e --- /dev/null +++ b/app/Exports/V3/RoadItemsProjects/ProvinceActivityPerSubItemReport.php @@ -0,0 +1,120 @@ +fromDate ?? '2021-03-21'; + $toDate = $this->toDate ?? Carbon::now(); + + $query = "SELECT + COUNT(CASE WHEN sub_item = 1 THEN 1 END) as LabeAsphaltCount, + SUM(CASE WHEN sub_item = 1 THEN sub_item_data END) as LabeAsphaltSum, + + COUNT(CASE WHEN sub_item = 2 THEN 1 END) as ShaneSaziCount, + SUM(CASE WHEN sub_item = 2 THEN sub_item_data END) as ShaneSaziSum, + + COUNT(CASE WHEN sub_item = 3 THEN 1 END) as GodOftadegiCount, + SUM(CASE WHEN sub_item = 3 THEN sub_item_data END) as GodOftadegiSum, + + COUNT(CASE WHEN sub_item = 4 THEN 1 END) as LakegiriCount, + SUM(CASE WHEN sub_item = 4 THEN sub_item_data END) as LakegiriSum, + + COUNT(CASE WHEN sub_item = 5 THEN 1 END) as MarematCount, + SUM(CASE WHEN sub_item = 5 THEN sub_item_data END) as MarematSum, + + COUNT(CASE WHEN sub_item = 6 THEN 1 END) as BastarHarimCount, + SUM(CASE WHEN sub_item = 6 THEN sub_item_data END) as BastarHarimSum, + + COUNT(CASE WHEN sub_item = 8 THEN 1 END) as DarzgiriCount, + SUM(CASE WHEN sub_item = 8 THEN sub_item_data END) as DarzgiriSum, + + COUNT(CASE WHEN sub_item = 9 THEN 1 END) as MozresCount, + SUM(CASE WHEN sub_item = 9 THEN sub_item_data END) as MozresSum, + + COUNT(CASE WHEN sub_item = 10 THEN 1 END) as TarashRooyeCount, + SUM(CASE WHEN sub_item = 10 THEN sub_item_data END) as TarashRooyeSum, + + COUNT(CASE WHEN sub_item = 11 THEN 1 END) as TighzaniCount, + SUM(CASE WHEN sub_item = 11 THEN sub_item_data END) as TighzaniSum, + + COUNT(CASE WHEN sub_item = 12 THEN 1 END) as ShenriziCount, + SUM(CASE WHEN sub_item = 12 THEN sub_item_data END) as ShenriziSum, + + COUNT(CASE WHEN sub_item = 13 THEN 1 END) as KhakbardariCount, + SUM(CASE WHEN sub_item = 13 THEN sub_item_data END) as KhakbardariSum, + + province_id, province_fa, city_id, user_name as city_fa + + FROM road_items_projects + WHERE item =1 AND status = 1 + AND province_id = {$this->provinceId} + AND activity_date_time BETWEEN '{$fromDate}' AND '{$toDate}' GROUP BY city_id ORDER BY province_id ASC;"; + + $provinceActivities = DB::select($query); + + return view('', [ + 'activities' => $provinceActivities, + 'fromDate' => $fromDate, + 'toDate' => $toDate + ]); + } + + public function registerEvents(): array + { + return [ + AfterSheet::class => function (AfterSheet $event) { + $event->sheet->getDelegate()->setRightToLeft(true); + $event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial'); + $event->sheet->getDelegate()->getStyle('A:U') + ->getAlignment() + ->setHorizontal(Alignment::HORIZONTAL_CENTER); + + $event->sheet->getDelegate()->getStyle('A:U') + ->getAlignment() + ->setVertical(Alignment::VERTICAL_CENTER); + } + ]; + } + + public function drawings(): array + { + $drawing = new Drawing(); + $drawing->setName('Logo'); + $drawing->setDescription('This is my logo'); + $drawing->setPath(public_path('/dist/logo.png')); + $drawing->setWidth(50); + $drawing->setHeight(50); + $drawing->setOffsetX(5); + $drawing->setOffsetY(5); + $drawing->setCoordinates('A1'); + + $drawing2 = new Drawing(); + $drawing2->setName('Logo'); + $drawing2->setDescription('This is my logo'); + $drawing2->setPath(public_path('/dist/141icon.png')); + $drawing2->setWidth(50); + $drawing2->setHeight(50); + $drawing2->setOffsetX(5); + $drawing2->setOffsetY(5); + $drawing2->setCoordinates('q1'); + return [$drawing, $drawing2]; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php b/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php index 0d9ecc5e..c2a7d122 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php @@ -35,7 +35,7 @@ class RoadItemsProjectController extends Controller 'end_lng', 'project_distance', 'item', 'item_fa', 'sub_item_fa', 'sub_item', 'sub_item_data', 'created_at', 'updated_at', 'province_id', 'province_fa', 'unit_fa', 'status', 'status_fa', 'supervisor_description', 'supervising_time', - 'supervisor_name', 'edarat_id', 'edarat_name', 'activity_date_time','cmmsMachines.machine_code' + 'supervisor_name', 'edarat_id', 'edarat_name', 'activity_date_time','cmmsMachines.machine_code', 'rahdaran.code', ); $allowedFilters = $columns; @@ -142,7 +142,7 @@ class RoadItemsProjectController extends Controller 'end_lng', 'project_distance', 'item', 'item_fa', 'sub_item_fa', 'sub_item', 'sub_item_data', 'created_at', 'updated_at', 'province_id', 'province_fa', 'unit_fa', 'status', 'status_fa', 'supervisor_description', 'supervising_time', - 'supervisor_name', 'edarat_id', 'edarat_name', 'activity_date_time', 'cmmsMachines.machine_code' + 'supervisor_name', 'edarat_id', 'edarat_name', 'activity_date_time', 'cmmsMachines.machine_code', 'rahdaran.code', ); $allowedFilters = $columns; diff --git a/app/Http/Controllers/V3/Dashboard/RoadPatrolProjectController.php b/app/Http/Controllers/V3/Dashboard/RoadPatrolProjectController.php index dfac13c0..6d62ba03 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadPatrolProjectController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadPatrolProjectController.php @@ -33,11 +33,11 @@ class RoadPatrolProjectController extends Controller public function supervisorIndex(Request $request): JsonResponse { $columns = array( - 'id', 'start_lat', 'start_lon', 'end_lat', 'end_lon', 'operator_id', + 'id', 'start_lat', 'start_lon', 'end_lat', 'end_lon', 'operator_id', 'created_at', 'operator_name', 'officer_plaque', 'officer_phone_number', 'officer_name', 'supervisor_description', 'supervising_time', 'supervisor_name', 'status', 'status_fa', 'distance', 'province_id', 'province_fa', 'edare_id', 'edare_name', - 'start_time', 'end_time','description', 'cmmsMachines.machine_code' + 'start_time', 'end_time','description', 'cmmsMachines.machine_code', 'rahdaran.code', ); $allowedFilters = $columns; @@ -124,9 +124,9 @@ class RoadPatrolProjectController extends Controller public function operatorIndex(Request $request): JsonResponse { $columns = array( - 'id', 'start_lat', 'start_lon', 'end_lat', 'end_lon', 'officer_plaque', + 'id', 'start_lat', 'start_lon', 'end_lat', 'end_lon', 'officer_plaque', 'created_at', 'officer_phone_number', 'officer_name', 'supervisor_description', 'supervising_time', - 'supervisor_name', 'status', 'status_fa', 'distance', 'start_time', 'end_time', 'cmmsMachines.machine_code' + 'supervisor_name', 'status', 'status_fa', 'distance', 'start_time', 'end_time', 'cmmsMachines.machine_code', 'rahdaran.code', ); $allowedFilters = $columns;