@@ -317,7 +317,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
|
||||
# 查找下一个节点
|
||||
next_node_id = record_id.workflow_id.node_ids.search([
|
||||
('name', 'ilike', self.trans_link_id.name),
|
||||
('name', '=', self.trans_link_id.name),
|
||||
('workflow_id', '=', record_id.workflow_id.id)
|
||||
])
|
||||
|
||||
|
||||
@@ -41,21 +41,46 @@ class HrContract(models.Model):
|
||||
|
||||
def write(self, vals):
|
||||
"""在写入时自动更新合同状态"""
|
||||
# 先执行状态更新
|
||||
today = fields.Date.today()
|
||||
update_state = False
|
||||
if 'date_start' in vals:
|
||||
update_state = True
|
||||
if 'date_end' in vals:
|
||||
new_end_date = fields.Date.to_date(vals['date_end'])
|
||||
# 遍历所有要更新的合同
|
||||
update_state = True
|
||||
if update_state:
|
||||
for contract in self:
|
||||
end_date = new_end_date
|
||||
if end_date > today:
|
||||
vals['state'] = 'open'
|
||||
elif end_date < today:
|
||||
vals['state'] = 'close'
|
||||
|
||||
# 调用原生写入逻辑
|
||||
start_date = fields.Date.to_date(vals.get('date_start', contract.date_start))
|
||||
# 获取新的结束日期(如果有更新),空值视为无限大
|
||||
end_date = vals.get('date_end', contract.date_end)
|
||||
end_date = fields.Date.to_date(end_date) if end_date else None
|
||||
if start_date > today:
|
||||
new_state = 'draft'
|
||||
elif end_date and end_date < today:
|
||||
new_state = 'close'
|
||||
else:
|
||||
new_state = 'open'
|
||||
# 更新当前合同的状态
|
||||
if 'state' not in vals:
|
||||
vals['state'] = new_state
|
||||
return super(HrContract, self).write(vals)
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
"""在创建时自动更新合同状态"""
|
||||
today = fields.Date.today()
|
||||
# 获取开始日期和结束日期
|
||||
start_date = fields.Date.to_date(vals.get('date_start'))
|
||||
end_date = vals.get('date_end')
|
||||
end_date = fields.Date.to_date(end_date) if end_date else None
|
||||
# 根据日期判断状态
|
||||
if start_date > today:
|
||||
vals['state'] = 'draft'
|
||||
elif end_date and end_date < today:
|
||||
vals['state'] = 'close'
|
||||
else:
|
||||
vals['state'] = 'open'
|
||||
return super(HrContract, self).create(vals)
|
||||
|
||||
def update_contract_states(self):
|
||||
today = date.today()
|
||||
active_contracts = self.search([
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
</group>
|
||||
<group col="3" string="乙方信息">
|
||||
<group>
|
||||
<field name="employee_name_id" required="1" domain="[('stage_id.name', '=', '待入职')"/>
|
||||
<field name="employee_name_id" required="1" domain="[('stage_id.name', '=', '待入职')]"/>
|
||||
<label for="probation_start_date"/>
|
||||
<div class="d-inline-flex w-100">
|
||||
<field name="probation_start_date" string="试用期时间:" class="me-2"
|
||||
|
||||
Reference in New Issue
Block a user