Merge branch 'feature/MILAD_update_road_obseverds' into 'develop'

Milad made major changes in road observation (e.g. fast react)

See merge request witelgroup/rms_v2!27
This commit is contained in:
Hamidreza Ranjbarpour
2024-10-03 13:32:09 +00:00
10 changed files with 3273 additions and 3125 deletions

View File

@@ -45,13 +45,42 @@ class RoadObservationProblems extends Command
*/ */
public function handle() public function handle()
{ {
////// TODO bayad ba date ham az 1 bahman ye darkhast bedim data koli biad
$url = "https://riws.rmto.ir/WebServices/NRPTrafficStatus.asmx?wsdl"; $url = "https://riws.rmto.ir/WebServices/NRPTrafficStatus.asmx?wsdl";
// try {
// $soap_client = new SoapClient($url);
// $result = $soap_client->Get_RoadObservedProblems_Current(array('strUserName' => 'vaytelrop', 'strPassword' => 'VaYtelROP*2024'));
// } catch (SoapFault $e) {
// echo $e->getMessage();
// $msg = 'rms: error in get road observation webservice babe!!!!'."\n";
// $msg .= $e->getMessage();
// // self::sms_sender('09398586633', $msg);
// // self::sms_sender('09367487107', $msg);
// return 0;
// }
// echo $v->year = 1395;
// echo "hi\n";
$v = verta(); // 1396-03-14 14:18:23
$month = $v->month;
$day = $v->day;
if ($v->month < 10)
$month = '0' . $v->month;
if ($v->day < 10)
$day = '0' . $v->day;
$date = $v->year . $month . $day;
// dd($date);
try { try {
$soap_client = new SoapClient($url); $soap_client = new SoapClient($url);
$result = $soap_client->Get_RoadObservedProblems_Current(array('strUserName' => 'vaytelrop', 'strPassword' => 'VaYtelROP*2024')); $result = $soap_client->Get_RoadObservedProblems_ByDate(array(
'strUserName' => 'vaytelrop',
'strPassword' => 'VaYtelROP*2024',
'strStartDate' => $date,
'strEndDate' => $date
));
} catch (SoapFault $e) { } catch (SoapFault $e) {
echo $e->getMessage(); echo $e->getMessage();
$msg = 'rms: error in get road observation webservice babe!!!!'."\n"; $msg = 'rms: error in get road observation webservice babe!!!!' . "\n";
$msg .= $e->getMessage(); $msg .= $e->getMessage();
// self::sms_sender('09398586633', $msg); // self::sms_sender('09398586633', $msg);
// self::sms_sender('09367487107', $msg); // self::sms_sender('09367487107', $msg);
@@ -59,6 +88,7 @@ class RoadObservationProblems extends Command
} }
$result = serialize($result); $result = serialize($result);
// return $result; // return $result;
// dd($result);
$x = strpos($result, '<Document'); $x = strpos($result, '<Document');
$y = strpos($result, '</Document'); $y = strpos($result, '</Document');
$q = intval($y) - intval($x) + 18; $q = intval($y) - intval($x) + 18;
@@ -70,10 +100,10 @@ class RoadObservationProblems extends Command
"26" => 1, "26" => 1,
"57" => 2, "57" => 2,
"91" => 3, "91" => 3,
"21" =>4, "21" => 4,
"18" => 5, "18" => 5,
//"83" => 6, //"83" => 6,
"83" =>7, "83" => 7,
"95" => 8, "95" => 8,
"11" => 9, "11" => 9,
"77" => 10, "77" => 10,
@@ -2711,7 +2741,8 @@ class RoadObservationProblems extends Command
$cityModel = $city ? City::find($city['city_id']) : null; $cityModel = $city ? City::find($city['city_id']) : null;
$rop = RoadObserved::updateOrCreate( $rop = RoadObserved::updateOrCreate(
['fk_RegisteredEventMessage' => $value->fk_RegisteredEventMessage], ['fk_RegisteredEventMessage' => $value->fk_RegisteredEventMessage],
['fk_RegisteredEventMessage' => $value->fk_RegisteredEventMessage ?? null, [
'fk_RegisteredEventMessage' => $value->fk_RegisteredEventMessage ?? null,
'Title' => $value->Title ?? null, 'Title' => $value->Title ?? null,
'StartTime' => $value->StartTime ?? null, 'StartTime' => $value->StartTime ?? null,
'EndTime' => $value->EndTime ?? null, 'EndTime' => $value->EndTime ?? null,
@@ -2726,10 +2757,10 @@ class RoadObservationProblems extends Command
'fk_Province' => $value->fk_Province ?? null, 'fk_Province' => $value->fk_Province ?? null,
'fk_Town' => $value->fk_Town ?? null, 'fk_Town' => $value->fk_Town ?? null,
'TownName' => $value->TownName ?? null, 'TownName' => $value->TownName ?? null,
'lng'=> $value->XGeo ?? null, 'lng' => $value->XGeo ?? null,
'lat'=> $value->YGeo ?? null, 'lat' => $value->YGeo ?? null,
'XLAM'=> $value->XLAM ?? null, 'XLAM' => $value->XLAM ?? null,
'YLAM'=> $value->YLAM ?? null, 'YLAM' => $value->YLAM ?? null,
'WeatherName' => $value->WeatherName ?? null, 'WeatherName' => $value->WeatherName ?? null,
'fk_Weather' => $value->fk_Weather ?? null, 'fk_Weather' => $value->fk_Weather ?? null,
'EventTypeTitle' => $value->EventTypeTitle ?? null, 'EventTypeTitle' => $value->EventTypeTitle ?? null,
@@ -2738,15 +2769,15 @@ class RoadObservationProblems extends Command
'fk_FeatureType' => $value->fk_FeatureType ?? null, 'fk_FeatureType' => $value->fk_FeatureType ?? null,
'Description' => (strlen($value->Description) > 5) ? $value->Description : null, 'Description' => (strlen($value->Description) > 5) ? $value->Description : null,
'MobileForSendEventSms' => $mobile, 'MobileForSendEventSms' => $mobile,
'rms_province_id' => $rmsProvinceId[(int)$value->fk_Province] ?? null, 'rms_province_id' => $rmsProvinceId[(int) $value->fk_Province] ?? null,
'rms_city_id' => $rmsCityId[(int)$value->fk_Town]["InvarID"] ?? null, 'rms_city_id' => $rmsCityId[(int) $value->fk_Town]["InvarID"] ?? null,
'observed_way_id' => self::get_way_id_from_nominatim($value->XGeo, $value->YGeo) ?? null, 'observed_way_id' => self::get_way_id_from_nominatim($value->XGeo, $value->YGeo) ?? null,
'province_id' => $city ? $city['province_id'] : null, 'province_id' => $city ? $city['province_id'] : null,
'city_id' => $city ? $city['city_id'] : null, 'city_id' => $city ? $city['city_id'] : null,
// 'handler_type' => EdarateShahri::class, // 'handler_type' => EdarateShahri::class,
'edarate_shahri_id' => $cityModel ? ($cityModel->edarateShahri()->where('is_primary', 1)->exists() ? $cityModel->edarateShahri()->where('is_primary', 1)->first()->id : null) : null, 'edarate_shahri_id' => $cityModel ? ($cityModel->edarateShahri()->where('is_primary', 1)->exists() ? $cityModel->edarateShahri()->where('is_primary', 1)->first()->id : null) : null,
'province_fa' => Province::find($city['province_id'])->name_fa, 'province_fa' => (isset($city['province_id']) ? Province::find($city['province_id'])->name_fa : null),
'city_fa' => $cityModel ? $cityModel->name_fa : null, 'city_fa' => $cityModel ? $cityModel->name_fa : null,
] ]
); );
@@ -2754,18 +2785,18 @@ class RoadObservationProblems extends Command
} }
} else { } else {
/////log for error add all of things like successfull operation /////log for error add all of things like successfull operation
$msg = 'rms: error in get data roadobserved babe!!!!'."\n"; $msg = 'rms: error in get data roadobserved babe!!!!' . "\n";
// self::sms_sender('09398586633', $msg); // self::sms_sender('09398586633', $msg);
// self::sms_sender('09367487107', $msg); // self::sms_sender('09367487107', $msg);
return $result; return $result;
} }
echo 'done at: '.date("Y-m-d H:i:s")."\n"; echo 'done at: ' . date("Y-m-d H:i:s") . "\n";
return 0; return 0;
} }
public function sms_sender($mobile, $msg) public function sms_sender($mobile, $msg)
{ {
$client=new SoapClient("http://sms1000.ir/webservice/smspro.asmx?WSDL"); $client = new SoapClient("http://sms1000.ir/webservice/smspro.asmx?WSDL");
$result=$client->doSendSMS( $result = $client->doSendSMS(
array( array(
'uUsername' => 'rmto', 'uUsername' => 'rmto',
'uPassword' => 'Rahdari89', 'uPassword' => 'Rahdari89',
@@ -2785,11 +2816,11 @@ class RoadObservationProblems extends Command
public function get_way_id_from_nominatim($lat, $lng) public function get_way_id_from_nominatim($lat, $lng)
{ {
$url = "https://testmap.141.ir/nominatim/reverse?format=jsonv2&lat=".$lat."&lon=".$lng."&zoom=16&addressdetails=16"; $url = "https://testmap.141.ir/nominatim/reverse?format=jsonv2&lat=" . $lat . "&lon=" . $lng . "&zoom=16&addressdetails=16";
$arrContextOptions=array( $arrContextOptions = array(
"ssl"=>array( "ssl" => array(
"verify_peer"=>false, "verify_peer" => false,
"verify_peer_name"=>false, "verify_peer_name" => false,
) )
); );

View File

@@ -45,7 +45,7 @@ class Kernel extends ConsoleKernel
*/ */
protected function commands() protected function commands()
{ {
$this->load(__DIR__.'/Commands'); $this->load(__DIR__ . '/Commands');
require base_path('routes/console.php'); require base_path('routes/console.php');
} }

View File

@@ -28,8 +28,8 @@ class OperatorCartableExport implements FromView, ShouldAutoSize, WithEvents, Wi
public function view(): View public function view(): View
{ {
$fromDate = $this->fromDate ? $this->fromDate . ' 00:00:00': null; $fromDate = $this->fromDate ? $this->fromDate . ' 00:00:00' : null;
$toDate = $this->toDate ? $this->toDate . ' 23:59:59': null; $toDate = $this->toDate ? $this->toDate . ' 23:59:59' : null;
$status = $this->status; $status = $this->status;
@@ -38,16 +38,16 @@ class OperatorCartableExport implements FromView, ShouldAutoSize, WithEvents, Wi
->where('rms_status', '!=', 0) ->where('rms_status', '!=', 0)
->whereNotNull('road_observeds.province_id') ->whereNotNull('road_observeds.province_id')
->whereNotNull('status') ->whereNotNull('status')
->when($this->id, function($query, $id){ ->when($this->id, function ($query, $id) {
return $query->where('road_observeds.id', 'LIKE', '%'. $id. '%'); return $query->where('road_observeds.id', 'LIKE', '%' . $id . '%');
}) })
->when(!is_null($status), function($query) use ($status){ ->when(!is_null($status), function ($query) use ($status) {
return $query->where('status', $status); return $query->where('status', $status);
}) })
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]); return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]);
}) })
->selectRaw('AutoID, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa, edarate_shahri.name_fa as edarate_shahri_name_fa') road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa, edarate_shahri.name_fa as edarate_shahri_name_fa')
->orderBy('status') ->orderBy('status')
->orderBy('road_observeds.id', 'desc') ->orderBy('road_observeds.id', 'desc')
@@ -65,16 +65,16 @@ class OperatorCartableExport implements FromView, ShouldAutoSize, WithEvents, Wi
->where('rms_status', '!=', 0) ->where('rms_status', '!=', 0)
->whereNotNull('road_observeds.province_id') ->whereNotNull('road_observeds.province_id')
->whereNotNull('status') ->whereNotNull('status')
->when($this->id, function($query, $id){ ->when($this->id, function ($query, $id) {
return $query->where('road_observeds.id', 'LIKE', '%'. $id. '%'); return $query->where('road_observeds.id', 'LIKE', '%' . $id . '%');
}) })
->when(!is_null($status), function($query) use ($status){ ->when(!is_null($status), function ($query) use ($status) {
return $query->where('status', $status); return $query->where('status', $status);
}) })
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]); return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]);
}) })
->selectRaw('AutoID, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa, edarate_shahri.name_fa as edarate_shahri_name_fa') road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa, edarate_shahri.name_fa as edarate_shahri_name_fa')
->orderBy('status') ->orderBy('status')
->orderBy('road_observeds.id', 'desc') ->orderBy('road_observeds.id', 'desc')
@@ -92,16 +92,16 @@ class OperatorCartableExport implements FromView, ShouldAutoSize, WithEvents, Wi
->where('rms_status', '!=', 0) ->where('rms_status', '!=', 0)
->whereNotNull('road_observeds.province_id') ->whereNotNull('road_observeds.province_id')
->whereNotNull('status') ->whereNotNull('status')
->when($this->id, function($query, $id){ ->when($this->id, function ($query, $id) {
return $query->where('road_observeds.id', 'LIKE', '%'. $id. '%'); return $query->where('road_observeds.id', 'LIKE', '%' . $id . '%');
}) })
->when(!is_null($status), function($query) use ($status){ ->when(!is_null($status), function ($query) use ($status) {
return $query->where('status', $status); return $query->where('status', $status);
}) })
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]); return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]);
}) })
->selectRaw('AutoID, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa, edarate_shahri.name_fa as edarate_shahri_name_fa') road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa, edarate_shahri.name_fa as edarate_shahri_name_fa')
->orderBy('status') ->orderBy('status')
->orderBy('road_observeds.id', 'desc') ->orderBy('road_observeds.id', 'desc')
@@ -122,7 +122,7 @@ class OperatorCartableExport implements FromView, ShouldAutoSize, WithEvents, Wi
public function registerEvents(): array public function registerEvents(): array
{ {
return [ return [
AfterSheet::class => function(AfterSheet $event) { AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true); $event->sheet->getDelegate()->setRightToLeft(true);
}, },
]; ];

