From 638c6d5bf885fcde0c6f65a403adff515dea8069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Tue, 13 Jan 2026 21:29:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/yuthon_sub_enterprises_view.xml | 1 + yuthon_property_approval/__manifest__.py | 1 + .../data/sale_renting_code_data.xml | 7 ++ yuthon_property_approval/models/__init__.py | 3 +- .../models/property_fee_spending.py | 47 +++++++++++ .../security/ir.model.access.csv | 6 +- .../views/property_fee_spending_view.xml | 84 +++++++++++++++++++ 7 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 yuthon_property_approval/models/property_fee_spending.py create mode 100644 yuthon_property_approval/views/property_fee_spending_view.xml diff --git a/yuthon_official/views/yuthon_sub_enterprises_view.xml b/yuthon_official/views/yuthon_sub_enterprises_view.xml index 012b1ebd4..625e820da 100644 --- a/yuthon_official/views/yuthon_sub_enterprises_view.xml +++ b/yuthon_official/views/yuthon_sub_enterprises_view.xml @@ -41,6 +41,7 @@ + diff --git a/yuthon_property_approval/__manifest__.py b/yuthon_property_approval/__manifest__.py index 8efd0ff7b..e882079be 100644 --- a/yuthon_property_approval/__manifest__.py +++ b/yuthon_property_approval/__manifest__.py @@ -25,6 +25,7 @@ 'views/property_collection_confirm.xml', 'views/property_eligibility.xml', 'views/yuthon_property_ledger_views.xml', + 'views/property_fee_spending_view.xml', 'views/property_lessee_analysis_viwes.xml', 'views/property_bills_list_views.xml', 'views/property_fitment.xml', diff --git a/yuthon_property_approval/data/sale_renting_code_data.xml b/yuthon_property_approval/data/sale_renting_code_data.xml index f3b7e36fa..56d1c817f 100644 --- a/yuthon_property_approval/data/sale_renting_code_data.xml +++ b/yuthon_property_approval/data/sale_renting_code_data.xml @@ -1,5 +1,12 @@ + + 费用支出编号 + property_fee_spending_code + FYZC%(y)s%(month)s%(day)s + 3 + + 应付账单编号 property_bills_payable_code diff --git a/yuthon_property_approval/models/__init__.py b/yuthon_property_approval/models/__init__.py index 992949364..4e3af1bdb 100644 --- a/yuthon_property_approval/models/__init__.py +++ b/yuthon_property_approval/models/__init__.py @@ -60,4 +60,5 @@ from . import payment_process from . import contract_accounts_receivable from . import property_bills_payable from . import property_payment_notice -from . import property_bills_list \ No newline at end of file +from . import property_bills_list +from . import property_fee_spending \ No newline at end of file diff --git a/yuthon_property_approval/models/property_fee_spending.py b/yuthon_property_approval/models/property_fee_spending.py new file mode 100644 index 000000000..781532dd9 --- /dev/null +++ b/yuthon_property_approval/models/property_fee_spending.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields, api, exceptions, _ +from odoo.exceptions import UserError, ValidationError + + +class PropertyFeeSpending(models.Model): + _name = 'property.fee.spending' + _inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin'] + _description = '费用支出' + + name = fields.Char(string='标题') + tip_description = fields.Text('事项名称') + property_address = fields.Text(string="物业地址") + users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id) + department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门") + code = fields.Char(string="编号", + default=lambda self: self.env['ir.sequence'].next_by_code('property_fee_spending_code')) + is_issues = fields.Boolean(string='是否上会') + issues_result = fields.Html(string="会议结果") + related_issues_id = fields.Many2one('issue.library', string="关联议题") + property_documents_ids = fields.Many2many('documents.document', string="附件") + tenure_type = fields.Selection([('self', '自有'), ('agency', '代管')], string='权属类型') + urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度', + default='normal') + active = fields.Boolean('Active', default=True, tracking=True) + work_end = fields.Boolean(string="结束") + company_id = fields.Many2one('yuthon.property.company', string="所属公司") + spending_fee = fields.Float(string="支付金额") + pay_date = fields.Date(string="支付日期") + expenses_type = fields.Many2one('yuthon.expenses.type', string="支出类型") + remake = fields.Text(string="备注") + + def _get_default_name_title(self): + return self._description if self._description else self._name + + name_title = fields.Char(default=_get_default_name_title) + self_users_ids = fields.Many2many('res.users', string="当前经办人", default=lambda self: [(6, 0, [self.env.user.id])]) + + + +class YuthonExpensesType(models.Model): + _name = 'yuthon.expenses.type' + _description = '支出类型' + + name = fields.Char(string="支出类型") diff --git a/yuthon_property_approval/security/ir.model.access.csv b/yuthon_property_approval/security/ir.model.access.csv index a95046db0..f87f5c550 100644 --- a/yuthon_property_approval/security/ir.model.access.csv +++ b/yuthon_property_approval/security/ir.model.access.csv @@ -125,4 +125,8 @@ access_property_bills_wizard,property_bills_wizard,model_property_bills_wizard,b access_action_refuse_wizard,action_refuse_wizard,model_action_refuse_wizard,base.group_user,1,1,1,1 access_property_deposit_wizard,property_deposit_wizard,model_property_deposit_wizard,base.group_user,1,1,1,1 access_deposit_reconciliation_line,deposit_reconciliation_line,model_deposit_reconciliation_line,base.group_user,1,1,1,1 -access_property_management_line2,property_management_line2,model_property_management_line2,base.group_user,1,1,1,1 \ No newline at end of file +access_property_management_line2,property_management_line2,model_property_management_line2,base.group_user,1,1,1,1 + + +access_yuthon_expenses_type,yuthon.expenses.type,model_yuthon_expenses_type,base.group_user,1,1,1,1 +access_property_fee_spending,property_fee_spending,model_property_fee_spending,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/yuthon_property_approval/views/property_fee_spending_view.xml b/yuthon_property_approval/views/property_fee_spending_view.xml new file mode 100644 index 000000000..c4cb20f42 --- /dev/null +++ b/yuthon_property_approval/views/property_fee_spending_view.xml @@ -0,0 +1,84 @@ + + + + property.fee.spending.tree + property.fee.spending + + + + + + + + + + + property.fee.spending.form + property.fee.spending + +
+ + + + + + + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + yuthon.expenses.type.tree + yuthon.expenses.type + + + + + + +
\ No newline at end of file