From 945ac4269bcfbcd14ed0cd4e5830f307cfa5df75 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sun, 22 Dec 2024 15:21:57 +0330 Subject: [PATCH 1/5] add cmms machine relation --- app/Http/Controllers/V3/RoadItemsProjectController.php | 10 +++++----- app/Models/RoadItemsProject.php | 6 ++++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/V3/RoadItemsProjectController.php b/app/Http/Controllers/V3/RoadItemsProjectController.php index 0c264762..da51031b 100644 --- a/app/Http/Controllers/V3/RoadItemsProjectController.php +++ b/app/Http/Controllers/V3/RoadItemsProjectController.php @@ -40,7 +40,7 @@ class RoadItemsProjectController extends Controller 'sub_item_data', 'created_at', 'updated_at', 'province_id', 'province_fa', 'unit_fa', 'status', 'status_fa', 'supervisor_description', 'supervising_time', 'supervisor_name', 'edarat_id', 'edarat_name', 'activity_date_time', - 'cmms_machine_id', 'cmms_machine_code' + 'cmms_machine_code' ); $allowedFilters = $columns; @@ -50,14 +50,14 @@ class RoadItemsProjectController extends Controller $query = null; if ($user->hasPermissionTo('show-road-item-supervise-cartable')) { - $query = RoadItemsProject::query()->where('is_new', 1)->with('files', 'rahdaran:id,name,code'); + $query = RoadItemsProject::query()->where('is_new', 1)->with(['files', 'rahdaran:id,name,code', 'cmmsMachine:id']); } elseif ($user->hasPermissionTo('show-road-item-supervise-cartable-province')) { if (is_null($user->province_id)) { return $this->errorResponse('استانی برای شما در سامانه ثبت نشده است!'); } $query = RoadItemsProject::query()->where('is_new', 1) - ->with('files', 'rahdaran:id,name,code')->where('province_id', auth()->user()->province_id); + ->with(['files', 'rahdaran:id,name,code', 'cmmsMachine:id'])->where('province_id', auth()->user()->province_id); } $data = DataTableFacade::run( @@ -148,13 +148,13 @@ class RoadItemsProjectController extends Controller 'sub_item_data', 'created_at', 'updated_at', 'province_id', 'province_fa', 'unit_fa', 'status', 'status_fa', 'supervisor_description', 'supervising_time', 'supervisor_name', 'edarat_id', 'edarat_name', 'activity_date_time', - 'cmms_machine_id', 'cmms_machine_code' + 'cmms_machine_code' ); $allowedFilters = $columns; $allowedSortings = $columns; - $query = RoadItemsProject::with(['files', 'rahdaran:id,name,code']) + $query = RoadItemsProject::with(['files', 'rahdaran:id,name,code', 'cmmsMachine:id']) ->where('is_new', 1) ->where('user_id', auth()->user()->id); diff --git a/app/Models/RoadItemsProject.php b/app/Models/RoadItemsProject.php index e09a4bfe..a424c777 100644 --- a/app/Models/RoadItemsProject.php +++ b/app/Models/RoadItemsProject.php @@ -3,6 +3,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Http\UploadedFile; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; @@ -170,6 +171,11 @@ class RoadItemsProject extends Model } } + public function cmmsMachine(): HasOne + { + return $this->hasOne(CMMSMachine::class); + } + public function rahdaran(): BelongsToMany { return $this->belongsToMany(Rahdaran::class,'rahdaran_road_items_project'); From 7c63cc1e14e839ca71692e3e89273b58ce8865b5 Mon Sep 17 00:00:00 2001 From: Witel Group Date: Sun, 22 Dec 2024 12:55:55 +0000 Subject: [PATCH 2/5] refactore the relation --- app/Http/Controllers/V3/RoadItemsProjectController.php | 6 +++--- app/Models/RoadItemsProject.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/V3/RoadItemsProjectController.php b/app/Http/Controllers/V3/RoadItemsProjectController.php index da51031b..7a413489 100644 --- a/app/Http/Controllers/V3/RoadItemsProjectController.php +++ b/app/Http/Controllers/V3/RoadItemsProjectController.php @@ -50,14 +50,14 @@ class RoadItemsProjectController extends Controller $query = null; if ($user->hasPermissionTo('show-road-item-supervise-cartable')) { - $query = RoadItemsProject::query()->where('is_new', 1)->with(['files', 'rahdaran:id,name,code', 'cmmsMachine:id']); + $query = RoadItemsProject::query()->where('is_new', 1)->with(['files', 'rahdaran:id,name,code', 'cmmsMachine:id,machine_code']); } elseif ($user->hasPermissionTo('show-road-item-supervise-cartable-province')) { if (is_null($user->province_id)) { return $this->errorResponse('استانی برای شما در سامانه ثبت نشده است!'); } $query = RoadItemsProject::query()->where('is_new', 1) - ->with(['files', 'rahdaran:id,name,code', 'cmmsMachine:id'])->where('province_id', auth()->user()->province_id); + ->with(['files', 'rahdaran:id,name,code', 'cmmsMachine:id,machine_code'])->where('province_id', auth()->user()->province_id); } $data = DataTableFacade::run( @@ -154,7 +154,7 @@ class RoadItemsProjectController extends Controller $allowedFilters = $columns; $allowedSortings = $columns; - $query = RoadItemsProject::with(['files', 'rahdaran:id,name,code', 'cmmsMachine:id']) + $query = RoadItemsProject::with(['files', 'rahdaran:id,name,code', 'cmmsMachine:id,machine_code']) ->where('is_new', 1) ->where('user_id', auth()->user()->id); diff --git a/app/Models/RoadItemsProject.php b/app/Models/RoadItemsProject.php index a424c777..c89b9080 100644 --- a/app/Models/RoadItemsProject.php +++ b/app/Models/RoadItemsProject.php @@ -173,7 +173,7 @@ class RoadItemsProject extends Model public function cmmsMachine(): HasOne { - return $this->hasOne(CMMSMachine::class); + return $this->hasOne(CMMSMachine::class, 'id', 'cmms_machine_id'); } public function rahdaran(): BelongsToMany From dbbc25ac7b1c887285167a7ed3daf80409433e24 Mon Sep 17 00:00:00 2001 From: Witel Group Date: Mon, 23 Dec 2024 06:46:18 +0000 Subject: [PATCH 3/5] comment the resize facade --- app/Http/Controllers/V3/RoadItemsProjectController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/V3/RoadItemsProjectController.php b/app/Http/Controllers/V3/RoadItemsProjectController.php index 7a413489..cf63b5af 100644 --- a/app/Http/Controllers/V3/RoadItemsProjectController.php +++ b/app/Http/Controllers/V3/RoadItemsProjectController.php @@ -298,7 +298,7 @@ class RoadItemsProjectController extends Controller ]); // $roadItemsProject->files()->create(['path' => $after]); $urlAfter = "/var/www/rms/public/storage/{$after}"; - \App\Helpers\Compress::resize($urlAfter); + // \App\Helpers\Compress::resize($urlAfter); } if ($request->has('before_image')) { Storage::delete('public/'. $roadItemsProject->files[1]->path); @@ -309,7 +309,7 @@ class RoadItemsProjectController extends Controller ]); // $roadItemsProject->files()->create(['path' => $before]); $urlBefore = "/var/www/rms/public/storage/{$before}"; - \App\Helpers\Compress::resize($urlBefore); + // \App\Helpers\Compress::resize($urlBefore); } } From e9ca94f089af8dec2078daee0e20266a6c27c75e Mon Sep 17 00:00:00 2001 From: Witel Group Date: Mon, 23 Dec 2024 07:50:36 +0000 Subject: [PATCH 4/5] change datatable to accept multisort --- app/Services/DataTable/DataTableInput.php | 13 +++++++++---- app/Services/DataTable/DataTableService.php | 5 ++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/Services/DataTable/DataTableInput.php b/app/Services/DataTable/DataTableInput.php index 69172f9a..db0cfa7f 100644 --- a/app/Services/DataTable/DataTableInput.php +++ b/app/Services/DataTable/DataTableInput.php @@ -57,12 +57,17 @@ class DataTableInput } /** - * @return Sort|null + * @return array|null */ - public function getSorting(): ?Sort + public function getSorting(): ?array { - return !empty($this->sorting) ? - new Sort($this->sorting[0]->id, $this->sorting[0]->desc, $this->allowedSortings) : null; + $sorts = []; + if (!empty($this->sorting)){ + foreach ($this->sorting as $sort) { + $sorts[] = new Sort($sort->id, $sort->desc, $this->allowedSortings); + } + } + return $sorts == [] ? null : $sorts; } public function getRelations(): array diff --git a/app/Services/DataTable/DataTableService.php b/app/Services/DataTable/DataTableService.php index f8b54d09..af0d0451 100644 --- a/app/Services/DataTable/DataTableService.php +++ b/app/Services/DataTable/DataTableService.php @@ -83,7 +83,10 @@ class DataTableService } $sorting = $this->dataTableInput->getSorting(); - $query = (new ApplySort($query, $sorting))->apply(); + foreach ($sorting as $sort){ + $query = (new ApplySort($query, $sort))->apply(); + } + return $query; } From 70e0f67e182b1c11e3011fca72adfc1e37973565 Mon Sep 17 00:00:00 2001 From: Witel Group Date: Mon, 23 Dec 2024 08:44:28 +0000 Subject: [PATCH 5/5] fix the return type --- app/Services/DataTable/DataTableInput.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Services/DataTable/DataTableInput.php b/app/Services/DataTable/DataTableInput.php index db0cfa7f..18e7ea10 100644 --- a/app/Services/DataTable/DataTableInput.php +++ b/app/Services/DataTable/DataTableInput.php @@ -57,7 +57,7 @@ class DataTableInput } /** - * @return array|null + * @return array */ public function getSorting(): ?array { @@ -67,7 +67,7 @@ class DataTableInput $sorts[] = new Sort($sort->id, $sort->desc, $this->allowedSortings); } } - return $sorts == [] ? null : $sorts; + return $sorts; } public function getRelations(): array