View File

@@ -27,20 +27,20 @@ class PendingComplaintsExport implements FromView, ShouldAutoSize, WithEvents, W
public function view(): View public function view(): View
{ {
$fromDate = $this->fromDate ? $this->fromDate . ' 00:00:00': null; $fromDate = $this->fromDate ? $this->fromDate . ' 00:00:00' : null;
$toDate = $this->toDate ? $this->toDate . ' 23:59:59': null; $toDate = $this->toDate ? $this->toDate . ' 23:59:59' : null;
if (auth()->user()->hasPermissionTo('show-fast-react')) { if (auth()->user()->hasPermissionTo('show-fast-react')) {
$data = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') $data = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id')
->where('rms_status', 0) ->where('rms_status', 0)
->whereNotNull('edarate_shahri_id') ->whereNotNull('edarate_shahri_id')
->when($this->province_id, function($query, $province_id){ ->when($this->province_id, function ($query, $province_id) {
return $query->where('road_observeds.province_id', $province_id); return $query->where('road_observeds.province_id', $province_id);
}) })
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]); return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]);
}) })
->selectRaw('AutoID, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status,
status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng') status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng')
->orderBy('status') ->orderBy('status')
@@ -59,10 +59,10 @@ class PendingComplaintsExport implements FromView, ShouldAutoSize, WithEvents, W
->where('rms_province_id', auth()->user()->province_id) ->where('rms_province_id', auth()->user()->province_id)
->where('rms_status', 0) ->where('rms_status', 0)
->whereNotNull('road_observeds.province_id') ->whereNotNull('road_observeds.province_id')
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]); return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]);
}) })
->selectRaw('AutoID, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status,
status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng') status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng')
->orderBy('status') ->orderBy('status')
@@ -80,10 +80,10 @@ class PendingComplaintsExport implements FromView, ShouldAutoSize, WithEvents, W
->where('edarate_shahri_id', auth()->user()->edarate_shahri_id) ->where('edarate_shahri_id', auth()->user()->edarate_shahri_id)
->where('rms_status', 0) ->where('rms_status', 0)
->whereNotNull('edarate_shahri_id') ->whereNotNull('edarate_shahri_id')
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]); return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]);
}) })
->selectRaw('AutoID, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status,
status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng') status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng')
->orderBy('status') ->orderBy('status')
@@ -106,7 +106,7 @@ class PendingComplaintsExport implements FromView, ShouldAutoSize, WithEvents, W
public function registerEvents(): array public function registerEvents(): array
{ {
return [ return [
AfterSheet::class => function(AfterSheet $event) { AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true); $event->sheet->getDelegate()->setRightToLeft(true);
}, },
]; ];

