From 03b2d945f0216dc5b43efb735ff77eca20de8471 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: Wed, 24 Dec 2025 20:09:05 +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
---
soong_workflow/models/soong_workflow_record.py | 12 ++++++++++++
soong_workflow/views/soong_workflow_record.xml | 3 +++
.../wizard/soong_workflow_comment_wizard.py | 9 +++++++++
.../wizard/soong_workflow_comment_wizard_view.xml | 1 +
.../models/yuthon_service_approval.py | 6 +++---
yuthon_maintain/models/property_device_repair.py | 2 +-
.../views/property_device_repair_views.xml | 2 +-
.../models/property_lease_renewal.py | 2 +-
.../wizard/penalty_line_wizard.py | 2 +-
yuthon_will_task/models/yuthon_will_task.py | 6 ++++++
yuthon_will_task/views/yuthon_will_task_views.xml | 7 +++++++
yuthon_work_brand/views/executive_manage.xml | 5 -----
yuthon_work_brand/views/hr_menus.xml | 7 ++++++-
13 files changed, 51 insertions(+), 13 deletions(-)
diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py
index 150fcf4e9..37e7870d7 100644
--- a/soong_workflow/models/soong_workflow_record.py
+++ b/soong_workflow/models/soong_workflow_record.py
@@ -62,6 +62,18 @@ class SoongWorkflowRecord(models.Model):
res.append_date2(res)
return res
+ def log(self):
+ log = self.env['soong.workflow.log'].search([("model", "=", self.res_model),
+ ("res_id", "=", self.res_id)])
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': '日志',
+ 'view_mode': 'tree',
+ 'res_model': 'soong.workflow.log',
+ 'domain': [('id', 'in', log.ids)],
+ }
+
+
def restore(self):
workflow_ids = self.env["soong.workflow.record"].browse(
self._context.get('active_ids', self._context.get('active_id', [])))
diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml
index d37f3a354..3f04bee28 100644
--- a/soong_workflow/views/soong_workflow_record.xml
+++ b/soong_workflow/views/soong_workflow_record.xml
@@ -90,12 +90,15 @@
+
+
diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py
index a81a1bab8..344527210 100644
--- a/soong_workflow/wizard/soong_workflow_comment_wizard.py
+++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py
@@ -28,6 +28,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
comment = fields.Char(compute='_compute_comment', store=True)
state_list = fields.Char(string="状态列表")
record_id = fields.Integer()
+ is_selection = fields.Boolean(string="是否自动选择")
trans_link_id = fields.Many2one('trans.link', string='转交节点')
document_ids = fields.Many2many('ir.attachment', string="附件")
return_link_id = fields.Many2one('trans.link', string='退回节点')
@@ -64,6 +65,14 @@ class SoongWorkflowCommentWizard(models.TransientModel):
store=True
)
+ @api.onchange('is_selection')
+ def _onchange_is_selection(self):
+ if self.is_selection:
+ all_employees = self.env['hr.employee'].search([('id', 'in', self.employee_ids1.ids)])
+ self.employee_ids = all_employees
+ else:
+ self.employee_ids = False
+
@api.onchange('employee_ids1')
def _onchange_employee_ids1(self):
if len(self.employee_ids1) == 1:
diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml b/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml
index 574a92aff..2669b6e6c 100644
--- a/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml
+++ b/soong_workflow/wizard/soong_workflow_comment_wizard_view.xml
@@ -59,6 +59,7 @@
+
diff --git a/yuthon_hr_employee_approval/models/yuthon_service_approval.py b/yuthon_hr_employee_approval/models/yuthon_service_approval.py
index 6ee4a26bb..533213769 100644
--- a/yuthon_hr_employee_approval/models/yuthon_service_approval.py
+++ b/yuthon_hr_employee_approval/models/yuthon_service_approval.py
@@ -11,11 +11,11 @@ class YuthonServiceApproval(models.Model):
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_service_approval_code'))
service_type_id = fields.Many2one('yuthon.service.type', string="服务类型")
- users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
+ users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.snv.user.id)
documents_ids = fields.Many2many('ir.attachment', string="附件")
- department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门", store=True)
+ department_id = fields.Many2one(related='users_id.employee_ids.department_id', string="部门", store=True)
employee_id = fields.Many2one('hr.employee', string="员工姓名", default=lambda self: self.env.user.employee_id.id)
- company_id = fields.Many2one(related="users_id.employee_id.company_id", string="公司", store=True)
+ company_id = fields.Many2one(related="users_id.employee_ids.company_id", string="公司", store=True)
tenant_user_card = fields.Many2one('ir.attachment', string="身份证")
onboarding_time = fields.Date(related='employee_id.open_start_time', string="入职日期")
diff --git a/yuthon_maintain/models/property_device_repair.py b/yuthon_maintain/models/property_device_repair.py
index 8e15aaf7a..13a3c17d6 100644
--- a/yuthon_maintain/models/property_device_repair.py
+++ b/yuthon_maintain/models/property_device_repair.py
@@ -7,7 +7,7 @@ from odoo.exceptions import UserError, ValidationError
class PropertyDeviceRelief(models.Model):
_name = 'property.device.repair'
- _description = '报事报修(办公设备)'
+ _description = '报事报修'
_inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
name = fields.Char(string='标题', compute='_compute_name', store=True)
diff --git a/yuthon_maintain/views/property_device_repair_views.xml b/yuthon_maintain/views/property_device_repair_views.xml
index 012f7271a..63af193ca 100644
--- a/yuthon_maintain/views/property_device_repair_views.xml
+++ b/yuthon_maintain/views/property_device_repair_views.xml
@@ -58,7 +58,7 @@
- 报事报修(办公设备)
+ 报事报修
property.device.repair
tree,form
diff --git a/yuthon_property_approval/models/property_lease_renewal.py b/yuthon_property_approval/models/property_lease_renewal.py
index 614f47a5c..3af7c4ed2 100644
--- a/yuthon_property_approval/models/property_lease_renewal.py
+++ b/yuthon_property_approval/models/property_lease_renewal.py
@@ -19,7 +19,7 @@ class PropertyLeaseRenewal(models.Model):
company_id = fields.Many2one(related='user_id.company_id', string="公司")
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('property_lease_renewal_code'))
- renewal_type = fields.Selection([('early_checkout', '提前退租'), ('lease', '承租方变更')], string='变更类型')
+ renewal_type = fields.Selection([('early_checkout', '合同终止'), ('lease', '承租方变更')], string='变更类型')
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
def _get_default_name_title(self):
diff --git a/yuthon_property_approval/wizard/penalty_line_wizard.py b/yuthon_property_approval/wizard/penalty_line_wizard.py
index 02236b8da..88800d163 100644
--- a/yuthon_property_approval/wizard/penalty_line_wizard.py
+++ b/yuthon_property_approval/wizard/penalty_line_wizard.py
@@ -186,7 +186,7 @@ class PenaltyLineWizard(models.Model):
if non_realtime_lines:
prev_line = non_realtime_lines[-1]
if round(prev_line.remaining_principal or 0, 2) != 0:
- base_date = prev_line.date + relativedelta(months=1)
+ base_date = (prev_line.date + relativedelta(months=1)).replace(day=1)
days_overdue = (self.calculation_date - base_date).days - 1
days_overdue = max(0, days_overdue)
# 计算违约金
diff --git a/yuthon_will_task/models/yuthon_will_task.py b/yuthon_will_task/models/yuthon_will_task.py
index ce46e98d7..3241a3d9e 100644
--- a/yuthon_will_task/models/yuthon_will_task.py
+++ b/yuthon_will_task/models/yuthon_will_task.py
@@ -116,6 +116,12 @@ class YuthonWillTask(models.Model):
if record.start_date:
record.task_week = weekdays[record.start_date.weekday()]
+ def one_time(self):
+ will_ids = self.env["yuthon.will.task"].browse(
+ self._context.get('active_ids', self._context.get('active_id')))
+ for record in will_ids:
+ record._check_task_time()
+
@api.constrains('start_date', 'request_hour_from', 'request_hour_to')
def _check_task_time(self):
for record in self:
diff --git a/yuthon_will_task/views/yuthon_will_task_views.xml b/yuthon_will_task/views/yuthon_will_task_views.xml
index 45c1c8152..6a7bee65c 100644
--- a/yuthon_will_task/views/yuthon_will_task_views.xml
+++ b/yuthon_will_task/views/yuthon_will_task_views.xml
@@ -255,4 +255,11 @@
[('user_role_ids.name', 'in', ['董事长', '分管领导', '总经理', '部门副经理', '副总经理', '司机'])]
{'search_default_next_seven_days': 1}
+
+ 更新
+
+
+ code
+ action = model.one_time()
+
diff --git a/yuthon_work_brand/views/executive_manage.xml b/yuthon_work_brand/views/executive_manage.xml
index 063d5c1b8..f6e54ab14 100644
--- a/yuthon_work_brand/views/executive_manage.xml
+++ b/yuthon_work_brand/views/executive_manage.xml
@@ -38,11 +38,6 @@
name="报事报修(物业)"
action="yuthon_maintain.property_report_repair_action"
sequence="20"/>
-
+
+ sequence="7"/>