示例#1
0
        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);
        }
示例#2
0
        private void synchronize(int year, int month, int day)
        {
            int outYear, outMonth, outDay;

            PDateHelper.HijriToGregorian(year, month, day, out outYear, out outMonth, out outDay);
            SelectedDate = string.Format(CultureInfo.InvariantCulture, "{0}/{1}/{2}", outYear, outMonth, outDay);
        }
示例#3
0
        private void highlightToday(int monthIndex, int year)
        {
            int tOutYear, tOutMonth, tOutDay;

            PDateHelper.GregorianToHijri(
                DateTime.Now.Year,
                DateTime.Now.Month,
                DateTime.Now.Day,
                out tOutYear, out tOutMonth, out tOutDay);

            if ((year != tOutYear) || (monthIndex != tOutMonth))
            {
                return;
            }
            //highlight today!
            for (var i = 0; i <= 41; i++)
            {
                if (DaysInfo[i + 7].Number != tOutDay.ToString(CultureInfo.InvariantCulture))
                {
                    continue;
                }
                DaysInfo[i + 7].FontWeight      = FontWeights.Bold;
                DaysInfo[i + 7].BackgroundBrush = CustomBrushes.TodayBackground();
                DaysInfo[i + 7].BorderBrush     = CustomBrushes.TodayBorderBrush();
            }
        }
        //void setSelectedGDate(DependencyPropertyChangedEventArgs e)
        //{
        //    if (e.NewValue == null)
        //    {
        //        resetDates();
        //        return;
        //    }
        //    var eDate = e.NewValue.ToString();
        //    if (string.IsNullOrWhiteSpace(eDate))
        //    {
        //        resetDates();
        //        return;
        //    }

        //    DateTime? result = e.NewValue.DateTimeTryParse();
        //    if (!result.HasValue) return;
        //    var gDate = result.Value;

        //    //تبديل به تاريخ فارسي
        //    int year, month, day;
        //    if (PDateHelper.GregorianToHijri(
        //        gDate.Year,
        //        gDate.Month,
        //        gDate.Day,
        //        out year, out month, out day))
        //    {
        //        SelectedPersianDate = string.Format("{0}/{1}/{2}", year, month, day);
        //    }
        //}

        void setSelectedPDate(DependencyPropertyChangedEventArgs e)
        {
            if (e.NewValue == null)
            {
                resetDates();
                return;
            }
            var pDate = e.NewValue.ToString();

            //   pDate = pDate.ToResilientPersianDate();
            if (string.IsNullOrWhiteSpace(pDate))
            {
                resetDates();
                return;
            }
            //تکست باکس از ریدوانلی درومد و اینجا هم ترای کچ گزاشته شد تا اگر تاریخ بصورت دستی وارد شد خطا ندهد
            try
            {
                var parts = PDateHelper.ExtractPersianDateParts(pDate);
                var year  = parts.Item1;
                var month = parts.Item2;
                var day   = parts.Item3;
                _calendarViewModel.SelectThisDay(year, month, day);
            }
            catch
            {
            }
            //synchronize(year, month, day);
        }
示例#5
0
        void setSelectedGDate(DependencyPropertyChangedEventArgs e)
        {
            if (e.NewValue == null)
            {
                return;
            }
            var eDate = e.NewValue.ToString();

            if (string.IsNullOrWhiteSpace(eDate))
            {
                _calendarViewModel.ResetCalendar();
                return;
            }

            DateTime?result = e.NewValue.DateTimeTryParse();

            if (!result.HasValue)
            {
                return;
            }
            var gDate = result.Value;

            //تبديل به تاريخ فارسي
            int year, month, day;

            if (PDateHelper.GregorianToHijri(
                    gDate.Year,
                    gDate.Month,
                    gDate.Day,
                    out year, out month, out day))
            {
                SelectedPersianDate = string.Format(CultureInfo.InvariantCulture, "{0}/{1}/{2}", year, month, day);
            }
        }
示例#6
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == null)
            {
                return(value);
            }
            DateTime?date = value.DateTimeTryParse();

            if (!date.HasValue)
            {
                return(null);
            }

            int year, month, day;

            if (PDateHelper.GregorianToHijri(
                    date.Value.Year,
                    date.Value.Month,
                    date.Value.Day,
                    out year, out month, out day))
            {
                return(string.Format(CultureInfo.InvariantCulture, "{0}/{1}/{2}", year, month.ToString("00", CultureInfo.InvariantCulture), day.ToString("00", CultureInfo.InvariantCulture)));
            }
            return(null);
        }