View File

@@ -36,8 +36,8 @@ class ReportComplaintsExport implements FromView, ShouldAutoSize, WithEvents, Wi
public function view(): View public function view(): View
{ {
$fromDate = $this->fromDate ? $this->fromDate . ' 00:00:00': null; $fromDate = $this->fromDate ? $this->fromDate . ' 00:00:00' : null;
$toDate = $this->toDate ? $this->toDate . ' 23:59:59': null; $toDate = $this->toDate ? $this->toDate . ' 23:59:59' : null;
$data = []; $data = [];
@@ -45,13 +45,13 @@ class ReportComplaintsExport implements FromView, ShouldAutoSize, WithEvents, Wi
$data = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') $data = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id')
->where('rms_status', "<>", 0) ->where('rms_status', "<>", 0)
->whereNotNull('edarate_shahri_id') ->whereNotNull('edarate_shahri_id')
->when($this->province_id, function($query, $province_id){ ->when($this->province_id, function ($query, $province_id) {
return $query->where('road_observeds.province_id', $province_id); return $query->where('road_observeds.province_id', $province_id);
}) })
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]); return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]);
}) })
->selectRaw('AutoID, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status,
status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng') status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng')
->orderBy('status') ->orderBy('status')
@@ -70,10 +70,10 @@ class ReportComplaintsExport implements FromView, ShouldAutoSize, WithEvents, Wi
->where('rms_province_id', auth()->user()->province_id) ->where('rms_province_id', auth()->user()->province_id)
->where('rms_status', "<>", 0) ->where('rms_status', "<>", 0)
->whereNotNull('road_observeds.province_id') ->whereNotNull('road_observeds.province_id')
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]); return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]);
}) })
->selectRaw('AutoID, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status,
status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng') status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng')
->orderBy('status') ->orderBy('status')
@@ -91,10 +91,10 @@ class ReportComplaintsExport implements FromView, ShouldAutoSize, WithEvents, Wi
->where('edarate_shahri_id', auth()->user()->edarate_shahri_id) ->where('edarate_shahri_id', auth()->user()->edarate_shahri_id)
->where('rms_status', "<>", 0) ->where('rms_status', "<>", 0)
->whereNotNull('edarate_shahri_id') ->whereNotNull('edarate_shahri_id')
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]); return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]);
}) })
->selectRaw('AutoID, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status,
status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng') status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng')
->orderBy('status') ->orderBy('status')
@@ -117,7 +117,7 @@ class ReportComplaintsExport implements FromView, ShouldAutoSize, WithEvents, Wi
public function registerEvents(): array public function registerEvents(): array
{ {
return [ return [
AfterSheet::class => function(AfterSheet $event) { AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true); $event->sheet->getDelegate()->setRightToLeft(true);
}, },
]; ];

View File

