From 4ae8c77c6dde86a67380d5f3844c016c26290e62 Mon Sep 17 00:00:00 2001 From: glovetleong Date: Tue, 27 Jul 2021 14:03:05 +0800 Subject: [PATCH] contract_obligation_contract_dependency checking on complete and accept --- .../User/Api/ContractObligationController.php | 6 ++++++ .../Modules/User/ContractObligationModule.php | 1 - app/Http/Rules/User/ContractDoneCheck.php | 4 +--- ...ontractObligationCompleteOrAcceptCheck.php | 20 +++++++++++++++++-- ...ContractObligationEntitySignatureCheck.php | 2 +- config/error_code.php | 1 + 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/User/Api/ContractObligationController.php b/app/Http/Controllers/User/Api/ContractObligationController.php index 04e6efa..473bf05 100644 --- a/app/Http/Controllers/User/Api/ContractObligationController.php +++ b/app/Http/Controllers/User/Api/ContractObligationController.php @@ -46,6 +46,12 @@ class ContractObligationController extends BaseController return $contract; } + public function updateAccept(Request $request, $hash_id) + { + $contract = ContractObligationModule::updateAccept($request, $hash_id); + return $contract; + } + public function delete(Request $request, $hash_id) { $contract = ContractObligationModule::delete($request, $hash_id); diff --git a/app/Http/Modules/User/ContractObligationModule.php b/app/Http/Modules/User/ContractObligationModule.php index aeb1c05..80ca5c5 100644 --- a/app/Http/Modules/User/ContractObligationModule.php +++ b/app/Http/Modules/User/ContractObligationModule.php @@ -224,7 +224,6 @@ class ContractObligationModule extends BaseController if (!$validation->status) { return response()->json($validation, 422); } - DB::beginTransaction(); $contract_obligation = ContractObligation::find($id); diff --git a/app/Http/Rules/User/ContractDoneCheck.php b/app/Http/Rules/User/ContractDoneCheck.php index 42d0d93..a59a193 100644 --- a/app/Http/Rules/User/ContractDoneCheck.php +++ b/app/Http/Rules/User/ContractDoneCheck.php @@ -61,8 +61,6 @@ class ContractDoneCheck implements Rule */ public function message() { - if ($this->type == 'complete') { - return config('error_code.contract_done_error'); - } + return config('error_code.contract_done_error'); } } diff --git a/app/Http/Rules/User/ContractObligationCompleteOrAcceptCheck.php b/app/Http/Rules/User/ContractObligationCompleteOrAcceptCheck.php index 1e5f0a5..0d4cb41 100644 --- a/app/Http/Rules/User/ContractObligationCompleteOrAcceptCheck.php +++ b/app/Http/Rules/User/ContractObligationCompleteOrAcceptCheck.php @@ -4,6 +4,7 @@ namespace App\Http\Rules\User; use Auth; use App\Models\ContractObligation; +use App\Models\Contract; use App\Http\Helpers\Hasher; @@ -45,9 +46,9 @@ class ContractObligationCompleteOrAcceptCheck implements Rule if (!empty($contract_obligation->contract_obligation_dependency_list)) { foreach ($contract_obligation->contract_obligation_dependency_list as $key_2 => $row_2) { - $depend_id = Hasher::decode('contract_obligations', $row_2->depend_contract_obligation_hash_id); + $depend_contract_obligation_id = Hasher::decode('contract_obligations', $row_2->depend_contract_obligation_hash_id); $depend_contract_obligation = ContractObligation:: - where('id', $depend_id) + where('id', $depend_contract_obligation_id) ->first(); if ($this->type == 'complete') { @@ -70,6 +71,18 @@ class ContractObligationCompleteOrAcceptCheck implements Rule } } } + + if (!empty($contract_obligation->contract_obligation_contract_dependency_list)) { + foreach ($contract_obligation->contract_obligation_contract_dependency_list as $key_2 => $row_3) { + $depend_contract_id = Hasher::decode('contracts', $row_3->depend_contract_hash_id); + $depend_contract = Contract:: + where('id', $depend_contract_id) + ->first(); + if ($depend_contract->status != config('constants.contract.status.done')) { + return false; + } + } + } } } } @@ -87,5 +100,8 @@ class ContractObligationCompleteOrAcceptCheck implements Rule if ($this->type == 'complete') { return config('error_code.contract_obligation_complete_error'); } + if ($this->type == 'accept') { + return config('error_code.contract_obligation_accept_error'); + } } } diff --git a/app/Http/Rules/User/ContractObligationEntitySignatureCheck.php b/app/Http/Rules/User/ContractObligationEntitySignatureCheck.php index b1a9135..5ceb86f 100644 --- a/app/Http/Rules/User/ContractObligationEntitySignatureCheck.php +++ b/app/Http/Rules/User/ContractObligationEntitySignatureCheck.php @@ -41,7 +41,7 @@ class ContractObligationEntitySignatureCheck implements Rule $entity_signature = EntitySignature::find($entity_signature_id); if ($entity_signature) { - if ($entity_signature->type == config('constants.entity.signature.master')) { + if ($entity_signature->type == config('constants.entity.signature.master_key')) { return true; } } diff --git a/config/error_code.php b/config/error_code.php index d2580c3..3fcda83 100644 --- a/config/error_code.php +++ b/config/error_code.php @@ -17,6 +17,7 @@ 'obligation_signature_error' => 'OBLIGATION_SIGNATURE_ERROR', 'contract_obligation_done_error' => 'CONTRACT_OBLIGATION_DONE_ERROR', 'contract_obligation_complete_error' => 'CONTRACT_OBLIGATION_COMPLETE_ERROR', + 'contract_obligation_accept_error' => 'CONTRACT_OBLIGATION_accept_ERROR', 'contract_done_error' => 'CONTRACT_DONE_ERROR', 'status_error' => 'STATUS_ERROR', 'min' => [