diff --git a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyStatusLogic.php b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyStatusLogic.php new file mode 100644 index 00000000..92278bef --- /dev/null +++ b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyStatusLogic.php @@ -0,0 +1,62 @@ + 'Update Company Account Status', + 'message' => 'You have successfully updated the Company Account Status' + ]; + } + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var UpdatesCompanyStatus */ + private $updatesCompanyStatus; + + /** + * UpdateCompanyStatusLogic constructor. + * @param FetchesCompany $fetchesCompany + * @param UpdatesCompanyStatus $updatesCompanyStatus + */ + public function __construct( + FetchesCompany $fetchesCompany, + UpdatesCompanyStatus $updatesCompanyStatus + ) + { + $this->fetchesCompany = $fetchesCompany; + $this->updatesCompanyStatus = $updatesCompanyStatus; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function logic(Request $request) : JsonResponse + { + $company = $this->fetchesCompany->execute(['id' => $request->route('id')]); + + $company_query = $this->updatesCompanyStatus->execute($company, $request->input('status')); + + return $this->resourceResponse(new CompanyResource($company_query)); + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Companies/UpdateCompanyStatusController.php b/app/Http/Controllers/Companies/UpdateCompanyStatusController.php new file mode 100644 index 00000000..43b3ba3c --- /dev/null +++ b/app/Http/Controllers/Companies/UpdateCompanyStatusController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} \ No newline at end of file diff --git a/resources/assets/vue/components/companies/elements/SupplierComponent.vue b/resources/assets/vue/components/companies/elements/SupplierComponent.vue index f6944c4c..a2e45bd7 100644 --- a/resources/assets/vue/components/companies/elements/SupplierComponent.vue +++ b/resources/assets/vue/components/companies/elements/SupplierComponent.vue @@ -61,6 +61,18 @@
+ + + + + + + + diff --git a/resources/assets/vue/components/companies/forms/ActivateSupplierFormComponent.vue b/resources/assets/vue/components/companies/forms/ActivateSupplierFormComponent.vue new file mode 100644 index 00000000..2a26136d --- /dev/null +++ b/resources/assets/vue/components/companies/forms/ActivateSupplierFormComponent.vue @@ -0,0 +1,45 @@ + + \ No newline at end of file diff --git a/resources/assets/vue/components/companies/forms/SuspendSupplierFormComponent.vue b/resources/assets/vue/components/companies/forms/SuspendSupplierFormComponent.vue new file mode 100644 index 00000000..4e18ed51 --- /dev/null +++ b/resources/assets/vue/components/companies/forms/SuspendSupplierFormComponent.vue @@ -0,0 +1,45 @@ + + \ No newline at end of file diff --git a/routes/company.php b/routes/company.php index a0ca19a5..cb1b059c 100644 --- a/routes/company.php +++ b/routes/company.php @@ -7,6 +7,7 @@ Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Compani Route::get('/list', 'ListCompaniesController@list')->name('list'); Route::post('/create', 'CreateCompanyController@create')->name('create'); Route::put('/update/{id}', 'UpdateCompanyController@update')->name('update'); + Route::put('update/{id}/status', 'UpdateCompanyStatusController@update')->name('status.update'); Route::delete('/delete/{id}', 'DeleteCompanyController@destroy')->name('delete'); Route::put('/update/debtor/{id}', 'UpdateCompanyDebtorController@update')->name('delete');