Files
backend/app/Http/Controllers/BiController.php
2024-02-01 09:53:53 +00:00

2370 lines
186 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\City;
use App\Models\Province;
use App\Models\InfoItem;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Hekmatinasser\Verta\Verta;
use Illuminate\Support\Facades\DB;
class BiController extends Controller
{
public function index(Request $request){
$project_years = [];
$v = verta();
$y = $v->format('Y');
for($i=1395; $i<=$y; $i++){
$project_years[$i] = 0;
}
$axis_type = ['1' => 0, '2' => 0, '3' => 0, '4' => 0];
$project_status = [0, 0, 0, 0, 0, 0, 0, 0, 0];
$province = [
'1' =>0,
'2' =>0,
'3' =>0,
'4' =>0,
'5' =>0,
'6' =>0,
'7' =>0,
'8' =>0,
'9' =>0,
'10' =>0,
'11' =>0,
'12' =>0,
'13' =>0,
'14' =>0,
'15' =>0,
'16' =>0,
'17' =>0,
'18' =>0,
'19' =>0,
'20' =>0,
'21' =>0,
'22' =>0,
'23' =>0,
'24' =>0,
'25' =>0,
'26' =>0,
'27' =>0,
'28' =>0,
'29' =>0,
'30' =>0,
'31' =>0,
'32' =>0,
'33' =>0,
'34' =>0,
'35' =>0,
];
$upgrade_safety_count = 0;
$technical_building_count = 0;
$construction_rural_count = 0;
$tollhouse_management_count = 0;
$maintenance_project_count = 0;
$danger_prevention_count = 0;
$tollhouse_management = null;
$danger_prevention = null;
$technical_building = null;
$maintenance_project = null;
$upgrade_safety = null;
$city = null;
$pt = $request->input('pt') ?? null;
$ps = $request->input('ps') ?? null;
$at = $request->input('at') ?? null;
$py = $request->input('py') ?? null;
$pp = $request->input('pp') ?? null;
$pc = $request->input('pc') ?? null;
$maintenance_project = DB::table('road_maintenance_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_maintenance_projects.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_maintenance_projects.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_maintenance_projects.start_latlng, \"$[1]\")) AS g" ),
'road_maintenance_projects.province_fa as p', 'road_maintenance_projects.axis_type',
'road_maintenance_projects.city_1_fa as c1', 'road_maintenance_projects.city_2_fa as c2',
'road_maintenance_projects.province_id', 'road_maintenance_projects.project_status',
'road_maintenance_projects.city_3_fa as c3', 'road_maintenance_projects.axis_type_fa as a',
'road_maintenance_projects.project_name as pn', 'road_maintenance_projects.contract_date as d',
'road_maintenance_projects.axis_name as an', 'road_maintenance_projects.project_status_fa as ps')
->get();
$maintenance_project_count = $maintenance_project->count();
$danger_prevention = DB::table('road_danger_preventions')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_danger_preventions.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_danger_preventions.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_danger_preventions.start_latlng, \"$[1]\")) AS g" ),
'road_danger_preventions.province_fa as p', 'road_danger_preventions.axis_type',
'road_danger_preventions.city_1_fa as c1', 'road_danger_preventions.city_2_fa as c2',
'road_danger_preventions.province_id', 'road_danger_preventions.project_status',
'road_danger_preventions.city_3_fa as c3', 'road_danger_preventions.axis_type_fa as a',
'road_danger_preventions.project_name as pn', 'road_danger_preventions.contract_date as d',
'road_danger_preventions.axis_name as an', 'road_danger_preventions.project_status_fa as ps')
->get();
$danger_prevention_count = $danger_prevention->count();
$upgrade_safety = DB::table('road_upgrade_safeties')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_upgrade_safeties.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_upgrade_safeties.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_upgrade_safeties.start_latlng, \"$[1]\")) AS g" ),
'road_upgrade_safeties.province_fa as p', 'road_upgrade_safeties.axis_type',
'road_upgrade_safeties.city_1_fa as c1', 'road_upgrade_safeties.city_2_fa as c2',
'road_upgrade_safeties.province_id', 'road_upgrade_safeties.project_status',
'road_upgrade_safeties.city_3_fa as c3', 'road_upgrade_safeties.axis_type_fa as a',
'road_upgrade_safeties.project_name as pn', 'road_upgrade_safeties.contract_date as d',
'road_upgrade_safeties.axis_name as an', 'road_upgrade_safeties.project_status_fa as ps')
->get();
$upgrade_safety_count = $upgrade_safety->count();
$technical_building = DB::table('road_technical_buildings')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_technical_buildings.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_technical_buildings.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_technical_buildings.start_latlng, \"$[1]\")) AS g" ),
'road_technical_buildings.province_fa as p', 'road_technical_buildings.axis_type',
'road_technical_buildings.city_1_fa as c1', 'road_technical_buildings.city_2_fa as c2',
'road_technical_buildings.province_id', 'road_technical_buildings.project_status',
'road_technical_buildings.city_3_fa as c3', 'road_technical_buildings.axis_type_fa as a',
'road_technical_buildings.project_name as pn', 'road_technical_buildings.contract_date as d',
'road_technical_buildings.axis_name as an', 'road_technical_buildings.project_status_fa as ps')
->get();
$technical_building_count = $technical_building->count();
$tollhouse_management = DB::table('road_tollhouse_managements')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_tollhouse_managements.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_tollhouse_managements.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_tollhouse_managements.start_latlng, \"$[1]\")) AS g" ),
'road_tollhouse_managements.province_fa as p', 'road_tollhouse_managements.axis_type',
'road_tollhouse_managements.city_1_fa as c1', 'road_tollhouse_managements.city_2_fa as c2',
'road_tollhouse_managements.province_id', 'road_tollhouse_managements.project_status',
'road_tollhouse_managements.city_3_fa as c3', 'road_tollhouse_managements.axis_type_fa as a',
'road_tollhouse_managements.project_name as pn', 'road_tollhouse_managements.contract_date as d',
'road_tollhouse_managements.axis_name as an', 'road_tollhouse_managements.project_status_fa as ps')
->get();
$tollhouse_management_count = $tollhouse_management->count();
$count_all = $upgrade_safety_count + $technical_building_count
+ $tollhouse_management_count + $maintenance_project_count
+ $danger_prevention_count;
$all_count = array( "upgrade_safety_count" => $upgrade_safety_count,
"danger_prevention_count" => $danger_prevention_count,
"technical_building_count" => $technical_building_count,
"maintenance_project_count" => $maintenance_project_count,
"tollhouse_management_count" => $tollhouse_management_count
);
$all = array( "tollhouse_management" => $tollhouse_management,
"danger_prevention" => $danger_prevention,
"technical_building" => $technical_building,
"maintenance_project" => $maintenance_project,
"upgrade_safety" => $upgrade_safety
);
// return $all;
foreach($all as $key => $value)
if($value != null)
foreach($value as $key1 => $data){
switch($data->axis_type){
case 1:
$axis_type['1']++;
break;
case 2:
$axis_type['2']++;
break;
case 3:
$axis_type['3']++;
break;
case 4:
$axis_type['4']++;
break;
}
switch($data->province_id){
case 1:
$province['1']++;
break;
case 2:
$province['2']++;
break;
case 3:
$province['3']++;
break;
case 4:
$province['4']++;
break;
case 5:
$province['5']++;
break;
case 6:
$province['6']++;
break;
case 7:
$province['7']++;
break;
case 8:
$province['8']++;
break;
case 9:
$province['9']++;
break;
case 10:
$province['10']++;
break;
case 11:
$province['11']++;
break;
case 12:
$province['12']++;
break;
case 13:
$province['13']++;
break;
case 14:
$province['14']++;
break;
case 15:
$province['15']++;
break;
case 16:
$province['16']++;
break;
case 17:
$province['17']++;
break;
case 18:
$province['18']++;
break;
case 19:
$province['19']++;
break;
case 20:
$province['20']++;
break;
case 21:
$province['21']++;
break;
case 22:
$province['22']++;
break;
case 23:
$province['23']++;
break;
case 24:
$province['24']++;
break;
case 25:
$province['25']++;
break;
case 26:
$province['26']++;
break;
case 27:
$province['27']++;
break;
case 28:
$province['28']++;
break;
case 29:
$province['29']++;
break;
case 30:
$province['30']++;
break;
case 31:
$province['31']++;
break;
case 32:
$province['32']++;
break;
case 33:
$province['33']++;
break;
case 34:
$province['34']++;
break;
case 35:
$province['35']++;
break;
}
($data->d <= 1395)?$project_years['1395']++:$project_years[$data->d]++;
$project_status[$data->project_status]++;
}
if($py != null){//// avg progress physic
if($py == 1395){
$avg = DB::select(DB::raw(
"SELECT AVG(i) AS ag FROM(
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\"))
ELSE 0
END AS i
FROM road_maintenance_projects
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_danger_preventions
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)qq
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_upgrade_safeties
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)qqq
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_technical_buildings
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)qqqq
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_tollhouse_managements
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)qqqqq)z"));
}
else
{
$avg = DB::select(DB::raw("SELECT AVG(i) AS ag FROM(SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\"))
ELSE 0
END AS i
FROM road_maintenance_projects
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_danger_preventions
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_upgrade_safeties
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_technical_buildings
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_tollhouse_managements
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q)z"));
}
}
else{
$avg = DB::select(DB::raw("SELECT AVG(i) AS ag FROM(SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\"))
ELSE 0
END AS i
FROM road_maintenance_projects
WHERE project_distance_update IS NOT NULL )q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_danger_preventions
WHERE project_distance_update IS NOT NULL )q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_upgrade_safeties
WHERE project_distance_update IS NOT NULL )q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_technical_buildings
WHERE project_distance_update IS NOT NULL )q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_tollhouse_managements
WHERE project_distance_update IS NOT NULL )q)z"));
}
if($pp != null){/// pahne shahrestan
if($py != null){
if($py == 1395){
$city = DB::select(DB::raw("SELECT city_fa,city_id,sum(cnt) as cnt FROM (
SELECT 1 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_maintenance_projects WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa
UNION
SELECT 2 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_danger_preventions WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa
UNION
SELECT 4 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_technical_buildings WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa
UNION
SELECT 3 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_upgrade_safeties WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa
UNION
SELECT 5 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_tollhouse_managements WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa)q
GROUP BY city_fa"));
}
else {
$city = DB::select(DB::raw("SELECT city_fa,city_id,sum(cnt) as cnt FROM (
SELECT 1 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_maintenance_projects WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa
UNION
SELECT 2 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_danger_preventions WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa
UNION
SELECT 4 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_technical_buildings WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa
UNION
SELECT 3 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_upgrade_safeties WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa
UNION
SELECT 5 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_tollhouse_managements WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa)q
GROUP BY city_fa"));
}
}
else {
$city = DB::select(DB::raw("SELECT city_fa,city_id,sum(cnt) as cnt FROM (
SELECT 1 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_maintenance_projects WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa
UNION
SELECT 2 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_danger_preventions WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa
UNION
SELECT 4 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_technical_buildings WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa
UNION
SELECT 3 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_upgrade_safeties WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa
UNION
SELECT 5 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_tollhouse_managements WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa)q
GROUP BY city_fa"));
}
}
return response()->json([
'status' => 'succeed',
'message' => '',
'rahdari' => [
'p_ostani' => ($city)?$city:null,
'avg' => $avg,
'counts' => $all_count,
'count_all' => $count_all,
'axis_type_count' => $axis_type,
'p_keshvari' => $province,
'project_status' => $project_status,
'project_years' => $project_years
]
], 200);
}
public function index_n(Request $request){
$pt = $request->input('pt') ?? null;
$ps = $request->input('ps') ?? null;
$at = $request->input('at') ?? null;
$py = $request->input('y') ?? null;
$pp = $request->input('p') ?? null;
$pc = $request->input('c') ?? null;
$i = $request->i ?? null;
switch ($i) {
case 2:
$maintenance_project_count = DB::table('road_maintenance_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$danger_prevention_count = DB::table('road_danger_preventions')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$upgrade_safety_count = DB::table('road_upgrade_safeties')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$technical_building_count = DB::table('road_technical_buildings')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$tollhouse_management_count = DB::table('road_tollhouse_managements')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$count_all_rahradi = $upgrade_safety_count + $technical_building_count
+ $tollhouse_management_count + $maintenance_project_count
+ $danger_prevention_count;
///// faaliat rozane jari
$road_items = DB::table('road_items_projects')
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
// ->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select('city_id', DB::raw('count(*) as total'))
->where('province_id', $pp)->groupBy('city_id');
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select('province_id', DB::raw('count(*) as total'))
->groupBy('province_id');
})
->get();
$road_items_chart = DB::table('road_items_projects')
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
// ->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select('item', DB::raw('count(*) as total'))
->where('province_id', $pp);
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select('road_items_projects.item', DB::raw('count(*) as total'));
})
// ->join('info_items', 'road_items_projects.item','=', 'info_items.item')
->groupBy('road_items_projects.item')
->get();
$road_items_count = DB::table('road_items_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
// ->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$road_patrols_count = DB::table('road_patrol_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
// ->leftJoin('users', 'users.id', '=', 'road_patrol_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_ok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '<>', 0)
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_nok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '=', 0)
->select(DB::raw('count(*) as total'))
->get();
$points_counts = DB::table('accident_points')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select( DB::raw('count(*) as total'))
->where('province_id', $pp);
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select(DB::raw('count(*) as total'));
})
->get();
$items_fa = InfoItem::groupBy('item')->get();
foreach($road_items_chart as $value){
foreach($items_fa as $val){
if($value->item == $val->item)
$value->item_fa = $val->item_str;
}
}
if(!empty($pp)){
$province = City::where('province_id', $pp)
->get();
foreach($road_items as $value){
foreach($province as $val){
if($value->city_id == $val->id)
$value->city_fa = $val->name_fa;
}
}
}
return response()->json([
'status' => 'succeed',
'message' => '',
'items' => [
// 'p_ostani' => ($city)?$city:null,
// 'avg' => $avg,
'item' => $road_items_chart,
// 'count_all' => $count_all,
// 'axis_type_count' => $axis_type,
// 'p_keshvari' => $province,
// 'project_status' => $project_status,
// 'project_years' => $project_years
],
'pahne' => $road_items,
'counts' => [
'rahdari' => $count_all_rahradi,
'items' => $road_items_count[0]->total,
'patrols' => $road_patrols_count[0]->total,
'observds' => [
'nok' => $observeds_count_nok[0]->total,
'ok' => $observeds_count_ok[0]->total,
'all' => $observeds_count_nok[0]->total + $observeds_count_ok[0]->total
],
'acc_points' => $points_counts[0]->total,
]
], 200);
///// end faaliat rozane jari
break;
case 3:
//// start patrol
$road_patrol = DB::table('road_patrol_projects')
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
// ->leftJoin('users', 'users.id', '=', 'road_patrol_projects.user_id')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select('city_id', DB::raw('count(*) as total'))
->where('province_id', $pp)->groupBy('city_id');
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select('province_id', DB::raw('count(*) as total'))
->groupBy('province_id');
})
->get();
$road_patrols_count = DB::table('road_patrol_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
// ->leftJoin('users', 'users.id', '=', 'road_patrol_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
/// end patrol
$road_items_count = DB::table('road_items_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
// ->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$maintenance_project_count = DB::table('road_maintenance_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$danger_prevention_count = DB::table('road_danger_preventions')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$upgrade_safety_count = DB::table('road_upgrade_safeties')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$technical_building_count = DB::table('road_technical_buildings')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$tollhouse_management_count = DB::table('road_tollhouse_managements')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$count_all_rahradi = $upgrade_safety_count + $technical_building_count
+ $tollhouse_management_count + $maintenance_project_count
+ $danger_prevention_count;
$observeds_count_ok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '<>', 0)
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_nok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '=', 0)
->select(DB::raw('count(*) as total'))
->get();
$points_counts = DB::table('accident_points')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select( DB::raw('count(*) as total'))
->where('province_id', $pp);
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select(DB::raw('count(*) as total'));
})
->get();
if(!empty($pp)){
$province = City::where('province_id', $pp)
->get();
foreach($road_patrol as $value){
foreach($province as $val){
if($value->city_id == $val->id)
$value->city_fa = $val->name_fa;
}
}
}
return response()->json([
'status' => 'succeed',
'message' => '',
'patrols' => [
],
'pahne' => $road_patrol,
'counts' => [
'rahdari' => $count_all_rahradi,
'items' => $road_items_count[0]->total,
'patrols' => $road_patrols_count[0]->total,
'observds' => [
'nok' => $observeds_count_nok[0]->total,
'ok' => $observeds_count_ok[0]->total,
'all' => $observeds_count_nok[0]->total + $observeds_count_ok[0]->total
],
'acc_points' => $points_counts[0]->total,
]
], 200);
break;
case 4:
//// shekayat barresi shode
if($pp != null){
if($pc !=null){
$sql = "SELECT city_id,ROUND(cnt/sall* 100) AS total FROM (
SELECT *,SUM(cnt) AS sall FROM (
SELECT * FROM (SELECT 1 AS t,rms_city_id AS city_id
,COUNT(*) AS cnt FROM road_observeds WHERE rms_status <> 0 AND rms_province_id = ".$pp." AND rms_city_id = ".$pc.")done
UNION
SELECT * FROM (SELECT 2 AS t,rms_city_id AS city_id,COUNT(*) AS cnt
FROM road_observeds WHERE rms_status = 0 AND rms_province_id = ".$pp." AND rms_city_id = ".$pc.")done
)summ GROUP BY city_id)final WHERE t =1";
$observds = DB::select(DB::raw($sql));
$sql = "SELECT city_id,ROUND(cnt/sall* 100) AS ag FROM (
SELECT *,SUM(cnt) AS sall FROM (
SELECT * FROM (SELECT 1 AS t,rms_city_id AS city_id
,COUNT(*) AS cnt FROM road_observeds WHERE rms_status <> 0 AND rms_province_id = ".$pp." AND rms_city_id = ".$pc.")done
UNION
SELECT * FROM (SELECT 2 AS t,rms_city_id AS city_id,COUNT(*) AS cnt
FROM road_observeds WHERE rms_status = 0 AND rms_province_id = ".$pp." AND rms_city_id = ".$pc.")done
)summ GROUP BY city_id)final WHERE t =1";
$avg = DB::select(DB::raw($sql));
}
else {
$sql = "SELECT city_id,ROUND(cnt/sall* 100) AS total FROM (
SELECT *,SUM(cnt) AS sall FROM (
SELECT * FROM (SELECT 1 AS t,rms_city_id AS city_id
,COUNT(*) AS cnt FROM road_observeds WHERE rms_status <> 0 AND rms_province_id = ".$pp." GROUP BY rms_city_id)done
UNION
SELECT * FROM (SELECT 2 AS t,rms_city_id AS city_id,COUNT(*) AS cnt
FROM road_observeds WHERE rms_status = 0 AND rms_province_id = ".$pp." GROUP BY rms_city_id)done
)summ GROUP BY city_id)final WHERE t =1";
$observds = DB::select(DB::raw($sql));
$sql = "SELECT ROUND(AVG(percent)) AS ag FROM(SELECT city_id,ROUND(cnt/sall* 100) AS percent FROM (
SELECT *,SUM(cnt) AS sall FROM (
SELECT * FROM (SELECT 1 AS t,rms_city_id AS city_id
,COUNT(*) AS cnt FROM road_observeds WHERE rms_status <> 0 AND rms_province_id = ".$pp." GROUP BY rms_city_id)done
UNION
SELECT * FROM (SELECT 2 AS t,rms_city_id AS city_id,COUNT(*) AS cnt FROM road_observeds
WHERE rms_status = 0 AND rms_province_id = ".$pp." GROUP BY rms_city_id)done
)summ GROUP BY city_id)final WHERE t =1)alla";
$avg = DB::select(DB::raw($sql));
}
}
else {
$sql = "SELECT province_id,ROUND(cnt/sall* 100) AS total FROM (
SELECT *,SUM(cnt) AS sall FROM (
SELECT * FROM (SELECT 1 AS t,rms_province_id AS province_id
,COUNT(*) AS cnt FROM road_observeds WHERE rms_status <> 0 GROUP BY rms_province_id)done
UNION
SELECT * FROM (SELECT 2 AS t,rms_province_id AS province_id,COUNT(*) AS cnt FROM road_observeds WHERE rms_status = 0 GROUP BY rms_province_id)done
)summ GROUP BY province_id)final WHERE t =1";
$observds = DB::select(DB::raw($sql));
$sql = "SELECT ROUND(AVG(percent)) AS ag FROM(SELECT province_id,ROUND(cnt/sall* 100) AS percent FROM (
SELECT *,SUM(cnt) AS sall FROM (
SELECT * FROM (SELECT 1 AS t,rms_province_id AS province_id
,COUNT(*) AS cnt FROM road_observeds WHERE rms_status <> 0 GROUP BY rms_province_id)done
UNION
SELECT * FROM (SELECT 2 AS t,rms_province_id AS province_id,COUNT(*) AS cnt FROM road_observeds WHERE rms_status = 0 GROUP BY rms_province_id)done
)summ GROUP BY province_id)final WHERE t =1)alla";
$avg = DB::select(DB::raw($sql));
}
$observeds_count_ok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '<>', 0)
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_nok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '=', 0)
->select(DB::raw('count(*) as total'))
->get();
$big_chart = "SELECT FeatureTypeTitle,fk_FeatureType,COUNT(*) AS cnt,
CASE WHEN rms_status = 0 THEN 0 ELSE 1 END AS res
FROM road_observeds GROUP BY fk_FeatureType,res ";
$observds_chart_big = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->groupBy('fk_FeatureType', 'res')
->select(DB::raw('FeatureTypeTitle,fk_FeatureType
,COUNT(*) AS cnt,
CASE WHEN rms_status = 0 THEN 0 ELSE 1 END AS res'))
->get();
//// end shekayat
$road_items_count = DB::table('road_items_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$maintenance_project_count = DB::table('road_maintenance_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$danger_prevention_count = DB::table('road_danger_preventions')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$upgrade_safety_count = DB::table('road_upgrade_safeties')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$technical_building_count = DB::table('road_technical_buildings')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$tollhouse_management_count = DB::table('road_tollhouse_managements')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$count_all_rahradi = $upgrade_safety_count + $technical_building_count
+ $tollhouse_management_count + $maintenance_project_count
+ $danger_prevention_count;
$road_patrols_count = DB::table('road_patrol_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
->leftJoin('users', 'users.id', '=', 'road_patrol_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$points_counts = DB::table('accident_points')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select( DB::raw('count(*) as total'))
->where('province_id', $pp);
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select(DB::raw('count(*) as total'));
})
->get();
if(!empty($pp)){
$province = City::where('province_id', $pp)
->get();
foreach($observds as $value){
foreach($province as $val){
if($value->city_id == $val->id)
$value->city_fa = $val->name_fa;
}
}
}
return response()->json([
'status' => 'succeed',
'message' => '',
'observds' => [
'avg' => $avg,
'chart_2_3' => $observds_chart_big,
'chart_4' => [
'nok' => $observeds_count_nok[0]->total,
'ok' => $observeds_count_ok[0]->total,
'all' => $observeds_count_nok[0]->total + $observeds_count_ok[0]->total
],
],
'pahne' => $observds,
'counts' => [
'rahdari' => $count_all_rahradi,
'items' => $road_items_count[0]->total,
'patrols' => $road_patrols_count[0]->total,
'observds' => [
'nok' => $observeds_count_nok[0]->total,
'ok' => $observeds_count_ok[0]->total,
'all' => $observeds_count_nok[0]->total + $observeds_count_ok[0]->total
],
'acc_points' => $points_counts[0]->total,
]
], 200);
break;
case 5:
$points = DB::table('accident_points')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select('province_id','province as province_fa', DB::raw('count(*) as total'))
->where('province_id', $pp);
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select('province_id','province as province_fa', DB::raw('count(*) as total'))
->groupBy('province_id');
})
->get();
$points_counts = DB::table('accident_points')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select( DB::raw('count(*) as total'))
->where('province_id', $pp);
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select(DB::raw('count(*) as total'));
})
->get();
if($pp != null){
$sql = "SELECT SUM(cnt) AS ag FROM(SELECT id,progress,province,COUNT(*) AS cnt,
CASE WHEN progress = 100 THEN 1 ELSE 0 END AS pro FROM accident_points
WHERE province_id=".$pp."
GROUP BY province,pro ) q WHERE pro =0";
$avg_not_ok = DB::select(DB::raw($sql));
$sql = "SELECT SUM(cnt) AS ag FROM(SELECT id,progress,province,COUNT(*) AS cnt,
CASE WHEN progress = 100 THEN 1 ELSE 0 END AS pro FROM accident_points
WHERE province_id=".$pp."
GROUP BY province,pro ) q WHERE pro =1";
$avg_ok = DB::select(DB::raw($sql));
$sql = "SELECT COUNT(*) AS cnt,geometric_desc FROM accident_points
where province_id= ".$pp." GROUP BY geometric_desc";
$chart2_3 = DB::select(DB::raw($sql));
}
else {
$sql = "SELECT SUM(cnt) AS ag FROM(SELECT id,progress,province,COUNT(*) AS cnt,
CASE WHEN progress = 100 THEN 1 ELSE 0 END AS pro FROM accident_points
GROUP BY province,pro ) q WHERE pro =0";
$avg_not_ok = DB::select(DB::raw($sql));
$sql = "SELECT SUM(cnt) AS ag FROM(SELECT id,progress,province,COUNT(*) AS cnt,
CASE WHEN progress = 100 THEN 1 ELSE 0 END AS pro FROM accident_points
GROUP BY province,pro ) q WHERE pro =1";
$avg_ok = DB::select(DB::raw($sql));
$sql = "SELECT COUNT(*) AS cnt,geometric_desc FROM accident_points GROUP BY geometric_desc";
$chart2_3 = DB::select(DB::raw($sql));
}
$road_items_count = DB::table('road_items_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$maintenance_project_count = DB::table('road_maintenance_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$danger_prevention_count = DB::table('road_danger_preventions')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$upgrade_safety_count = DB::table('road_upgrade_safeties')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$technical_building_count = DB::table('road_technical_buildings')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$tollhouse_management_count = DB::table('road_tollhouse_managements')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$count_all_rahradi = $upgrade_safety_count + $technical_building_count
+ $tollhouse_management_count + $maintenance_project_count
+ $danger_prevention_count;
$road_patrols_count = DB::table('road_patrol_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
->leftJoin('users', 'users.id', '=', 'road_patrol_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_ok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '<>', 0)
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_nok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '=', 0)
->select(DB::raw('count(*) as total'))
->get();
return response()->json([
'status' => 'succeed',
'message' => '',
'acc_points' => [
'avg' => ((float)$avg_ok[0]->ag)?round(100*(float)$avg_ok[0]->ag/((float)$avg_ok[0]->ag+(float)$avg_not_ok[0]->ag)):0,
'chart2_3' => $chart2_3,
// 'count_all' => $count_all,
// 'axis_type_count' => $axis_type,
// 'project_status' => $project_status,
// 'project_years' => $project_years
],
'pahne' => $points,
'counts' => [
'rahdari' => $count_all_rahradi,
'items' => $road_items_count[0]->total,
'patrols' => $road_patrols_count[0]->total,
'observds' => [
'nok' => $observeds_count_nok[0]->total,
'ok' => $observeds_count_ok[0]->total,
'all' => $observeds_count_nok[0]->total + $observeds_count_ok[0]->total
],
'acc_points' => $points_counts[0]->total,
]
], 200);
break;
case 7:
///start camp
// $sql = "SELECT blockage_cause,blockage_cause_fa,COUNT(*) AS cnt,SUM(blockage_length)
// AS lenght FROM camps WHERE is_open = 2 GROUP BY blockage_cause";
// $pies = DB::select(DB::raw($sql));
$sql = "SELECT axis_type, axis_type_fa, blockage_cause, blockage_cause_fa,
COUNT(*) AS cnt, SUM(blockage_length) AS lenght FROM camps
GROUP BY blockage_cause,axis_type";
$chart_2_3_4 = DB::select(DB::raw($sql));
$sql = "SELECT
bl_len FROM(
SELECT
SUM(blockage_length) AS bl_len
FROM
camps
)q";
$chart_1 = DB::select(DB::raw($sql));
return response()->json([
'charts' => [
// 'pies' => $pies,
'chart_2_3_4' => $chart_2_3_4,
'staticks' =>round($chart_1[0]->bl_len)
]
]);
///end camp
//// counts
$points_counts = DB::table('accident_points')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select( DB::raw('count(*) as total'))
->where('province_id', $pp);
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select(DB::raw('count(*) as total'));
})
->get();
$road_items_count = DB::table('road_items_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$maintenance_project_count = DB::table('road_maintenance_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$danger_prevention_count = DB::table('road_danger_preventions')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$upgrade_safety_count = DB::table('road_upgrade_safeties')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$technical_building_count = DB::table('road_technical_buildings')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$tollhouse_management_count = DB::table('road_tollhouse_managements')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->get()->count();
$count_all_rahradi = $upgrade_safety_count + $technical_building_count
+ $tollhouse_management_count + $maintenance_project_count
+ $danger_prevention_count;
$road_patrols_count = DB::table('road_patrol_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
->leftJoin('users', 'users.id', '=', 'road_patrol_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_ok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '<>', 0)
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_nok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '=', 0)
->select(DB::raw('count(*) as total'))
->get();
return response()->json([
'status' => 'succeed',
'message' => '',
'acc_points' => [
// 'avg' => $tol,
// 'chart2_3_4' => $chart2_3_4,
],
// 'pahne' => $points,
'counts' => [
'rahdari' => $count_all_rahradi,
'items' => $road_items_count[0]->total,
'patrols' => $road_patrols_count[0]->total,
'observds' => [
'nok' => $observeds_count_nok[0]->total,
'ok' => $observeds_count_ok[0]->total,
'all' => $observeds_count_nok[0]->total + $observeds_count_ok[0]->total
],
'acc_points' => $points_counts[0]->total,
]
], 200);
break;
default:////// proje haye rahdari
$project_years = [];
$v = verta();
$y = $v->format('Y');
for($i=1395; $i<=$y; $i++){
$project_years[$i] = 0;
}
$axis_type = ['1' => 0, '2' => 0, '3' => 0, '4' => 0];
$project_status = [0, 0, 0, 0, 0, 0, 0, 0, 0];
$province = [
'1' =>0,
'2' =>0,
'3' =>0,
'4' =>0,
'5' =>0,
'6' =>0,
'7' =>0,
'8' =>0,
'9' =>0,
'10' =>0,
'11' =>0,
'12' =>0,
'13' =>0,
'14' =>0,
'15' =>0,
'16' =>0,
'17' =>0,
'18' =>0,
'19' =>0,
'20' =>0,
'21' =>0,
'22' =>0,
'23' =>0,
'24' =>0,
'25' =>0,
'26' =>0,
'27' =>0,
'28' =>0,
'29' =>0,
'30' =>0,
'31' =>0,
'32' =>0,
'33' =>0,
'34' =>0,
'35' =>0,
];
$upgrade_safety_count = 0;
$technical_building_count = 0;
$construction_rural_count = 0;
$tollhouse_management_count = 0;
$maintenance_project_count = 0;
$danger_prevention_count = 0;
$tollhouse_management = null;
$danger_prevention = null;
$technical_building = null;
$maintenance_project = null;
$upgrade_safety = null;
$city = null;
$maintenance_project = DB::table('road_maintenance_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_maintenance_projects.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_maintenance_projects.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_maintenance_projects.start_latlng, \"$[1]\")) AS g" ),
'road_maintenance_projects.province_fa as p', 'road_maintenance_projects.axis_type',
'road_maintenance_projects.city_1_fa as c1', 'road_maintenance_projects.city_2_fa as c2',
'road_maintenance_projects.province_id', 'road_maintenance_projects.project_status',
'road_maintenance_projects.city_3_fa as c3', 'road_maintenance_projects.axis_type_fa as a',
'road_maintenance_projects.project_name as pn', 'road_maintenance_projects.contract_date as d',
'road_maintenance_projects.axis_name as an', 'road_maintenance_projects.project_status_fa as ps')
->get();
$maintenance_project_count = $maintenance_project->count();
$danger_prevention = DB::table('road_danger_preventions')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_danger_preventions.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_danger_preventions.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_danger_preventions.start_latlng, \"$[1]\")) AS g" ),
'road_danger_preventions.province_fa as p', 'road_danger_preventions.axis_type',
'road_danger_preventions.city_1_fa as c1', 'road_danger_preventions.city_2_fa as c2',
'road_danger_preventions.province_id', 'road_danger_preventions.project_status',
'road_danger_preventions.city_3_fa as c3', 'road_danger_preventions.axis_type_fa as a',
'road_danger_preventions.project_name as pn', 'road_danger_preventions.contract_date as d',
'road_danger_preventions.axis_name as an', 'road_danger_preventions.project_status_fa as ps')
->get();
$danger_prevention_count = $danger_prevention->count();
$upgrade_safety = DB::table('road_upgrade_safeties')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_upgrade_safeties.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_upgrade_safeties.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_upgrade_safeties.start_latlng, \"$[1]\")) AS g" ),
'road_upgrade_safeties.province_fa as p', 'road_upgrade_safeties.axis_type',
'road_upgrade_safeties.city_1_fa as c1', 'road_upgrade_safeties.city_2_fa as c2',
'road_upgrade_safeties.province_id', 'road_upgrade_safeties.project_status',
'road_upgrade_safeties.city_3_fa as c3', 'road_upgrade_safeties.axis_type_fa as a',
'road_upgrade_safeties.project_name as pn', 'road_upgrade_safeties.contract_date as d',
'road_upgrade_safeties.axis_name as an', 'road_upgrade_safeties.project_status_fa as ps')
->get();
$upgrade_safety_count = $upgrade_safety->count();
$technical_building = DB::table('road_technical_buildings')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_technical_buildings.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_technical_buildings.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_technical_buildings.start_latlng, \"$[1]\")) AS g" ),
'road_technical_buildings.province_fa as p', 'road_technical_buildings.axis_type',
'road_technical_buildings.city_1_fa as c1', 'road_technical_buildings.city_2_fa as c2',
'road_technical_buildings.province_id', 'road_technical_buildings.project_status',
'road_technical_buildings.city_3_fa as c3', 'road_technical_buildings.axis_type_fa as a',
'road_technical_buildings.project_name as pn', 'road_technical_buildings.contract_date as d',
'road_technical_buildings.axis_name as an', 'road_technical_buildings.project_status_fa as ps')
->get();
$technical_building_count = $technical_building->count();
$tollhouse_management = DB::table('road_tollhouse_managements')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($py), function ($query) use ($py) {
if(1395 == $py){
return $query->where('contract_date', '<=', 1395);
}
return $query->where('contract_date', $py);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('cities_id', 'like', '%"'.$pc.'":%');
})
->where('status', 2)
->select('road_tollhouse_managements.id as i',
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_tollhouse_managements.start_latlng, \"$[0]\")) AS l" ),
DB::raw("JSON_UNQUOTE(JSON_EXTRACT(road_tollhouse_managements.start_latlng, \"$[1]\")) AS g" ),
'road_tollhouse_managements.province_fa as p', 'road_tollhouse_managements.axis_type',
'road_tollhouse_managements.city_1_fa as c1', 'road_tollhouse_managements.city_2_fa as c2',
'road_tollhouse_managements.province_id', 'road_tollhouse_managements.project_status',
'road_tollhouse_managements.city_3_fa as c3', 'road_tollhouse_managements.axis_type_fa as a',
'road_tollhouse_managements.project_name as pn', 'road_tollhouse_managements.contract_date as d',
'road_tollhouse_managements.axis_name as an', 'road_tollhouse_managements.project_status_fa as ps')
->get();
$tollhouse_management_count = $tollhouse_management->count();
$count_all = $upgrade_safety_count + $technical_building_count
+ $tollhouse_management_count + $maintenance_project_count
+ $danger_prevention_count;
$all_count = array( "upgrade_safety_count" => $upgrade_safety_count,
"danger_prevention_count" => $danger_prevention_count,
"technical_building_count" => $technical_building_count,
"maintenance_project_count" => $maintenance_project_count,
"tollhouse_management_count" => $tollhouse_management_count
);
$all = array( "tollhouse_management" => $tollhouse_management,
"danger_prevention" => $danger_prevention,
"technical_building" => $technical_building,
"maintenance_project" => $maintenance_project,
"upgrade_safety" => $upgrade_safety
);
// return $all;
foreach($all as $key => $value)
if($value != null)
foreach($value as $key1 => $data){
switch($data->axis_type){
case 1:
$axis_type['1']++;
break;
case 2:
$axis_type['2']++;
break;
case 3:
$axis_type['3']++;
break;
case 4:
$axis_type['4']++;
break;
}
switch($data->province_id){
case 1:
$province['1']++;
break;
case 2:
$province['2']++;
break;
case 3:
$province['3']++;
break;
case 4:
$province['4']++;
break;
case 5:
$province['5']++;
break;
case 6:
$province['6']++;
break;
case 7:
$province['7']++;
break;
case 8:
$province['8']++;
break;
case 9:
$province['9']++;
break;
case 10:
$province['10']++;
break;
case 11:
$province['11']++;
break;
case 12:
$province['12']++;
break;
case 13:
$province['13']++;
break;
case 14:
$province['14']++;
break;
case 15:
$province['15']++;
break;
case 16:
$province['16']++;
break;
case 17:
$province['17']++;
break;
case 18:
$province['18']++;
break;
case 19:
$province['19']++;
break;
case 20:
$province['20']++;
break;
case 21:
$province['21']++;
break;
case 22:
$province['22']++;
break;
case 23:
$province['23']++;
break;
case 24:
$province['24']++;
break;
case 25:
$province['25']++;
break;
case 26:
$province['26']++;
break;
case 27:
$province['27']++;
break;
case 28:
$province['28']++;
break;
case 29:
$province['29']++;
break;
case 30:
$province['30']++;
break;
case 31:
$province['31']++;
break;
case 32:
$province['32']++;
break;
case 33:
$province['33']++;
break;
case 34:
$province['34']++;
break;
case 35:
$province['35']++;
break;
}
($data->d <= 1395)?$project_years['1395']++:$project_years[$data->d]++;
$project_status[$data->project_status]++;
}
if($py != null){//// avg progress physic
if($py == 1395){
$avg = DB::select(DB::raw(
"SELECT AVG(i) AS ag FROM(
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\"))
ELSE 0
END AS i
FROM road_maintenance_projects
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_danger_preventions
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)qq
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_upgrade_safeties
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)qqq
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_technical_buildings
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)qqqq
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_tollhouse_managements
WHERE project_distance_update IS NOT NULL and contract_date <= 1395)qqqqq)z"));
}
else
{
$avg = DB::select(DB::raw("SELECT AVG(i) AS ag FROM(SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\"))
ELSE 0
END AS i
FROM road_maintenance_projects
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_danger_preventions
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_upgrade_safeties
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_technical_buildings
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_tollhouse_managements
WHERE project_distance_update IS NOT NULL and contract_date = ".$py.")q)z"));
}
}
else{
$avg = DB::select(DB::raw("SELECT AVG(i) AS ag FROM(SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.10\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.11\"),\"$[2]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.12\"),\"$[3]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.13\"),\"$[1]\"))
ELSE 0
END AS i
FROM road_maintenance_projects
WHERE project_distance_update IS NOT NULL )q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_danger_preventions
WHERE project_distance_update IS NOT NULL )q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.8\"),\"$[1]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.9\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_upgrade_safeties
WHERE project_distance_update IS NOT NULL )q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.7\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_technical_buildings
WHERE project_distance_update IS NOT NULL )q
UNION
SELECT p,CAST(i AS UNSIGNED) AS i FROM (SELECT project_distance_update AS p,
CASE
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.1\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.2\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.3\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.4\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.5\"),\"$[0]\"))
WHEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\")) >= 0 THEN JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT(project_distance_update,\"$.6\"),\"$[0]\"))
ELSE 0
END AS i
FROM road_tollhouse_managements
WHERE project_distance_update IS NOT NULL )q)z"));
}
if($pp != null){/// pahne shahrestan
if($py != null){
if($py == 1395){
$city = DB::select(DB::raw("SELECT city_fa,city_id,sum(cnt) as cnt FROM (
SELECT 1 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_maintenance_projects WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa
UNION
SELECT 2 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_danger_preventions WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa
UNION
SELECT 4 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_technical_buildings WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa
UNION
SELECT 3 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_upgrade_safeties WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa
UNION
SELECT 5 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_tollhouse_managements WHERE province_id = 1 AND contract_date <= 1395 and status=2 GROUP BY city_1_fa)q
GROUP BY city_fa"));
}
else {
$city = DB::select(DB::raw("SELECT city_fa,city_id,sum(cnt) as cnt FROM (
SELECT 1 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_maintenance_projects WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa
UNION
SELECT 2 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_danger_preventions WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa
UNION
SELECT 4 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_technical_buildings WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa
UNION
SELECT 3 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_upgrade_safeties WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa
UNION
SELECT 5 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_tollhouse_managements WHERE province_id = 1 AND contract_date = ".$py." and status=2 GROUP BY city_1_fa)q
GROUP BY city_fa"));
}
}
else {
$city = DB::select(DB::raw("SELECT city_fa,city_id,sum(cnt) as cnt FROM (
SELECT 1 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_maintenance_projects WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa
UNION
SELECT 2 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_danger_preventions WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa
UNION
SELECT 4 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_technical_buildings WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa
UNION
SELECT 3 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_upgrade_safeties WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa
UNION
SELECT 5 AS t,JSON_UNQUOTE(JSON_EXTRACT(JSON_KEYS(cities_id),\"$[0]\")) AS city_id,city_1_fa AS city_fa,
COUNT(*) AS cnt FROM road_tollhouse_managements WHERE province_id = ".$pp." and status=2 GROUP BY city_1_fa)q
GROUP BY city_fa"));
}
}
//// end prorje haye rahdari
break;
}
$todayDate = Carbon::now()->format('Y-m-d');
$road_items_count = DB::table('road_items_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
// ->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$road_patrols_count = DB::table('road_patrol_projects')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('city_id', $pc);
})
// ->leftJoin('users', 'users.id', '=', 'road_patrol_projects.user_id')
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_ok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '<>', 0)
->select(DB::raw('count(*) as total'))
->get();
$observeds_count_nok = DB::table('road_observeds')
->when(!empty($pp), function ($query) use ($pp) {
return $query->where('rms_province_id', $pp);
})
->when(!empty($pc), function ($query) use ($pc) {
return $query->where('rms_city_id', $pc);
})
->where('rms_status', '=', 0)
->select(DB::raw('count(*) as total'))
->get();
$points_counts = DB::table('accident_points')
->when(!empty($pp), function ($query) use ($pp) {
return $query->select( DB::raw('count(*) as total'))
->where('province_id', $pp);
})
->when(empty($pp), function ($query) use ($pp) {
return $query->select(DB::raw('count(*) as total'));
})
->get();
return response()->json([
'status' => 'succeed',
'message' => '',
'rahdari' => [
'avg' => $avg,
'counts' => $all_count,
'count_all' => $count_all,
'axis_type_count' => $axis_type,
'project_status' => $project_status,
'project_years' => $project_years
],
'pahne' => ($pp)?$city:$province,
'counts' => [
'rahdari' => $count_all,
'items' => $road_items_count[0]->total,
'patrols' => $road_patrols_count[0]->total,
'observds' => [
'nok' => $observeds_count_nok[0]->total,
'ok' => $observeds_count_ok[0]->total,
'all' => $observeds_count_nok[0]->total + $observeds_count_ok[0]->total,
],
'acc_points' => $points_counts[0]->total,
]
], 200);
}
}