Merge pull request !6391 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-11-12 12:21:56 +00:00
committed by Gitee
6 changed files with 41 additions and 59 deletions
@@ -14,36 +14,6 @@
<field name="node_btn_name" string="" groups="soong_workflow.group_soong_workflow_manager"/>
<field name="document_ids" string="" widget="preview_many2many"/>
</tree>
<kanban class="o_kanban_mobile">
<field name="name"/>
<field name="comment" />
<field name="done_by" />
<field name="lase_click_date" />
<field name="approval_state"/>
<templates>
<t t-name="kanban-box">
<div class="o_kanban_record d-md-none card h-100">
<div class="card-header"
t-att-class="{'bg-success': approval_state == '2', 'bg-danger': approval_state == '3', 'bg-warning': approval_state == '1', 'bg-secondary': approval_state == '0'}">
<strong>
<field name="node" />
</strong>
</div>
<div class="card-body">
<div class="mb-2">
<small>经办人: [<field name="done_by" />] </small>
</div>
<div class="mb-2">
<small>
<field name="lase_click_date"
widget="datetime" format="short" />
</small>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</page>
<page string="审批详情" invisible="not work_end">
@@ -25,6 +25,7 @@ class YuthonHrEmployee(models.Model):
'default_onboarding_date': employee.entry_date,
'default_end_of_contract': employee.entry_date,
'default_parent_id': employee.parent_id.id,
'default_version': employee.contract_id.version if employee.contract_id else False,
}
}
@@ -1,5 +1,6 @@
from odoo import models, fields, api
from odoo.exceptions import UserError
from datetime import datetime, time, timedelta, date
class YuthonReassignmentApproval(models.Model):
@@ -23,6 +24,7 @@ class YuthonReassignmentApproval(models.Model):
is_issues = fields.Boolean(string='是否上会')
issues_result = fields.Html(string="会议结果")
related_issues_id = fields.Many2one('issue.library', string="关联议题")
version = fields.Char(string="版本")
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
active = fields.Boolean('Active', default=True, tracking=True)
@@ -73,6 +75,7 @@ class YuthonReassignmentApproval(models.Model):
for record in reassignment_approval_ids:
if record.change_date <= current_date:
employee = record.employee_id
old_contract = employee.contract_id
update_vals = {}
if record.change_department_id:
update_vals['department_id'] = record.change_department_id.id
@@ -83,16 +86,42 @@ class YuthonReassignmentApproval(models.Model):
if update_vals:
employee.write(update_vals)
if employee.contract_id:
contract_vals = {}
if old_contract:
version_str = self.version.lstrip('V')
main_version = version_str.split('.')[0]
new_main_version = int(main_version) + 1
new_version = f"V{new_main_version}.0"
new_contract_vals = {
'employee_id': old_contract.employee_id.id,
'name': old_contract.name,
'state': 'open',
'party_id': old_contract.party_id.id,
'is_annual_salary': old_contract.is_annual_salary,
'date_start': record.change_date,
'date_end': False,
'resource_calendar_id': old_contract.resource_calendar_id.id,
'structure_type_id': old_contract.structure_type_id.id,
'department_id': old_contract.department_id.id,
'job_id': old_contract.job_id.id,
'termination_date': old_contract.termination_date,
'salary_group_id': old_contract.salary_group_id.id,
'contract_type_id': old_contract.contract_type_id.id,
'version': new_version,
'wage': old_contract.wage,
}
if record.change_job_id:
contract_vals['job_id'] = record.change_job_id.id
new_contract_vals['job_id'] = record.change_job_id.id
if record.change_structure_id:
contract_vals['struct_id'] = record.change_structure_id.id
new_contract_vals[ 'structure_type_id'] = record.change_structure_id.id
if record.change_department_id:
contract_vals['department_id'] = record.change_department_id.id
if contract_vals:
employee.contract_id.write(contract_vals)
new_contract_vals['department_id'] = record.change_department_id.id
new_contract = self.env['hr.contract'].create(new_contract_vals)
old_contract.write({
'state': 'cancel',
'date_end': record.change_date - timedelta(days=1),
})
employee.contract_id = new_contract.id
record.is_execution = True
@@ -54,6 +54,7 @@
<group>
<field name="name"/>
<field name="work_end" invisible="1"/>
<field name="version" invisible="1"/>
<field name="users_id"/>
<field name="department_id" options="{'no_create': True}"/>
</group>
@@ -997,27 +997,8 @@ class PropertyRentList(models.Model):
tenure_type = fields.Selection(related='contract_id.tenure_type', string="权属类型", store=True)
property_address = fields.Text(string="物业信息", compute='get_property_address')
contract_sort = fields.Selection(related='contract_id.contract_sort', string="资产类型", store=True) # 数据库存储问题,无意义
contract_sort1 = fields.Selection([('property', '物业'), ('guanggao', '广告位'),('parking', '停车场'), ('guanzi', '管子间'), ('room', '机房'), ('base_station','基站'), ('other', '其他')], string="资产类型", default='property')
contract_sort1 = fields.Selection([('property', '物业'), ('guanggao', '广告位'), ('parking', '停车场'), ('guanzi', '管子间'), ('room', '机房'), ('base_station','基站'), ('other', '其他')], string="资产类型", default='property')
company_id = fields.Many2one(related='contract_id.lessor_id', string="出租方公司", store=True)
is_company = fields.Boolean(string='是否是本公司', compute='_compute_is_company', store=False)
@api.depends('company_id')
@api.depends_context('uid', 'company')
def _compute_is_company(self):
user_companies = self.env['res.company'].browse(self.env.companies.ids)
user_company_names = set(user_companies.mapped('name'))
account_mapping = {
'集团本部': ['天河投资', '天投城建'],
'天河物管': ['天河物管'],
'天河粮储': ['天河粮储']
}
for record in self:
record.is_company = False
for company_name, allowed_accounts in account_mapping.items():
if company_name in user_company_names:
if record.company_id.referred in allowed_accounts:
record.is_company = True
break
@api.depends('contract_id')
def get_property_address(self):
@@ -128,7 +128,7 @@
<filter name="group_tenure_type" string="权属类型" context="{'group_by':'tenure_type'}"/>
<filter name="group_admin_id" string="管理员" context="{'group_by':'admin_id'}"/>
<filter name="group_due_date" string="应收日期" context="{'group_by':'due_date:month'}"/>
<filter name="contract_id" string="合同" context="{'group_by':'contract_id'}"/>
<filter name="contract_id" string="合同" context="{'group_by':'contract_id'}"/>
<filter name="group_property_id" string="物业" context="{'group_by':'property_id'}"/>
<filter name="group_lessee_id" string="承租方" context="{'group_by':'lessee_id'}"/>
</group>
@@ -159,7 +159,7 @@
<field name="name">租金列表</field>
<field name="res_model">property.rent.list</field>
<field name="view_mode">tree,search</field>
<field name="domain">[('is_push', '=', False), ('is_company', '=', True)]</field>
<field name="domain">[('is_push', '=', False)]</field>
<field name="context">{'search_default_group_admin_id': True, 'search_default_group_due_date': True}</field>
<field name="search_view_id" ref="yuthon_property_approval.view_property_rent_list_search"/>
</record>