示例#7
0
 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
 {
     if (value != null)
     {
         return(PDateHelper.HijriToGregorian(((string)value)));
     }
     return(null);
 }
示例#8
0
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     try
     {
         return(value != null?PDateHelper.GregorianToHijri((DateTime)value, false).ToPersianNumbers() : null);
     }
     catch
     {
         return(null);
     }
 }
示例#9
0
        private void setTodayData(int year, int month, int day)
        {
            resetGui();

            var pDate = string.Format(CultureInfo.InvariantCulture, "{0}/{1}/{2}", year, month, day);

            CalendarGUIData.SelectedPersianDate = pDate;

            int outYear, outMonth, outDay;

            PDateHelper.HijriToGregorian(year, month, day, out outYear, out outMonth, out outDay);
            var gDate = new DateTime(outYear, outMonth, outDay);

            CalendarGUIData.SelectedDate = gDate;
            raisePropertyChanged("CalendarGUIData");
        }
示例#10
0
        private void setToday()
        {
            int outYear, outMonth, outDay;

            PDateHelper.GregorianToHijri(
                DateTime.Now.Year,
                DateTime.Now.Month,
                DateTime.Now.Day,
                out outYear, out outMonth, out outDay);

            CalendarGUIData.Today = string.Format(CultureInfo.InvariantCulture, "{0}/{1}/{2}", outYear, outMonth.ToString("00", CultureInfo.InvariantCulture), outDay.ToString("00", CultureInfo.InvariantCulture));
            setTodayData(outYear, outMonth, outDay);

            if (_currentYear == 0)
            {
                getInfoSetCalendar(outMonth, outYear);
            }
        }
示例#11
0
        private void showTodayClick(string obj)
        {
            resetTheCache();

            int outYear, outMonth, outDay;

            PDateHelper.GregorianToHijri(
                DateTime.Now.Year,
                DateTime.Now.Month,
                DateTime.Now.Day,
                out outYear, out outMonth, out outDay);
            DaysInfo.Clear();
            initHeader();
            getInfoSetCalendar(outMonth, outYear);
            if (StartAnimation != null)
            {
                StartAnimation();
            }
        }
示例#12
0
        private void getInfoSetCalendar(int monthIndex, int year)
        {
            //saves some cpu cycles...
            if (monthIndex == _lastMonthIndex && year == _lastYear)
            {
                return;
            }
            //cache
            _lastMonthIndex = monthIndex;
            _lastYear       = year;

            calendarMode  = CalendarMode.Month;
            _currentYear  = year;
            _currentMonth = monthIndex - 1;
            CalendarGUIData.HeaderText = string.Format(CultureInfo.InvariantCulture, "{0} {1}", Names.MonthNames[monthIndex - 1], year);

            for (var i = 0; i <= 41; i++)
            {
                DaysInfo[i + 7].FontWeight = FontWeights.Normal;
            }

            var dayWeek = PDateHelper.Find1StDayOfMonth(year, monthIndex);

            var noOfDays = monthIndex <= 6 ? 31 : 30;

            if (_currentMonth == 11)
            {
                noOfDays = PDateHelper.IsLeapYear(year) ? 30 : 29;
            }

            persianCalendar(dayWeek, noOfDays);

            highlightToday(monthIndex, year);
            if (StartAnimation != null)
            {
                StartAnimation();
            }
        }
示例#13
0
        void setSelectedPDate(DependencyPropertyChangedEventArgs e)
        {
            if (e.NewValue == null)
            {
                return;
            }
            var pDate = e.NewValue.ToString();

            pDate = pDate.ToResilientPersianDate();
            if (string.IsNullOrWhiteSpace(pDate))
            {
                _calendarViewModel.ResetCalendar();
                return;
            }

            var parts = PDateHelper.ExtractPersianDateParts(pDate);
            var year  = parts.Item1;
            var month = parts.Item2;
            var day   = parts.Item3;

            _calendarViewModel.SelectThisDay(year, month, day);
            synchronize(year, month, day);
        }
示例#14
0
        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.
        }
示例#15
0
        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);
        }