From 4c3aa87acf45e3ed4939eaf66eb48e84a4a22c9f Mon Sep 17 00:00:00 2001 From: joddyabott Date: Wed, 1 Oct 2025 10:23:01 +0330 Subject: [PATCH 1/5] create one column for radaran and add in rahdaran controller --- .../Controllers/V3/RahdaranController.php | 5 ++++ ...0511_add_edareh_name_to_rahdaran_table.php | 28 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 database/migrations/2025_10_01_100511_add_edareh_name_to_rahdaran_table.php diff --git a/app/Http/Controllers/V3/RahdaranController.php b/app/Http/Controllers/V3/RahdaranController.php index a4128cc3..04591522 100644 --- a/app/Http/Controllers/V3/RahdaranController.php +++ b/app/Http/Controllers/V3/RahdaranController.php @@ -7,6 +7,7 @@ use App\Http\Controllers\Controller; use App\Http\Requests\V3\Rahdaran\StoreRequest; use App\Http\Requests\V3\Rahdaran\UpdateRequest; use App\Http\Traits\ApiResponse; +use App\Models\EdarateShahri; use App\Models\Province; use App\Models\Rahdaran; use Illuminate\Database\QueryException; @@ -30,6 +31,7 @@ class RahdaranController extends Controller public function store(StoreRequest $request): JsonResponse { $province = Province::query()->find($request->input('province_id')); + $edareh = EdarateShahri::query()->find($request->input('edareh_shahri_id')); Rahdaran::query()->create([ 'name' => $request->name, @@ -38,6 +40,7 @@ class RahdaranController extends Controller 'province_id' => $province->id, 'province_name' => $province->name_fa, 'edareh_shahri_id' => $request->edareh_shahri_id, + 'edareh_shahri_name' => $edareh->name_fa, ]); return $this->successResponse(); @@ -51,6 +54,7 @@ class RahdaranController extends Controller public function update(UpdateRequest $request, Rahdaran $rahdaran): JsonResponse { $province = Province::query()->find($request->input('province_id')); + $edareh = EdarateShahri::query()->find($request->input('edareh_shahri_id')); $rahdaran->update([ 'name' =>$request->name, @@ -59,6 +63,7 @@ class RahdaranController extends Controller 'province_id' => $province->id, 'province_name' => $province->name_fa, 'edareh_shahri_id' => $request->edareh_shahri_id, + 'edareh_shahri_name' => $edareh->name_fa, ]); return $this->successResponse(); diff --git a/database/migrations/2025_10_01_100511_add_edareh_name_to_rahdaran_table.php b/database/migrations/2025_10_01_100511_add_edareh_name_to_rahdaran_table.php new file mode 100644 index 00000000..bc16552f --- /dev/null +++ b/database/migrations/2025_10_01_100511_add_edareh_name_to_rahdaran_table.php @@ -0,0 +1,28 @@ +string('edareh_shahri_name')->nullable()->after('edareh_shahri_id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('rahdaran', function (Blueprint $table) { + $table->dropColumn('edareh_shahri_name'); + }); + } +}; From b6951c0b9b83a03e468d4412e98d1093a1310e34 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Wed, 1 Oct 2025 11:23:03 +0330 Subject: [PATCH 2/5] assiend permission for rahdaran --- app/Http/Controllers/V3/RahdaranController.php | 11 ++++++++++- routes/v3.php | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/V3/RahdaranController.php b/app/Http/Controllers/V3/RahdaranController.php index 04591522..47c8383e 100644 --- a/app/Http/Controllers/V3/RahdaranController.php +++ b/app/Http/Controllers/V3/RahdaranController.php @@ -13,6 +13,7 @@ use App\Models\Rahdaran; use Illuminate\Database\QueryException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; class RahdaranController extends Controller { @@ -20,8 +21,16 @@ class RahdaranController extends Controller public function index(Request $request): JsonResponse { + $user = Auth::user(); + $query = $user->hasPermissionTo('manage-rahdaran-country') ? + Rahdaran::query() : + ($user->hasPermissionTo('manage-rahdaran-province') ? + Rahdaran::query()->where('province_id', '=', $user->province_id) : + Rahdaran::query()->where('edareh_shahri_id', '=', $user->edarate_shahri_id) + ); + return response()->json(DataTableFacade::run( - Rahdaran::query(), + $query, $request, allowedFilters: ['*'], allowedSortings: ['*']) diff --git a/routes/v3.php b/routes/v3.php index 7120ef76..338a4cc4 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -185,6 +185,7 @@ Route::prefix('cmms_machines') Route::prefix('rahdaran') ->name('rahdaran.') + ->middleware('permission:manage-rahdaran-province|manage-rahdaran-edareh|manage-rahdaran-country') ->controller(RahdaranController::class) ->group(function () { Route::get('/', 'index')->name('index'); From 1473ab22642b8d5db74b1d80864c379a77bdd4aa Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Mon, 29 Sep 2025 11:44:42 +0330 Subject: [PATCH 3/5] add columns to cartable # Conflicts: # app/Http/Controllers/V3/RahdaranController.php --- app/Http/Controllers/V3/RahdaranController.php | 2 ++ .../V3/Mission/TransportaionUnit/AllocateRequest.php | 3 ++- app/Http/Requests/V3/Rahdaran/StoreRequest.php | 1 + app/Http/Requests/V3/Rahdaran/UpdateRequest.php | 1 + .../Cartables/Mission/TransportationUnitService.php | 2 +- .../2025_09_27_094044_add_column_to_rahdaran_table.php | 8 ++++---- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/V3/RahdaranController.php b/app/Http/Controllers/V3/RahdaranController.php index 47c8383e..412b7ac3 100644 --- a/app/Http/Controllers/V3/RahdaranController.php +++ b/app/Http/Controllers/V3/RahdaranController.php @@ -50,6 +50,7 @@ class RahdaranController extends Controller 'province_name' => $province->name_fa, 'edareh_shahri_id' => $request->edareh_shahri_id, 'edareh_shahri_name' => $edareh->name_fa, + 'is_driver' => $request->is_driver, ]); return $this->successResponse(); @@ -73,6 +74,7 @@ class RahdaranController extends Controller 'province_name' => $province->name_fa, 'edareh_shahri_id' => $request->edareh_shahri_id, 'edareh_shahri_name' => $edareh->name_fa, + 'is_driver' => $request->is_driver, ]); return $this->successResponse(); diff --git a/app/Http/Requests/V3/Mission/TransportaionUnit/AllocateRequest.php b/app/Http/Requests/V3/Mission/TransportaionUnit/AllocateRequest.php index 4c744cba..249d5c36 100644 --- a/app/Http/Requests/V3/Mission/TransportaionUnit/AllocateRequest.php +++ b/app/Http/Requests/V3/Mission/TransportaionUnit/AllocateRequest.php @@ -25,7 +25,8 @@ class AllocateRequest extends FormRequest return [ 'machines' => 'required|array', 'machines.*' => 'required|integer|exists:cmms_machines,id', - 'driver' => 'required|integer|exists:rahdaran,id' + 'driver' => 'required|integer|exists:rahdaran,id', + 'km' => 'required', ]; } } diff --git a/app/Http/Requests/V3/Rahdaran/StoreRequest.php b/app/Http/Requests/V3/Rahdaran/StoreRequest.php index 8d946ba4..ae925bdf 100644 --- a/app/Http/Requests/V3/Rahdaran/StoreRequest.php +++ b/app/Http/Requests/V3/Rahdaran/StoreRequest.php @@ -28,6 +28,7 @@ class StoreRequest extends FormRequest 'mobile' => 'required|digits:11|regex:/^09\d{9}$/', 'province_id' => 'required|exists:provinces,id', 'edareh_shahri_id' => 'required|exists:edarate_shahri,id', + 'is_driver' => 'required|boolean', ]; } } diff --git a/app/Http/Requests/V3/Rahdaran/UpdateRequest.php b/app/Http/Requests/V3/Rahdaran/UpdateRequest.php index 0f19e72a..20efef51 100644 --- a/app/Http/Requests/V3/Rahdaran/UpdateRequest.php +++ b/app/Http/Requests/V3/Rahdaran/UpdateRequest.php @@ -29,6 +29,7 @@ class UpdateRequest extends FormRequest 'mobile' => 'required|digits:11|regex:/^09\d{9}$/', 'province_id' => 'required|exists:provinces,id', 'edareh_shahri_id' => 'required|exists:edarate_shahri,id', + 'is_driver' => 'required|boolean', ]; } } diff --git a/app/Services/Cartables/Mission/TransportationUnitService.php b/app/Services/Cartables/Mission/TransportationUnitService.php index 7c5cc186..e0dd71b4 100644 --- a/app/Services/Cartables/Mission/TransportationUnitService.php +++ b/app/Services/Cartables/Mission/TransportationUnitService.php @@ -25,7 +25,7 @@ class TransportationUnitService 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id', 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa', 'start_time', 'finish_time', - 'code', 'category_id', 'category_name', 'explanation' + 'code', 'category_id', 'category_name', 'explanation', 'km' ] ); } diff --git a/database/migrations/2025_09_27_094044_add_column_to_rahdaran_table.php b/database/migrations/2025_09_27_094044_add_column_to_rahdaran_table.php index b4ce92f6..b954f770 100644 --- a/database/migrations/2025_09_27_094044_add_column_to_rahdaran_table.php +++ b/database/migrations/2025_09_27_094044_add_column_to_rahdaran_table.php @@ -12,10 +12,10 @@ return new class extends Migration public function up(): void { Schema::table('rahdaran', function (Blueprint $table) { - $table->unsignedTinyInteger('province_id'); + $table->unsignedTinyInteger('province_id')->nullable(); $table->foreign('province_id')->references('id')->on('provinces'); - $table->string('province_name'); - $table->unsignedBigInteger('edareh_shahri_id'); + $table->string('province_name')->nullable(); + $table->unsignedBigInteger('edareh_shahri_id')->nullable(); $table->foreign('edareh_shahri_id')->references('id')->on('edarate_shahri'); $table->boolean('is_driver')->default(false); }); @@ -29,7 +29,7 @@ return new class extends Migration Schema::table('rahdaran', function (Blueprint $table) { $table->dropForeign('province_id'); $table->dropForeign('edareh_shahri_id'); - $table->dropColumn(['province_id', 'province_name']); + $table->dropColumn(['province_id', 'province_name', 'edareh_shahri_id', 'is_driver']); }); } }; From 7a86e7a136415d9ab42379f4f9ca7af658e4afd1 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Wed, 1 Oct 2025 11:56:20 +0330 Subject: [PATCH 4/5] resolve confilict --- app/Http/Controllers/V3/RahdaranController.php | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/app/Http/Controllers/V3/RahdaranController.php b/app/Http/Controllers/V3/RahdaranController.php index 412b7ac3..5ef3ba42 100644 --- a/app/Http/Controllers/V3/RahdaranController.php +++ b/app/Http/Controllers/V3/RahdaranController.php @@ -7,13 +7,11 @@ use App\Http\Controllers\Controller; use App\Http\Requests\V3\Rahdaran\StoreRequest; use App\Http\Requests\V3\Rahdaran\UpdateRequest; use App\Http\Traits\ApiResponse; -use App\Models\EdarateShahri; use App\Models\Province; use App\Models\Rahdaran; use Illuminate\Database\QueryException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Auth; class RahdaranController extends Controller { @@ -21,16 +19,8 @@ class RahdaranController extends Controller public function index(Request $request): JsonResponse { - $user = Auth::user(); - $query = $user->hasPermissionTo('manage-rahdaran-country') ? - Rahdaran::query() : - ($user->hasPermissionTo('manage-rahdaran-province') ? - Rahdaran::query()->where('province_id', '=', $user->province_id) : - Rahdaran::query()->where('edareh_shahri_id', '=', $user->edarate_shahri_id) - ); - return response()->json(DataTableFacade::run( - $query, + Rahdaran::query(), $request, allowedFilters: ['*'], allowedSortings: ['*']) @@ -40,7 +30,6 @@ class RahdaranController extends Controller public function store(StoreRequest $request): JsonResponse { $province = Province::query()->find($request->input('province_id')); - $edareh = EdarateShahri::query()->find($request->input('edareh_shahri_id')); Rahdaran::query()->create([ 'name' => $request->name, @@ -49,7 +38,6 @@ class RahdaranController extends Controller 'province_id' => $province->id, 'province_name' => $province->name_fa, 'edareh_shahri_id' => $request->edareh_shahri_id, - 'edareh_shahri_name' => $edareh->name_fa, 'is_driver' => $request->is_driver, ]); @@ -64,7 +52,6 @@ class RahdaranController extends Controller public function update(UpdateRequest $request, Rahdaran $rahdaran): JsonResponse { $province = Province::query()->find($request->input('province_id')); - $edareh = EdarateShahri::query()->find($request->input('edareh_shahri_id')); $rahdaran->update([ 'name' =>$request->name, @@ -73,7 +60,6 @@ class RahdaranController extends Controller 'province_id' => $province->id, 'province_name' => $province->name_fa, 'edareh_shahri_id' => $request->edareh_shahri_id, - 'edareh_shahri_name' => $edareh->name_fa, 'is_driver' => $request->is_driver, ]); From 4860d3c45cfe7d8634bebafec90e586be13b07d9 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Wed, 1 Oct 2025 11:59:35 +0330 Subject: [PATCH 5/5] resolve confilict --- app/Http/Controllers/V3/RahdaranController.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/V3/RahdaranController.php b/app/Http/Controllers/V3/RahdaranController.php index 5ef3ba42..47c8383e 100644 --- a/app/Http/Controllers/V3/RahdaranController.php +++ b/app/Http/Controllers/V3/RahdaranController.php @@ -7,11 +7,13 @@ use App\Http\Controllers\Controller; use App\Http\Requests\V3\Rahdaran\StoreRequest; use App\Http\Requests\V3\Rahdaran\UpdateRequest; use App\Http\Traits\ApiResponse; +use App\Models\EdarateShahri; use App\Models\Province; use App\Models\Rahdaran; use Illuminate\Database\QueryException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; class RahdaranController extends Controller { @@ -19,8 +21,16 @@ class RahdaranController extends Controller public function index(Request $request): JsonResponse { + $user = Auth::user(); + $query = $user->hasPermissionTo('manage-rahdaran-country') ? + Rahdaran::query() : + ($user->hasPermissionTo('manage-rahdaran-province') ? + Rahdaran::query()->where('province_id', '=', $user->province_id) : + Rahdaran::query()->where('edareh_shahri_id', '=', $user->edarate_shahri_id) + ); + return response()->json(DataTableFacade::run( - Rahdaran::query(), + $query, $request, allowedFilters: ['*'], allowedSortings: ['*']) @@ -30,6 +40,7 @@ class RahdaranController extends Controller public function store(StoreRequest $request): JsonResponse { $province = Province::query()->find($request->input('province_id')); + $edareh = EdarateShahri::query()->find($request->input('edareh_shahri_id')); Rahdaran::query()->create([ 'name' => $request->name, @@ -38,7 +49,7 @@ class RahdaranController extends Controller 'province_id' => $province->id, 'province_name' => $province->name_fa, 'edareh_shahri_id' => $request->edareh_shahri_id, - 'is_driver' => $request->is_driver, + 'edareh_shahri_name' => $edareh->name_fa, ]); return $this->successResponse(); @@ -52,6 +63,7 @@ class RahdaranController extends Controller public function update(UpdateRequest $request, Rahdaran $rahdaran): JsonResponse { $province = Province::query()->find($request->input('province_id')); + $edareh = EdarateShahri::query()->find($request->input('edareh_shahri_id')); $rahdaran->update([ 'name' =>$request->name, @@ -60,7 +72,7 @@ class RahdaranController extends Controller 'province_id' => $province->id, 'province_name' => $province->name_fa, 'edareh_shahri_id' => $request->edareh_shahri_id, - 'is_driver' => $request->is_driver, + 'edareh_shahri_name' => $edareh->name_fa, ]); return $this->successResponse();