Merge pull request #29 from witelgroup/bugfix/Mission

remove mission relation from cartables
This commit is contained in:
Amir Ghasempoor
2025-09-14 09:00:23 +03:30
committed by GitHub
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]));
throw_if(!$response->isPayed, new ProhibitedAction('پرداخت انجام نشده است'));
if ($response->isPayed) {
$accident->update([
'status' => AccidentStates::PARDAKHT_FACTOR->value,

View File

@@ -12,6 +12,7 @@ use App\Http\Traits\ApiResponse;
use App\Models\City;
use App\Models\Harim;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\DB;
class PanjareVahedController extends Controller
{
@@ -19,11 +20,15 @@ class PanjareVahedController extends Controller
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 {
$city = City::query()
->whereRaw("ST_Contains(
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']);
}
@@ -31,8 +36,7 @@ class PanjareVahedController extends Controller
$city = City::query()
->orderByRaw("ST_Distance(
geometry,
ST_SRID(ST_GeomFromText('POINT($request->lng $request->lat)'), 4326)
) ASC"
ST_GeomFromText('POINT($matches[2] $matches[1])', 4326)) ASC"
)
->first(['id', 'name_fa', 'province_id']);
}
@@ -42,7 +46,7 @@ class PanjareVahedController extends Controller
Harim::query()->create([
'state_id' => $state,
'state_name' => HarimStates::name($state),
'panjare_vahed_id' => $request->panjare_vahed_id,
'panjare_vahed_id' => $request->request_id,
'national_id' => $request->national_id,
'phone_number' => $request->phone_number,
'request_date' => $request->request_date,
@@ -58,8 +62,6 @@ class PanjareVahedController extends Controller
'response_options' => json_encode($request->response_options),
'isic' => $request->isic,
'primary_area' => json_encode($request->primary_area),
'lat' => $request->lat,
'lng' => $request->lng,
]);
return $this->successResponse([
@@ -73,11 +75,11 @@ class PanjareVahedController extends Controller
$state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_DAFTAR_HARIM->value;
Harim::query()
->firstWhere('panjare_vahed_id', '=', $request->panjare_vahed_id)
->firstWhere('panjare_vahed_id', '=', $request->request_id)
->update([
'state_id' => $state,
'state_name' => HarimStates::name($state),
'access_road' => $request->access_road,
'access_road' => json_encode($request->access_road),
]);
return $this->successResponse();
@@ -89,7 +91,7 @@ class PanjareVahedController extends Controller
$state = HarimStates::MOKHALEFAT_BA_DASTGAH->value;
Harim::query()
->firstWhere('panjare_vahed_id', '=', $request->panjare_vahed_id)
->firstWhere('panjare_vahed_id', '=', $request->request_id)
->update([
'state_id' => $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;
Harim::query()
->firstWhere('panjare_vahed_id', '=', $request->panjare_vahed_id)
->firstWhere('panjare_vahed_id', '=', $request->request_id)
->update([
'state_id' => $state,
'state_name' => HarimStates::name($state),
'final_area' => $request->final_area,
'final_plan' => $request->final_plan,
'final_area' => json_encode($request->final_area),
'final_plan' => json_encode($request->final_plan),
]);
return $this->successResponse();

View File

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

View File

@@ -23,8 +23,10 @@ class GetAccessRoadRequest extends FormRequest
public function rules(): array
{
return [
'panjare_vahed_id' => 'required',
'access_road' => 'required',
'request_id' => 'required|integer|exists:harims,panjare_vahed_id',
'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
{
return [
'panjare_vahed_id' => 'required',
'final_area' => 'required',
'final_plan' => 'required',
'request_id' => 'required|integer|exists:harims,panjare_vahed_id',
'final_area' => 'required|array',
'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
{
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
{
return [
'panjare_vahed_id' => 'required|integer|unique:harims,panjare_vahed_id',
'request_id' => 'required|integer|unique:harims,panjare_vahed_id',
'national_id' => 'required',
'phone_number' => 'required',
'request_date' => 'required',
'requested_organization' => 'required',
'requested_organization' => 'required|string',
'plan_group' => 'required',
'plan_title' => 'required',
'worksheet_id' => 'required',
'response_options' => 'required',
'isic' => 'required',
'primary_area' => 'required',
'lat' => 'required',
'lng' => 'required',
'primary_area' => 'required|array',
'primary_area.type' => 'required|string',
'primary_area.coordinates' => 'required|array',
];
}
}

View File

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

View File

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

View File

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

View File

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

View File

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