| | |
| | | //查询是否有不称职的工作考评 |
| | | var admEvaluateDTOs = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x=>x.EvaluateValue == "03").ToList(); |
| | | //当月出勤率 |
| | | decimal chuqinlv = Math.Round((admAttendanceDTO.Shijichuqin- admEvaluateDTOs.Count) / admAttendanceDTO.Yingchuqin,4); |
| | | decimal chuqinlv = Math.Round(admAttendanceDTO.Shijichuqin / admAttendanceDTO.Yingchuqin,4); |
| | | |
| | | //查询当前员工职务的基本工资配置 |
| | | |
| | |
| | | var Shebaogeren = hrJibengongzi.Shebaogeren.HasValue ? hrJibengongzi.Shebaogeren.Value : 0; |
| | | decimal yingnashuie = 0; |
| | | hrSalaryDTO.Queqin = 0; |
| | | hrSalaryDTO.Fakuan = 0; |
| | | hrSalaryDTO.Gongzuobutie = 0; |
| | | hrSalaryDTO.Jiabangongzi = 0; |
| | | decimal shiyongqichuqintianshu = 0; |
| | | decimal shiyongqichuqinlv = 0; |
| | | |
| | | |
| | | |
| | | decimal BasicPrice = 0; |
| | | if (!decimal.TryParse(userList[i].BasicPrice, out BasicPrice)) |
| | | { |
| | | _logger.LogInformation(userList[i].UserName + ": 员工没有维护工资"); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | |
| | | if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin>= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value) |
| | | { |
| | |
| | | _logger.LogInformation(userList[i].UserName + ": 员工处于试用期,但是试用期工资为空"); |
| | | continue; |
| | | } |
| | | //查询是否有不称职的工作考评 |
| | | var admEvaluateDTOsshiyongqi = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, userList[i].ShiyongDateEnd.Value.AddDays(1)).Where(x => x.EvaluateValue == "03").ToList(); |
| | | |
| | | |
| | | //试用期的出勤率 |
| | | shiyongqichuqinlv = chuqinlv; |
| | | if(userList[i].ShiyongDateEnd.Value< datemaxkaoqin.AddDays(-1)) |
| | |
| | | } |
| | | } |
| | | |
| | | //查询是否有不称职的工作考评 |
| | | var admEvaluateDTOsshiyongqi = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, userList[i].ShiyongDateEnd.Value.AddDays(1)).Where(x => x.EvaluateValue == "03").ToList(); |
| | | |
| | | |
| | | shiyongqichuqinlv = Math.Round((shiyongqichuqintianshu- admEvaluateDTOsshiyongqi.Count) / admAttendanceDTO.Yingchuqin, 4); |
| | | |
| | | shiyongqichuqinlv = Math.Round(shiyongqichuqintianshu / admAttendanceDTO.Yingchuqin, 4); |
| | | |
| | | //工作评价不合格罚款 |
| | | hrSalaryDTO.Fakuan += Math.Round(userList[i].ShiyongPrice.Value * admEvaluateDTOsshiyongqi.Count / admAttendanceDTO.Yingchuqin + BasicPrice * (admEvaluateDTOs.Count - admEvaluateDTOsshiyongqi.Count) / admAttendanceDTO.Yingchuqin, 2); |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | } |
| | | hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value, 2); |
| | | |
| | | //工作评价不合格罚款 |
| | | hrSalaryDTO.Fakuan += Math.Round(userList[i].ShiyongPrice.Value * admEvaluateDTOs.Count / admAttendanceDTO.Yingchuqin, 2); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | |
| | | } |
| | | else |
| | | { |
| | | //工作评价罚款 |
| | | hrSalaryDTO.Fakuan += Math.Round(BasicPrice * admEvaluateDTOs.Count/ admAttendanceDTO.Yingchuqin , 2); |
| | | } |
| | | |
| | | |
| | | if(true) |
| | | { |
| | | decimal BasicPrice = 0; |
| | | if(!decimal.TryParse(userList[i].BasicPrice,out BasicPrice)) |
| | | { |
| | | _logger.LogInformation(userList[i].UserName + ": 员工没有维护工资"); |
| | | continue; |
| | | } |
| | | //转正后的出勤率 |
| | | decimal zhuanzhengchuqinlv = chuqinlv- shiyongqichuqinlv; |
| | | if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && userList[i].ShiyongDateEnd.Value >= dateminkaoqin && userList[i].ShiyongDateEnd.Value <= datemaxkaoqin.AddDays(-1)) |
| | |
| | | |
| | | |
| | | |
| | | hrSalaryDTO.Fakuan = 0; |
| | | //工作安排罚款 |
| | | List<AdmMemoBookDTO> admMemoBookDTOs = _DailyManageService.GetRemindsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin,"2"); |
| | | if (admMemoBookDTOs.Count > 0) |