From f718ecb54f8f275cd4267ce1f585ef633079c6b9 Mon Sep 17 00:00:00 2001 From: glovetleong Date: Tue, 20 Jul 2021 21:28:32 +0800 Subject: [PATCH] contract obligation contract dependency generate --- app/Http/Modules/User/ContractModule.php | 24 +++++++++++++++++---- app/Models/ContractTemplateObligation.php | 19 +++++++++++++--- resources/js/user/pages/contracts/Table.vue | 11 +++++++++- 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/app/Http/Modules/User/ContractModule.php b/app/Http/Modules/User/ContractModule.php index 50d5865..780b598 100644 --- a/app/Http/Modules/User/ContractModule.php +++ b/app/Http/Modules/User/ContractModule.php @@ -124,11 +124,12 @@ class ContractModule extends BaseController $contract_obligation = ContractObligationModule::generate($request); } - // generate contract dependency + + // generate contract obligation dependency foreach ($contract_template_obligation_list as $key => $row) { $contract_template_obligation_dependency = $row->contract_template_obligation_dependency() - ->where('status', config('constants.contract_template_obligation_dependency.status.active')) - ->get(); + ->where('status', config('constants.contract_template_obligation_dependency.status.active')) + ->get(); if (!empty($contract_template_obligation_dependency[0])) { $contract_obligation = ContractObligation:: @@ -149,10 +150,25 @@ class ContractModule extends BaseController } } + // generate contract obligation contract dependency + foreach ($contract_template_obligation_list as $key => $row) { + $contract_template_obligation_contract_dependency = $row->contract_template_obligation_contract_template_dependency() + ->where('status', config('constants.contract_template_obligation_dependency.status.active')) + ->get(); + + if (!empty($contract_template_obligation_contract_dependency[0])) { + + $request->request->add([ + 'contract_template_id' => [$contract_template_obligation_contract_dependency[0]->depend_contract_template_hash_id], + ]); + $depend_contract = ContractModule::generate($request); + } + } + // log ContractModule::makeLog($contract->id, 'user (' . Auth::guard('user-api')->user()->id . ') created'); - // DB::commit(); + DB::commit(); $query_string = General::getCachePerviousQuery('contract_query'); $data = General::returnData($contract, $query_string); diff --git a/app/Models/ContractTemplateObligation.php b/app/Models/ContractTemplateObligation.php index b0db210..23c9d52 100644 --- a/app/Models/ContractTemplateObligation.php +++ b/app/Models/ContractTemplateObligation.php @@ -15,7 +15,8 @@ class ContractTemplateObligation extends Model 'hash_id', 'contract_template_list', 'contract_template_obligation_dependency_list', - 'depend_contract_template_obligation_dependency_list' + 'depend_contract_template_obligation_dependency_list', + 'contract_template_obligation_contract_template_dependency_list' ]; public function contract_template() @@ -33,6 +34,11 @@ class ContractTemplateObligation extends Model return $this->hasMany('App\Models\ContractTemplateObligationDependency', 'depend_contract_template_obligation_id'); } + public function contract_template_obligation_contract_template_dependency() + { + return $this->hasMany('App\Models\ContractTemplateObligationContractTemplateDependency', 'contract_template_obligation_id'); + } + public function getHashIdAttribute() { return Hasher::encode('contract_template_obligations', $this->id); @@ -46,17 +52,24 @@ class ContractTemplateObligation extends Model public function getContractTemplateObligationDependencyListAttribute() { return $this->contract_template_obligation_dependency() - ->where('status', config('constants.contract_template_obligation.status.active')) + ->where('status', config('constants.contract_template_obligation_dependency.status.active')) ->get()->makeHidden(['contract_template_obligation_list', 'depend_contract_template_obligation_list']); } public function getDependContractTemplateObligationDependencyListAttribute() { return $this->depend_contract_template_obligation_dependency() - ->where('status', config('constants.contract_template_obligation.status.active')) + ->where('status', config('constants.contract_template_obligation_dependency.status.active')) ->get()->makeHidden(['contract_template_obligation_list', 'depend_contract_template_obligation_list']); } + public function getContractTemplateObligationContractTemplateDependencyListAttribute() + { + return $this->contract_template_obligation_dependency() + ->where('status', config('constants.contract_template_obligation_contract_template_dependency.status.active')) + ->get()->makeHidden(['contract_template_obligation_list']); + } + public function getUpdatedAtAttribute($date) { return $date ? Carbon::parse($date)->timezone('Asia/Kuala_Lumpur')->format('Y-m-d') : ''; diff --git a/resources/js/user/pages/contracts/Table.vue b/resources/js/user/pages/contracts/Table.vue index ad38ef1..af57350 100644 --- a/resources/js/user/pages/contracts/Table.vue +++ b/resources/js/user/pages/contracts/Table.vue @@ -36,6 +36,7 @@ # Details + Obligation Template Status Created Actions @@ -48,6 +49,14 @@
Name: {{ contract.name }}
Complete Day Range: {{ contract.complete_day_range }}
+ +
+
-{{ obligation.name }} ({{ obligation.sequence }})
+
+
+ - +
+ {{ contract.status[0].name }} @@ -107,7 +116,7 @@ status: General.returnAray(General.getURLParam('status[]')), page: General.getURLParam('page') }), - colspan: 7, + colspan: 6, filter_status: false, loading: true, contract_list: [],