Merge branch 'feature/ActivityReport' into 'develop'
Feature/activity report See merge request witelgroup/rms_v2!57
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Azmayesh;
|
||||
namespace App\Http\Controllers\V3\Dashboard\Azmayesh;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\V3\Azmayesh\StoreRequest;
|
||||
use App\Http\Requests\V3\Azmayesh\UpdateRequest;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\Azmayesh;
|
||||
use App\Models\AzmayeshType;
|
||||
@@ -11,8 +13,6 @@ use App\Models\Province;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\V3\Azmayesh\StoreRequest;
|
||||
use App\Http\Requests\V3\Azmayesh\UpdateRequest;
|
||||
|
||||
class AzmayeshController extends Controller
|
||||
{
|
||||
@@ -1,18 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Azmayesh;
|
||||
namespace App\Http\Controllers\V3\Dashboard\Azmayesh;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\Azmayesh;
|
||||
use App\Models\AzmayeshType;
|
||||
use App\Models\AzmayeshSample;
|
||||
use App\Models\Province;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\V3\AzmayeshSample\StoreRequest;
|
||||
use App\Http\Requests\V3\AzmayeshSample\UpdateRequest;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\Azmayesh;
|
||||
use App\Models\AzmayeshSample;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AzmayeshSampleController extends Controller
|
||||
{
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Azmayesh;
|
||||
namespace App\Http\Controllers\V3\Dashboard\Azmayesh;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Http\Controllers\Controller;
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3;
|
||||
namespace App\Http\Controllers\V3\Dashboard;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Http\Controllers\Controller;
|
||||
@@ -1,16 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Reports;
|
||||
namespace App\Http\Controllers\V3\Dashboard\Reports;
|
||||
|
||||
use App\Exports\Activities\One\AllSheets as OneSheet;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\EdarateShahri;
|
||||
use App\Models\InfoItem;
|
||||
use App\Models\Province;
|
||||
use App\Models\RoadItemsProject;
|
||||
use App\Models\RoadPatrol;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
class RoadItemsReportController extends Controller
|
||||
{
|
||||
@@ -54,18 +56,17 @@ class RoadItemsReportController extends Controller
|
||||
->groupBy('sub_item')
|
||||
->get();
|
||||
|
||||
$infoItems = InfoItem::query()->where('item', '=', $item)->get()->keyBy('sub_item');
|
||||
|
||||
$provinceRoadItemsPerSubItem->each(function ($value) use ($infoItems) {
|
||||
if (isset($infoItems[$value->t])) {
|
||||
$value->u = $infoItems[$value->t]->sub_item_unit;
|
||||
}
|
||||
});
|
||||
$activities = $provinceRoadItemsPerSubItem->push(...$countryRoadItemsPerSubItem);
|
||||
$provinces = Province::all(['id', 'name_fa']);
|
||||
$subItems = InfoItem::query()
|
||||
->where('item', $item)
|
||||
->get(['id', 'item', 'item_str', 'sub_item_str', 'sub_item_unit', 'sub_item']);
|
||||
|
||||
return $this->successResponse([
|
||||
'provincesData' => $provinceRoadItemsPerSubItem,
|
||||
'countryData' => $countryRoadItemsPerSubItem,
|
||||
'items' => $infoItems
|
||||
'activities' => $activities,
|
||||
'sub_items' => $subItems,
|
||||
'provinces' => $provinces,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -90,17 +91,31 @@ class RoadItemsReportController extends Controller
|
||||
->groupBy('edarat_id', 'sub_item')
|
||||
->get();
|
||||
|
||||
$items = InfoItem::query()->where('item', $item)->get()->keyBy('sub_item');
|
||||
$provinceRoadItemsPerSubItem = RoadItemsProject::query()->selectRaw('
|
||||
sub_item AS t,
|
||||
COUNT(*) AS c,
|
||||
CAST(SUM(CASE WHEN sub_item_data > 0 THEN sub_item_data ELSE ABS(sub_item_data) END) AS UNSIGNED) AS s,
|
||||
province_id AS p,
|
||||
-1 AS ci
|
||||
')
|
||||
->where('item', '=', $item)
|
||||
->where('province_id', '=', $province)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
->where('status', '=', 1)
|
||||
->groupBy('sub_item')
|
||||
->get();
|
||||
|
||||
$cityRoadItemsPerSubItem->each(function ($value) use ($items) {
|
||||
if (isset($items[$value->t])) {
|
||||
$value->u = $items[$value->t]->sub_item_unit;
|
||||
}
|
||||
});
|
||||
|
||||
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $province)->get(['id', 'name_fa']);
|
||||
$activities = $cityRoadItemsPerSubItem->push(...$provinceRoadItemsPerSubItem);
|
||||
$subItems = InfoItem::query()
|
||||
->where('item', $item)
|
||||
->get(['id', 'item', 'item_str', 'sub_item_str', 'sub_item_unit', 'sub_item']);
|
||||
|
||||
return $this->successResponse([
|
||||
'citiesData' => $cityRoadItemsPerSubItem,
|
||||
'items' => $items
|
||||
'activities' => $activities,
|
||||
'edarateShahri' => $edarateShahri,
|
||||
'sub_items' => $subItems,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -113,10 +128,11 @@ class RoadItemsReportController extends Controller
|
||||
$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();
|
||||
$user = auth()->user();
|
||||
$isSpecialUser = in_array($user->username, ['witel', 'drdanesh']);
|
||||
// $isSpecialUser = in_array($user->username, ['witel', 'drdanesh']);
|
||||
$isSpecialUser = $user->hasPermissionTo("show-road-item-supervise-cartable");
|
||||
$provinceId = $isSpecialUser ? null : $user->province_id;
|
||||
|
||||
$roadItemsProjectsQuery = RoadItemsProject::query()
|
||||
$provinceActivity = RoadItemsProject::query()
|
||||
->selectRaw('COUNT(*) AS s, province_id AS p, item AS i')
|
||||
->where('status', 1)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
@@ -125,7 +141,7 @@ class RoadItemsReportController extends Controller
|
||||
})
|
||||
->groupBy('province_id', 'item');
|
||||
|
||||
$roadItemsProjectsSummaryQuery = RoadItemsProject::query()
|
||||
$countryActivity = RoadItemsProject::query()
|
||||
->selectRaw('COUNT(*) AS s, -1 AS p, item AS i')
|
||||
->where('status', 1)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
@@ -134,14 +150,14 @@ class RoadItemsReportController extends Controller
|
||||
})
|
||||
->groupBy('item');
|
||||
|
||||
$data = $roadItemsProjectsQuery
|
||||
->unionAll($roadItemsProjectsSummaryQuery)
|
||||
$activities = $provinceActivity
|
||||
->unionAll($countryActivity)
|
||||
->get();
|
||||
|
||||
$provinces = Province::all(['id', 'name_fa']);
|
||||
|
||||
return $this->successResponse([
|
||||
'activities' => $data,
|
||||
'activities' => $activities,
|
||||
'provinces' => $provinces,
|
||||
]);
|
||||
}
|
||||
@@ -152,7 +168,7 @@ class RoadItemsReportController extends Controller
|
||||
$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();
|
||||
|
||||
$roadItemsProjectsQuery = RoadItemsProject::query()
|
||||
$edarehActivity = RoadItemsProject::query()
|
||||
->selectRaw('
|
||||
COUNT(*) AS s,
|
||||
edarat_id AS c,
|
||||
@@ -162,7 +178,7 @@ class RoadItemsReportController extends Controller
|
||||
->where('province_id', $provinceId)
|
||||
->groupBy('item', 'edarat_id');
|
||||
|
||||
$roadItemsProjectsSummaryQuery = RoadItemsProject::query()
|
||||
$cityActivity = RoadItemsProject::query()
|
||||
->selectRaw('
|
||||
COUNT(*) AS s,
|
||||
-1 AS c,
|
||||
@@ -172,15 +188,15 @@ class RoadItemsReportController extends Controller
|
||||
->where('province_id', $provinceId)
|
||||
->groupBy('item');
|
||||
|
||||
$data = $roadItemsProjectsQuery
|
||||
->unionAll($roadItemsProjectsSummaryQuery)
|
||||
$activities = $edarehActivity
|
||||
->unionAll($cityActivity)
|
||||
->get();
|
||||
|
||||
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $provinceId)->get(['id', 'name']);
|
||||
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $provinceId)->get(['id', 'name_fa']);
|
||||
|
||||
return $this->successResponse([
|
||||
'activities' => $data,
|
||||
'edaratShahri' => $edarateShahri,
|
||||
'activities' => $activities,
|
||||
'edarateShahri' => $edarateShahri,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -207,4 +223,39 @@ class RoadItemsReportController extends Controller
|
||||
|
||||
return $this->successResponse($data);
|
||||
}
|
||||
|
||||
public function activityExcelPerItem(Request $request): BinaryFileResponse
|
||||
{
|
||||
auth()->user()->addActivityComplete(1034);
|
||||
$name = 'گزارش از فعالیت روزانه و جاری - جدول 1 ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
return Excel::download(new OneSheet($request->fromDate, $request->toDate, $request->province), $name);
|
||||
}
|
||||
|
||||
public function activityExcelPerSubItem(Request $request)
|
||||
{
|
||||
$url_correction = $request->province ? "&province={$request->province}" : "";
|
||||
|
||||
return match ($request->type) {
|
||||
1 => redirect("/reports/two/maremat?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
2 => redirect("/reports/two/paksazi?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
3 => redirect("/reports/two/alaem?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
4 => redirect("/reports/two/hefaz?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
5 => redirect("/reports/two/roshanaei?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
6 => redirect("/reports/two/khatkeshi?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
7 => redirect("/reports/two/rangamizi?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
8 => redirect("/reports/two/shosteshoo?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
9 => redirect("/reports/two/imensazi?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
10 => redirect("/reports/two/harim?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
11 => redirect("/reports/two/pol?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
12 => redirect("/reports/two/toonel?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
13 => redirect("/reports/two/zemestani?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
14 => redirect("/reports/two/mashinalat?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
15 => redirect("/reports/two/rahdar?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
16 => redirect("/reports/two/ezterari?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
20 => redirect("/reports/two/bazrasi?fromDate={$request->fromDate}&toDate={$request->toDate}" . $url_correction),
|
||||
default => response()->json([
|
||||
'error' => '404'
|
||||
], 404),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Dashboard\Reports;
|
||||
|
||||
use App\Exports\V2\RoadPatrol\RoadPatrolTable\AllSheets as RoadPatrolTable;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\EdarateShahri;
|
||||
use App\Models\Province;
|
||||
use App\Models\RoadPatrolProject;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
class RoadPatrolReportController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
public function provincePatrolActivity(Request $request): JsonResponse
|
||||
{
|
||||
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
|
||||
|
||||
$activities = DB::select('SELECT
|
||||
"کشوری" as province_fa,
|
||||
-1 as province_id,
|
||||
COUNT(*) tedade,
|
||||
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
|
||||
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
|
||||
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
|
||||
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
|
||||
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
|
||||
ROUND(SUM(distance)) as masafat_tey_shode
|
||||
FROM (SELECT
|
||||
province_id,
|
||||
province_fa,
|
||||
distance,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
|
||||
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
|
||||
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
|
||||
FROM `road_patrols` rp where rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
|
||||
union
|
||||
SELECT
|
||||
province_fa,
|
||||
province_id,
|
||||
COUNT(*) tedade,
|
||||
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
|
||||
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
|
||||
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
|
||||
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
|
||||
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
|
||||
ROUND(SUM(distance)) as masafat_tey_shode
|
||||
FROM (SELECT
|
||||
province_id,
|
||||
province_fa,
|
||||
distance,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
|
||||
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
|
||||
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
|
||||
FROM `road_patrols` rp where rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
|
||||
GROUP BY province_id'
|
||||
);
|
||||
|
||||
$provinces = Province::all(['id', 'name_fa']);
|
||||
|
||||
return $this->successResponse([
|
||||
'activities' => $activities,
|
||||
'provinces' => $provinces
|
||||
]);
|
||||
}
|
||||
|
||||
public function cityPatrolActivity(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate(["province_id" => "required",]);
|
||||
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
|
||||
$provinceId = $request->province_id;
|
||||
|
||||
$activities = DB::select(
|
||||
'SELECT
|
||||
province_fa,
|
||||
province_id,
|
||||
-1 AS edare_id,
|
||||
"استانی" AS edare_name,
|
||||
COUNT(*) tedade,
|
||||
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
|
||||
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
|
||||
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
|
||||
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
|
||||
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
|
||||
ROUND(SUM(distance)) as masafat_tey_shode
|
||||
FROM (SELECT
|
||||
province_id,
|
||||
province_fa,
|
||||
edare_id,
|
||||
edare_name,
|
||||
distance,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
|
||||
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
|
||||
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
|
||||
FROM `road_patrols` rp where rp.province_id = "'.$provinceId.'" AND rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
|
||||
UNION
|
||||
SELECT
|
||||
province_fa,
|
||||
province_id,
|
||||
edare_id,
|
||||
edare_name,
|
||||
COUNT(*) tedade,
|
||||
SUM(tedad_mavarede_moshede_shode_adi) as tedad_mavarede_moshede_shode_adi,
|
||||
SUM(tedad_mavarede_moshede_shode_fori) as tedad_mavarede_moshede_shode_fori,
|
||||
SUM(tedad_mavarede_moshede_shode_ani) as tedad_mavarede_moshede_shode_ani,
|
||||
SUM(tedad_mavarede_peygiri_shode) as tedad_mavarede_peygiri_shode,
|
||||
SUM(tedad_faliyat_sabt_shode) as tedad_faliyat_sabt_shode,
|
||||
ROUND(SUM(distance)) as masafat_tey_shode
|
||||
FROM (SELECT
|
||||
province_id,
|
||||
province_fa,
|
||||
edare_id,
|
||||
edare_name,
|
||||
distance,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 1) AS tedad_mavarede_moshede_shode_adi,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 2) AS tedad_mavarede_moshede_shode_fori,
|
||||
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id AND priority = 3) AS tedad_mavarede_moshede_shode_ani,
|
||||
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
|
||||
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
|
||||
FROM `road_patrols` rp where rp.province_id = "'.$provinceId.'" AND rp.start_time BETWEEN "'.$fromDate.'" AND "'.$dateTo.'") temp
|
||||
GROUP BY edare_id
|
||||
'
|
||||
);
|
||||
|
||||
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $provinceId)->get(['id', 'name_fa']);
|
||||
|
||||
return $this->successResponse([
|
||||
'activities' => $activities,
|
||||
'edarateShahri' => $edarateShahri,
|
||||
]);
|
||||
}
|
||||
|
||||
public function excel(Request $request): BinaryFileResponse
|
||||
{
|
||||
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
|
||||
return Excel::download(
|
||||
new RoadPatrolTable($request->from_date, $request->date_to), $name
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3;
|
||||
namespace App\Http\Controllers\V3\Dashboard;
|
||||
|
||||
use App\Exports\V2\RoadItems\OperatorCartableExport;
|
||||
use App\Exports\V2\RoadItems\SupervisorCartableExport;
|
||||
@@ -10,18 +10,14 @@ use App\Http\Requests\V3\RoadItemsProject\StoreRequest;
|
||||
use App\Http\Requests\V3\RoadItemsProject\UpdateRequest;
|
||||
use App\Http\Requests\V3\RoadItemsProject\VerifyBySupervisorRequest;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\CMMSMachine;
|
||||
use App\Models\EdarateShahri;
|
||||
use App\Models\InfoItem;
|
||||
use App\Models\Rahdaran;
|
||||
use App\Models\RoadItemsProject;
|
||||
use App\Services\NominatimService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
@@ -36,7 +32,7 @@ class RoadItemsProjectController extends Controller
|
||||
{
|
||||
$columns = array(
|
||||
'id', 'user_id', 'start_lat', 'start_lng', 'end_lat',
|
||||
'end_lng', 'project_distance', 'item', 'item_fa', 'sub_item_fa',
|
||||
'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'
|
||||
@@ -143,7 +139,7 @@ class RoadItemsProjectController extends Controller
|
||||
{
|
||||
$columns = array(
|
||||
'id', 'user_id', 'start_lat', 'start_lng', 'end_lat',
|
||||
'end_lng', 'project_distance', 'item', 'item_fa', 'sub_item_fa',
|
||||
'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'
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3;
|
||||
namespace App\Http\Controllers\V3\Dashboard;
|
||||
|
||||
use App\Exports\V2\RoadPatrol\OperatorCartableExport;
|
||||
use App\Exports\V2\RoadPatrol\SupervisorCartableExport;
|
||||
@@ -30,6 +30,7 @@ class ProfileController extends Controller
|
||||
'major' => $user->major,
|
||||
'degree' => $user->degree,
|
||||
'mobile' => $user->mobile,
|
||||
'province_id' => $user->province_id,
|
||||
'avatar' => $user->avatarUrl()
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Reports;
|
||||
|
||||
use App\Exports\V2\RoadPatrol\RoadPatrolTable\AllSheets as RoadPatrolTable;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\RoadPatrolProject;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
class RoadPatrolReportController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
public function provincePatrolData(Request $request): JsonResponse
|
||||
{
|
||||
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
|
||||
|
||||
$data = RoadPatrolProject::provincePatrolData($fromDate, $dateTo);
|
||||
return $this->successResponse($data);
|
||||
}
|
||||
|
||||
public function edarehPatrolData(Request $request): JsonResponse
|
||||
{
|
||||
$request->validate(["province_id" => "required",]);
|
||||
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString();
|
||||
|
||||
$data = RoadPatrolProject::edarehPatrolData($fromDate, $dateTo, $request->province_id);
|
||||
return $this->successResponse($data);
|
||||
}
|
||||
|
||||
public function roadPatrolsReportTable(Request $request): BinaryFileResponse
|
||||
{
|
||||
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
|
||||
return Excel::download(
|
||||
new RoadPatrolTable($request->from_date, $request->date_to), $name
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\V3\Auth\LogoutController;
|
||||
use App\Http\Controllers\V3\Azmayesh\AzmayeshController;
|
||||
use App\Http\Controllers\V3\Azmayesh\AzmayeshSampleController;
|
||||
use App\Http\Controllers\V3\Azmayesh\AzmayeshTypeController;
|
||||
use App\Http\Controllers\V3\CMMSMachinesController;
|
||||
use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshController;
|
||||
use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshSampleController;
|
||||
use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshTypeController;
|
||||
use App\Http\Controllers\V3\Dashboard\ObservedItemController;
|
||||
use App\Http\Controllers\V3\Dashboard\Reports\RoadItemsReportController;
|
||||
use App\Http\Controllers\V3\Dashboard\Reports\RoadPatrolReportController;
|
||||
use App\Http\Controllers\V3\Dashboard\RoadItemsProjectController;
|
||||
use App\Http\Controllers\V3\Dashboard\RoadPatrolProjectController;
|
||||
use App\Http\Controllers\V3\FMSVehicleManagementController;
|
||||
use App\Http\Controllers\V3\Harim\DivarkeshiController;
|
||||
use App\Http\Controllers\V3\ObservedItemController;
|
||||
use App\Http\Controllers\V3\ProfileController;
|
||||
use App\Http\Controllers\V3\RahdaranController;
|
||||
use App\Http\Controllers\V3\Reports\RoadItemsReportController;
|
||||
use App\Http\Controllers\V3\Reports\RoadPatrolReportController;
|
||||
use App\Http\Controllers\V3\RoadItemsProjectController;
|
||||
use App\Http\Controllers\V3\RoadPatrolProjectController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::prefix('harim')->name('harim')->group(function () {
|
||||
@@ -195,10 +195,10 @@ Route::prefix('road_item_reports')
|
||||
->controller(RoadItemsReportController::class)
|
||||
->group(function () {
|
||||
Route::get('/get_sub_items', 'getSubItems')->name('getSubItems');
|
||||
Route::get('/get_items', 'provinceActivityPerSubItem')->name('provinceActivityPerSubItem');
|
||||
Route::get('/get_items_city', 'cityActivityPerSubItem')->name('cityActivityPerSubItem');
|
||||
Route::get('/province_statistics', 'provinceActivityPerItem')->name('provinceActivityPerItem');
|
||||
Route::get('/city_statistics', 'cityActivityPerItem')->name('cityActivityPerItem');
|
||||
Route::get('/province_activity_per_sub_item', 'provinceActivityPerSubItem')->name('provinceActivityPerSubItem');
|
||||
Route::get('/city_activity_per_sub_item', 'cityActivityPerSubItem')->name('cityActivityPerSubItem');
|
||||
Route::get('/province_activity_per_item', 'provinceActivityPerItem')->name('provinceActivityPerItem');
|
||||
Route::get('/city_activity_per_item', 'cityActivityPerItem')->name('cityActivityPerItem');
|
||||
Route::get('/map', 'map')->name('map');
|
||||
});
|
||||
|
||||
@@ -206,7 +206,7 @@ Route::prefix('road_patrol_reports')
|
||||
->name('roadPatrolReports.')
|
||||
->controller(RoadPatrolReportController::class)
|
||||
->group(function () {
|
||||
Route::get('/province_data', 'provincePatrolData')->name('provincePatrolData');
|
||||
Route::get('/edareh_data', 'edarehPatrolData')->name('edarehPatrolData');
|
||||
Route::get('/report_excel', 'roadPatrolsReportTable')->name('roadPatrolsReportTable');
|
||||
Route::get('/province_activity', 'provincePatrolActivity')->name('provincePatrolActivity');
|
||||
Route::get('/city_activity', 'cityPatrolActivity')->name('cityPatrolActivity');
|
||||
Route::get('/excel', 'excel')->name('excel');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user