添加功能

This commit is contained in:
zhou
2025-05-26 17:01:17 +08:00
parent a9302e280d
commit 6b94868489
7 changed files with 108 additions and 0 deletions
+1
View File
@@ -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': [],
@@ -49,6 +49,13 @@
<field name="padding">3</field>
<field name="company_id" eval="False"/>
</record>
<record id="parking_fee_approval_sequence" model="ir.sequence">
<field name="name">停车费发票编号</field>
<field name="code">parking_fee_approval_code</field>
<field name="prefix">TC%(y)s%(month)s%(day)s</field>
<field name="padding">3</field>
<field name="company_id" eval="False"/>
</record>
<record id="property_personal_condolences_code_sequence" model="ir.sequence">
<field name="name">个人慰问编号</field>
<field name="code">property_personal_condolences_code</field>
+1
View File
@@ -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
@@ -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
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
33 access_project_funding_setting project_funding_setting model_project_funding_setting base.group_user 1 1 1 1
34 access_yuthon_mutual_type yuthon_mutual_type model_yuthon_mutual_type base.group_user 1 1 1 1
35 access_project_classify_setting access_parking_fee_approval project_classify_setting parking_fee_approval model_project_classify_setting model_parking_fee_approval base.group_user 1 1 1 1
36 access_project_classify_setting project_classify_setting model_project_classify_setting base.group_user 1 1 1 1
37
38
39
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_parking_fee_approval_tree" model="ir.ui.view">
<field name="name">parking.fee.approval.tree</field>
<field name="model">parking.fee.approval</field>
<field name="arch" type="xml">
<tree string="停车票发放">
<field name="name"/>
<field name="date_application"/>
</tree>
</field>
</record>
<record id="view_parking_fee_approval_form" model="ir.ui.view">
<field name="name">parking.fee.approval.form</field>
<field name="model">parking.fee.approval</field>
<field name="arch" type="xml">
<form string="停车票发放">
<sheet>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="2">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group/>
</group>
<div class="col-12 text-center">
<h1>
<field name="name_title" readonly="1"/>
</h1>
</div>
<group string="审批详情">
<field name="name"/>
<field name="date_application"/>
<field name="license_plate"/>
<field name="text"/>
<field name="unit"/>
<field name="duration"/>
<field name="department_id" invisible="1"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_parking_fee_approval_action" model="ir.actions.act_window">
<field name="name">停车票发放</field>
<field name="res_model">parking.fee.approval</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -105,6 +105,11 @@
parent="administrative_offices_root_board"
action="yuthon_trade.view_yuthon_seals_approval_action"
sequence="80"/>
<menuitem id="parking_fee_approval_board"
name="停车票发放"
parent="administrative_offices_root_board"
action="yuthon_trade.view_parking_fee_approval_action"
sequence="85"/>
<menuitem id="yuthon_official_setting"
parent="administrative_offices_root_board"
name="配置"