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

美国学校UAT - 客制化薪资函数能否加到时间报表项

XMLWord打印

    • Icon: Change Change
    • 解决结果: 完成
    • Icon: Medium Medium
    • 202010
    • Y-易路产品-
    • sastest.peoplus.cn
    • 时间管理
    • 隐藏

      该函数逻辑为:
      区间考勤明细中有签入和签出时间的日期,去除加班明细中审批状态为done的日期,所得到结果集的总天数。
      代码如下:

      result = {}
      employee_list = [''] + employee_ids
      attendance_details = env['hr.attendance.details'].search([('employee_id','in', employee_list), ('clock_in_time', '!=', False), ('clock_out_time', '!=', False), ('title', '>=', start_date), ('title', '<=', end_date)])
      attendance_overtime = env['hr.overtime.details'].search([('employee_id','in', employee_list), ('state', '=', 'done'), ('overtime_date', '>=', start_date), ('overtime_date', '<=', end_date)])
      attendance_details_dic = {}
      if attendance_details:
      for attendance_detail in attendance_details:
      if attendance_details_dic.get(attendance_detail.employee_id.id, False):
      attendance_details_dic[attendance_detail.employee_id.id].append(attendance_detail.title)
      else:
      attendance_details_dic[attendance_detail.employee_id.id] = [attendance_detail.title]

      overtime_details_dic = {}
      if attendance_overtime:
      for overtime_detail in attendance_overtime:
      if overtime_details_dic.get(overtime_detail.employee_id.id, False):
      overtime_details_dic[overtime_detail.employee_id.id].append(overtime_detail.overtime_date)
      else:
      overtime_details_dic[overtime_detail.employee_id.id] = [overtime_detail.overtime_date]

      for employee_id in employee_ids:
      attendance_details_set = set(attendance_details_dic.get(employee_id, []))
      overtime_details_set = set(overtime_details_dic.get(employee_id, []))
      result[employee_id]=len(attendance_details_set - overtime_details_set)

      显示
      该函数逻辑为: 区间考勤明细中有签入和签出时间的日期,去除加班明细中审批状态为done的日期,所得到结果集的总天数。 代码如下: result = {} employee_list = [''] + employee_ids attendance_details = env ['hr.attendance.details'] .search( [('employee_id','in', employee_list), ('clock_in_time', '!=', False), ('clock_out_time', '!=', False), ('title', '>=', start_date), ('title', '<=', end_date)] ) attendance_overtime = env ['hr.overtime.details'] .search( [('employee_id','in', employee_list), ('state', '=', 'done'), ('overtime_date', '>=', start_date), ('overtime_date', '<=', end_date)] ) attendance_details_dic = {} if attendance_details: for attendance_detail in attendance_details: if attendance_details_dic.get(attendance_detail.employee_id.id, False): attendance_details_dic [attendance_detail.employee_id.id] .append(attendance_detail.title) else: attendance_details_dic [attendance_detail.employee_id.id] = [attendance_detail.title] overtime_details_dic = {} if attendance_overtime: for overtime_detail in attendance_overtime: if overtime_details_dic.get(overtime_detail.employee_id.id, False): overtime_details_dic [overtime_detail.employee_id.id] .append(overtime_detail.overtime_date) else: overtime_details_dic [overtime_detail.employee_id.id] = [overtime_detail.overtime_date] for employee_id in employee_ids: attendance_details_set = set(attendance_details_dic.get(employee_id, [])) overtime_details_set = set(overtime_details_dic.get(employee_id, [])) result [employee_id] =len(attendance_details_set - overtime_details_set)

      美国学校有客制化薪资函数F_GetSASActualDays,取员工一段时间内打了上下班卡的实际出勤天数。
      客户提出要在时间报表能看到这个实际出勤天数值,能否参考这个函数的写法增加一个报表项到考勤休假加班汇总表里。谢谢

            grant.yang 杨光磊
            yuant 袁彤
            表决:
            0 为这个问题表决

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