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

贝卡尔特—休假规则、加班规则、扣缴义务人关联规则创建

XMLWord打印

    • Icon: Change Change
    • 解决结果: 完成
    • Icon: High High
    • 202106
    • B-贝卡尔特-Y2019053
    • 基础通用功能
    • 隐藏

      自定义关联变更:

      # Pythone code to be excuted.
      # There paramters list as below:
      # env: Environment, such as env['ir.model.data']
      # instance: current model instance
      # _logger: such as _logger.info('msg')
      # kwargs: other paramters passed in 
      # toolkits:  including following attributes - datetime, time, json
      # result: put return values into this dict {key:value,...}
      
      values = kwargs.setdefault('values', {})
      employee_type_rep = values.get('employee_type_rep')
      employee_grade_id = values.get('employee_grade_id')
      legal_entity = values.get('legal_entity')
      package_LR31 = env['hr.holiday.package'].search([('code','=', 'LR31')])
      package_LR18 = env['hr.holiday.package'].search([('code','=', 'LR18')])
      package_LR01 = env['hr.holiday.package'].search([('code','=', 'LR01')])
      
      overtime_42 = env['hr.overtime.conf'].search([('sequence','=', 'OTCONF67929342')])
      overtime_03 = env['hr.overtime.conf'].search([('sequence','=', 'OTCONF20191127003')])
      overtime_05 = env['hr.overtime.conf'].search([('sequence','=', 'OTCONF20200114005')])
      overtime_06 = env['hr.overtime.conf'].search([('sequence','=', 'OTCONF20200310006')])
      overtime_07 = env['hr.overtime.conf'].search([('sequence','=', 'OTCONF20200310007')])
      
      withhold_agents_BEKAERT1= env['withhold.agent'].search([('code','=', 'BEKAERT1')])
      withhold_agents_BEKAERT2= env['withhold.agent'].search([('code','=', 'BEKAERT2')])
      withhold_agents_BEKAERT3= env['withhold.agent'].search([('code','=', 'BEKAERT3')])
      withhold_agents_BEKAERT4= env['withhold.agent'].search([('code','=', 'BEKAERT4')])
      withhold_agents_BEKAERT5= env['withhold.agent'].search([('code','=', 'BEKAERT5')])
      withhold_agents_BEKAERT6= env['withhold.agent'].search([('code','=', 'BEKAERT6')])
      withhold_agents_BEKAERT7= env['withhold.agent'].search([('code','=', 'BEKAERT7')])
      withhold_agents_BEKAERT8= env['withhold.agent'].search([('code','=', 'BEKAERT8')])
      withhold_agents_BEKAERT9= env['withhold.agent'].search([('code','=', 'BEKAERT9')])
      withhold_agents_BEKAERT10= env['withhold.agent'].search([('code','=', 'BEKAERT10')])
      withhold_agents_BEKAERT11= env['withhold.agent'].search([('code','=', 'BEKAERT11')])
      withhold_agents_BEKAERT12= env['withhold.agent'].search([('code','=', 'BEKAERT12')])
      withhold_agents_BEKAERT13= env['withhold.agent'].search([('code','=', 'BEKAERT13')])
      withhold_agents_BEKAERT14= env['withhold.agent'].search([('code','=', 'BEKAERT14')])
      withhold_agents_BEKAERT15= env['withhold.agent'].search([('code','=', 'BEKAERT15')])
      
      if employee_type_rep and employee_type_rep.name in ('Disabled Employee','Secondment Out'):
          result.update({'holiday_package_id': package_LR31.id})
      
      elif employee_type_rep and employee_grade_id and employee_type_rep.name == 'Intern Employee' and employee_grade_id.name == 'IN':
          result.update({'holiday_package_id': package_LR18.id})
                  
      elif employee_type_rep and employee_grade_id and employee_type_rep.name == 'Intern Employee' and employee_grade_id.name == 'WC':
          result.update({'holiday_package_id': package_LR31.id})
             
      elif employee_type_rep and legal_entity and employee_type_rep.name in ('Formal Employee','Extra Empoyee') and legal_entity.x_legalentityabb == 'BBSC':
          result.update({'holiday_package_id': package_LR01.id})
      
      elif legal_entity and legal_entity.x_legalentityabb in ('BAP','BBSC','BCSC','BHTC','BJSC','BSAC','CBSC','SSC','BJWP','BNM','BQWP'):
          result.update({'overtime_conf_id': overtime_42.id})
          if legal_entity.code == 'LE003':
              result.update({'withhold_agent': withhold_agents_BEKAERT14.id})
          elif legal_entity.code == 'L004':
              result.update({'withhold_agent': withhold_agents_BEKAERT1.id})
          elif legal_entity.code == 'L011':
              result.update({'withhold_agent': withhold_agents_BEKAERT10.id})
          elif legal_entity.code == 'L015':
              result.update({'withhold_agent': withhold_agents_BEKAERT13.id})
          elif legal_entity.code == 'L010':
              result.update({'withhold_agent': withhold_agents_BEKAERT9.id})
          elif legal_entity.code == 'L006':
              result.update({'withhold_agent': withhold_agents_BEKAERT6.id})
          elif legal_entity.code == 'L003':
              result.update({'withhold_agent': withhold_agents_BEKAERT4.id})
          elif legal_entity.code == 'LE004':
              result.update({'withhold_agent': withhold_agents_BEKAERT15.id})
          elif legal_entity.code == 'L005':
              result.update({'withhold_agent': withhold_agents_BEKAERT5.id})
          elif legal_entity.code == 'L013':
              result.update({'withhold_agent': withhold_agents_BEKAERT12.id})
          elif legal_entity.code == 'L009':
              result.update({'withhold_agent': withhold_agents_BEKAERT8.id})
          
      elif legal_entity and legal_entity.x_legalentityabb in ('BHZ','BMC'):
          result.update({'overtime_conf_id': overtime_03.id})
          if legal_entity.code == 'L001':
              result.update({'withhold_agent': withhold_agents_BEKAERT1.id})
      
      elif legal_entity and legal_entity.x_legalentityabb == 'BSTC':
          result.update({'overtime_conf_id': overtime_05.id})
          result.update({'withhold_agent': withhold_agents_BEKAERT7.id})
          
      elif legal_entity and legal_entity.x_legalentityabb == 'BTRD':
          result.update({'overtime_conf_id': overtime_06.id})
          result.update({'withhold_agent': withhold_agents_BEKAERT3.id})
          
      elif legal_entity and legal_entity.x_legalentityabb == 'SBE':
          result.update({'overtime_conf_id': overtime_07.id})
          result.update({'withhold_agent': withhold_agents_BEKAERT11.id})
      
      else:
          result.update({'holiday_package_id': None})
          result.update({'withhold_agent': None})
          result.update({'overtime_conf_id': None})
      
      显示
      自定义关联变更: # Pythone code to be excuted. # There paramters list as below: # env: Environment, such as env[ 'ir.model.data' ] # instance: current model instance # _logger: such as _logger.info( 'msg' ) # kwargs: other paramters passed in # toolkits: including following attributes - datetime, time, json # result: put return values into this dict {key:value,...} values = kwargs.setdefault( 'values' , {}) employee_type_rep = values.get( 'employee_type_rep' ) employee_grade_id = values.get( 'employee_grade_id' ) legal_entity = values.get( 'legal_entity' ) package_LR31 = env[ 'hr.holiday. package ' ].search([( 'code' , '=' , 'LR31' )]) package_LR18 = env[ 'hr.holiday. package ' ].search([( 'code' , '=' , 'LR18' )]) package_LR01 = env[ 'hr.holiday. package ' ].search([( 'code' , '=' , 'LR01' )]) overtime_42 = env[ 'hr.overtime.conf' ].search([( 'sequence' , '=' , 'OTCONF67929342' )]) overtime_03 = env[ 'hr.overtime.conf' ].search([( 'sequence' , '=' , 'OTCONF20191127003' )]) overtime_05 = env[ 'hr.overtime.conf' ].search([( 'sequence' , '=' , 'OTCONF20200114005' )]) overtime_06 = env[ 'hr.overtime.conf' ].search([( 'sequence' , '=' , 'OTCONF20200310006' )]) overtime_07 = env[ 'hr.overtime.conf' ].search([( 'sequence' , '=' , 'OTCONF20200310007' )]) withhold_agents_BEKAERT1= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT1' )]) withhold_agents_BEKAERT2= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT2' )]) withhold_agents_BEKAERT3= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT3' )]) withhold_agents_BEKAERT4= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT4' )]) withhold_agents_BEKAERT5= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT5' )]) withhold_agents_BEKAERT6= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT6' )]) withhold_agents_BEKAERT7= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT7' )]) withhold_agents_BEKAERT8= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT8' )]) withhold_agents_BEKAERT9= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT9' )]) withhold_agents_BEKAERT10= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT10' )]) withhold_agents_BEKAERT11= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT11' )]) withhold_agents_BEKAERT12= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT12' )]) withhold_agents_BEKAERT13= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT13' )]) withhold_agents_BEKAERT14= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT14' )]) withhold_agents_BEKAERT15= env[ 'withhold.agent' ].search([( 'code' , '=' , 'BEKAERT15' )]) if employee_type_rep and employee_type_rep.name in ( 'Disabled Employee' , 'Secondment Out' ): result.update({ 'holiday_package_id' : package_LR31.id}) elif employee_type_rep and employee_grade_id and employee_type_rep.name == 'Intern Employee' and employee_grade_id.name == 'IN' : result.update({ 'holiday_package_id' : package_LR18.id}) elif employee_type_rep and employee_grade_id and employee_type_rep.name == 'Intern Employee' and employee_grade_id.name == 'WC' : result.update({ 'holiday_package_id' : package_LR31.id}) elif employee_type_rep and legal_entity and employee_type_rep.name in ( 'Formal Employee' , 'Extra Empoyee' ) and legal_entity.x_legalentityabb == 'BBSC' : result.update({ 'holiday_package_id' : package_LR01.id}) elif legal_entity and legal_entity.x_legalentityabb in ( 'BAP' , 'BBSC' , 'BCSC' , 'BHTC' , 'BJSC' , 'BSAC' , 'CBSC' , 'SSC' , 'BJWP' , 'BNM' , 'BQWP' ): result.update({ 'overtime_conf_id' : overtime_42.id}) if legal_entity.code == 'LE003' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT14.id}) elif legal_entity.code == 'L004' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT1.id}) elif legal_entity.code == 'L011' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT10.id}) elif legal_entity.code == 'L015' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT13.id}) elif legal_entity.code == 'L010' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT9.id}) elif legal_entity.code == 'L006' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT6.id}) elif legal_entity.code == 'L003' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT4.id}) elif legal_entity.code == 'LE004' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT15.id}) elif legal_entity.code == 'L005' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT5.id}) elif legal_entity.code == 'L013' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT12.id}) elif legal_entity.code == 'L009' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT8.id}) elif legal_entity and legal_entity.x_legalentityabb in ( 'BHZ' , 'BMC' ): result.update({ 'overtime_conf_id' : overtime_03.id}) if legal_entity.code == 'L001' : result.update({ 'withhold_agent' : withhold_agents_BEKAERT1.id}) elif legal_entity and legal_entity.x_legalentityabb == 'BSTC' : result.update({ 'overtime_conf_id' : overtime_05.id}) result.update({ 'withhold_agent' : withhold_agents_BEKAERT7.id}) elif legal_entity and legal_entity.x_legalentityabb == 'BTRD' : result.update({ 'overtime_conf_id' : overtime_06.id}) result.update({ 'withhold_agent' : withhold_agents_BEKAERT3.id}) elif legal_entity and legal_entity.x_legalentityabb == 'SBE' : result.update({ 'overtime_conf_id' : overtime_07.id}) result.update({ 'withhold_agent' : withhold_agents_BEKAERT11.id}) else : result.update({ 'holiday_package_id' : None}) result.update({ 'withhold_agent' : None}) result.update({ 'overtime_conf_id' : None})

      根据【员工类型】【职级类别】【法人实体】,实现【休假规则】【加班规则】【扣缴义务人】的关联。
      附件补充:
      编码:LR33 对应:BHZ休假规则
      编码:LR31 名称变更为:特殊休假规则-不触发假期额度
      编码:LR34 对应:BHZ-SH休假规则

        1. screenshot-1.png
          screenshot-1.png
          107 kB
        2. image.png
          image.png
          98 kB
        3. image.png
          image.png
          71 kB

            chengdd 程丹丹
            yue.liu 刘月
            表决:
            0 为这个问题表决

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