From 940e20a780a728499595e731b3db8c763aeed472 Mon Sep 17 00:00:00 2001 From: Cleison Freitas Date: Tue, 14 Feb 2023 23:20:35 -0300 Subject: [PATCH 1/3] Endpoint to change the name and debtor from company --- .../UpdateCompanyNameAndDebtorLogic.php | 83 +++++++++++++++++++ .../DataTransferObjects/CompanyObject.php | 2 +- .../Companies/Services/UpdatesCompany.php | 4 +- .../Services/UpdatesCompanyDebtor.php | 4 +- .../UpdateCompanyNameAndDebtorController.php | 21 +++++ app/Http/Resources/CompanyResource.php | 1 + routes/company.php | 1 + 7 files changed, 112 insertions(+), 4 deletions(-) create mode 100644 app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyNameAndDebtorLogic.php create mode 100644 app/Http/Controllers/Companies/UpdateCompanyNameAndDebtorController.php diff --git a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyNameAndDebtorLogic.php b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyNameAndDebtorLogic.php new file mode 100644 index 00000000..c47c3e0c --- /dev/null +++ b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyNameAndDebtorLogic.php @@ -0,0 +1,83 @@ + 'Update Company Account Status', + 'message' => 'You have successfully updated the Company Account Status' + ]; + } + /** @var CanUpdateCompany */ + private $canUpdateCompany; + + /** @var UpdatesCompany */ + private $updatesCompany; + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var UpdatesCompanyDebtor */ + private $updatesCompanyDebtor; + + /** + * UpdateCompanyControllersLogic constructor. + * @param CanUpdateCompany $canUpdateCompany + * @param UpdatesCompany $updatesCompany + * @param FetchesCompany $fetchesCompany + * @param UpdatesCompanyDebtor $updatesCompanyDebtor + */ + public function __construct( + CanUpdateCompany $canUpdateCompany, + UpdatesCompany $updatesCompany, + FetchesCompany $fetchesCompany, + UpdatesCompanyDebtor $updatesCompanyDebtor + ) + { + $this->canUpdateCompany = $canUpdateCompany; + $this->updatesCompany = $updatesCompany; + $this->fetchesCompany = $fetchesCompany; + $this->updatesCompanyDebtor = $updatesCompanyDebtor; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + $query = $this->fetchesCompany->execute(['id' => $request->route('id')]); + + $object = new CompanyObject($request->input('name'), $request->input('reference'),$query->business_type, $request->input('type')); + + $this->canUpdateCompany->passes($object); + + $query = $this->updatesCompany->execute($query, $object); + + if ($request->input('debtor') || $query->first()->debtor !== null) { + $this->updatesCompanyDebtor->execute($query, $request->input('debtor')); + } + + return $this->resourceResponse(new CompanyResource($query)); + } + +} + diff --git a/app/Classes/Modules/Companies/DataTransferObjects/CompanyObject.php b/app/Classes/Modules/Companies/DataTransferObjects/CompanyObject.php index 09b0e153..cbc5df53 100644 --- a/app/Classes/Modules/Companies/DataTransferObjects/CompanyObject.php +++ b/app/Classes/Modules/Companies/DataTransferObjects/CompanyObject.php @@ -83,4 +83,4 @@ class CompanyObject implements DataTransferObject -} \ No newline at end of file +} diff --git a/app/Classes/Modules/Companies/Services/UpdatesCompany.php b/app/Classes/Modules/Companies/Services/UpdatesCompany.php index f89bbca8..1b92c2d8 100644 --- a/app/Classes/Modules/Companies/Services/UpdatesCompany.php +++ b/app/Classes/Modules/Companies/Services/UpdatesCompany.php @@ -15,7 +15,7 @@ class UpdatesCompany extends AbstractUpdateRecord * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Company $model, CompanyObject $object) + public function execute(Company $model, CompanyObject $object) { $model->name = $object->getName(); $model->reference = $object->getReference(); @@ -23,4 +23,4 @@ class UpdatesCompany extends AbstractUpdateRecord return $this->handler($model); } -} \ No newline at end of file +} diff --git a/app/Classes/Modules/Companies/Services/UpdatesCompanyDebtor.php b/app/Classes/Modules/Companies/Services/UpdatesCompanyDebtor.php index 4cb43a9f..14e0d6e2 100644 --- a/app/Classes/Modules/Companies/Services/UpdatesCompanyDebtor.php +++ b/app/Classes/Modules/Companies/Services/UpdatesCompanyDebtor.php @@ -11,6 +11,7 @@ class UpdatesCompanyDebtor extends AbstractUpdateRecord /** * @param Company $model + * @param CompanyObject $object * @param string $debtor * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException @@ -18,6 +19,7 @@ class UpdatesCompanyDebtor extends AbstractUpdateRecord public function execute(Company $model, string $debtor) { $model->debtor = $debtor; + return $this->handler($model); } -} \ No newline at end of file +} diff --git a/app/Http/Controllers/Companies/UpdateCompanyNameAndDebtorController.php b/app/Http/Controllers/Companies/UpdateCompanyNameAndDebtorController.php new file mode 100644 index 00000000..0168e059 --- /dev/null +++ b/app/Http/Controllers/Companies/UpdateCompanyNameAndDebtorController.php @@ -0,0 +1,21 @@ +input('debtor'));die; + return $logic->execute($request); + } +} diff --git a/app/Http/Resources/CompanyResource.php b/app/Http/Resources/CompanyResource.php index cb357684..6d7cb2e4 100644 --- a/app/Http/Resources/CompanyResource.php +++ b/app/Http/Resources/CompanyResource.php @@ -37,6 +37,7 @@ class CompanyResource extends JsonResource 'id' => $this->id, 'name' => $this->name, 'reference' => $this->reference, + 'debtor' => $this->debtor, 'type' => (int) $this->type, 'business_type' => (int) $this->business_type, 'status' => (int) $this->status, diff --git a/routes/company.php b/routes/company.php index cb1b059c..6571daa4 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::put('update/{id}/status', 'UpdateCompanyStatusController@update')->name('status.update'); Route::delete('/delete/{id}', 'DeleteCompanyController@destroy')->name('delete'); + Route::put('/name-and-debtor/update/{id}', 'UpdateCompanyNameAndDebtorController@update')->name('update.nameAndDebtor'); Route::put('/update/debtor/{id}', 'UpdateCompanyDebtorController@update')->name('delete'); From 2c9ce36a225efc05e95bb0869665637033d4e4f1 Mon Sep 17 00:00:00 2001 From: Cleison Freitas Date: Tue, 14 Feb 2023 23:42:20 -0300 Subject: [PATCH 2/3] Building the company responsible for changing the name and debtor from company --- .../elements/CustomerProfileComponent.vue | 6 +- .../forms/ChangeCustomerNameFormComponent.vue | 73 +++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 resources/assets/vue/components/companies/forms/ChangeCustomerNameFormComponent.vue diff --git a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue index fd36e8a2..1b7fe979 100644 --- a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue +++ b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue @@ -5,6 +5,7 @@ width="50" height="50" viewBox="0 0 172 172" style=" fill:#000000;"> + >
@@ -13,6 +14,9 @@
+ + +
{{item.name}}
@@ -93,4 +97,4 @@ export default { mixins: [componentHandler] } - \ No newline at end of file + diff --git a/resources/assets/vue/components/companies/forms/ChangeCustomerNameFormComponent.vue b/resources/assets/vue/components/companies/forms/ChangeCustomerNameFormComponent.vue new file mode 100644 index 00000000..d956b443 --- /dev/null +++ b/resources/assets/vue/components/companies/forms/ChangeCustomerNameFormComponent.vue @@ -0,0 +1,73 @@ + + From dda0b28f6c256709621f85cde3af34fa52facda8 Mon Sep 17 00:00:00 2001 From: edmondlang Date: Thu, 16 Feb 2023 20:03:19 +0800 Subject: [PATCH 3/3] update company name and debtor code --- .../UpdateCompanyNameAndDebtorLogic.php | 3 +-- .../Companies/UpdateCompanyNameAndDebtorController.php | 6 ++---- .../companies/elements/CustomerProfileComponent.vue | 10 +++++++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyNameAndDebtorLogic.php b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyNameAndDebtorLogic.php index c47c3e0c..05fb0746 100644 --- a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyNameAndDebtorLogic.php +++ b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyNameAndDebtorLogic.php @@ -3,7 +3,6 @@ namespace App\Classes\Modules\Companies\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Companies\DataTransferObjects\CompanyObject; -use App\Classes\Modules\Companies\DataTransferObjects\CompanyObjectDebtor; use App\Classes\Modules\Companies\Services\FetchesCompany; use App\Classes\Modules\Companies\Services\UpdatesCompany; use App\Classes\Modules\Companies\Services\UpdatesCompanyDebtor; @@ -66,7 +65,7 @@ class UpdateCompanyNameAndDebtorLogic extends AbstractControllerLogic { $query = $this->fetchesCompany->execute(['id' => $request->route('id')]); - $object = new CompanyObject($request->input('name'), $request->input('reference'),$query->business_type, $request->input('type')); + $object = new CompanyObject($request->input('name'), $request->input('reference'), $query->business_type, $request->input('type')); $this->canUpdateCompany->passes($object); diff --git a/app/Http/Controllers/Companies/UpdateCompanyNameAndDebtorController.php b/app/Http/Controllers/Companies/UpdateCompanyNameAndDebtorController.php index 0168e059..18599e7f 100644 --- a/app/Http/Controllers/Companies/UpdateCompanyNameAndDebtorController.php +++ b/app/Http/Controllers/Companies/UpdateCompanyNameAndDebtorController.php @@ -2,8 +2,7 @@ namespace App\Http\Controllers\Companies; -use App\Classes\Modules\Companies\ControllersLogic\UpdateCompanyLogic; -use App\Classes\Modules\Companies\ControllersLogic\UpdateCompanyNameAndDebtorLogic as CompanyNameDebtorLogic; +use App\Classes\Modules\Companies\ControllersLogic\UpdateCompanyNameAndDebtorLogic; use App\Http\Controllers\Controller; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -13,9 +12,8 @@ class UpdateCompanyNameAndDebtorController extends Controller /** * @param Request $request */ - public function update(Request $request, CompanyNameDebtorLogic $logic) : JsonResponse + public function update(Request $request, UpdateCompanyNameAndDebtorLogic $logic) : JsonResponse { - //echo json_encode($request->input('debtor'));die; return $logic->execute($request); } } diff --git a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue index 1b7fe979..8217fbbe 100644 --- a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue +++ b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue @@ -5,19 +5,23 @@ width="50" height="50" viewBox="0 0 172 172" style=" fill:#000000;"> - >
-
+
-
{{item.name}}
+
+ {{item.name}} +
+ +
+