diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index fa228e304..09061c22e 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -26,8 +26,9 @@ class SoongWorkflowRecord(models.Model): def read(self, fields=None, load='_classic_read'): for re in self: res_name = self.env[re.res_model].search([('id', '=', re.res_id)]).name - if re.name != res_name: - re.name = res_name + if res_name: + if re.name != res_name: + re.name = res_name return super(SoongWorkflowRecord, self).read(fields=fields, load=load) name = fields.Text(string="名称") diff --git a/yuthon_hr_attendance/models/overtime_approval.py b/yuthon_hr_attendance/models/overtime_approval.py index c4f7414f6..ba1f983ef 100644 --- a/yuthon_hr_attendance/models/overtime_approval.py +++ b/yuthon_hr_attendance/models/overtime_approval.py @@ -137,11 +137,11 @@ class OvertimeApprovals(models.Model): weekday_names = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] for rec in self: if rec.start_time: - rec.start_week = weekday_names[rec.start_time.weekday()] + rec.start_week = weekday_names[(rec.start_time + timedelta(hours=8)).weekday()] else: rec.start_week = '' if rec.end_time: - rec.end_week = weekday_names[rec.end_time.weekday()] + rec.end_week = weekday_names[(rec.end_time+ timedelta(hours=8)).weekday()] else: rec.end_week = '' diff --git a/yuthon_property_approval/models/property_lease_contract.py b/yuthon_property_approval/models/property_lease_contract.py index 5ba869d54..fd845ff5e 100644 --- a/yuthon_property_approval/models/property_lease_contract.py +++ b/yuthon_property_approval/models/property_lease_contract.py @@ -335,13 +335,7 @@ class PropertyLeaseContract(models.Model): if rec.lease_ids: rec.admin_id = rec.lease_ids[0].admin_line_id.id - @api.depends( - 'lease_ids', - 'lease_ids.address_id', - 'lease_ids.admin_line_id', - 'lease_ids.admin_line_id.employee_ids', - 'lease_ids.admin_line_id.employee_ids.department_id' - ) + @api.depends("lease_ids") def _compute_lease_ids(self): for rec in self: # 初始化值 @@ -349,11 +343,8 @@ class PropertyLeaseContract(models.Model): rec.is_electricity = False rec.water_fee_ids = [(5, 0, 0)] rec.electricity_fee_ids = [(5, 0, 0)] - rec.department_id = False # 初始化为False而非None - rec.admin_id = False # 初始化admin_id water_fee_values = [] electricity_fee_values = [] - if rec.lease_ids: # 处理每个租赁记录 for lease in rec.lease_ids: @@ -364,6 +355,7 @@ class PropertyLeaseContract(models.Model): lambda m: not m.demolition_date or m.demolition_date > fields.Date.today() ) for meter in active_water_meters: + # 确保meter记录有效 if meter.property_meter_water_id: water_fee_values.append([0, 0, { 'contract_id': rec.id, @@ -377,27 +369,22 @@ class PropertyLeaseContract(models.Model): lambda m: not m.demolition_date or m.demolition_date > fields.Date.today() ) for meter in active_electric_meters: + # 确保meter记录有效 if meter.property_meter_archives_id: electricity_fee_values.append([0, 0, { 'contract_id': rec.id, 'property_meter_archives_id': meter.property_meter_archives_id.id, }]) - # 更新水电费用记录 rec.is_water = bool(water_fee_values) rec.is_electricity = bool(electricity_fee_values) if water_fee_values: rec.water_fee_ids = water_fee_values if electricity_fee_values: rec.electricity_fee_ids = electricity_fee_values - - first_lease = rec.lease_ids[0] - rec.admin_id = first_lease.admin_line_id.id if first_lease.admin_line_id else False - - if first_lease.admin_line_id and first_lease.admin_line_id.employee_ids: - # 取第一个关联员工的部门 - employee = first_lease.admin_line_id.employee_ids[:1] - rec.department_id = employee.department_id if employee.department_id else False + rec.admin_id = rec.lease_ids[0].admin_line_id.id + # rec.users_id = rec.lease_ids[0].admin_line_id.id + rec.department_id = rec.lease_ids[0].admin_line_id.employee_ids.department_id.id def all_end_approval(self): contract_ids = self.env["property.lease.contract"].browse( @@ -405,6 +392,8 @@ class PropertyLeaseContract(models.Model): for contract in contract_ids: contract.write({'condition': 'be_executed', 'contact_state': 'to', + 'actual_start_time': contract.term_start_time, + 'actual_end_time': contract.term_end_time, 'work_end': True}) logs_to_update = self.env["soong.workflow.log"].search([ ("model", "=", self._name), @@ -418,6 +407,16 @@ class PropertyLeaseContract(models.Model): "lase_click_date": fields.Datetime.now() }) + soong_record = self.env["soong.workflow.record"].search([ + ("code", "=", self.code), + ], limit=1) + if soong_record: + soong_record.write({ + 'node_id' : None, + 'employee_ids': [(5,)], + 'soong_state': 'done', + }) + def end_approval(self): self.write({'condition': 'be_executed', 'contact_state': 'to', diff --git a/yuthon_property_approval/models/property_lease_renewal.py b/yuthon_property_approval/models/property_lease_renewal.py index 5880ae057..4dfa75b6d 100644 --- a/yuthon_property_approval/models/property_lease_renewal.py +++ b/yuthon_property_approval/models/property_lease_renewal.py @@ -10,7 +10,7 @@ class PropertyLeaseRenewal(models.Model): _inherit = ['mail.thread.main.attachment', 'mail.activity.mixin', 'soong.workflow.mixin'] _rec_name = 'name' - name = fields.Char(string='标题') + name = fields.Text(string='标题', store=True) user_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user) department_id = fields.Many2one(related='user_id.department_id', string="部门") company_id = fields.Many2one(related='user_id.company_id', string="公司") diff --git a/yuthon_property_approval/views/property_lease_renewal.xml b/yuthon_property_approval/views/property_lease_renewal.xml index aeb553893..8b90f7811 100644 --- a/yuthon_property_approval/views/property_lease_renewal.xml +++ b/yuthon_property_approval/views/property_lease_renewal.xml @@ -12,7 +12,6 @@ - property.lease.renewal.form property.lease.renewal @@ -34,6 +33,11 @@ +
+

