From 27190868b44a67b27431560aeaf48801a5ea188b Mon Sep 17 00:00:00 2001 From: edmondlang Date: Tue, 28 Mar 2023 16:15:07 +0800 Subject: [PATCH] change company type --- .../UpdateCompanyTypeLogic.php | 69 +++++++++++++++++++ .../Companies/UpdateCompanyTypeController.php | 20 ++++++ .../elements/CustomerProfileComponent.vue | 2 +- .../forms/ChangeBusinessTypeFormComponent.vue | 2 +- routes/company.php | 1 + 5 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyTypeLogic.php create mode 100644 app/Http/Controllers/Companies/UpdateCompanyTypeController.php diff --git a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyTypeLogic.php b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyTypeLogic.php new file mode 100644 index 00000000..4a7e68cc --- /dev/null +++ b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyTypeLogic.php @@ -0,0 +1,69 @@ + 'Updated Company Type', + 'message' => 'You have successfully updated the Company Tyoe' + ]; + } + + /** @var CanUpdateCompany */ + private $canUpdateCompany; + + /** @var UpdatesCompany */ + private $updatesCompany; + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** + * UpdateCompanyControllersLogic constructor. + * @param CanUpdateCompany $canUpdateCompany + * @param UpdatesCompany $updatesCompany + * @param FetchesCompany $fetchesCompany + */ + public function __construct(CanUpdateCompany $canUpdateCompany, UpdatesCompany $updatesCompany, FetchesCompany $fetchesCompany) + { + $this->canUpdateCompany = $canUpdateCompany; + $this->updatesCompany = $updatesCompany; + $this->fetchesCompany = $fetchesCompany; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + $query = $this->fetchesCompany->execute(['id' => $request->route('id')]); + + $object = new CompanyObject($query->name, $query->reference, $request->input('type')); + + $this->canUpdateCompany->passes($object); + + $query = $this->updatesCompany->execute($query, $object); + + return $this->resourceResponse(new CompanyResource($query)); + } + +} diff --git a/app/Http/Controllers/Companies/UpdateCompanyTypeController.php b/app/Http/Controllers/Companies/UpdateCompanyTypeController.php new file mode 100644 index 00000000..44f39a6f --- /dev/null +++ b/app/Http/Controllers/Companies/UpdateCompanyTypeController.php @@ -0,0 +1,20 @@ +execute($request); + } +} diff --git a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue index ec1f4621..391ec602 100644 --- a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue +++ b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue @@ -107,7 +107,7 @@
{{item.type_name}} -
+
diff --git a/resources/assets/vue/components/orders/forms/ChangeBusinessTypeFormComponent.vue b/resources/assets/vue/components/orders/forms/ChangeBusinessTypeFormComponent.vue index f5d70b71..f1cd5b08 100644 --- a/resources/assets/vue/components/orders/forms/ChangeBusinessTypeFormComponent.vue +++ b/resources/assets/vue/components/orders/forms/ChangeBusinessTypeFormComponent.vue @@ -40,7 +40,7 @@ window.location.replace(this.route('customers', response.payload.data.reference)); }, submitForm() { - this.submit(this.route('api.company.update.nameAndDebtor', this.data.id), 'put', this.section, true, true) + this.submit(this.route('api.company.update.type', this.data.id), 'put', this.section, true, true) }, updateType(type) { this.parameters.type = type; diff --git a/routes/company.php b/routes/company.php index b3522e83..362b735f 100644 --- a/routes/company.php +++ b/routes/company.php @@ -9,6 +9,7 @@ Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Compani Route::put('/update/{id}', 'UpdateCompanyController@update')->name('update'); Route::delete('/delete/{id}', 'DeleteCompanyController@destroy')->name('delete'); Route::put('/name-and-debtor/update/{id}', 'UpdateCompanyNameAndDebtorController@update')->name('update.nameAndDebtor'); + Route::put('/type/update/{id}', 'UpdateCompanyTypeController@create')->name('update.type'); Route::post('/team/create', 'AddNewMemberController@create')->name('team.create');