添加功能

This commit is contained in:
李鹏宇
2025-09-29 15:46:54 +08:00
parent 061fa0c609
commit 2603da97eb
4 changed files with 54 additions and 50 deletions
@@ -371,6 +371,9 @@ class HrContract(models.Model):
# 更新员工合同字段
for contract in contracts:
if contract.employee_id:
contract.employee_id.write({"contract_id": contract.id})
contract.employee_id.write({"contract_id": contract.id,
'is_accum_salary': True,
'is_membership': True,
})
return contracts
@@ -287,6 +287,7 @@ class YuthonHrEmployee(models.Model):
total_full_part = sum(full_lines.mapped('amount')) if full_lines else 0
final_total = total_eighty_part + total_full_part + 200
employee.write({
'last_year_salary': final_total,
'social_base_on': final_total,
'social_base_off': final_total
})
@@ -68,8 +68,8 @@
<field name="employment_form"/>
<label for="duration_employment"/>
<div>
<field name="duration_employment" class="oe_inline"/>至
<field name="duration_employment_end" class="oe_inline"/>
<field name="duration_employment" class="me-2" style="max-width: 10rem !important;"/>至
<field name="duration_employment_end" class="ms-2" style="max-width: 10rem !important;"/>
</div>
<field name="is_annual_salary"/>
</group>
@@ -108,19 +108,19 @@
<group>
<field name="oter"/>
</group>
<notebook>
<page string="个人信息详情">
<group col="2">
<group>
<field name="details_personal_information_form_id"/>
<field name="details_recruitment_needs_form_id"/>
<field name="details_interview_form_id"/>
</group>
<group>
</group>
</group>
</page>
</notebook>
<!-- <notebook>-->
<!-- <page string="个人信息详情">-->
<!-- <group col="2">-->
<!-- <group>-->
<!-- <field name="details_personal_information_form_id"/>-->
<!-- <field name="details_recruitment_needs_form_id"/>-->
<!-- <field name="details_interview_form_id"/>-->
<!-- </group>-->
<!-- <group>-->
<!-- </group>-->
<!-- </group>-->
<!-- </page>-->
<!-- </notebook>-->
</sheet>
</form>
</field>
@@ -61,41 +61,41 @@ class PropertyBankStatements(models.Model):
def revocation(self):
self.ensure_one()
current_rec = self[0]
domain = [
('your_own_unit', '=', current_rec.your_own_unit),
('bank_state', '=', 'reconciled'),
('name', '=', current_rec.name)
]
same_group_records = self.env[self._name].search(domain)
if same_group_records:
# 按start_time倒序排序,找到最近的记录
sorted_records = sorted(
same_group_records,
key=lambda r: r.start_time or '',
reverse=True
)
latest_record = sorted_records[0]
# 检查当前记录是否是最近的一条
if current_rec.id != latest_record.id:
raise UserError(
f"只能从最近的记录开始撤销!\n"
f"当前记录时间: {current_rec.start_time + timedelta(hours=8)}\n"
f"最近记录时间: {latest_record.start_time + timedelta(hours=8)}"
if current_rec.bank_state == 'reconciled':
domain = [
('your_own_unit', '=', current_rec.your_own_unit),
('bank_state', '=', 'reconciled'),
('name', '=', current_rec.name)
]
same_group_records = self.env[self._name].search(domain)
if same_group_records:
# 按start_time倒序排序,找到最近的记录
sorted_records = sorted(
same_group_records,
key=lambda r: r.start_time or '',
reverse=True
)
for modify in self.receivable_modify_ids:
if modify.is_write:
new_delivered = modify.receivable_id.delivered1 - modify.amount
modify.receivable_id.delivered1 = max(new_delivered, 0)
modify.receivable_id.is_reconciliation = False
modify.receivable_id.reconciliation_time = False
modify.receivable_id.payout_date = False
if not modify.is_penalty:
modify.receivable_id.remark = None
else:
modify.receivable_id.unlink()
if self.receivable_modify_ids:
self.receivable_modify_ids.unlink()
latest_record = sorted_records[0]
# 检查当前记录是否是最近的一条
if current_rec.id != latest_record.id:
raise UserError(
f"只能从最近的记录开始撤销!\n"
f"当前记录时间: {current_rec.start_time + timedelta(hours=8)}\n"
f"最近记录时间: {latest_record.start_time + timedelta(hours=8)}"
)
for modify in self.receivable_modify_ids:
if modify.is_write:
new_delivered = modify.receivable_id.delivered1 - modify.amount
modify.receivable_id.delivered1 = max(new_delivered, 0)
modify.receivable_id.is_reconciliation = False
modify.receivable_id.reconciliation_time = False
modify.receivable_id.payout_date = False
if not modify.is_penalty:
modify.receivable_id.remark = None
else:
modify.receivable_id.unlink()
if self.receivable_modify_ids:
self.receivable_modify_ids.unlink()
self.bank_state = 'not_reconciled'
self.registered = 0
self.no_amount = self.original_amount