remove mission relation from cartables

This commit is contained in:
2025-09-14 08:56:21 +03:30
parent 20b2cb01d7
commit c86b001ff6
12 changed files with 41 additions and 31 deletions

View File

@@ -314,6 +314,8 @@ class AccidentReceiptController extends Controller
$response = json_decode($paymentService->callPaymentStatusBillApi(explode("/", $accident->bill_code)[0])); $response = json_decode($paymentService->callPaymentStatusBillApi(explode("/", $accident->bill_code)[0]));
throw_if(!$response->isPayed, new ProhibitedAction('پرداخت انجام نشده است'));
if ($response->isPayed) { if ($response->isPayed) {
$accident->update([ $accident->update([
'status' => AccidentStates::PARDAKHT_FACTOR->value, 'status' => AccidentStates::PARDAKHT_FACTOR->value,

View File

@@ -12,6 +12,7 @@ use App\Http\Traits\ApiResponse;
use App\Models\City; use App\Models\City;
use App\Models\Harim; use App\Models\Harim;
use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\DB;
class PanjareVahedController extends Controller class PanjareVahedController extends Controller
{ {
@@ -19,11 +20,15 @@ class PanjareVahedController extends Controller
public function receiveNewRequest(ReceiveNewRequest $request) public function receiveNewRequest(ReceiveNewRequest $request)
{ {
$wkt = 'POLYGON((' . implode(',', array_map(fn($c) => "{$c[0]} {$c[1]}", $request->primary_area['coordinates'])) . '))';
$result = DB::selectOne("SELECT ST_AsText(ST_PointOnSurface(ST_GeomFromText(?, 4326))) AS point", [$wkt]);
preg_match('/POINT\(([^ ]+) ([^ ]+)\)/', $result->point, $matches);
try { try {
$city = City::query() $city = City::query()
->whereRaw("ST_Contains( ->whereRaw("ST_Contains(
geometry, geometry,
ST_SRID(ST_GeomFromText('POINT($request->lng $request->lat)'), 4326))" ST_GeomFromText('POINT($matches[2] $matches[1])', 4326))"
) )
->firstOrFail(['id', 'name_fa', 'province_id']); ->firstOrFail(['id', 'name_fa', 'province_id']);
} }
@@ -31,8 +36,7 @@ class PanjareVahedController extends Controller
$city = City::query() $city = City::query()
->orderByRaw("ST_Distance( ->orderByRaw("ST_Distance(
geometry, geometry,
ST_SRID(ST_GeomFromText('POINT($request->lng $request->lat)'), 4326) ST_GeomFromText('POINT($matches[2] $matches[1])', 4326)) ASC"
) ASC"
) )
->first(['id', 'name_fa', 'province_id']); ->first(['id', 'name_fa', 'province_id']);
} }
@@ -42,7 +46,7 @@ class PanjareVahedController extends Controller
Harim::query()->create([ Harim::query()->create([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
'panjare_vahed_id' => $request->panjare_vahed_id, 'panjare_vahed_id' => $request->request_id,
'national_id' => $request->national_id, 'national_id' => $request->national_id,
'phone_number' => $request->phone_number, 'phone_number' => $request->phone_number,
'request_date' => $request->request_date, 'request_date' => $request->request_date,
@@ -58,8 +62,6 @@ class PanjareVahedController extends Controller
'response_options' => json_encode($request->response_options), 'response_options' => json_encode($request->response_options),
'isic' => $request->isic, 'isic' => $request->isic,
'primary_area' => json_encode($request->primary_area), 'primary_area' => json_encode($request->primary_area),
'lat' => $request->lat,
'lng' => $request->lng,
]); ]);
return $this->successResponse([ return $this->successResponse([
@@ -73,11 +75,11 @@ class PanjareVahedController extends Controller
$state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value; $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value;
Harim::query() Harim::query()
->firstWhere('panjare_vahed_id', '=', $request->panjare_vahed_id) ->firstWhere('panjare_vahed_id', '=', $request->request_id)
->update([ ->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
'access_road' => $request->access_road, 'access_road' => json_encode($request->access_road),
]); ]);
return $this->successResponse(); return $this->successResponse();
@@ -89,7 +91,7 @@ class PanjareVahedController extends Controller
$state = HarimStates::MOKHALEFAT_BA_DASTGAH->value; $state = HarimStates::MOKHALEFAT_BA_DASTGAH->value;
Harim::query() Harim::query()
->firstWhere('panjare_vahed_id', '=', $request->panjare_vahed_id) ->firstWhere('panjare_vahed_id', '=', $request->request_id)
->update([ ->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
@@ -104,12 +106,12 @@ class PanjareVahedController extends Controller
$state = HarimStates::TAEDE_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->value; $state = HarimStates::TAEDE_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_DAFTAR_HARIM->value;
Harim::query() Harim::query()
->firstWhere('panjare_vahed_id', '=', $request->panjare_vahed_id) ->firstWhere('panjare_vahed_id', '=', $request->request_id)
->update([ ->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
'final_area' => $request->final_area, 'final_area' => json_encode($request->final_area),
'final_plan' => $request->final_plan, 'final_plan' => json_encode($request->final_plan),
]); ]);
return $this->successResponse(); return $this->successResponse();

View File

@@ -160,6 +160,11 @@ class RequestPortalController extends Controller
$mission->rahdaran()->sync($request->rahdaran); $mission->rahdaran()->sync($request->rahdaran);
$mission->machines()->attach($request->machines); $mission->machines()->attach($request->machines);
$mission->rahdaran()->attach($request->driver, ['is_driver' => true]); $mission->rahdaran()->attach($request->driver, ['is_driver' => true]);
if ($mission->category_id == 2) {
$rpc = new OperatorController();
$rpc->store($mission);
}
}); });
return $this->successResponse(); return $this->successResponse();

View File

@@ -23,8 +23,10 @@ class GetAccessRoadRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'panjare_vahed_id' => 'required', 'request_id' => 'required|integer|exists:harims,panjare_vahed_id',
'access_road' => 'required', 'access_road' => 'required|array',
'access_road.type' => 'required|string',
'access_road.coordinates' => 'required|array',
]; ];
} }
} }

