public SubordinatesResultDTO GetTrainingNeedEmployeeInFieldInPeriod(long periodIdParam, long jobindexId) { var periodId = new PeriodId(periodIdParam); var period = periodRep.GetById(periodId); var res = new SubordinatesResultDTO { PeriodName = period.Name, PeriodTimeLine = "از تاریخ " + PDateHelper.GregorianToHijri(period.StartDate, false) + " تا تاریخ " + PDateHelper.GregorianToHijri(period.EndDate.Date, false), //TotalUnitPoint = finalUnitPoint == null ? (0).ToString() : finalUnitPoint.Value.ToString(CultureInfo.InvariantCulture), Subordinates = new List <EmployeeResultDTO>() }; var calculation = calculationRepository.GetDeterministicCalculation(period); var employeeIds = jobIndexPointRepository.GetJobIndexPointByLimitPoint(calculation.Id, 50).Where(j => j.JobIndexId.Id == jobindexId).Select(j => j.EmployeeId); foreach (var employeeId in employeeIds) { var employee = employeeRepository.GetBy(employeeId); var employeeIndexPoints = jobIndexPointRepository.GetBy(calculation.Id, employee.Id); var employeeResult = new EmployeeResultDTO { EmployeeFullName = employee.FullName, EmployeeNo = employeeId.EmployeeNo, //EmployeeJobPositionName = jobPositionNames, TotalPoint = employee.FinalPoint.ToString(CultureInfo.InvariantCulture), }; res.Subordinates.Add(employeeResult); } return(res); }
public EmployeeResultDTO GetEmployeeResultInPeriod(long periodIdParam, string employeeNo) { var periodId = new PeriodId(periodIdParam); var period = periodRep.GetById(periodId); var employee = employeeRepository.GetBy(new EmployeeId(employeeNo, periodId)); if (employee == null) { throw new Exception("شماره پرسنلی شما در سیستم موجود نمی باشد"); } var employeeJobPositionIds = employee.JobPositions.Select(j => j.JobPositionId).ToList(); var employeeUnitIds = new List <UnitId>(); var jobPositionNames = string.Empty; var unitNames = string.Empty; var unitRootNames = string.Empty; var calculation = calculationRepository.GetDeterministicCalculation(period); foreach (var jobPositionId in employeeJobPositionIds) { var jobPosition = jobPositionRepository.GetBy(jobPositionId); jobPositionNames += jobPosition.Name; if (employeeJobPositionIds.Count() > 1) { jobPositionNames += " - "; } employeeUnitIds.Add(jobPosition.UnitId); } foreach (var unitId in employeeUnitIds) { var unit = unitRepository.GetBy(unitId); unitNames += unit.Name; if (employeeUnitIds.Count > 1) { unitNames += " - "; } unitRootNames += unit.Parent.Name; if (employeeUnitIds.Count > 1) { unitRootNames += " - "; } } //var finalUnitPoint =jobIndexPointRepository.GetFinalUnitPoint(calculation.Id, employee.Id); var res = new EmployeeResultDTO { PeriodName = period.Name, PeriodTimeLine = "از تاریخ " + PDateHelper.GregorianToHijri(period.StartDate, false) + " تا تاریخ " + PDateHelper.GregorianToHijri(period.EndDate.Date, false), EmployeeFullName = employee.FullName, EmployeeNo = employeeNo, EmployeeJobPositionName = jobPositionNames, TotalPoint = employee.FinalPoint.ToString(CultureInfo.InvariantCulture), EmployeeUnitName = unitNames, EmployeeUnitRootName = unitRootNames, //TotalUnitPoint =finalUnitPoint==null?(0).ToString(): finalUnitPoint.Value.ToString(CultureInfo.InvariantCulture), JobIndexValues = new List <JobIndexValueDTO>() }; var employeeIndexPoints = jobIndexPointRepository.GetBy(calculation.Id, employee.Id); foreach (var indexPoint in employeeIndexPoints) { var jobIndex = (JobIndex)jobIndexRepository.GetById(indexPoint.JobIndexId); res.JobIndexValues.Add(new JobIndexValueDTO { JobIndexName = jobIndex.Name, IndexValue = indexPoint.Value.ToString() }); } return(res); //Find<EmployeePoint>( // jp => // jp.Name == "finalunitPoint" && jp.CalculationId == calculation.Id && // jp.EmployeeId == employee.Id,fs); //var jobpositions=jobPositionRepository. }
public SubordinatesResultDTO GetSubordinatesResultInPeriod(long periodIdParam, string managerEmployeeNo) { var periodId = new PeriodId(periodIdParam); var period = periodRep.GetById(periodId); var manager = employeeRepository.GetBy(new EmployeeId(managerEmployeeNo, periodId)); if (manager == null) { throw new Exception("شماره پرسنلی شما در سیستم موجود نمی باشد"); } var managerJobPositionIds = manager.JobPositions.Select(j => j.JobPositionId).ToList(); var managerUnitIds = new List <UnitId>(); var unitNames = string.Empty; var unitRootNames = string.Empty; var calculation = calculationRepository.GetDeterministicCalculation(period); foreach (var jobPositionId in managerJobPositionIds) { var jobPosition = jobPositionRepository.GetBy(jobPositionId); managerUnitIds.Add(jobPosition.UnitId); } foreach (var unitId in managerUnitIds) { var unit = unitRepository.GetBy(unitId); unitNames += unit.Name; if (managerUnitIds.Count > 1) { unitNames += " - "; } unitRootNames += unit.Parent.Name; if (managerUnitIds.Count > 1) { unitRootNames += " - "; } } //var finalUnitPoint = jobIndexPointRepository.GetFinalUnitPoint(calculation.Id, manager.Id); var res = new SubordinatesResultDTO { PeriodName = period.Name, PeriodTimeLine = "از تاریخ " + PDateHelper.GregorianToHijri(period.StartDate, false) + " تا تاریخ " + PDateHelper.GregorianToHijri(period.EndDate.Date, false), EmployeeUnitName = unitNames, EmployeeUnitRootName = unitRootNames, //TotalUnitPoint = finalUnitPoint == null ? (0).ToString() : finalUnitPoint.Value.ToString(CultureInfo.InvariantCulture), Subordinates = new List <EmployeeResultDTO>() }; var subordinateEmployeeJobposition = new List <JobPosition>(); foreach (var managerJobPositionId in managerJobPositionIds) { subordinateEmployeeJobposition.AddRange(jobPositionRepository.GetAllJobPositionByParentId(managerJobPositionId)); } var employeeIds = subordinateEmployeeJobposition.SelectMany(sj => sj.Employees.Select(e => e.EmployeeId)).ToList(); var oneOfSubordinate = employeeIds.FirstOrDefault(); if (oneOfSubordinate != null) { var finalUnitPoint = jobIndexPointRepository.GetFinalUnitPoint(calculation.Id, oneOfSubordinate); res.TotalUnitPoint = finalUnitPoint.Value.ToString(CultureInfo.InvariantCulture); } foreach (var employeeId in employeeIds) { var employee = employeeRepository.GetBy(employeeId); var employeeIndexPoints = jobIndexPointRepository.GetBy(calculation.Id, employee.Id); var employeeResult = new EmployeeResultDTO { EmployeeFullName = employee.FullName, EmployeeNo = employeeId.EmployeeNo, JobIndexValues = new List <JobIndexValueDTO>(), //EmployeeJobPositionName = jobPositionNames, TotalPoint = employee.FinalPoint.ToString(CultureInfo.InvariantCulture), }; foreach (var indexPoint in employeeIndexPoints) { var jobIndex = (JobIndex)jobIndexRepository.GetById(indexPoint.JobIndexId); employeeResult.JobIndexValues.Add(new JobIndexValueDTO { JobIndexName = jobIndex.Name, IndexValue = indexPoint.Value.ToString(), JobIndexId = jobIndex.SharedJobIndexId.Id, Id = indexPoint.Id.Id }); } res.Subordinates.Add(employeeResult); } return(res); }