diff --git a/app/Classes/Modules/Addresses/ControllersLogic/ListStatesLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/ListStatesLogic.php new file mode 100644 index 00000000..3d6c484f --- /dev/null +++ b/app/Classes/Modules/Addresses/ControllersLogic/ListStatesLogic.php @@ -0,0 +1,54 @@ + 'Retrieved Addresses', + 'message' => 'You have successfully retrieved a list of Addresses' + ]; + } + + /** @var ListsStates */ + private $listStates; + + /** + * ListStatesLogic constructor. + * @param ListsStates $listStates + */ + public function __construct(ListsStates $listStates) + { + $this->listStates = $listStates; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\MalformedRequestException + */ + public function logic(Request $request) : JsonResponse + { + $query = $this->listStates->execute($this->listStates->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(StateResource::collection($query)); + + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Addresses/Services/ListsStates.php b/app/Classes/Modules/Addresses/Services/ListsStates.php new file mode 100644 index 00000000..5591b823 --- /dev/null +++ b/app/Classes/Modules/Addresses/Services/ListsStates.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + + /** + * @return Builder + */ + function getRepository(): Builder + { + return $this->repository->newQuery(); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Addresses/ListStatesController.php b/app/Http/Controllers/Addresses/ListStatesController.php new file mode 100644 index 00000000..dee2d1c6 --- /dev/null +++ b/app/Http/Controllers/Addresses/ListStatesController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} \ No newline at end of file diff --git a/app/Http/Resources/StateResource.php b/app/Http/Resources/StateResource.php new file mode 100644 index 00000000..b9d71dae --- /dev/null +++ b/app/Http/Resources/StateResource.php @@ -0,0 +1,23 @@ + $this->id, + 'name' => $this->name, + 'country' => $this->country, + ]; + } +} diff --git a/app/Models/State.php b/app/Models/State.php index fa920454..3f7036ac 100644 --- a/app/Models/State.php +++ b/app/Models/State.php @@ -2,7 +2,7 @@ namespace App\Models; -use Illuminate\Database\Eloquent\Relations\HasOne; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\SoftDeletes; /** @@ -21,10 +21,10 @@ class State extends AbstractModel protected $dates = ['deleted_at']; /** - * @return HasOne + * @return BelongsTo */ - public function country(): HasOne + public function country(): BelongsTo { - return $this->hasOne(Country::class, 'country_id', 'id'); + return $this->belongsTo(Country::class, 'country_id', 'id'); } } diff --git a/resources/assets/vue/components/settings/elements/StatesChargesComponent.vue b/resources/assets/vue/components/settings/elements/StatesChargesComponent.vue new file mode 100644 index 00000000..9e58b60d --- /dev/null +++ b/resources/assets/vue/components/settings/elements/StatesChargesComponent.vue @@ -0,0 +1,77 @@ + + \ No newline at end of file diff --git a/resources/assets/vue/components/settings/forms/EditStateChargesFormComponent.vue b/resources/assets/vue/components/settings/forms/EditStateChargesFormComponent.vue new file mode 100644 index 00000000..ee32bf93 --- /dev/null +++ b/resources/assets/vue/components/settings/forms/EditStateChargesFormComponent.vue @@ -0,0 +1,62 @@ + + \ No newline at end of file diff --git a/resources/assets/vue/components/user/elements/UserComponent.vue b/resources/assets/vue/components/user/elements/UserComponent.vue index 20b57e6f..601c0097 100644 --- a/resources/assets/vue/components/user/elements/UserComponent.vue +++ b/resources/assets/vue/components/user/elements/UserComponent.vue @@ -4,7 +4,7 @@
- +
diff --git a/resources/views/pages/settings.blade.php b/resources/views/pages/settings.blade.php index c82482dd..c23c31b5 100644 --- a/resources/views/pages/settings.blade.php +++ b/resources/views/pages/settings.blade.php @@ -127,6 +127,26 @@
+
+
+
+
+
+
+
+
+ +
+
+
States Charges
+
+
+
+
+
+
+
+
@@ -347,6 +367,31 @@ +
+
+ +
+
+
+
+
+ State Charges +
+
+
+
+
+ + + +
+
+
+
+
+
diff --git a/routes/address.php b/routes/address.php index 5b3c6a1b..96cfe8ab 100644 --- a/routes/address.php +++ b/routes/address.php @@ -11,6 +11,8 @@ Route::group(['prefix' => 'address', 'as' => 'address.', 'namespace' => 'Address Route::get('district/list', 'ListDistrictsController@list')->name('district.list'); + Route::get('state/list', 'ListStatesController@list')->name('state.list'); + Route::post('/create', 'CreateAddressController@create')->name('create'); Route::put('/update/{id}', 'UpdateAddressController@update')->name('update');