diff --git a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyCreditTermStatusLogic.php b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyCreditTermStatusLogic.php new file mode 100644 index 00000000..a37d66ce --- /dev/null +++ b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyCreditTermStatusLogic.php @@ -0,0 +1,71 @@ + 'Update Company Credit Term Status', + 'message' => 'You have successfully updated Company Credit Term Status' + ]; + } + + /** @var FetchesCompany */ + private $fetchesCompany; + + /** @var UpdatesCompanyModuleIsCreditTerm */ + private $updatesCompanyModuleIsCreditTerm; + + + /** + * UpdateCompanyCreditTermStatusLogic constructor. + * @param FetchesCompany $fetchesCompany + * @param UpdatesCompanyModuleIsCreditTerm $updatesCompanyModuleIsCreditTerm + */ + public function __construct(FetchesCompany $fetchesCompany, UpdatesCompanyModuleIsCreditTerm $updatesCompanyModuleIsCreditTerm) + { + $this->fetchesCompany = $fetchesCompany; + $this->updatesCompanyModuleIsCreditTerm = $updatesCompanyModuleIsCreditTerm; + } + + /** + * @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')]); + + $isCreditTerm = $company->companyModules()->first()->connections()->first()->is_credit_term; + + if ($isCreditTerm == 1) { + $isCreditTerm = 0; + } else { + $isCreditTerm = 1; + } + + $this->updatesCompanyModuleIsCreditTerm->execute($company->companyModules()->first()->connections()->first(), $isCreditTerm); + Log::info(Auth::user()->email." updated credit term status for customer with id: " .$request->route('id'). " to status " . $isCreditTerm); + + $result = ['is_credit_term' => $isCreditTerm]; + return $this->response(['data' => $result]); + } +} diff --git a/app/Classes/Modules/Companies/Services/UpdatesCompanyModuleIsCreditTerm.php b/app/Classes/Modules/Companies/Services/UpdatesCompanyModuleIsCreditTerm.php new file mode 100644 index 00000000..2a0b24fb --- /dev/null +++ b/app/Classes/Modules/Companies/Services/UpdatesCompanyModuleIsCreditTerm.php @@ -0,0 +1,23 @@ +is_credit_term = $isCreditTerm; + + return $this->handler($model); + } +} diff --git a/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php index 5b362147..ae638bae 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php @@ -6,6 +6,7 @@ namespace App\Classes\Modules\Transactions\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Transactions\Services\ListsTransactions; use App\Http\Resources\TransactionWithStorageResource; +use App\Http\Resources\TransactionResource; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; @@ -49,8 +50,10 @@ class ListTransactionsLogic extends AbstractControllerLogic }); $item['storages'] = $filteredStorages; } + return $this->collectionResponse(TransactionWithStorageResource::collection($query)); + } + else{ + return $this->collectionResponse(TransactionResource::collection($query)); } - - return $this->collectionResponse(TransactionWithStorageResource::collection($query)); } } diff --git a/app/Http/Controllers/Companies/UpdateCompanyCreditTermStatusController.php b/app/Http/Controllers/Companies/UpdateCompanyCreditTermStatusController.php new file mode 100644 index 00000000..d41ca64a --- /dev/null +++ b/app/Http/Controllers/Companies/UpdateCompanyCreditTermStatusController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Resources/CompanyResource.php b/app/Http/Resources/CompanyResource.php index 4590f46b..d969ac0d 100644 --- a/app/Http/Resources/CompanyResource.php +++ b/app/Http/Resources/CompanyResource.php @@ -21,7 +21,7 @@ class CompanyResource extends JsonResource { $companyModule = $this->companyModules()->first(); $companyTypeArray = CompanyType::COMPANY_TYPE_ID; - + return [ 'id' => $this->id, 'hash_id' => Crypt::encryptString($this->id), @@ -33,6 +33,7 @@ class CompanyResource extends JsonResource 'business_type' => (int) $this->business_type, 'status' => (int) $this->status, 'segments' => SegmentResource::collection($companyModule->connections()->first()->segments), + 'is_credit_term' => $companyModule->connections()->first()->is_credit_term, 'contact' => new ContactResource ($this->when($this->has('contacts'), $this->contacts->first())), 'employee' => new UserResource($companyModule->employees()->first()), 'company_module' => new CompanyModuleResource($companyModule), diff --git a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue index 69625c6a..3c8aae23 100644 --- a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue +++ b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue @@ -17,7 +17,7 @@
- {{item.name}} + {{item.name}}
@@ -35,6 +35,26 @@
+
+
+
+
+
+ Credit term customer: YES +
+
+ Credit term customer: NO +
+
+
+ +
+ + + +
+
+
@@ -95,13 +115,13 @@
-
Company Type
+
Company Type
@@ -216,4 +236,4 @@ }, mixins: [componentHandler] } - \ No newline at end of file + diff --git a/resources/assets/vue/components/companies/forms/UpdateCreditTermStatusFormComponent.vue b/resources/assets/vue/components/companies/forms/UpdateCreditTermStatusFormComponent.vue new file mode 100644 index 00000000..a36263c3 --- /dev/null +++ b/resources/assets/vue/components/companies/forms/UpdateCreditTermStatusFormComponent.vue @@ -0,0 +1,40 @@ + + diff --git a/routes/company.php b/routes/company.php index 362b735f..b9b8c213 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::post('/update-credit-term/{id}', 'UpdateCompanyCreditTermStatusController@update')->name('update.creditterm.status'); Route::put('/type/update/{id}', 'UpdateCompanyTypeController@create')->name('update.type'); Route::post('/team/create', 'AddNewMemberController@create')->name('team.create');