From c65186bab070a4de6ed78b012511797e872ef74b Mon Sep 17 00:00:00 2001 From: yaooo <272523191@qq.com> Date: Tue, 12 Dec 2023 11:04:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=90=88=E5=90=8C=E6=B4=BD?= =?UTF-8?q?=E8=B0=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contract/ContractNegotiationLists.php | 2 +- .../ContractNegotiationLogic.php | 64 ++++++++++--------- .../contract/ContractNegotiationValidate.php | 6 +- .../model/contract/ContractNegotiation.php | 9 +++ 4 files changed, 48 insertions(+), 33 deletions(-) rename app/adminapi/logic/{custom => contract}/ContractNegotiationLogic.php (72%) diff --git a/app/adminapi/lists/contract/ContractNegotiationLists.php b/app/adminapi/lists/contract/ContractNegotiationLists.php index aa0b1895f..d8302cc81 100644 --- a/app/adminapi/lists/contract/ContractNegotiationLists.php +++ b/app/adminapi/lists/contract/ContractNegotiationLists.php @@ -38,7 +38,7 @@ class ContractNegotiationLists extends BaseAdminDataLists implements ListsSearch public function setSearch(): array { return [ - '=' => ['contract_id', 'negotiation_name'], + '=' => ['contract_id', 'negotiation_name', 'negotiation_no'], ]; } diff --git a/app/adminapi/logic/custom/ContractNegotiationLogic.php b/app/adminapi/logic/contract/ContractNegotiationLogic.php similarity index 72% rename from app/adminapi/logic/custom/ContractNegotiationLogic.php rename to app/adminapi/logic/contract/ContractNegotiationLogic.php index fa61c9db3..049e7a92c 100644 --- a/app/adminapi/logic/custom/ContractNegotiationLogic.php +++ b/app/adminapi/logic/contract/ContractNegotiationLogic.php @@ -41,22 +41,22 @@ class ContractNegotiationLogic extends BaseLogic Db::startTrans(); try { ContractNegotiation::create([ - 'contract_id' => $params['contract_id'], - 'approve_id' => $params['approve_id'], - 'negotiation_name' => $params['negotiation_name'], - 'negotiation_no' => $params['negotiation_no'], - 'negotiation_amount' => $params['negotiation_amount'], - 'negotiation_type' => $params['negotiation_type'], - 'labor_costs' => $params['labor_costs'], - 'material_costs' => $params['material_costs'], - 'warranty_amount' => $params['warranty_amount'], + 'contract_id' => $params['contract_id'] ?? 0, + 'approve_id' => $params['approve_id'] ?? 0, + 'negotiation_name' => $params['negotiation_name'] ?? '', + 'negotiation_no' => $params['negotiation_no'] ?? '', + 'negotiation_amount' => $params['negotiation_amount'] ?? 0, + 'negotiation_type' => $params['negotiation_type'] ?? 0, + 'labor_costs' => $params['labor_costs'] ?? 0, + 'material_costs' => $params['material_costs'] ?? 0, + 'warranty_amount' => $params['warranty_amount'] ?? 0, 'Warranty_expire_date' => strtotime($params['Warranty_expire_date']), - 'profit' => $params['profit'], - 'profit_rate' => $params['profit_rate'], - 'negotiation_content' => $params['negotiation_content'], - 'negotiation_detail' => $params['negotiation_detail'], - 'negotiation_quotation' => $params['negotiation_quotation'], - 'negotiation_basis' => $params['negotiation_basis'] + 'profit' => $params['profit'] ?? 0, + 'profit_rate' => $params['profit_rate'] ?? '', + 'negotiation_content' => $params['negotiation_content'] ?? 0, + 'negotiation_detail' => $params['negotiation_detail'] ?? 0, + 'negotiation_quotation' => $params['negotiation_quotation'] ?? 0, + 'negotiation_basis' => $params['negotiation_basis'] ?? 0, ]); Db::commit(); @@ -81,22 +81,22 @@ class ContractNegotiationLogic extends BaseLogic Db::startTrans(); try { ContractNegotiation::where('id', $params['id'])->update([ - 'contract_id' => $params['contract_id'], - 'approve_id' => $params['approve_id'], - 'negotiation_name' => $params['negotiation_name'], - 'negotiation_no' => $params['negotiation_no'], - 'negotiation_amount' => $params['negotiation_amount'], - 'negotiation_type' => $params['negotiation_type'], - 'labor_costs' => $params['labor_costs'], - 'material_costs' => $params['material_costs'], - 'warranty_amount' => $params['warranty_amount'], + 'contract_id' => $params['contract_id'] ?? 0, + 'approve_id' => $params['approve_id'] ?? 0, + 'negotiation_name' => $params['negotiation_name'] ?? '', + 'negotiation_no' => $params['negotiation_no'] ?? '', + 'negotiation_amount' => $params['negotiation_amount'] ?? 0, + 'negotiation_type' => $params['negotiation_type'] ?? 0, + 'labor_costs' => $params['labor_costs'] ?? 0, + 'material_costs' => $params['material_costs'] ?? 0, + 'warranty_amount' => $params['warranty_amount'] ?? 0, 'Warranty_expire_date' => strtotime($params['Warranty_expire_date']), - 'profit' => $params['profit'], - 'profit_rate' => $params['profit_rate'], - 'negotiation_content' => $params['negotiation_content'], - 'negotiation_detail' => $params['negotiation_detail'], - 'negotiation_quotation' => $params['negotiation_quotation'], - 'negotiation_basis' => $params['negotiation_basis'] + 'profit' => $params['profit'] ?? 0, + 'profit_rate' => $params['profit_rate'] ?? '', + 'negotiation_content' => $params['negotiation_content'] ?? 0, + 'negotiation_detail' => $params['negotiation_detail'] ?? 0, + 'negotiation_quotation' => $params['negotiation_quotation'] ?? 0, + 'negotiation_basis' => $params['negotiation_basis'] ?? 0 ]); Db::commit(); @@ -131,6 +131,8 @@ class ContractNegotiationLogic extends BaseLogic */ public static function detail($params): array { - return ContractNegotiation::findOrEmpty($params['id'])->toArray(); + $contractNegotiation = ContractNegotiation::findOrEmpty($params['id']); + $contractNegotiation->contract = $contractNegotiation->contract; + return $contractNegotiation->toArray(); } } \ No newline at end of file diff --git a/app/adminapi/validate/contract/ContractNegotiationValidate.php b/app/adminapi/validate/contract/ContractNegotiationValidate.php index 980b95584..1846a20f7 100644 --- a/app/adminapi/validate/contract/ContractNegotiationValidate.php +++ b/app/adminapi/validate/contract/ContractNegotiationValidate.php @@ -32,6 +32,10 @@ class ContractNegotiationValidate extends BaseValidate */ protected $rule = [ 'id' => 'require', + 'contract_id' => 'require', + 'approve_id' => 'require', + 'negotiation_name' => 'require', + 'negotiation_no' => 'require', ]; @@ -64,7 +68,7 @@ class ContractNegotiationValidate extends BaseValidate */ public function sceneEdit() { - return $this->only(['id']); + return $this->only(['id', 'contract_id', 'approve_id', 'negotiation_name', 'negotiation_no']); } diff --git a/app/common/model/contract/ContractNegotiation.php b/app/common/model/contract/ContractNegotiation.php index 41317ceae..6f3c5f6c9 100644 --- a/app/common/model/contract/ContractNegotiation.php +++ b/app/common/model/contract/ContractNegotiation.php @@ -30,5 +30,14 @@ class ContractNegotiation extends BaseModel protected $name = 'contract_negotiation'; protected $deleteTime = 'delete_time'; + public function contract() + { + return $this->belongsTo(\app\common\model\contract\Contract::class, 'contract_id'); + } + + public function getWarrantyExpireDateAttr($value) + { + return empty($value) ? '' : date('Y-m-d H:i:s', $value); + } } \ No newline at end of file