添加功能

This commit is contained in:
李鹏宇
2025-10-13 15:19:17 +08:00
parent 9a30eb044d
commit a119f4b85f
9 changed files with 37 additions and 12 deletions
@@ -19,11 +19,10 @@ class YuthonRetiredApproval(models.Model):
id_number = fields.Char(related='employee_id.identification_id', string="身份证号")
job_id = fields.Many2one(related='employee_id.job_id', string="岗位")
onboarding_time = fields.Date(related='employee_id.entry_date', string="入职日期")
expected_departure_date = fields.Date(string="预计离职日期")
expected_departure_date = fields.Date(string="预计退休日期")
retirement_type = fields.Selection([('normal', '正常退休'), ('special_job_early', '特殊工种提前退休'), ('sick', '病退')], string='退休类型')
social_security_card = fields.Char(string='社保卡')
treatment_choice = fields.Selection([('pension_payment', '养老金发放'), ('enterprise_annuity', '企业年金')], string='待遇选择')
account = fields.Char(string='账号')
documents_ids = fields.Many2many('ir.attachment', string="附件")
handover_line_ids = fields.One2many('yuthon.handover.line', 'retired_id', string="工作交接")
return_line_ids = fields.One2many('yuthon.return.line', 'retired_id', string="资产归还")
@@ -39,6 +38,10 @@ class YuthonRetiredApproval(models.Model):
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])])
@api.onchange('employee_id')
def _onchange_employee_id(self):
if self.employee_id:
self.name = f'关于办理{self.employee_id.name}同志退休手续的事宜'
class YuthonHandoverLine(models.Model):
_name = 'yuthon.handover.line'
@@ -8,7 +8,6 @@
<field name="name"/>
<field name="employee_id"/>
<field name="retirement_type"/>
<field name="treatment_choice"/>
<field name="expected_departure_date"/>
</tree>
</field>
@@ -67,8 +66,6 @@
<group>
<field name="onboarding_time"/>
<field name="expected_departure_date"/>
<field name="treatment_choice"/>
<field name="account" invisible="treatment_choice != 'pension_payment'"/>
</group>
</group>
<notebook>
@@ -329,6 +329,16 @@ class MeterArchivesLine(models.Model):
i.last_meter = i.meter_date
i.current_meter = 0
@api.constrains('current_read', 'last_read', 'maximum_count')
def _check_reading_consistency(self):
for record in self:
if record.last_read is not None and record.current_read is not None and record.last_read > 0:
if record.current_read < record.last_read:
if record.last_read - record.current_read >= 10000:
raise ValidationError(
f"输入错误:当前读数 {record.current_read} 必须大于上次读数 {record.last_read} "
)
@api.onchange("yuthon_property_ids")
def onchange_lessee_id(self):
for record in self:
@@ -263,6 +263,16 @@ class MeterWaterLine(models.Model):
i.last_meter = i.meter_date
i.current_meter = 0
@api.constrains('current_read', 'last_read', 'maximum_count')
def _check_reading_consistency(self):
for record in self:
if record.last_read is not None and record.current_read is not None and record.last_read > 0:
if record.current_read < record.last_read:
if record.last_read - record.current_read >= 10000:
raise ValidationError(
f"输入错误:当前读数 {record.current_read} 必须大于上次读数 {record.last_read} "
)
@api.onchange("yuthon_property_ids")
def onchange_lessee_id(self):
for record in self:
@@ -4,7 +4,7 @@
<field name="name">property.meter.archives.tree</field>
<field name="model">property.meter.archives</field>
<field name="arch" type="xml">
<tree string="电表库" decoration-danger="archives_state == 'stop'">
<tree string="电表库" decoration-danger="archives_state == 'stop'" limit="15">
<header>
<button class="oe_highlight" name="batch_reading_push" string="任务生成" type="object"/>
<button class="oe_highlight" name="button_archives_state" string="停用" type="object"/>
@@ -87,7 +87,7 @@
<field name="name">meter.archives.line.tree</field>
<field name="model">meter.archives.line</field>
<field name="arch" type="xml">
<tree string="电表任务" create="False" editable="bottom"
<tree string="电表任务" create="False" editable="bottom" limit="15"
js_class="custom_meter_button" decoration-success="not current_read" default_order="meter_date_month desc">
<field name="archives_id" string="电表名"/>
<field name="sequence" column_invisible="1"/>
@@ -4,7 +4,7 @@
<field name="name">property.meter.water.tree</field>
<field name="model">property.meter.water</field>
<field name="arch" type="xml">
<tree string="水表库" decoration-danger="water_state == 'stop'">
<tree string="水表库" decoration-danger="water_state == 'stop'" limit="15">
<header>
<button class="oe_highlight" name="batch_reading_water_push" string="任务生成"
type="object" />
@@ -97,7 +97,7 @@
<field name="model">meter.water.line</field>
<field name="arch" type="xml">
<tree string="水表任务" create="0" editable="bottom" js_class="custom_water_button" decoration-success="not current_read"
default_order="meter_date_month desc">
default_order="meter_date_month desc" limit="15">
<field name="sequence" column_invisible="1"/>
<field name="meter_date" readonly="1"/>
<field name="water_id" string="水表名"/>
+1 -1
View File
@@ -603,7 +603,7 @@ class InheritHrPayslip(models.Model):
"view_mode": "form",
"target": "new",
"context": {
'default_employee_id': self.id.employee_id.id
'default_employee_id': self.employee_id.id
}
}
+2 -2
View File
@@ -34,8 +34,8 @@ class YuthonPayrollLabor(models.Model):
provident_fund_company = fields.Float(string='公积金单位部分')
disability_insurance = fields.Float(string='残疾保障金')
service_fee = fields.Float(string='服务费(含税)')
tiantou_payable = fields.Float(string='天投城建应付费用')
company_id = fields.Many2one(related='employee_id.company_id', string='公司', index=True, default=lambda self: self.env.company)
tiantou_payable = fields.Float(string='应付费用')
company_id = fields.Many2one(related='employee_id.company_id', string='公司', store=True)
@@ -5,6 +5,11 @@
<field name="model_id" ref="model_salary_payroll_distribution"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
<record model="ir.rule" id="yuthon_payroll_labor_rule">
<field name="name">劳务费多公司</field>
<field name="model_id" ref="model_yuthon_payroll_labor"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
</record>
<record model="ir.rule" id="yuthon_payroll_common_rule">
<field name="name">常用项多公司</field>
<field name="model_id" ref="model_yuthon_payroll_common"/>