@@ -29,8 +29,8 @@ class SupervisorCartableExport implements FromView, ShouldAutoSize, WithEvents,
public function view(): View public function view(): View
{ {
$fromDate = $this->fromDate ? $this->fromDate . ' 00:00:00': null; $fromDate = $this->fromDate ? $this->fromDate . ' 00:00:00' : null;
$toDate = $this->toDate ? $this->toDate . ' 23:59:59': null; $toDate = $this->toDate ? $this->toDate . ' 23:59:59' : null;
$status = $this->status; $status = $this->status;
@@ -40,23 +40,23 @@ class SupervisorCartableExport implements FromView, ShouldAutoSize, WithEvents,
$data = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') $data = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id')
// ->where('rms_status', '!=', 0) // ->where('rms_status', '!=', 0)
->whereNotNull('road_observeds.status') ->whereNotNull('road_observeds.status')
->when($this->id, function($query, $id){ ->when($this->id, function ($query, $id) {
return $query->where('road_observeds.id', 'LIKE', '%'. $id. '%'); return $query->where('road_observeds.id', 'LIKE', '%' . $id . '%');
}) })
->when(!is_null($status), function($query) use ($status){ ->when(!is_null($status), function ($query) use ($status) {
return $query->where('status', $status); return $query->where('status', $status);
}) })
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]); return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]);
}) })
->when($this->province_id, function($query, $province_id){ ->when($this->province_id, function ($query, $province_id) {
return $query->where('road_observeds.province_id', $province_id); return $query->where('road_observeds.province_id', $province_id);
}) })
// ->where(function ($query) { // ->where(function ($query) {
// $query->where('status', 0) // $query->where('status', 0)
// ->orWhere('supervisor_id', auth()->user()->id); // ->orWhere('supervisor_id', auth()->user()->id);
// }) // })
->selectRaw('AutoID, road_observeds.id, road_observeds.province_id, edarate_shahri.name_fa as edarate_shahri_name_fa, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, road_observeds.province_id, edarate_shahri.name_fa as edarate_shahri_name_fa, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa') road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa')
->orderBy('status') ->orderBy('status')
->orderBy('road_observeds.id', 'desc') ->orderBy('road_observeds.id', 'desc')
@@ -73,13 +73,13 @@ class SupervisorCartableExport implements FromView, ShouldAutoSize, WithEvents,
// ->where('rms_status', '!=', 0) // ->where('rms_status', '!=', 0)
->where('road_observeds.province_id', auth()->user()->province_id) ->where('road_observeds.province_id', auth()->user()->province_id)
->whereNotNull('road_observeds.status') ->whereNotNull('road_observeds.status')
->when($this->id, function($query, $id){ ->when($this->id, function ($query, $id) {
return $query->where('road_observeds.id', 'LIKE', '%'. $id. '%'); return $query->where('road_observeds.id', 'LIKE', '%' . $id . '%');
}) })
->when(!is_null($status), function($query) use ($status){ ->when(!is_null($status), function ($query) use ($status) {
return $query->where('status', $status); return $query->where('status', $status);
}) })
->when(($fromDate && $toDate), function($query) use($fromDate, $toDate){ ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) {
return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]); return $query->whereBetween('rms_last_activity', [$fromDate, $toDate]);
}) })
// ->when($this->province_id, function($query, $province_id){ // ->when($this->province_id, function($query, $province_id){
@@ -89,7 +89,7 @@ class SupervisorCartableExport implements FromView, ShouldAutoSize, WithEvents,
// $query->where('status', 0) // $query->where('status', 0)
// ->orWhere('supervisor_id', auth()->user()->id); // ->orWhere('supervisor_id', auth()->user()->id);
// }) // })
->selectRaw('AutoID, road_observeds.id, road_observeds.province_id, edarate_shahri.name_fa as edarate_shahri_name_fa, Title, FeatureTypeTitle, MobileForSendEventSms, ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, road_observeds.province_id, edarate_shahri.name_fa as edarate_shahri_name_fa, Title, FeatureTypeTitle, MobileForSendEventSms,
road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa') road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa')
->orderBy('status') ->orderBy('status')
->orderBy('road_observeds.id', 'desc') ->orderBy('road_observeds.id', 'desc')
@@ -109,7 +109,7 @@ class SupervisorCartableExport implements FromView, ShouldAutoSize, WithEvents,
public function registerEvents(): array public function registerEvents(): array
{ {
return [ return [
AfterSheet::class => function(AfterSheet $event) { AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true); $event->sheet->getDelegate()->setRightToLeft(true);
}, },
]; ];

View File