View File

@@ -23,9 +23,13 @@ class GetFinalPolygonsRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'panjare_vahed_id' => 'required', 'request_id' => 'required|integer|exists:harims,panjare_vahed_id',
'final_area' => 'required', 'final_area' => 'required|array',
'final_plan' => 'required', 'final_area.type' => 'required|string',
'final_area.coordinates' => 'required|array',
'final_plan' => 'required|array',
'final_plan.type' => 'required|string',
'final_plan.coordinates' => 'required|array',
]; ];
} }
} }

View File

@@ -23,7 +23,7 @@ class GetRejectRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'panjare_vahed_id' => 'required', 'request_id' => 'required|integer|exists:harims,panjare_vahed_id',
]; ];
} }
} }

View File

@@ -23,19 +23,19 @@ class ReceiveNewRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'panjare_vahed_id' => 'required|integer|unique:harims,panjare_vahed_id', 'request_id' => 'required|integer|unique:harims,panjare_vahed_id',
'national_id' => 'required', 'national_id' => 'required',
'phone_number' => 'required', 'phone_number' => 'required',
'request_date' => 'required', 'request_date' => 'required',
'requested_organization' => 'required', 'requested_organization' => 'required|string',
'plan_group' => 'required', 'plan_group' => 'required',
'plan_title' => 'required', 'plan_title' => 'required',
'worksheet_id' => 'required', 'worksheet_id' => 'required',
'response_options' => 'required', 'response_options' => 'required',
'isic' => 'required', 'isic' => 'required',
'primary_area' => 'required', 'primary_area' => 'required|array',
'lat' => 'required', 'primary_area.type' => 'required|string',
'lng' => 'required', 'primary_area.coordinates' => 'required|array',
]; ];
} }
} }

View File

@@ -55,6 +55,7 @@ class RoadItemsProject extends Model
'activity_date', 'activity_date',
'activity_time', 'activity_time',
'activity_date_time', 'activity_date_time',
'mission_id'
]; ];
/** /**

View File

@@ -11,7 +11,6 @@ class OperatorService
public function dataTable(Request $request, $loadRelations = false) public function dataTable(Request $request, $loadRelations = false)
{ {
$query = RoadItemsProject::query() $query = RoadItemsProject::query()
->with('mission:id')
->where('is_new', '=', 1) ->where('is_new', '=', 1)
->where('user_id', '=', auth()->user()->id); ->where('user_id', '=', auth()->user()->id);

View File

@@ -20,13 +20,11 @@ class SupervisorService
if ($user->hasPermissionTo('show-road-item-supervise-cartable')) { if ($user->hasPermissionTo('show-road-item-supervise-cartable')) {
$query = RoadItemsProject::query() $query = RoadItemsProject::query()
->with('mission:id')
->where('is_new', 1); ->where('is_new', 1);
} }
elseif ($user->hasPermissionTo('show-road-item-supervise-cartable-province')) { elseif ($user->hasPermissionTo('show-road-item-supervise-cartable-province')) {
throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!'));
$query = RoadItemsProject::query() $query = RoadItemsProject::query()
->with('mission:id')
->where('is_new', 1) ->where('is_new', 1)
->where('province_id', auth()->user()->province_id); ->where('province_id', auth()->user()->province_id);
} }

View File

@@ -12,7 +12,6 @@ class OperatorService
public function dataTable(Request $request, $loadRelations = false) public function dataTable(Request $request, $loadRelations = false)
{ {
$query = RoadPatrol::query() $query = RoadPatrol::query()
->with('mission:id')
->where('operator_id', '=', auth()->user()->id); ->where('operator_id', '=', auth()->user()->id);
return DataTableFacade::run( return DataTableFacade::run(

View File

@@ -20,16 +20,14 @@ class SupervisorService
$query = null; $query = null;
if ($user->hasPermissionTo('show-road-patrol-supervise-cartable')) { if ($user->hasPermissionTo('show-road-patrol-supervise-cartable')) {
$query = RoadPatrol::query() $query = RoadPatrol::query();
->with('mission:id');
} }
elseif ($user->hasPermissionTo('show-road-patrol-supervise-cartable-province')) elseif ($user->hasPermissionTo('show-road-patrol-supervise-cartable-province'))
{ {
throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!'));
$query = RoadPatrol::query() $query = RoadPatrol::query()
->where('province_id', '=', $user->province_id) ->where('province_id', '=', $user->province_id);
->with('mission:id');
} }
return DataTableFacade::run( return DataTableFacade::run(