diff --git a/app/Http/Controllers/User/Api/ContractEntityController.php b/app/Http/Controllers/User/Api/ContractEntityController.php new file mode 100644 index 0000000..de3d808 --- /dev/null +++ b/app/Http/Controllers/User/Api/ContractEntityController.php @@ -0,0 +1,55 @@ +query(), 'contract_entity_query'); + + $contract_hash_id = $contract_id = $request->get('contract_id', []); + + $status = $request->get('status', []); + $page = $request->get('page', null); + $limit = $request->get('limit', 10); + + $query = ContractEntity::query(); + + if (!empty($contract_id)) { + $contract_id = Hasher::decodeArray('contracts', $contract_id); + $query->whereIn('contract_id', $contract_id); + } + + if (!empty($status) > 0) { + $query->whereIn('status', $status); + } + + $query->where('user_id', Auth::guard('user-api')->user()->id); + + $query->orderBy('id', 'desc'); + + $params = [ + 'contract_id' => $contract_hash_id, + 'status' => $status, + 'page' => $page + ]; + + $contract_entity_list = $query->paginate($limit); + + $extract = []; + foreach ($contract_entity_list as $key => $row) { + $extract[] = $row; + + } + $pagination = General::paginationGenerator($contract_entity_list, $params, $extract); + + return $pagination; + } + + public static function show(Request $request, $hash_id) + { + $id = Hasher::decode('contract_entities', $hash_id); + $user_id = Auth::guard('user-api')->user()->id; + $contract = ContractEntity:: + where('id', $id) + ->where('user_id', $user_id) + ->first(); + if ($contract) { + $data = General::returnData($contract, ''); + return response()->json($data); + } + $data = General::returnNotFoundData(); + return response()->json($data); + } + + public static function store(Request $request) + { + $validation = ContractEntityModule::validation($request); + if (!$validation->status) { + return response()->json($validation, 422); + } + + DB::beginTransaction(); + + $contract_id = $request->input('contract_id'); + $contract_id = Hasher::decode('contracts', $contract_id[0]); + $contarct = Contract::find($contract_id); + + $entity_id = $request->input('entity_id'); + $entity_id = Hasher::decode('entities', $entity_id[0]); + $entity = Entity::find($entity_id); + + $contract_entity = new ContractEntity(); + $contract_entity->user_id = Auth::guard('user-api')->user()->id; + $contract_entity->contract_id = $contarct->id; + $contract_entity->entity_id = $entity->id; + $contract_entity->entity_signature_id = $entity->entity_signature()->first()->id; + $contract_entity->status = config('constants.contact_entity.status.active'); + $contract_entity->save(); + + // log + ContractModule::makeLog($contract_entity->contract_id, 'user (' . Auth::guard('user-api')->user()->id . ') contact entity created'); + + DB::commit(); + + $query_string = General::getCachePerviousQuery('contract_entity_query'); + $data = General::returnData($contract_entity, $query_string); + + return response()->json($data); + } + + public static function delete(Request $request, $hash_id) + { + $id = Hasher::decode('contract_entities', $hash_id); + $validation = ContractEntityModule::validation($request, $hash_id, 'DEL'); + if (!$validation->status) { + return response()->json($validation, 422); + } + + DB::beginTransaction(); + + $contract_entity = ContractEntity::find($id); + $contract_entity->status = config('constants.contact_entity.status.delete'); + $contract_entity->update(); + + // log + ContractModule::makeLog($contract_entity->contract_id, 'user (' . Auth::guard('user-api')->user()->id . ') contact entity deleted'); + + DB::commit(); + + $query_string = General::getCachePerviousQuery('contract_entity_query'); + $data = General::returnData($contract_entity, $query_string); + + return response()->json($data); + } + + public static function validCheck(Request $request, $hash_id = '', $method = 'POST') + { + $id = $hash_id ? Hasher::decode('contracts', $hash_id) : ''; + $validation = ContractEntityModule::validation($request, $id, $method); + if (!$validation->status) { + return response()->json($validation, 422); + } + } + + private static function validation(Request $request, $id = '', $method = 'POST') + { + $data = $request->all(); + $rule= []; + + if ($method == 'POST') { + $rule = [ + 'contract_id' => ['required', new UnderCheck('contract'), new ExistCheck('contract')], + 'entity_id' => ['required', new UnderCheck('entity'), new ExistCheck('entity')] + ]; + } + + if ($method == 'DEL') { + $data['id'] = $id; + $rule = [ + 'id' => [new UnderCheck('contract_entity'), new ExistCheck('contract_entity')], + ]; + } + + $validator = Validator::make($data, $rule, config('error_code')); + + $errors = $validator->errors(); + + if ($validator->fails()) { + $data = General::returnErrorData($errors); + return $data; + } + else { + return (object)['status' => true]; + } + } +} diff --git a/app/Http/Modules/User/ContractModule.php b/app/Http/Modules/User/ContractModule.php index afc0c4e..a5917d0 100644 --- a/app/Http/Modules/User/ContractModule.php +++ b/app/Http/Modules/User/ContractModule.php @@ -220,7 +220,7 @@ class ContractModule extends BaseController $contract->update(); // log - ContractModule::makeLog($contract->id, 'user (' . Auth::guard('user-api')->user()->id . ') delete'); + ContractModule::makeLog($contract->id, 'user (' . Auth::guard('user-api')->user()->id . ') deleted'); DB::commit(); diff --git a/app/Http/Modules/User/ContractTemplateModule.php b/app/Http/Modules/User/ContractTemplateModule.php index 25f04e5..5891a4f 100644 --- a/app/Http/Modules/User/ContractTemplateModule.php +++ b/app/Http/Modules/User/ContractTemplateModule.php @@ -158,7 +158,7 @@ class ContractTemplateModule extends BaseController $contract_template->update(); // log - ContractTemplateModule::makeLog($contract_template->id, 'user (' . Auth::guard('user-api')->user()->id . ') delete'); + ContractTemplateModule::makeLog($contract_template->id, 'user (' . Auth::guard('user-api')->user()->id . ') deleted'); DB::commit(); diff --git a/app/Http/Modules/User/ContractTemplateObligationContractTemplateDependencyModule.php b/app/Http/Modules/User/ContractTemplateObligationContractTemplateDependencyModule.php index e69d5b4..bee9485 100644 --- a/app/Http/Modules/User/ContractTemplateObligationContractTemplateDependencyModule.php +++ b/app/Http/Modules/User/ContractTemplateObligationContractTemplateDependencyModule.php @@ -141,7 +141,7 @@ class ContractTemplateObligationContractTemplateDependencyModule extends BaseCon $contract_template_obligation_contract_template_dependency->update(); // log - ContractTemplateObligationModule::makeLog($contract_template_obligation_contract_template_dependency->contract_template_obligation_id, 'user (' . Auth::guard('user-api')->user()->id . ') delete dependency'); + ContractTemplateObligationModule::makeLog($contract_template_obligation_contract_template_dependency->contract_template_obligation_id, 'user (' . Auth::guard('user-api')->user()->id . ') dependency deleted'); DB::commit(); diff --git a/app/Http/Modules/User/ContractTemplateObligationDependencyModule.php b/app/Http/Modules/User/ContractTemplateObligationDependencyModule.php index ce89f84..ebe8232 100644 --- a/app/Http/Modules/User/ContractTemplateObligationDependencyModule.php +++ b/app/Http/Modules/User/ContractTemplateObligationDependencyModule.php @@ -140,7 +140,7 @@ class ContractTemplateObligationDependencyModule extends BaseController $contract_template_obligation_dependency->update(); // log - ContractTemplateObligationModule::makeLog($contract_template_obligation_dependency->contract_template_obligation_id, 'user (' . Auth::guard('user-api')->user()->id . ') delete dependency'); + ContractTemplateObligationModule::makeLog($contract_template_obligation_dependency->contract_template_obligation_id, 'user (' . Auth::guard('user-api')->user()->id . ') dependency deleted'); DB::commit(); diff --git a/app/Http/Modules/User/ContractTemplateObligationModule.php b/app/Http/Modules/User/ContractTemplateObligationModule.php index 7cd1d6e..ad89dd6 100644 --- a/app/Http/Modules/User/ContractTemplateObligationModule.php +++ b/app/Http/Modules/User/ContractTemplateObligationModule.php @@ -223,7 +223,7 @@ class ContractTemplateObligationModule extends BaseController $contract_template_obligation->update(); // log - ContractTemplateObligationModule::makeLog($contract_template_obligation->id, 'user (' . Auth::guard('user-api')->user()->id . ') delete'); + ContractTemplateObligationModule::makeLog($contract_template_obligation->id, 'user (' . Auth::guard('user-api')->user()->id . ') deleted'); DB::commit(); diff --git a/app/Http/Modules/User/EntityModule.php b/app/Http/Modules/User/EntityModule.php index 05e9a31..5c501fb 100644 --- a/app/Http/Modules/User/EntityModule.php +++ b/app/Http/Modules/User/EntityModule.php @@ -149,7 +149,7 @@ class EntityModule extends BaseController $entity->update(); // log - EntityModule::makeLog($entity->id, 'user (' . Auth::guard('user-api')->user()->id . ') delete'); + EntityModule::makeLog($entity->id, 'user (' . Auth::guard('user-api')->user()->id . ') deleted'); DB::commit(); diff --git a/app/Http/Modules/User/EntitySignatureModule.php b/app/Http/Modules/User/EntitySignatureModule.php index 971ea15..51dbea2 100644 --- a/app/Http/Modules/User/EntitySignatureModule.php +++ b/app/Http/Modules/User/EntitySignatureModule.php @@ -133,7 +133,7 @@ class EntitySignatureModule extends BaseController $entity_signature->update(); // log - EntityModule::makeLog($entity_signature->entity_id, 'user (' . Auth::guard('user-api')->user()->id . ') sugnature delete'); + EntityModule::makeLog($entity_signature->entity_id, 'user (' . Auth::guard('user-api')->user()->id . ') sugnature deleted); DB::commit(); diff --git a/app/Http/Rules/User/ExistCheck.php b/app/Http/Rules/User/ExistCheck.php index d7e45dc..bb65dee 100644 --- a/app/Http/Rules/User/ExistCheck.php +++ b/app/Http/Rules/User/ExistCheck.php @@ -5,6 +5,9 @@ namespace App\Http\Rules\User; use Auth; use App\Models\ContractTemplate; use App\Models\ContractTemplateObligation; +use App\Models\Contract; +use App\Models\ContractEntity; +use App\Models\Entity; use App\Http\Helpers\Hasher; @@ -65,6 +68,48 @@ class ExistCheck implements Rule } } + if ($this->type == 'contract') { + foreach ($value as $key => $row) { + if(!empty($row)) { + $id = Hasher::decode('contracts', $row); + $data = Contract:: + where('id', $id) + ->count(); + if (!$data) { + return false; + } + } + } + } + + if ($this->type == 'contract_entity') { + foreach ($value as $key => $row) { + if(!empty($row)) { + $id = Hasher::decode('contract_entities', $row); + $data = ContractEntity:: + where('id', $id) + ->count(); + if (!$data) { + return false; + } + } + } + } + + if ($this->type == 'entity') { + foreach ($value as $key => $row) { + if(!empty($row)) { + $id = Hasher::decode('entities', $row); + $data = Entity:: + where('id', $id) + ->count(); + if (!$data) { + return false; + } + } + } + } + return true; } diff --git a/app/Http/Rules/User/UnderCheck.php b/app/Http/Rules/User/UnderCheck.php index aa6271a..5218fd5 100644 --- a/app/Http/Rules/User/UnderCheck.php +++ b/app/Http/Rules/User/UnderCheck.php @@ -3,6 +3,8 @@ namespace App\Http\Rules\User; use Auth; +use App\Models\Contract; +use App\Models\ContractEntity; use App\Models\Entity; use App\Models\ContractTemplate; use App\Models\ContractTemplateObligation; @@ -38,6 +40,36 @@ class UnderCheck implements Rule $this->attribute = $attribute; $value = is_array($value) ? $value : [$value]; + if ($this->type == 'contract') { + foreach ($value as $key => $row) { + if(!empty($row)) { + $id = Hasher::decode('contracts', $row); + $data = Contract:: + where('id', $id) + ->where('user_id', Auth::guard('user-api')->user()->id) + ->count(); + if (!$data) { + return false; + } + } + } + } + + if ($this->type == 'contract_entity') { + foreach ($value as $key => $row) { + if(!empty($row)) { + $id = Hasher::decode('contract_entities', $row); + $data = ContractEntity:: + where('id', $id) + ->where('user_id', Auth::guard('user-api')->user()->id) + ->count(); + if (!$data) { + return false; + } + } + } + } + if ($this->type == 'entity') { foreach ($value as $key => $row) { if(!empty($row)) { diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 4b0abe3..39bc0cd 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -23,13 +23,13 @@ class EventServiceProvider extends ServiceProvider SendEmailVerificationNotification::class, ], - AccessTokenCreated::class => [ - 'App\Listeners\RevokeOldTokens', - ], + // AccessTokenCreated::class => [ + // 'App\Listeners\RevokeOldTokens', + // ], - RefreshTokenCreated::class => [ - 'App\Listeners\PruneOldTokens', - ], + // RefreshTokenCreated::class => [ + // 'App\Listeners\PruneOldTokens', + // ], ]; /** diff --git a/config/constants.php b/config/constants.php index bfabad6..8472e4a 100644 --- a/config/constants.php +++ b/config/constants.php @@ -53,6 +53,13 @@ 'pending' => 9 ] ], + 'contact_entity' => [ + 'status' => [ + 'active' => 1, + 'delete' => 2, + 'pending' => 9 + ] + ], 'contract_obligation' => [ 'complete_status' => [ 'pending' => 9, diff --git a/resources/js/user/pages/contracts/Table.vue b/resources/js/user/pages/contracts/Table.vue index 3b42b79..37c6b2c 100644 --- a/resources/js/user/pages/contracts/Table.vue +++ b/resources/js/user/pages/contracts/Table.vue @@ -36,8 +36,9 @@