@@ -34,7 +34,7 @@ class RoadObservationController extends Controller
*/ */
public function supervisorCartable() public function supervisorCartable()
{ {
if (! auth()->user()->hasAnyPermission(['supervise-fast-react', 'supervise-fast-react-province'])) { if (!auth()->user()->hasAnyPermission(['supervise-fast-react', 'supervise-fast-react-province'])) {
abort(403); abort(403);
} }
auth()->user()->addActivityComplete(1137); auth()->user()->addActivityComplete(1137);
@@ -44,17 +44,36 @@ class RoadObservationController extends Controller
public function supervisorShow(Request $request) public function supervisorShow(Request $request)
{ {
if (! auth()->user()->hasAnyPermission(['supervise-fast-react', 'supervise-fast-react-province'])) { if (!auth()->user()->hasAnyPermission(['supervise-fast-react', 'supervise-fast-react-province'])) {
abort(403); abort(403);
} }
// if($request->dev) // if($request->dev)
// dd($request->query()); // dd($request->query());
$fields = ['AutoID', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'lat', 'lng', $fields = [
'FeatureTypeTitle', 'Description', 'MobileForSendEventSms', 'fk_RegisteredEventMessage',
'rms_description','rms_status', 'rms_last_activity_fa', 'rms_last_activity', 'road_observeds.province_id', 'province_fa', 'city_fa', 'edarate_shahri.name_fa', 'road_observeds.id',
'status', 'status_fa', 'supervisor_description', 'supervising_time']; 'Title',
'road_observeds.created_at',
'lat',
'lng',
'FeatureTypeTitle',
'Description',
'MobileForSendEventSms',
'rms_description',
'rms_status',
'rms_last_activity_fa',
'rms_last_activity',
'road_observeds.province_id',
'province_fa',
'city_fa',
'edarate_shahri.name_fa',
'status',
'status_fa',
'supervisor_description',
'supervising_time'
];
$aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa', '', '', '', '']; $aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa', '', '', '', ''];
@@ -142,7 +161,7 @@ class RoadObservationController extends Controller
*/ */
public function operatorCartable() public function operatorCartable()
{ {
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) { if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
abort(403); abort(403);
} }
auth()->user()->addActivityComplete(1139); auth()->user()->addActivityComplete(1139);
@@ -152,14 +171,34 @@ class RoadObservationController extends Controller
public function operatorShow(Request $request) public function operatorShow(Request $request)
{ {
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) { if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
abort(403); abort(403);
} }
$fields = ['AutoID', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'lat', 'lng', $fields = [
'FeatureTypeTitle', 'Description', 'MobileForSendEventSms', 'fk_RegisteredEventMessage',
'rms_description','rms_status','rms_start_latlng','rms_last_activity_fa','rms_last_activity', 'road_observeds.province_id', 'province_fa', 'city_fa', 'edarate_shahri.name_fa', 'road_observeds.id',
'status', 'status_fa', 'supervisor_description', 'supervising_time']; 'Title',
'road_observeds.created_at',
'lat',
'lng',
'FeatureTypeTitle',
'Description',
'MobileForSendEventSms',
'rms_description',
'rms_status',
'rms_start_latlng',
'rms_last_activity_fa',
'rms_last_activity',
'road_observeds.province_id',
'province_fa',
'city_fa',
'edarate_shahri.name_fa',
'status',
'status_fa',
'supervisor_description',
'supervising_time'
];
$aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa', '', '', '', '']; $aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa', '', '', '', ''];
@@ -221,7 +260,7 @@ class RoadObservationController extends Controller
public function pendingView() public function pendingView()
{ {
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) { if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
abort(403); abort(403);
} }
auth()->user()->addActivityComplete(1140); auth()->user()->addActivityComplete(1140);
@@ -231,7 +270,7 @@ class RoadObservationController extends Controller
public function count() public function count()
{ {
if (! auth()->user()->permissions()->where('type', 'fastreact')->exists()) { if (!auth()->user()->permissions()->where('type', 'fastreact')->exists()) {
abort(403); abort(403);
} }
@@ -278,15 +317,28 @@ class RoadObservationController extends Controller
public function showPending(Request $request) public function showPending(Request $request)
{ {
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) { if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
abort(403); abort(403);
} }
if($request->dev) if ($request->dev)
dd(auth()->user()->permissions->pluck('name')); dd(auth()->user()->permissions->pluck('name'));
$fields = ['AutoID', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'lat', 'lng', $fields = [
'FeatureTypeTitle', 'Description', 'MobileForSendEventSms', 'road_observeds.province_id','province_fa', 'city_fa', 'edarate_shahri.name_fa']; 'fk_RegisteredEventMessage',
'road_observeds.id',
'Title',
'road_observeds.created_at',
'lat',
'lng',
'FeatureTypeTitle',
'Description',
'MobileForSendEventSms',
'road_observeds.province_id',
'province_fa',
'city_fa',
'edarate_shahri.name_fa'
];
$aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa']; $aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa'];
@@ -346,6 +398,20 @@ class RoadObservationController extends Controller
'data' => $edarat_shahri, 'data' => $edarat_shahri,
]); ]);
} }
public function referReport(Request $request, RoadObserved $roadObserved)
{
$data = RoadObservationHistory::where('road_observation_histories.id', $roadObserved->id)->where('action', 'refer')->get();
foreach ($data as $key => $value) {
$data[$key]->from_edareh = EdarateShahri::find($value->from_edareh)->name_fa;
$data[$key]->to_edareh = EdarateShahri::find($value->to_edareh)->name_fa;
$user = User::find($value->user_id);
$data[$key]->user = $user->first_name . ' ' . $user->last_name;
}
return response()->json([
'status' => 200,
'data' => $data,
]);
}
public function refer(Request $request, RoadObserved $roadObserved) public function refer(Request $request, RoadObserved $roadObserved)
{ {
@@ -359,7 +425,7 @@ class RoadObservationController extends Controller
'message' => 'access to requested resource is forbidden.' 'message' => 'access to requested resource is forbidden.'
], 403); ], 403);
} }
$from_edareh = $roadObserved->edarate_shahri_id;
$roadObserved->update([ $roadObserved->update([
'edarate_shahri_id' => $request->edarate_shahri_id, 'edarate_shahri_id' => $request->edarate_shahri_id,
]); ]);
@@ -369,6 +435,8 @@ class RoadObservationController extends Controller
'user_id' => auth()->user()->id, 'user_id' => auth()->user()->id,
'action' => 'refer', 'action' => 'refer',
'description' => $request->refer_description, 'description' => $request->refer_description,
'from_edareh' => $from_edareh,
'to_edareh' => $request->edarate_shahri_id
]); ]);
auth()->user()->addActivityComplete(1037); auth()->user()->addActivityComplete(1037);
@@ -381,7 +449,7 @@ class RoadObservationController extends Controller
public function restore(Request $request, RoadObserved $roadObserved) public function restore(Request $request, RoadObserved $roadObserved)
{ {
if (! auth()->user()->hasPermissionTo('restore-fast-react')) { if (!auth()->user()->hasPermissionTo('restore-fast-react')) {
abort(403); abort(403);
} }
@@ -391,12 +459,12 @@ class RoadObservationController extends Controller
if ($roadObserved->image_before) { if ($roadObserved->image_before) {
$before_path = explode('/', $roadObserved->image_before); $before_path = explode('/', $roadObserved->image_before);
Storage::delete('public/'. implode('/', array_slice($before_path, 1))); Storage::delete('public/' . implode('/', array_slice($before_path, 1)));
} }
if ($roadObserved->image_after) { if ($roadObserved->image_after) {
$after_path = explode('/', $roadObserved->image_after); $after_path = explode('/', $roadObserved->image_after);
Storage::delete('public/'. implode('/', array_slice($after_path, 1))); Storage::delete('public/' . implode('/', array_slice($after_path, 1)));
} }
$roadObserved->update([ $roadObserved->update([
@@ -428,7 +496,7 @@ class RoadObservationController extends Controller
public function handle(Request $request, RoadObserved $roadObserved, NikarayanService $nikarayanService) public function handle(Request $request, RoadObserved $roadObserved, NikarayanService $nikarayanService)
{ {
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) { if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
return response()->json([ return response()->json([
'message' => 'access to requested resource is forbidden.' 'message' => 'access to requested resource is forbidden.'
], 403); ], 403);
@@ -445,10 +513,10 @@ class RoadObservationController extends Controller
$files_path[$file_index]['path'] = $request->file('image-before-1')->storeAs( $files_path[$file_index]['path'] = $request->file('image-before-1')->storeAs(
'public/road_observeds', 'public/road_observeds',
'img4_' . $file_time . '_image-before-1_' . $roadObserved->id . '_' . $uuid.'.'. $request->file('image-before-1')->extension() 'img4_' . $file_time . '_image-before-1_' . $roadObserved->id . '_' . $uuid . '.' . $request->file('image-before-1')->extension()
); );
$file_index++; $file_index++;
$roadObserved->image_before = 'storage/road_observeds/'.'img4_' . $file_time . '_image-before-1_' . $roadObserved->id . '_' . $uuid.'.'. $request->file('image-before-1')->extension(); $roadObserved->image_before = 'storage/road_observeds/' . 'img4_' . $file_time . '_image-before-1_' . $roadObserved->id . '_' . $uuid . '.' . $request->file('image-before-1')->extension();
} }
if ($request->file('image-after-1')) { if ($request->file('image-after-1')) {
@@ -456,10 +524,10 @@ class RoadObservationController extends Controller
$files_path[$file_index]['path'] = $request->file('image-after-1')->storeAs( $files_path[$file_index]['path'] = $request->file('image-after-1')->storeAs(
'public/road_observeds', 'public/road_observeds',
'img4_' . $file_time . '_image-after-1_' . $roadObserved->id . '_' . $uuid.'.'. $request->file('image-after-1')->extension() 'img4_' . $file_time . '_image-after-1_' . $roadObserved->id . '_' . $uuid . '.' . $request->file('image-after-1')->extension()
); );
$file_index++; $file_index++;
$roadObserved->image_after = 'storage/road_observeds/'.'img4_' . $file_time . '_image-after-1_' . $roadObserved->id . '_' . $uuid.'.'.$request->file('image-after-1')->extension(); $roadObserved->image_after = 'storage/road_observeds/' . 'img4_' . $file_time . '_image-after-1_' . $roadObserved->id . '_' . $uuid . '.' . $request->file('image-after-1')->extension();
} }
/////// milad i uncomment this /////// milad i uncomment this
@@ -474,13 +542,13 @@ class RoadObservationController extends Controller
]); ]);
$roadObserved->rms_status = $request->input('rms-status') ?? $roadObserved->rms_status; $roadObserved->rms_status = $request->input('rms-status') ?? $roadObserved->rms_status;
if ($request->input('rms-start-latlng')) { if ($request->input('start_point')) {
$roadObserved->rms_start_latlng = explode(',', $request->input('rms-start-latlng')) ?? null; $roadObserved->rms_start_latlng = explode(',', $request->input('start_point')) ?? null;
} }
if ($request->input('rms-end-latlng')) { // if ($request->input('rms-end-latlng')) {
$roadObserved->rms_end_latlng = explode(',', $request->input('rms-end-latlng')) ?? null; // $roadObserved->rms_end_latlng = explode(',', $request->input('rms-end-latlng')) ?? null;
} // }
$roadObserved->rms_description = $request->input('rms-description') ?? $roadObserved->rms_description; $roadObserved->rms_description = $request->input('description') ?? $roadObserved->rms_description;
$now_date_time = Carbon::now(); $now_date_time = Carbon::now();
$roadObserved->updated_at_fa = Verta::instance($now_date_time); $roadObserved->updated_at_fa = Verta::instance($now_date_time);
@@ -504,7 +572,7 @@ class RoadObservationController extends Controller
$result = $nikarayanService->updateRoadObservedInfoByNikarayan($request, $roadObserved, $files); $result = $nikarayanService->updateRoadObservedInfoByNikarayan($request, $roadObserved, $files);
} catch (SoapFault $e) { } catch (SoapFault $e) {
$msg = "error in send to nikarayan at".date("Y-m-d H:i:s")."\n".'rms: error in get road observation webservice babe!!!!'."\n"; $msg = "error in send to nikarayan at" . date("Y-m-d H:i:s") . "\n" . 'rms: error in get road observation webservice babe!!!!' . "\n";
$msg .= $e->getMessage(); $msg .= $e->getMessage();
Sms::sendSms(env('RMS_CTO_PHONE_NUMBER'), $msg); Sms::sendSms(env('RMS_CTO_PHONE_NUMBER'), $msg);

View File

@@ -25,18 +25,33 @@ class RoadObservationReportController extends Controller
if ($request->from_date && $request->date_to) { if ($request->from_date && $request->date_to) {
$from_date = $request->from_date; $from_date = $request->from_date;
$date_to = $request->date_to; $date_to = $request->date_to;
$from_date = $from_date.' 00:00:00'; $from_date = $from_date . ' 00:00:00';
$date_to = $date_to.' 23:59:59'; $date_to = $date_to . ' 23:59:59';
} else { } else {
$from_date = Date('Y-m-d'); $from_date = Date('Y-m-d');
$from_date = $from_date.' 00:00:00'; $from_date = $from_date . ' 00:00:00';
$date_to = Date('Y-m-d'); $date_to = Date('Y-m-d');
$date_to = $date_to.' 23:59:59'; $date_to = $date_to . ' 23:59:59';
} }
$fields = ['AutoID', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'lat', 'lng', $fields = [
'FeatureTypeTitle', 'Description', 'MobileForSendEventSms', 'road_observeds.province_id','province_fa', 'city_fa', 'edarate_shahri.name_fa', 'rms_last_activity_fa', 'rms_description']; 'fk_RegisteredEventMessage',
'road_observeds.id',
'Title',
'road_observeds.created_at',
'lat',
'lng',
'FeatureTypeTitle',
'Description',
'MobileForSendEventSms',
'road_observeds.province_id',
'province_fa',
'city_fa',
'edarate_shahri.name_fa',
'rms_last_activity_fa',
'rms_description'
];
$aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa', '', '']; $aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa', '', ''];
@@ -61,13 +76,13 @@ class RoadObservationReportController extends Controller
if ($request->from_date && $request->date_to) { if ($request->from_date && $request->date_to) {
$from_date = $request->from_date; $from_date = $request->from_date;
$date_to = $request->date_to; $date_to = $request->date_to;
$from_date = $from_date.' 00:00:00'; $from_date = $from_date . ' 00:00:00';
$date_to = $date_to.' 23:59:59'; $date_to = $date_to . ' 23:59:59';
} else { } else {
$from_date = Date('Y-m-d'); $from_date = Date('Y-m-d');
$from_date = $from_date.' 00:00:00'; $from_date = $from_date . ' 00:00:00';
$date_to = Date('Y-m-d'); $date_to = Date('Y-m-d');
$date_to = $date_to.' 23:59:59'; $date_to = $date_to . ' 23:59:59';
} }
$all = DB::select(DB::raw( $all = DB::select(DB::raw(
@@ -90,7 +105,7 @@ class RoadObservationReportController extends Controller
(SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id) AS tedad_mavarede_moshede_shode, (SELECT COUNT(*) FROM `observed_items` oi WHERE rp.`id`= oi.road_patrol_id) AS tedad_mavarede_moshede_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode, (SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NOT NULL) AS tedad_mavarede_peygiri_shode,
(SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode (SELECT COUNT(*) FROM `observed_items` oii WHERE rp.`id`= oii.road_patrol_id AND oii.road_item_id IS NOT NULL AND priority IS NULL) AS tedad_faliyat_sabt_shode
FROM `road_patrols` rp where rp.province_id = "'.$request->province_id.'" AND rp.start_time BETWEEN "'.$from_date.'" AND "'.$date_to.'") temp FROM `road_patrols` rp where rp.province_id = "' . $request->province_id . '" AND rp.start_time BETWEEN "' . $from_date . '" AND "' . $date_to . '") temp
GROUP BY city_id GROUP BY city_id
' '
)); ));
@@ -117,20 +132,22 @@ class RoadObservationReportController extends Controller
if ($request->from_date && $request->date_to) { if ($request->from_date && $request->date_to) {
$from_date = $request->from_date; $from_date = $request->from_date;
$date_to = $request->date_to; $date_to = $request->date_to;
$from_date = $from_date.' 00:00:00'; $from_date = $from_date . ' 00:00:00';
$date_to = $date_to.' 23:59:59'; $date_to = $date_to . ' 23:59:59';
} else { } else {
$from_date = Date('Y-m-d'); $from_date = Date('Y-m-d');
$from_date = $from_date.' 00:00:00'; $from_date = $from_date . ' 00:00:00';
$date_to = Date('Y-m-d'); $date_to = Date('Y-m-d');
$date_to = $date_to.' 23:59:59'; $date_to = $date_to . ' 23:59:59';
} }
$item = $request->item; $item = $request->item;
$all = array(); $all = array();
$all = DB::select(DB::raw( $all = DB::select(DB::raw(
'SELECT sub_item AS t,COUNT(*) AS c,CAST(SUM(CASE WHEN sub_item_data>0 THEN sub_item_data ELSE ABS(sub_item_data) END) AS UNSIGNED) AS s,province_id AS p FROM road_items_projects WHERE item = '.$item.' AND activity_date_time BETWEEN "'.$from_date.'" AND "'.$date_to.'" and status = 1 GROUP BY p, sub_item')); 'SELECT sub_item AS t,COUNT(*) AS c,CAST(SUM(CASE WHEN sub_item_data>0 THEN sub_item_data ELSE ABS(sub_item_data) END) AS UNSIGNED) AS s,province_id AS p FROM road_items_projects WHERE item = ' . $item . ' AND activity_date_time BETWEEN "' . $from_date . '" AND "' . $date_to . '" and status = 1 GROUP BY p, sub_item'
$country =DB::select(DB::raw( ));
'SELECT sub_item AS t,COUNT(*) AS c,CAST(SUM(CASE WHEN sub_item_data>0 THEN sub_item_data ELSE ABS(sub_item_data) END) AS UNSIGNED) AS s, -1 AS p FROM road_items_projects WHERE item = '.$item.' AND activity_date_time BETWEEN "'.$from_date.'" AND "'.$date_to.'" and status = 1 GROUP BY sub_item')); $country = DB::select(DB::raw(
'SELECT sub_item AS t,COUNT(*) AS c,CAST(SUM(CASE WHEN sub_item_data>0 THEN sub_item_data ELSE ABS(sub_item_data) END) AS UNSIGNED) AS s, -1 AS p FROM road_items_projects WHERE item = ' . $item . ' AND activity_date_time BETWEEN "' . $from_date . '" AND "' . $date_to . '" and status = 1 GROUP BY sub_item'
));
$items_fa = InfoItem::where('item', $item)->get(); $items_fa = InfoItem::where('item', $item)->get();
foreach ($all as $value) { foreach ($all as $value) {
foreach ($items_fa as $val) { foreach ($items_fa as $val) {
@@ -143,7 +160,7 @@ class RoadObservationReportController extends Controller
'status' => 'succeed', 'status' => 'succeed',
'message' => '', 'message' => '',
'data' => $all, 'data' => $all,
'country' =>$country, 'country' => $country,
'items_fa' => $items_fa 'items_fa' => $items_fa
], 200); ], 200);
} }
@@ -151,19 +168,20 @@ class RoadObservationReportController extends Controller
{ {
$item = $request->item; $item = $request->item;
if ($request->from_date && $request->date_to) { if ($request->from_date && $request->date_to) {
$from_date = $request->from_date.' 00:00:00'; $from_date = $request->from_date . ' 00:00:00';
$date_to = $request->date_to.' 23:59:59'; $date_to = $request->date_to . ' 23:59:59';
} else { } else {
$from_date = Date('Y-m-d'); $from_date = Date('Y-m-d');
$from_date = $from_date.' 00:00:00'; $from_date = $from_date . ' 00:00:00';
$date_to = Date('Y-m-d'); $date_to = Date('Y-m-d');
$date_to = $date_to.' 23:59:59'; $date_to = $date_to . ' 23:59:59';
} }
$item = $request->item; $item = $request->item;
$province = $request->province_id; $province = $request->province_id;
$all = array(); $all = array();
$all = DB::select(DB::raw( $all = DB::select(DB::raw(
'SELECT sub_item AS t,COUNT(*) AS c,CAST(SUM(CASE WHEN sub_item_data>0 THEN sub_item_data ELSE ABS(sub_item_data) END) AS UNSIGNED) AS s,province_id AS p, city_id AS ci FROM road_items_projects WHERE item = '.$item.' AND province_id = '.$province.' AND activity_date_time BETWEEN "'.$from_date.'" AND "'.$date_to.'" and status = 1 GROUP BY ci, sub_item')); 'SELECT sub_item AS t,COUNT(*) AS c,CAST(SUM(CASE WHEN sub_item_data>0 THEN sub_item_data ELSE ABS(sub_item_data) END) AS UNSIGNED) AS s,province_id AS p, city_id AS ci FROM road_items_projects WHERE item = ' . $item . ' AND province_id = ' . $province . ' AND activity_date_time BETWEEN "' . $from_date . '" AND "' . $date_to . '" and status = 1 GROUP BY ci, sub_item'
));
$items_fa = InfoItem::where('item', $item)->get(); $items_fa = InfoItem::where('item', $item)->get();
foreach ($all as $value) { foreach ($all as $value) {
foreach ($items_fa as $val) { foreach ($items_fa as $val) {
@@ -195,35 +213,35 @@ class RoadObservationReportController extends Controller
if (Auth::user()->username == 'witel' || Auth::user()->username == 'drdanesh') { if (Auth::user()->username == 'witel' || Auth::user()->username == 'drdanesh') {
$sql = "SELECT COUNT(*) AS s,province_id AS p,item AS i $sql = "SELECT COUNT(*) AS s,province_id AS p,item AS i
FROM road_items_projects WHERE FROM road_items_projects WHERE
road_items_projects.status = 1 and road_items_projects.activity_date_time BETWEEN '".$from_date." 00:00:00' and '".$date_to." 23:59:59' GROUP BY province_id,item road_items_projects.status = 1 and road_items_projects.activity_date_time BETWEEN '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59' GROUP BY province_id,item
UNION UNION
SELECT COUNT(*) AS s,province_id AS p,77 AS i FROM road_patrols SELECT COUNT(*) AS s,province_id AS p,77 AS i FROM road_patrols
WHERE WHERE
start_time BETWEEN '".$from_date." 00:00:00' and '".$date_to." 23:59:59' GROUP BY province_id start_time BETWEEN '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59' GROUP BY province_id
UNION UNION
SELECT COUNT(*) AS s,-1 AS p,item AS i FROM road_items_projects SELECT COUNT(*) AS s,-1 AS p,item AS i FROM road_items_projects
WHERE road_items_projects.status = 1 and road_items_projects.activity_date_time BETWEEN '".$from_date." 00:00:00' and '".$date_to." 23:59:59' WHERE road_items_projects.status = 1 and road_items_projects.activity_date_time BETWEEN '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59'
GROUP BY item GROUP BY item
UNION UNION
SELECT COUNT(*) AS s,-1 AS p,77 AS i FROM road_patrols SELECT COUNT(*) AS s,-1 AS p,77 AS i FROM road_patrols
WHERE start_time BETWEEN '".$from_date." 00:00:00' and '".$date_to." 23:59:59'"; WHERE start_time BETWEEN '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59'";
} else { } else {
$province_id = Auth::user()->province_id; $province_id = Auth::user()->province_id;
$sql = "SELECT COUNT(*) AS s,province_id AS p,item AS i $sql = "SELECT COUNT(*) AS s,province_id AS p,item AS i
FROM road_items_projects WHERE road_items_projects.status = 1 and road_items_projects.province_id = ".$province_id." and FROM road_items_projects WHERE road_items_projects.status = 1 and road_items_projects.province_id = " . $province_id . " and
road_items_projects.activity_date_time BETWEEN '".$from_date." 00:00:00' and '".$date_to." 23:59:59' GROUP BY province_id,item road_items_projects.activity_date_time BETWEEN '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59' GROUP BY province_id,item
UNION UNION
SELECT COUNT(*) AS s,province_id AS p,77 AS i FROM road_patrols SELECT COUNT(*) AS s,province_id AS p,77 AS i FROM road_patrols
WHERE road_patrols.province_id = ".$province_id." and WHERE road_patrols.province_id = " . $province_id . " and
road_patrols.start_time BETWEEN '".$from_date." 00:00:00' and '".$date_to." 23:59:59' GROUP BY province_id road_patrols.start_time BETWEEN '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59' GROUP BY province_id
UNION UNION
SELECT COUNT(*) AS s,-1 AS p,item AS i FROM road_items_projects SELECT COUNT(*) AS s,-1 AS p,item AS i FROM road_items_projects
WHERE road_items_projects.status = 1 and road_items_projects.province_id = ".$province_id." and road_items_projects.activity_date_time BETWEEN '".$from_date." 00:00:00' and '".$date_to." 23:59:59' WHERE road_items_projects.status = 1 and road_items_projects.province_id = " . $province_id . " and road_items_projects.activity_date_time BETWEEN '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59'
GROUP BY item GROUP BY item
UNION UNION
SELECT COUNT(*) AS s,-1 AS p,77 AS i FROM road_patrols SELECT COUNT(*) AS s,-1 AS p,77 AS i FROM road_patrols
WHERE road_patrols.province_id = ".$province_id." and road_patrols.start_time BETWEEN '".$from_date." 00:00:00' and '".$date_to." 23:59:59'"; WHERE road_patrols.province_id = " . $province_id . " and road_patrols.start_time BETWEEN '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59'";
} }
// dd($sql); // dd($sql);
$data = DB::select(DB::raw($sql)); $data = DB::select(DB::raw($sql));
@@ -247,13 +265,13 @@ class RoadObservationReportController extends Controller
$sql = "SELECT COUNT(*) AS s,city_id AS c,item AS i $sql = "SELECT COUNT(*) AS s,city_id AS c,item AS i
FROM road_items_projects where FROM road_items_projects where
status = 1 and road_items_projects.activity_date_time between '".$from_date." 00:00:00' and '".$date_to." 23:59:59' status = 1 and road_items_projects.activity_date_time between '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59'
and province_id= '".$p."' GROUP BY item,city_id and province_id= '" . $p . "' GROUP BY item,city_id
UNION UNION
SELECT COUNT(*) AS s,city_id AS c,77 AS i FROM road_patrols SELECT COUNT(*) AS s,city_id AS c,77 AS i FROM road_patrols
where where
road_patrols.start_time between '".$from_date." 00:00:00' and '".$date_to." 23:59:59' road_patrols.start_time between '" . $from_date . " 00:00:00' and '" . $date_to . " 23:59:59'
and province_id= '".$p."' GROUP BY city_id"; and province_id= '" . $p . "' GROUP BY city_id";
$data = DB::select(DB::raw($sql)); $data = DB::select(DB::raw($sql));
return response()->json([ return response()->json([

View File

@@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('road_observation_histories', function (Blueprint $table) {
$table->string('from_edareh')->nullable();
$table->string('to_edareh')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('road_observation_histories', function (Blueprint $table) {
$table->dropColumn('from_edareh');
$table->dropColumn('to_edareh');
});
}
};

View File

@@ -127,6 +127,7 @@ Route::prefix('road_observations')->group(function () {
Route::get('{roadObserved}', 'V2\Dashboard\RoadObservationController@roadObserveDetail'); Route::get('{roadObserved}', 'V2\Dashboard\RoadObservationController@roadObserveDetail');
Route::get('refer/list/{id}', 'V2\Dashboard\RoadObservationController@referList'); Route::get('refer/list/{id}', 'V2\Dashboard\RoadObservationController@referList');
Route::get('refer/report/{road_observed}', 'V2\Dashboard\RoadObservationController@referReport');
Route::post('refer/{road_observed}', 'V2\Dashboard\RoadObservationController@refer'); Route::post('refer/{road_observed}', 'V2\Dashboard\RoadObservationController@refer');
Route::post('/restore/{road_observed}', 'V2\Dashboard\RoadObservationController@restore'); Route::post('/restore/{road_observed}', 'V2\Dashboard\RoadObservationController@restore');
Route::post('handle/{road_observed}', 'V2\Dashboard\RoadObservationController@handle'); Route::post('handle/{road_observed}', 'V2\Dashboard\RoadObservationController@handle');