diff --git a/app/adminapi/lists/contract/ContractLists.php b/app/adminapi/lists/contract/ContractLists.php index ffd05fd39..f64b974c5 100644 --- a/app/adminapi/lists/contract/ContractLists.php +++ b/app/adminapi/lists/contract/ContractLists.php @@ -38,7 +38,7 @@ class ContractLists extends BaseAdminDataLists implements ListsSearchInterface public function setSearch(): array { return [ - '=' => ['contract_name', 'contract_type'], + '=' => ['contract_name', 'contract_type', 'contract_code'], ]; } diff --git a/app/adminapi/logic/contract/ContractLogic.php b/app/adminapi/logic/contract/ContractLogic.php index ff9436d87..4af140c59 100644 --- a/app/adminapi/logic/contract/ContractLogic.php +++ b/app/adminapi/logic/contract/ContractLogic.php @@ -41,34 +41,34 @@ class ContractLogic extends BaseLogic Db::startTrans(); try { Contract::create([ - 'customer_id' => $params['customer_id'], - 'approve_id' => $params['approve_id'], - 'buy_bidding_document_id' => $params['buy_bidding_document_id'], - 'contract_name' => $params['contract_name'], - 'contract_code' => $params['contract_code'], - 'contract_type' => $params['contract_type'], - 'contract_pricing_method' => $params['contract_pricing_method'], - 'party_a' => $params['party_a'], - 'party_a_contact_address' => $params['party_a_contact_address'], - 'party_a_diretor' => $params['party_a_diretor'], - 'party_a_phone' => $params['party_a_phone'], - 'party_a_mobile' => $params['party_a_mobile'], - 'party_a_email' => $params['party_a_email'], - 'party_b' => $params['party_b'], - 'party_b_contact_address' => $params['party_b_contact_address'], - 'party_b_diretor' => $params['party_b_diretor'], - 'party_b_phone' => $params['party_b_phone'], - 'party_b_mobile' => $params['party_b_mobile'], - 'party_b_email' => $params['party_b_email'], - 'amount' => $params['amount'], - 'amount_daxie' => $params['amount_daxie'], - 'business_director' => $params['business_director'], - 'contract_status' => $params['contract_status'], - 'expire' => $params['expire'], - 'contract_date' => $params['contract_date'], - 'main_content' => $params['main_content'], - 'remark' => $params['remark'], - 'annex' => $params['annex'] + 'customer_id' => $params['customer_id'] ?? 0, + 'approve_id' => $params['approve_id'] ?? 0, + 'buy_bidding_document_id' => $params['buy_bidding_document_id'] ?? 0, + 'contract_name' => $params['contract_name'] ?? '', + 'contract_code' => $params['contract_code'] ?? '', + 'contract_type' => $params['contract_type'] ?? 0, + 'contract_pricing_method' => $params['contract_pricing_method'] ?? 0, + 'party_a' => $params['party_a'] ?? '', + 'party_a_contact_address' => $params['party_a_contact_address'] ?? '', + 'party_a_diretor' => $params['party_a_diretor'] ?? '', + 'party_a_phone' => $params['party_a_phone'] ?? '', + 'party_a_mobile' => $params['party_a_mobile'] ?? '', + 'party_a_email' => $params['party_a_email'] ?? '', + 'party_b' => $params['party_b'] ?? '', + 'party_b_contact_address' => $params['party_b_contact_address'] ?? '', + 'party_b_diretor' => $params['party_b_diretor'] ?? '', + 'party_b_phone' => $params['party_b_phone'] ?? '', + 'party_b_mobile' => $params['party_b_mobile'] ?? '', + 'party_b_email' => $params['party_b_email'] ?? '', + 'amount' => $params['amount'] ?? 0, + 'amount_daxie' => $params['amount_daxie'] ?? '', + 'business_director' => $params['business_director'] ?? 0, + 'contract_status' => $params['contract_status'] ?? 0, + 'expire' => $params['expire'] ?? '', + 'contract_date' => $params['contract_date'] ?? '', + 'main_content' => $params['main_content'] ?? '', + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ?? '', ]); Db::commit(); @@ -93,34 +93,34 @@ class ContractLogic extends BaseLogic Db::startTrans(); try { Contract::where('approve_id', $params['approve_id'])->update([ - 'customer_id' => $params['customer_id'], - 'approve_id' => $params['approve_id'], - 'buy_bidding_document_id' => $params['buy_bidding_document_id'], - 'contract_name' => $params['contract_name'], - 'contract_code' => $params['contract_code'], - 'contract_type' => $params['contract_type'], - 'contract_pricing_method' => $params['contract_pricing_method'], - 'party_a' => $params['party_a'], - 'party_a_contact_address' => $params['party_a_contact_address'], - 'party_a_diretor' => $params['party_a_diretor'], - 'party_a_phone' => $params['party_a_phone'], - 'party_a_mobile' => $params['party_a_mobile'], - 'party_a_email' => $params['party_a_email'], - 'party_b' => $params['party_b'], - 'party_b_contact_address' => $params['party_b_contact_address'], - 'party_b_diretor' => $params['party_b_diretor'], - 'party_b_phone' => $params['party_b_phone'], - 'party_b_mobile' => $params['party_b_mobile'], - 'party_b_email' => $params['party_b_email'], - 'amount' => $params['amount'], - 'amount_daxie' => $params['amount_daxie'], - 'business_director' => $params['business_director'], - 'contract_status' => $params['contract_status'], - 'expire' => $params['expire'], - 'contract_date' => $params['contract_date'], - 'main_content' => $params['main_content'], - 'remark' => $params['remark'], - 'annex' => $params['annex'] + 'customer_id' => $params['customer_id'] ?? 0, + 'approve_id' => $params['approve_id'] ?? 0, + 'buy_bidding_document_id' => $params['buy_bidding_document_id'] ?? 0, + 'contract_name' => $params['contract_name'] ?? '', + 'contract_code' => $params['contract_code'] ?? '', + 'contract_type' => $params['contract_type'] ?? 0, + 'contract_pricing_method' => $params['contract_pricing_method'] ?? 0, + 'party_a' => $params['party_a'] ?? '', + 'party_a_contact_address' => $params['party_a_contact_address'] ?? '', + 'party_a_diretor' => $params['party_a_diretor'] ?? '', + 'party_a_phone' => $params['party_a_phone'] ?? '', + 'party_a_mobile' => $params['party_a_mobile'] ?? '', + 'party_a_email' => $params['party_a_email'] ?? '', + 'party_b' => $params['party_b'] ?? '', + 'party_b_contact_address' => $params['party_b_contact_address'] ?? '', + 'party_b_diretor' => $params['party_b_diretor'] ?? '', + 'party_b_phone' => $params['party_b_phone'] ?? '', + 'party_b_mobile' => $params['party_b_mobile'] ?? '', + 'party_b_email' => $params['party_b_email'] ?? '', + 'amount' => $params['amount'] ?? 0, + 'amount_daxie' => $params['amount_daxie'] ?? '', + 'business_director' => $params['business_director'] ?? 0, + 'contract_status' => $params['contract_status'] ?? 0, + 'expire' => $params['expire'] ?? '', + 'contract_date' => $params['contract_date'] ?? '', + 'main_content' => $params['main_content'] ?? '', + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ?? '', ]); Db::commit(); @@ -142,7 +142,7 @@ class ContractLogic extends BaseLogic */ public static function delete(array $params): bool { - return Contract::destroy($params['approve_id']); + return Contract::destroy($params['id']); } @@ -155,6 +155,9 @@ class ContractLogic extends BaseLogic */ public static function detail($params): array { - return Contract::findOrEmpty($params['approve_id'])->toArray(); + $contract = Contract::findOrEmpty($params['id']); + $contract->custom = $contract->custom; + $contract->document = $contract->document; + return $contract->toArray(); } } \ No newline at end of file diff --git a/app/adminapi/validate/contract/ContractValidate.php b/app/adminapi/validate/contract/ContractValidate.php index 438407f01..a626bfa20 100644 --- a/app/adminapi/validate/contract/ContractValidate.php +++ b/app/adminapi/validate/contract/ContractValidate.php @@ -31,7 +31,12 @@ class ContractValidate extends BaseValidate * @var string[] */ protected $rule = [ + 'id' => 'require', 'approve_id' => 'require', + 'customer_id' => 'require', + 'buy_bidding_document_id' => 'require', + 'contract_name' => 'require', + 'contract_code' => 'require', ]; @@ -52,7 +57,7 @@ class ContractValidate extends BaseValidate */ public function sceneAdd() { - return $this->remove('approve_id', true); + return $this->remove('id', true); } @@ -64,7 +69,7 @@ class ContractValidate extends BaseValidate */ public function sceneEdit() { - return $this->only(['approve_id']); + return $this->only(['id', 'approve_id', 'customer_id', 'buy_bidding_document_id', 'contract_name', 'contract_code']); } @@ -76,7 +81,7 @@ class ContractValidate extends BaseValidate */ public function sceneDelete() { - return $this->only(['approve_id']); + return $this->only(['id']); } @@ -88,7 +93,7 @@ class ContractValidate extends BaseValidate */ public function sceneDetail() { - return $this->only(['approve_id']); + return $this->only(['id']); } } \ No newline at end of file diff --git a/app/common/model/contract/Contract.php b/app/common/model/contract/Contract.php index 100a59a1f..8cf78e289 100644 --- a/app/common/model/contract/Contract.php +++ b/app/common/model/contract/Contract.php @@ -30,5 +30,14 @@ class Contract extends BaseModel protected $name = 'contract'; protected $deleteTime = 'delete_time'; + public function custom() + { + return $this->belongsTo(\app\common\model\custom\Custom::class, 'customer_id'); + } + + public function document() + { + return $this->belongsTo(\app\common\model\bid\BidBuyBiddingDocument::class, 'buy_bidding_document_id'); + } } \ No newline at end of file