From 6b94868489bbb8a9105e5b4ba8fc33aa88ce0ec4 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Mon, 26 May 2025 17:01:17 +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 --- yuthon_trade/__manifest__.py | 1 + yuthon_trade/data/sale_renting_code_data.xml | 7 +++ yuthon_trade/models/__init__.py | 1 + yuthon_trade/models/parking_fee_approval.py | 36 ++++++++++++ yuthon_trade/security/ir.model.access.csv | 1 + .../views/parking_fee_approval_views.xml | 57 +++++++++++++++++++ yuthon_work_brand/views/executive_manage.xml | 5 ++ 7 files changed, 108 insertions(+) create mode 100644 yuthon_trade/models/parking_fee_approval.py create mode 100644 yuthon_trade/views/parking_fee_approval_views.xml diff --git a/yuthon_trade/__manifest__.py b/yuthon_trade/__manifest__.py index 392aff946..fe270a720 100644 --- a/yuthon_trade/__manifest__.py +++ b/yuthon_trade/__manifest__.py @@ -34,6 +34,7 @@ 'views/yuthon_task_approval_views.xml', 'views/trade_reward_approval_views.xml', 'views/yuthon_task_setting_views.xml', + 'views/parking_fee_approval_views.xml', 'views/yuthon_trade_menu.xml', ], 'demo': [], diff --git a/yuthon_trade/data/sale_renting_code_data.xml b/yuthon_trade/data/sale_renting_code_data.xml index 8fbdcf940..1b71a62eb 100644 --- a/yuthon_trade/data/sale_renting_code_data.xml +++ b/yuthon_trade/data/sale_renting_code_data.xml @@ -49,6 +49,13 @@ 3 + + 停车费发票编号 + parking_fee_approval_code + TC%(y)s%(month)s%(day)s + 3 + + 个人慰问编号 property_personal_condolences_code diff --git a/yuthon_trade/models/__init__.py b/yuthon_trade/models/__init__.py index 1a70c1e69..ce104e578 100644 --- a/yuthon_trade/models/__init__.py +++ b/yuthon_trade/models/__init__.py @@ -24,3 +24,4 @@ from . import yuthon_seals_approval from . import yuthon_business_approval from . import inherit_workflow_record from . import trade_project_approval +from . import parking_fee_approval diff --git a/yuthon_trade/models/parking_fee_approval.py b/yuthon_trade/models/parking_fee_approval.py new file mode 100644 index 000000000..6aa089639 --- /dev/null +++ b/yuthon_trade/models/parking_fee_approval.py @@ -0,0 +1,36 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import models, fields, api, exceptions, _ + + +class ParkingFeeApproval(models.Model): + _name = 'parking.fee.approval' + _description = '停车费发票' + _inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin'] + + code = fields.Char(string="流水号", + default=lambda self: self.env['ir.sequence'].next_by_code('parking_fee_approval_code')) + 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="申请部门") + urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度', + default='normal') + date_application = fields.Date(string="申请日期") + license_plate = fields.Text(string="车牌号") + text = fields.Text(string='事由') + unit = fields.Text(string="单位") + name = fields.Char(string="标题", compute='_compute_name') + duration = fields.Integer(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) + + @api.depends('license_plate', 'date_application', 'duration') + def _compute_name(self): + for rec in self: + if rec.license_plate and rec.date_application and rec.duration: + date_str = rec.date_application.strftime('%Y-%m-%d') + rec.name = f"{rec.license_plate}{date_str}{rec.duration}小时" + else: + rec.name = self._description + diff --git a/yuthon_trade/security/ir.model.access.csv b/yuthon_trade/security/ir.model.access.csv index 0b4cb45b5..ad84f43ca 100644 --- a/yuthon_trade/security/ir.model.access.csv +++ b/yuthon_trade/security/ir.model.access.csv @@ -33,6 +33,7 @@ access_sending_unit_setting,sending_unit_setting,model_sending_unit_setting,base access_trade_project_approval,trade_project_approval,model_trade_project_approval,base.group_user,1,1,1,1 access_project_funding_setting,project_funding_setting,model_project_funding_setting,base.group_user,1,1,1,1 access_yuthon_mutual_type,yuthon_mutual_type,model_yuthon_mutual_type,base.group_user,1,1,1,1 +access_parking_fee_approval,parking_fee_approval,model_parking_fee_approval,base.group_user,1,1,1,1 access_project_classify_setting,project_classify_setting,model_project_classify_setting,base.group_user,1,1,1,1 diff --git a/yuthon_trade/views/parking_fee_approval_views.xml b/yuthon_trade/views/parking_fee_approval_views.xml new file mode 100644 index 000000000..e479d29e6 --- /dev/null +++ b/yuthon_trade/views/parking_fee_approval_views.xml @@ -0,0 +1,57 @@ + + + + parking.fee.approval.tree + parking.fee.approval + + + + + + + + + parking.fee.approval.form + parking.fee.approval + +
+ + + + + + + + + + + + + +
+

+ +

+
+ + + + + + + + + +
+
+
+
+ + 停车票发放 + parking.fee.approval + tree,form + +
\ No newline at end of file diff --git a/yuthon_work_brand/views/executive_manage.xml b/yuthon_work_brand/views/executive_manage.xml index 33b5fa23e..4d5c5d811 100644 --- a/yuthon_work_brand/views/executive_manage.xml +++ b/yuthon_work_brand/views/executive_manage.xml @@ -105,6 +105,11 @@ parent="administrative_offices_root_board" action="yuthon_trade.view_yuthon_seals_approval_action" sequence="80"/> +