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 @@