From cf8c0863418dd07dff09d93a2205c0f8283c2abe Mon Sep 17 00:00:00 2001 From: yaooo <272523191@qq.com> Date: Wed, 13 Dec 2023 15:22:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BC=80=E7=A5=A8=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../finance/FinanceInvoiceApplyController.php | 108 ++++++++++++ .../finance/FinanceInvoiceApplyLists.php | 80 +++++++++ .../finance/FinanceInvoiceApplyLogic.php | 163 ++++++++++++++++++ .../finance/FinanceInvoiceApplyValidate.php | 97 +++++++++++ .../model/finance/FinanceInvoiceApply.php | 43 +++++ 5 files changed, 491 insertions(+) create mode 100644 app/adminapi/controller/finance/FinanceInvoiceApplyController.php create mode 100644 app/adminapi/lists/finance/FinanceInvoiceApplyLists.php create mode 100644 app/adminapi/logic/finance/FinanceInvoiceApplyLogic.php create mode 100644 app/adminapi/validate/finance/FinanceInvoiceApplyValidate.php create mode 100644 app/common/model/finance/FinanceInvoiceApply.php diff --git a/app/adminapi/controller/finance/FinanceInvoiceApplyController.php b/app/adminapi/controller/finance/FinanceInvoiceApplyController.php new file mode 100644 index 000000000..6872b7558 --- /dev/null +++ b/app/adminapi/controller/finance/FinanceInvoiceApplyController.php @@ -0,0 +1,108 @@ +dataLists(new FinanceInvoiceApplyLists()); + } + + + /** + * @notes 添加 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function add() + { + $params = (new FinanceInvoiceApplyValidate())->post()->goCheck('add'); + $result = FinanceInvoiceApplyLogic::add($params); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(FinanceInvoiceApplyLogic::getError()); + } + + + /** + * @notes 编辑 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function edit() + { + $params = (new FinanceInvoiceApplyValidate())->post()->goCheck('edit'); + $result = FinanceInvoiceApplyLogic::edit($params); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(FinanceInvoiceApplyLogic::getError()); + } + + + /** + * @notes 删除 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function delete() + { + $params = (new FinanceInvoiceApplyValidate())->post()->goCheck('delete'); + FinanceInvoiceApplyLogic::delete($params); + return $this->success('删除成功', [], 1, 1); + } + + + /** + * @notes 获取详情 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function detail() + { + $params = (new FinanceInvoiceApplyValidate())->goCheck('detail'); + $result = FinanceInvoiceApplyLogic::detail($params); + return $this->data($result); + } + + +} \ No newline at end of file diff --git a/app/adminapi/lists/finance/FinanceInvoiceApplyLists.php b/app/adminapi/lists/finance/FinanceInvoiceApplyLists.php new file mode 100644 index 000000000..2448c2f99 --- /dev/null +++ b/app/adminapi/lists/finance/FinanceInvoiceApplyLists.php @@ -0,0 +1,80 @@ + ['customer_id', 'contract_id', 'invoicing_company_name'], + ]; + } + + + /** + * @notes 获取列表 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function lists(): array + { + return FinanceInvoiceApply::where($this->searchWhere) + ->field(['*']) + ->limit($this->limitOffset, $this->limitLength) + ->order(['id' => 'desc']) + ->select() + ->toArray(); + } + + + /** + * @notes 获取数量 + * @return int + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function count(): int + { + $financeInvoiceApply = FinanceInvoiceApply::findOrEmpty($params['id']); + $financeInvoiceApply->project = $financeInvoiceApply->project; + $financeInvoiceApply->custom = $financeInvoiceApply->custom; + return $financeInvoiceApply->toArray(); + } + +} \ No newline at end of file diff --git a/app/adminapi/logic/finance/FinanceInvoiceApplyLogic.php b/app/adminapi/logic/finance/FinanceInvoiceApplyLogic.php new file mode 100644 index 000000000..b0a4a41ca --- /dev/null +++ b/app/adminapi/logic/finance/FinanceInvoiceApplyLogic.php @@ -0,0 +1,163 @@ + $params['customer_id'] ?? 0, + 'contract_id' => $params['contract_id'] ?? 0, + 'approve_id' => $params['approve_id'] ?? 0, + 'invoicing_date' => $params['invoicing_date'] ?? '', + 'period' => $params['period'] ?? 0, + 'accumulate_amount' => $params['accumulate_amount'] ?? 0, + 'accumulated_payments_received' => $params['accumulated_payments_received'] ?? 0, + 'tax_rate' => $params['tax_rate'] ?? 0, + 'invoice_type' => $params['invoice_type'] ?? 0, + 'invoicing_amount' => $params['invoicing_amount'] ?? 0, + 'invoicing_amount_daxie' => $params['invoicing_amount_daxie'] ?? '', + 'tax' => $params['tax'] ?? 0, + 'amount_including_tax' => $params['amount_including_tax'] ?? 0, + 'content' => $params['content'] ?? '', + 'invoice_no' => $params['invoice_no'] ?? '', + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ?? '', + 'invoicing_company_name' => $params['invoicing_company_name'] ?? '', + 'taxpayer_identification_number' => $params['taxpayer_identification_number'] ?? '', + 'deposit_bank' => $params['deposit_bank'] ?? '', + 'bank_accnout' => $params['bank_accnout'] ?? '', + 'address_phone' => $params['address_phone'] ?? '', + 'receiving_address' => $params['receiving_address'] ?? '', + 'contacts' => $params['contacts'] ?? '', + 'phone' => $params['phone'] ?? '', + 'mailing_time' => $params['mailing_time'] ?? '', + 'mailing_type' => $params['mailing_type'] ?? '', + 'mailing_no' => $params['mailing_no'] ?? '', + ]); + + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + + /** + * @notes 编辑 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public static function edit(array $params): bool + { + Db::startTrans(); + try { + FinanceInvoiceApply::where('id', $params['id'])->update([ + 'customer_id' => $params['customer_id'] ?? 0, + 'contract_id' => $params['contract_id'] ?? 0, + 'approve_id' => $params['approve_id'] ?? 0, + 'invoicing_date' => $params['invoicing_date'] ?? '', + 'period' => $params['period'] ?? 0, + 'accumulate_amount' => $params['accumulate_amount'] ?? 0, + 'accumulated_payments_received' => $params['accumulated_payments_received'] ?? 0, + 'tax_rate' => $params['tax_rate'] ?? 0, + 'invoice_type' => $params['invoice_type'] ?? 0, + 'invoicing_amount' => $params['invoicing_amount'] ?? 0, + 'invoicing_amount_daxie' => $params['invoicing_amount_daxie'] ?? '', + 'tax' => $params['tax'] ?? 0, + 'amount_including_tax' => $params['amount_including_tax'] ?? 0, + 'content' => $params['content'] ?? '', + 'invoice_no' => $params['invoice_no'] ?? '', + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ?? '', + 'invoicing_company_name' => $params['invoicing_company_name'] ?? '', + 'taxpayer_identification_number' => $params['taxpayer_identification_number'] ?? '', + 'deposit_bank' => $params['deposit_bank'] ?? '', + 'bank_accnout' => $params['bank_accnout'] ?? '', + 'address_phone' => $params['address_phone'] ?? '', + 'receiving_address' => $params['receiving_address'] ?? '', + 'contacts' => $params['contacts'] ?? '', + 'phone' => $params['phone'] ?? '', + 'mailing_time' => $params['mailing_time'] ?? '', + 'mailing_type' => $params['mailing_type'] ?? '', + 'mailing_no' => $params['mailing_no'] ?? '', + ]); + + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + + /** + * @notes 删除 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public static function delete(array $params): bool + { + return FinanceInvoiceApply::destroy($params['id']); + } + + + /** + * @notes 获取详情 + * @param $params + * @return array + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public static function detail($params): array + { + $financeInvoiceApply = FinanceInvoiceApply::findOrEmpty($params['id']); + $financeInvoiceApply->contract = $financeInvoiceApply->contract; + $financeInvoiceApply->custom = $financeInvoiceApply->custom; + return $financeInvoiceApply->toArray(); + } +} \ No newline at end of file diff --git a/app/adminapi/validate/finance/FinanceInvoiceApplyValidate.php b/app/adminapi/validate/finance/FinanceInvoiceApplyValidate.php new file mode 100644 index 000000000..b56436abb --- /dev/null +++ b/app/adminapi/validate/finance/FinanceInvoiceApplyValidate.php @@ -0,0 +1,97 @@ + 'require', + 'customer_id' => 'require', + 'contract_id' => 'require', + 'approve_id' => 'require', + ]; + + + /** + * 参数描述 + * @var string[] + */ + protected $field = [ + 'id' => 'id', + ]; + + + /** + * @notes 添加场景 + * @return FinanceInvoiceApplyValidate + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function sceneAdd() + { + return $this->remove('id', true); + } + + + /** + * @notes 编辑场景 + * @return FinanceInvoiceApplyValidate + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function sceneEdit() + { + return $this->only(['id', 'customer_id', 'contract_id', 'approve_id']); + } + + + /** + * @notes 删除场景 + * @return FinanceInvoiceApplyValidate + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function sceneDelete() + { + return $this->only(['id']); + } + + + /** + * @notes 详情场景 + * @return FinanceInvoiceApplyValidate + * @author likeadmin + * @date 2023/12/13 15:01 + */ + public function sceneDetail() + { + return $this->only(['id']); + } + +} \ No newline at end of file diff --git a/app/common/model/finance/FinanceInvoiceApply.php b/app/common/model/finance/FinanceInvoiceApply.php new file mode 100644 index 000000000..e5caf21c8 --- /dev/null +++ b/app/common/model/finance/FinanceInvoiceApply.php @@ -0,0 +1,43 @@ +belongsTo(\app\common\model\custom\Custom::class, 'customer_id'); + } + + public function contract() + { + return $this->belongsTo(\app\common\model\contract\Contract::class, 'contract_id'); + } + +} \ No newline at end of file