上传的图像用于项目: 'CST技术支持'
  1. CST技术支持
  2. SLAL2-2768

Pro-似鸟测试站-系统标准的调岗调薪回写逻辑修改

XMLWord打印

    • Icon: Change Change
    • 解决结果: 完成
    • Icon: High High
    • 202106
    • S-似鸟-Y2021011
    • 基础通用功能
    • 隐藏

      inactive_status = env.ref('employee_central.employee_status_inactive')

      1. today = datetime.datetime.today().date()
        for rec in self:
      2. 离职的员工不处理
        if rec.employee_id.employee_status == inactive_status:
        rec.event_done()
        continue
      3. if rec.effective_date <= today:
      4. 1.1更改任职
        emp_job = rec.employee_id.job_info_id
        if rec.is_adjust_position and emp_job:
        job_vals = { 'legal_entity_id': rec.new_legal_entity.id if rec.new_legal_entity else emp_job.legal_entity_id.id, 'business_unit_id': rec.new_business_unit_id.id if rec.new_business_unit_id else emp_job.business_unit_id.id, 'division_id': rec.new_division_id.id if rec.new_division_id else emp_job.division_id.id, 'department_id': rec.new_department_id.id if rec.new_department_id else emp_job.department_id.id, 'position_id': rec.new_position_id.id if rec.new_position_id else emp_job.position_id.id, 'manager_employee_id': rec.new_supervisor_id.id if rec.new_supervisor_id else emp_job.manager_employee_id.id, 'job_classification_id': rec.new_job_id.id if rec.new_job_id else emp_job.job_classification_id.id, 'job_sequence_id': rec.new_job_sequence_id.id if rec.new_job_sequence_id else emp_job.job_sequence_id.id, 'job_function_id': rec.new_job_function_id.id if rec.new_job_function_id else emp_job.job_function_id.id, 'job_grade_id': rec.new_job_grade_id.id if rec.new_job_grade_id else emp_job.job_grade_id.id, 'job_level': rec.new_job_level_id.id if rec.new_job_level_id else emp_job.job_level.id, 'pay_grade': rec.new_pay_grade.id if rec.new_pay_grade else emp_job.pay_grade.id, 'pay_level': rec.new_pay_level.id if rec.new_pay_level else emp_job.pay_level.id, 'eroad_start_date': rec.effective_date, }

        if rec.new_position_id != rec.position_id:
        job_vals.update(

        {'position_entry_date': rec.effective_date}

        )
        emp_job.with_context(set_cost_center=not rec.is_adjust_cost_center).update(job_vals)

      5. 1.2 更改成本分摊和薪资档案项成本中心
        rec.handle_cost_center()
      6. 2.写入公司履历
        rec.create_company_record()
      7. 3.调整薪资
        rec.handle_payroll_archive()
      8. 4.下属汇报线 需要读取position rule
        self.env['hr.position'].change_subordinates_supervisor(rec.employee_id, rec.effective_date,
        original_position=rec.position_id)
      9. 5.变更事件编制
        rec.handle_event_preparation(action='release')
      10. 6.处理合同(法人实体变更时)
        rec.handle_contract(check_done=False)
      11. 7. 处理接替者
        rec.update_event_employee_successor()
      12. 8.事件完成
        rec.event_done()
      显示
      inactive_status = env.ref('employee_central.employee_status_inactive') today = datetime.datetime.today().date() for rec in self: 离职的员工不处理 if rec.employee_id.employee_status == inactive_status: rec.event_done() continue if rec.effective_date <= today: 1.1更改任职 emp_job = rec.employee_id.job_info_id if rec.is_adjust_position and emp_job: job_vals = { 'legal_entity_id': rec.new_legal_entity.id if rec.new_legal_entity else emp_job.legal_entity_id.id, 'business_unit_id': rec.new_business_unit_id.id if rec.new_business_unit_id else emp_job.business_unit_id.id, 'division_id': rec.new_division_id.id if rec.new_division_id else emp_job.division_id.id, 'department_id': rec.new_department_id.id if rec.new_department_id else emp_job.department_id.id, 'position_id': rec.new_position_id.id if rec.new_position_id else emp_job.position_id.id, 'manager_employee_id': rec.new_supervisor_id.id if rec.new_supervisor_id else emp_job.manager_employee_id.id, 'job_classification_id': rec.new_job_id.id if rec.new_job_id else emp_job.job_classification_id.id, 'job_sequence_id': rec.new_job_sequence_id.id if rec.new_job_sequence_id else emp_job.job_sequence_id.id, 'job_function_id': rec.new_job_function_id.id if rec.new_job_function_id else emp_job.job_function_id.id, 'job_grade_id': rec.new_job_grade_id.id if rec.new_job_grade_id else emp_job.job_grade_id.id, 'job_level': rec.new_job_level_id.id if rec.new_job_level_id else emp_job.job_level.id, 'pay_grade': rec.new_pay_grade.id if rec.new_pay_grade else emp_job.pay_grade.id, 'pay_level': rec.new_pay_level.id if rec.new_pay_level else emp_job.pay_level.id, 'eroad_start_date': rec.effective_date, } if rec.new_position_id != rec.position_id: job_vals.update( {'position_entry_date': rec.effective_date} ) emp_job.with_context(set_cost_center=not rec.is_adjust_cost_center).update(job_vals) 1.2 更改成本分摊和薪资档案项成本中心 rec.handle_cost_center() 2.写入公司履历 rec.create_company_record() 3.调整薪资 rec.handle_payroll_archive() 4.下属汇报线 需要读取position rule self.env ['hr.position'] .change_subordinates_supervisor(rec.employee_id, rec.effective_date, original_position=rec.position_id) 5.变更事件编制 rec.handle_event_preparation(action='release') 6.处理合同(法人实体变更时) rec.handle_contract(check_done=False) 7. 处理接替者 rec.update_event_employee_successor() 8.事件完成 rec.event_done()

      似鸟测试站-系统标准的调岗调薪回写逻辑修改
      如果单据上未填写改数据,则使用原来的数据,不回写为空

            wenqiang.liu 刘文强
            lugx 卢桂香
            表决:
            0 为这个问题表决

              创建日期:
              已更新:
              已解决:

                预估时间:
                初始预估 - 尚未指定
                尚未指定
                剩余:
                剩余的估算 - 0小时
                0小时
                实际工作时间:
                耗费时间 - 1小时
                1小时