create receipt report logic
This commit is contained in:
106
app/Services/Cartables/AccidentReceiptTableService.php
Normal file
106
app/Services/Cartables/AccidentReceiptTableService.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Cartables;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\Accident;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AccidentReceiptTableService
|
||||
{
|
||||
use ApiResponse;
|
||||
|
||||
public function dataTable(Request $request)
|
||||
{
|
||||
$user = auth()->user();
|
||||
$query = null;
|
||||
|
||||
if ($user->hasPermissionTo('show-receipt')) {
|
||||
$query = Accident::query();
|
||||
}
|
||||
else {
|
||||
if (is_null($user->province_id)) {
|
||||
return $this->errorResponse('استانی برای شما در سامانه ثبت نشده است!');
|
||||
}
|
||||
|
||||
$query = Accident::query()->where('province_id', '=', $user->province_id);
|
||||
}
|
||||
|
||||
return DataTableFacade::run(
|
||||
$query,
|
||||
$request,
|
||||
allowedFilters: ['*'],
|
||||
allowedSortings: ['*']
|
||||
);
|
||||
}
|
||||
|
||||
public function provinceReport(Request $request): array
|
||||
{
|
||||
$data = DB::select(
|
||||
'SELECT
|
||||
"کشوری" as province_fa,
|
||||
-1 as province_id,
|
||||
COUNT(id) AS tedade,
|
||||
COUNT(CASE WHEN report_base = 0 THEN 1 END) AS police_rah,
|
||||
COUNT(CASE WHEN report_base = 1 THEN 1 END) AS gozaresh_gasht,
|
||||
SUM(`sum`) AS kol_sabt_shode,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `sum` END) AS vasel_shode,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `deposit_insurance_amount` END) AS vasel_shode_bimeh,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `deposit_daghi_amount` END) AS vasel_shode_daghi,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `final_amount` END) AS vasel_shode_final
|
||||
FROM `accidents`
|
||||
where created_at BETWEEN "'.$request->from_date.'" AND "'.$request->date_to.'"
|
||||
union
|
||||
SELECT
|
||||
province_fa,
|
||||
province_id,
|
||||
COUNT(id) AS tedade,
|
||||
COUNT(CASE WHEN report_base = 0 THEN 1 END) AS police_rah,
|
||||
COUNT(CASE WHEN report_base = 1 THEN 1 END) AS gozaresh_gasht,
|
||||
SUM(`sum`) AS kol_sabt_shode,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `sum` END) AS vasel_shode,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `deposit_insurance_amount` END) AS vasel_shode_bimeh,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `deposit_daghi_amount` END) AS vasel_shode_daghi,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `final_amount` END) AS vasel_shode_final
|
||||
FROM `accidents`
|
||||
where created_at BETWEEN "'.$request->from_date.'" AND "'.$request->date_to.'"
|
||||
GROUP BY province_id
|
||||
'
|
||||
);
|
||||
|
||||
return [
|
||||
'data' => collect($data),
|
||||
'fromDate' => $request->from_date,
|
||||
'toDate' => $request->date_to,
|
||||
];
|
||||
}
|
||||
|
||||
public function cityReport(Request $request): array
|
||||
{
|
||||
$data = DB::select(
|
||||
'SELECT
|
||||
city_fa,
|
||||
city_id,
|
||||
COUNT(id) AS tedade,
|
||||
COUNT(CASE WHEN report_base = 0 THEN 1 END) AS police_rah,
|
||||
COUNT(CASE WHEN report_base = 1 THEN 1 END) AS gozaresh_gasht,
|
||||
SUM(`sum`) AS kol_sabt_shode,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `sum` END) AS vasel_shode,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `deposit_insurance_amount` END) AS vasel_shode_bimeh,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `deposit_daghi_amount` END) AS vasel_shode_daghi,
|
||||
SUM(CASE WHEN STATUS > 3 THEN `final_amount` END) AS vasel_shode_final
|
||||
FROM `accidents`
|
||||
where created_at BETWEEN "'.$request->from_date.'" AND "'.$request->date_to.'" AND province_id ='.$request->province_id.'
|
||||
GROUP BY city_id
|
||||
'
|
||||
);
|
||||
|
||||
return [
|
||||
'data' => collect($data),
|
||||
'fromDate' => $request->from_date,
|
||||
'toDate' => $request->date_to,
|
||||
];
|
||||
}
|
||||
}
|
||||
228
app/Services/Cartables/RoadItemTableService.php
Normal file
228
app/Services/Cartables/RoadItemTableService.php
Normal file
@@ -0,0 +1,228 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Cartables;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Models\InfoItem;
|
||||
use App\Models\RoadItemsProject;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RoadItemTableService
|
||||
{
|
||||
public function supervisorCartableReport(Request $request, $loadRelations = false)
|
||||
{
|
||||
$allowedFilters = ['*'];
|
||||
$allowedSortings = ['*'];
|
||||
|
||||
$user = auth()->user();
|
||||
$query = null;
|
||||
|
||||
if ($user->hasPermissionTo('show-road-item-supervise-cartable')) {
|
||||
$query = RoadItemsProject::query()
|
||||
->select(['id', 'province_fa', 'edarat_name', 'item_fa', 'sub_item_fa', 'sub_item_data', 'unit_fa', 'start_lat', 'start_lng',
|
||||
'end_lat', 'end_lng', 'activity_date_time', 'created_at', 'status_fa', 'status'])
|
||||
->where('is_new', 1)
|
||||
->when($loadRelations, fn ($query) => $query->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));
|
||||
}
|
||||
elseif ($user->hasPermissionTo('show-road-item-supervise-cartable-province')) {
|
||||
if (is_null($user->province_id)) {
|
||||
return $this->errorResponse('استانی برای شما در سامانه ثبت نشده است!');
|
||||
}
|
||||
$query = RoadItemsProject::query()
|
||||
->select(['id', 'province_fa', 'edarat_name', 'item_fa', 'sub_item_fa', 'sub_item_data', 'unit_fa', 'start_lat', 'start_lng',
|
||||
'end_lat', 'end_lng', 'activity_date_time', 'created_at', 'status_fa', 'status'])
|
||||
->where('is_new', 1)
|
||||
->where('province_id', auth()->user()->province_id)
|
||||
->when($loadRelations, fn ($query) => $query->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));
|
||||
}
|
||||
|
||||
$data = DataTableFacade::run(
|
||||
$query,
|
||||
$request,
|
||||
allowedFilters: $allowedFilters,
|
||||
allowedSortings: $allowedSortings);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function operatorCartableReport(Request $request, $loadRelations = false)
|
||||
{
|
||||
$allowedFilters = ['*'];
|
||||
$allowedSortings = ['*'];
|
||||
|
||||
$query = RoadItemsProject::query()
|
||||
->select(['id', 'supervisor_description', 'item_fa', 'sub_item_fa', 'sub_item_data', 'unit_fa', 'start_lat', 'start_lng',
|
||||
'end_lat', 'end_lng', 'activity_date_time', 'created_at', 'status_fa', 'status'])
|
||||
->where('is_new', 1)
|
||||
->where('user_id', auth()->user()->id)
|
||||
->when($loadRelations, fn ($query) => $query->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));;
|
||||
|
||||
$data = DataTableFacade::run(
|
||||
$query,
|
||||
$request,
|
||||
allowedFilters: $allowedFilters,
|
||||
allowedSortings: $allowedSortings);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function countryActivityPerSubItem(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();
|
||||
$item = $request->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')
|
||||
->where('item', '=', $item)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
->where('status', '=', 1)
|
||||
->groupBy('province_id', 'sub_item')
|
||||
->get();
|
||||
|
||||
$countryRoadItemsPerSubItem = 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,
|
||||
-1 AS p')
|
||||
->where('item', '=', $item)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
->where('status', '=', 1)
|
||||
->groupBy('sub_item')
|
||||
->get();
|
||||
|
||||
|
||||
$activities = $provinceRoadItemsPerSubItem->push(...$countryRoadItemsPerSubItem);
|
||||
|
||||
return [
|
||||
'data' => $activities,
|
||||
'fromDate' => $fromDate,
|
||||
'toDate' => $toDate,
|
||||
];
|
||||
}
|
||||
|
||||
public function provinceActivityPerSubItem(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();
|
||||
$item = $request->item;
|
||||
$province = $request->province_id;
|
||||
|
||||
$cityRoadItemsPerSubItem = 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,
|
||||
edarat_id AS ci
|
||||
')
|
||||
->where('item', '=', $item)
|
||||
->where('province_id', '=', $province)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
->where('status', '=', 1)
|
||||
->groupBy('edarat_id', 'sub_item')
|
||||
->get();
|
||||
|
||||
$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();
|
||||
|
||||
|
||||
$activities = $cityRoadItemsPerSubItem->push(...$provinceRoadItemsPerSubItem);
|
||||
|
||||
return [
|
||||
'data' => $activities,
|
||||
'fromDate' => $fromDate,
|
||||
'toDate' => $toDate,
|
||||
];
|
||||
}
|
||||
|
||||
public function countryActivityPerItem(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();
|
||||
$user = auth()->user();
|
||||
// $isSpecialUser = in_array($user->username, ['witel', 'drdanesh']);
|
||||
$isSpecialUser = $user->hasPermissionTo("show-road-item-supervise-cartable");
|
||||
$provinceId = $isSpecialUser ? null : $user->province_id;
|
||||
|
||||
$provinceActivity = RoadItemsProject::query()
|
||||
->selectRaw('COUNT(*) AS s, province_id AS p, item AS i')
|
||||
->where('status', 1)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
->when(!$isSpecialUser, function ($query) use ($provinceId) {
|
||||
$query->where('province_id', $provinceId);
|
||||
})
|
||||
->groupBy('province_id', 'item');
|
||||
|
||||
$countryActivity = RoadItemsProject::query()
|
||||
->selectRaw('COUNT(*) AS s, -1 AS p, item AS i')
|
||||
->where('status', 1)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
->when(!$isSpecialUser, function ($query) use ($provinceId) {
|
||||
$query->where('province_id', $provinceId);
|
||||
})
|
||||
->groupBy('item');
|
||||
|
||||
$activities = $provinceActivity
|
||||
->unionAll($countryActivity)
|
||||
->get();
|
||||
|
||||
return [
|
||||
'data' => $activities,
|
||||
'fromDate' => $fromDate,
|
||||
'toDate' => $toDate,
|
||||
];
|
||||
}
|
||||
|
||||
public function provinceActivityPerItem(Request $request): array
|
||||
{
|
||||
$provinceId = $request->province_id;
|
||||
$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();
|
||||
|
||||
$edarehActivity = RoadItemsProject::query()
|
||||
->selectRaw('
|
||||
COUNT(*) AS s,
|
||||
edarat_id AS c,
|
||||
item AS i')
|
||||
->where('status', '=', 1)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
->where('province_id', $provinceId)
|
||||
->groupBy('item', 'edarat_id');
|
||||
|
||||
$cityActivity = RoadItemsProject::query()
|
||||
->selectRaw('
|
||||
COUNT(*) AS s,
|
||||
-1 AS c,
|
||||
item AS i')
|
||||
->where('status', '=', 1)
|
||||
->whereBetween('activity_date_time', [$fromDate, $toDate])
|
||||
->where('province_id', $provinceId)
|
||||
->groupBy('item');
|
||||
|
||||
$activities = $edarehActivity
|
||||
->unionAll($cityActivity)
|
||||
->get();
|
||||
|
||||
return [
|
||||
'data' => $activities,
|
||||
'fromDate' => $fromDate,
|
||||
'toDate' => $toDate,
|
||||
];
|
||||
}
|
||||
}
|
||||
185
app/Services/Cartables/RoadPatrolTableService.php
Normal file
185
app/Services/Cartables/RoadPatrolTableService.php
Normal file
@@ -0,0 +1,185 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Cartables;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Models\RoadPatrol;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RoadPatrolTableService
|
||||
{
|
||||
public function supervisorCartableReport(Request $request, $loadRelations = false)
|
||||
{
|
||||
$allowedFilters = ['*'];
|
||||
$allowedSortings = ['*'];
|
||||
|
||||
$user = auth()->user();
|
||||
$query = null;
|
||||
|
||||
if ($user->hasPermissionTo('show-road-patrol-supervise-cartable')) {
|
||||
$query = RoadPatrol::query()
|
||||
->select([])
|
||||
->when($loadRelations, fn ($query) => $query->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));
|
||||
}
|
||||
elseif ($user->hasPermissionTo('show-road-patrol-supervise-cartable-province')) {
|
||||
if (is_null($user->province_id)) {
|
||||
return $this->errorResponse('استانی برای شما در سامانه ثبت نشده است!');
|
||||
}
|
||||
$query = RoadPatrol::query()
|
||||
->select([])
|
||||
->where('province_id', '=', $user->province_id)
|
||||
->when($loadRelations, fn ($query) => $query->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));
|
||||
}
|
||||
|
||||
$data = DataTableFacade::run(
|
||||
$query,
|
||||
$request,
|
||||
allowedFilters: $allowedFilters,
|
||||
allowedSortings: $allowedSortings);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function operatorCartableReport(Request $request, $loadRelations = false)
|
||||
{
|
||||
$allowedFilters = ['*'];
|
||||
$allowedSortings = ['*'];
|
||||
|
||||
$query = RoadPatrol::query()
|
||||
->select([])
|
||||
->where('operator_id', '=', auth()->user()->id)
|
||||
->when($loadRelations, fn ($query) => $query->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));
|
||||
|
||||
$data = DataTableFacade::run(
|
||||
$query,
|
||||
$request,
|
||||
allowedFilters: $allowedFilters,
|
||||
allowedSortings: $allowedSortings);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
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,
|
||||
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 "'.$toDate.'") 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 "'.$toDate.'") temp
|
||||
GROUP BY province_id'
|
||||
);
|
||||
|
||||
return [
|
||||
'data' => $activities,
|
||||
'fromDate' => $fromDate,
|
||||
'toDate' => $toDate
|
||||
];
|
||||
}
|
||||
|
||||
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,
|
||||
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 "'.$toDate.'") 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 "'.$toDate.'") temp
|
||||
GROUP BY edare_id
|
||||
'
|
||||
);
|
||||
|
||||
return [
|
||||
'data' => $activities,
|
||||
'fromDate' => $fromDate,
|
||||
'toDate' => $toDate
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user