+ +

+
diff --git a/yuthon_salary/wizard/salary_compute_wizard.py b/yuthon_salary/wizard/salary_compute_wizard.py index 619822782..770158d3e 100644 --- a/yuthon_salary/wizard/salary_compute_wizard.py +++ b/yuthon_salary/wizard/salary_compute_wizard.py @@ -182,6 +182,7 @@ class SalaryComputeWizard(models.Model): internship_ids = self.env['hr.payslip'].search([ ('is_push', '=', False), + ('employee_id.name', '=', '林嘉宜'), ('company_id', '=', self.company_id.id), ('date_from', '<=', end_date), ('date_to', '>=', start_date), @@ -282,7 +283,8 @@ class SalaryComputeWizard(models.Model): else: result = base_80 * (internship_days + last_internship_days) / days - result = round(result, 2) + result = math.ceil(result * 100) / 100 + elif field_name == 'union_dues': # 单独处理工会会费 base_salary = getattr(internship_id, 'base_salary', 0) result = base_salary * 0.005 diff --git a/yuthon_work_brand/views/executive_manage.xml b/yuthon_work_brand/views/executive_manage.xml index 5fe587745..d4ea9dddb 100644 --- a/yuthon_work_brand/views/executive_manage.xml +++ b/yuthon_work_brand/views/executive_manage.xml @@ -43,7 +43,7 @@ parent="information_root_board" sequence="30"/>