public void TestMethod2()
        {
            int days          = new CalculateDays().TotalDays("26-11-2020", "30-11-2020");
            int expectedvalue = 4;

            Assert.AreEqual(expectedvalue, days);
        }
        ///<summary>
        ///</summary>
        public void GetHourDesType(OutApplicationItem item, int accountid, out decimal putong, out decimal shuangxiu,
                                   out decimal jieri)
        {
            jieri     = 0m;
            putong    = 0m;
            shuangxiu = 0m;
            DateTime from = item.FromDate;
            DateTime to   = item.ToDate;

            _CalculateDays      = new CalculateDays(BllInstance.SpecialDateBllInstance.GetAllSpecialDate(null));
            _PlanDutyDetailList = _PlanDutyDal.GetPlanDutyDetailByAccount(accountid, from, to);

            CalculateOutCityHour calculateOutCityHour = new CalculateOutCityHour(from, to, accountid);

            calculateOutCityHour.Excute();
            foreach (DayAttendance attendance in calculateOutCityHour.DayAttendanceList)
            {
                PlanDutyDetail planDutyDetail =
                    PlanDutyDetail.GetPlanDutyDetailByDate(_PlanDutyDetailList, attendance.Date);
                if (_CalculateDays.IsNationalHoliday(attendance.Date))
                {
                    jieri += attendance.Hours;
                }

                else if (planDutyDetail.PlanDutyClass.IsWeek)
                {
                    shuangxiu += attendance.Hours;
                }
                else
                {
                    putong += attendance.Hours;
                }
            }
        }
Exemple #3
0
 /// <summary>
 /// ²âÊÔ
 /// </summary>
 public decimal TestCalculate(CalculateDays calculateDays,
                              List <PlanDutyDetail> planDutyDetailList)
 {
     _PlanDutyDetailList = planDutyDetailList;
     _CalculateDays      = calculateDays;
     return(Calculate(_From, _To));
 }
        public void TestMethod2()
        {
            int days          = new CalculateDays().GetTotalDays("15-02-2021", "20-02-2021");
            int expectedvalue = 5;

            Assert.AreEqual(expectedvalue, days);
        }
Exemple #5
0
 /// <summary>
 /// 测试
 /// </summary>
 public decimal TestCalculate(decimal leastHour, bool includeRestDay, bool includeLegalHoliday,
                              decimal oneDayMaxHour, List <PlanDutyDetail> planDutyDetaillist,
                              CalculateDays calculateDays)
 {
     _LeastHour           = leastHour;
     _IncludeLegalHoliday = includeLegalHoliday;
     _IncludeRestDay      = includeRestDay;
     _OneDayMaxHour       = oneDayMaxHour;
     _PlanDutyDetailList  = planDutyDetaillist;
     _CalculateDays       = calculateDays;
     return(Calculate(_From, _To));
 }
Exemple #6
0
        private void Init()
        {
            LeaveRequestType leaveRequestType = _LeaveRequestTypeDal.GetLeaveRequestTypeByPkid(_LeaveRequestTypeID);

            //_LeaveRequests=_leaveRequestDal.GetLeaveRequestByCondition(_AccountID, _From.Date, _To.Date.AddHours(24), RequestStatus.All);
            _LeaveRequestTypeName = leaveRequestType.Name;
            _LeastHour            = leaveRequestType.LeastHour;
            _IncludeLegalHoliday  = leaveRequestType.IncludeLegalHoliday == LegalHoliday.Include;
            _IncludeRestDay       = leaveRequestType.IncludeRestDay == RestDay.Include;
            _PlanDutyDetailList   = _PlanDutyDal.GetPlanDutyDetailByAccount(_AccountID, _From, _To);
            _CalculateDays        = new CalculateDays(_SpecialDateBll.GetAllSpecialDate(null));
        }
        /// <summary>
        /// 离职天数 未入职天数
        /// </summary>
        /// <param name="accountID"></param>
        /// <param name="startDt"></param>
        /// <param name="endDt"></param>
        public void CalcNotOnDutyDays(int accountID, DateTime startDt, DateTime endDt)
        {
            decimal  _weiRuZhiDay = 0;
            decimal  _liZhiDay    = 0;
            Employee employee     = _GetEmployee.GetEmployeeBasicInfoByAccountID(accountID);

            if (employee != null && employee.EmployeeDetails != null && employee.EmployeeDetails.Work != null)
            {
                var planduty = _PlanDutyDal.GetPlanDutyDetailByAccount(accountID, startDt, endDt);
                List <SpecialDate> specialDateList = _ISpecialDateBll.GetSpecialDateByFromAndToDate(startDt, endDt);
                CalculateDays      calculateDays   = new CalculateDays(specialDateList);
                DateTime           comeDate        = employee.EmployeeDetails.Work.ComeDate.AddDays(-1);
                if (comeDate < startDt)
                {
                    _weiRuZhiDay = 0;
                }
                else
                {
                    calculateDays.StartDate = startDt;
                    calculateDays.EndDate   = comeDate <= endDt ? comeDate : endDt;
                    _weiRuZhiDay            = calculateDays.CountDaySpecial();
                }

                if (employee.EmployeeDetails.Work.DimissionInfo != null)
                {
                    DateTime dimissionDate = employee.EmployeeDetails.Work.DimissionInfo.DimissionDate.AddDays(1);
                    if (dimissionDate > endDt)
                    {
                        _liZhiDay = 0;
                    }
                    else
                    {
                        var startDate = dimissionDate >= startDt ? dimissionDate : startDt;
                        var endDate   = endDt;
                        for (DateTime dt = startDate.Date; dt <= endDate.Date;)
                        {
                            var pd = planduty.Where(x => x.Date.Date == dt.Date).FirstOrDefault();
                            if (!pd.PlanDutyClass.IsWeek)
                            {
                                _liZhiDay++;
                            }
                            dt = dt.AddDays(1);
                        }
                    }
                }
            }
            _BindItemValueCollection.SetBindItemValue(BindItemEnum.NotEntryDays, _weiRuZhiDay);
            _BindItemValueCollection.SetBindItemValue(BindItemEnum.DimissionDays, _liZhiDay);
        }
Exemple #8
0
        /// <summary>
        /// 初始化调休,将出差信息变成一条条调休记录
        /// </summary>
        /// <returns></returns>
        private List <AdjustRest> InitAdjustRestList()
        {
            List <AdjustRest>     adjustRestList      = new List <AdjustRest>();
            DateTime              from                = _OutApplicationItem.FromDate;
            DateTime              to                  = _OutApplicationItem.ToDate;
            CalculateDays         _CalculateDays      = new CalculateDays(BllInstance.SpecialDateBllInstance.GetAllSpecialDate(null));
            List <PlanDutyDetail> _PlanDutyDetailList =
                new PlanDutyDal().GetPlanDutyDetailByAccount(_AccountID, from, to);

            CalculateOutCityHour calculateOutCityHour = new CalculateOutCityHour(from, to, _AccountID);

            calculateOutCityHour.Excute();
            foreach (DayAttendance attendance in calculateOutCityHour.DayAttendanceList)
            {
                PlanDutyDetail planDutyDetail =
                    PlanDutyDetail.GetPlanDutyDetailByDate(_PlanDutyDetailList, attendance.Date);
                AdjustRest ar = new AdjustRest();
                ar.AdjustYear = attendance.Date;
                if (_CalculateDays.IsNationalHoliday(attendance.Date))
                {
                    //节日
                    ar.SurplusHours = attendance.Hours * _AdjustRule.OutCityJieRiRate;
                }

                else if (planDutyDetail.PlanDutyClass.IsWeek)
                {
                    //双休
                    ar.SurplusHours = attendance.Hours * _AdjustRule.OutCityShuangXiuRate;
                }
                else
                {
                    //普通
                    ar.SurplusHours = 0; //attendance.Hours*_AdjustRule.OutCityPuTongRate;
                }
                adjustRestList.Add(ar);
            }
            return(adjustRestList);
        }
Exemple #9
0
 private void Init()
 {
     _CalculateDays      = new CalculateDays(BllInstance.SpecialDateBllInstance.GetAllSpecialDate(null));
     _PlanDutyDetailList = _PlanDutyDal.GetPlanDutyDetailByAccount(_AccountID, _From, _To);
 }
        //Issue movie to selected customer
        private void btnIssueMovie_Click(object sender, EventArgs e)
        {
            try
            {
                string CustId, MovieId, IssueDate, ReturnDate;
                int    totalDays = 0;
                int    temp      = 0;
                int    TotalRent = 0;
                CustId     = DropDownSelectCustomer.SelectedValue.ToString();
                MovieId    = DropDownMovie.SelectedValue.ToString();
                IssueDate  = dtIsuue.Value.ToShortDateString();
                ReturnDate = dtReturn.Value.ToShortDateString();

                if (CustId == "" || CustId == "0" || CustId == null)
                {
                    MessageBox.Show("Please select customer");
                }
                else if (MovieId.Equals("") || MovieId == "0" || MovieId == null)
                {
                    MessageBox.Show("Please select movie");
                }

                else if (DateTime.Parse(IssueDate) > DateTime.Parse(ReturnDate))
                {
                    MessageBox.Show("Issue date can not be greater than retun date", "Alert");
                }
                else if (IssueDate == ReturnDate)
                {
                    totalDays = 1;
                    temp      = new Movies().CalculateMovieCost(int.Parse(MovieId)); // Getting rent amount for that movie

                    TotalRent = totalDays * temp;                                    // Calculate the Total Rent of issue movie
                }
                else
                {
                    totalDays = new CalculateDays().GetTotalDays(IssueDate, ReturnDate);

                    temp = new Movies().CalculateMovieCost(int.Parse(MovieId)); // Getting rent amount for that movie

                    TotalRent = totalDays * temp;                               // Calculate the Total Rent of issue movie
                }

                RentedMoviesDataTbl rmdata = new RentedMoviesDataTbl();
                rmdata.MovieId         = int.Parse(MovieId);
                rmdata.CustId          = int.Parse(CustId);
                rmdata.RentDate        = IssueDate;
                rmdata.ReturnDate      = ReturnDate;
                rmdata.TotalRentAmount = TotalRent;

                if (new RentedMOvies().InsertRentedMovie(rmdata))
                {
                    TabControlSystem.SelectedTab = TabControlSystem.TabPages["RentedMovies"];
                    RentedMovieGridData();
                    MessageBox.Show("Movie rented successfully!");
                }
                else
                {
                    MessageBox.Show("Failed to rent this movie!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #11
0
        public static List <CalendarADay> Turn(List <LeaveRequest> originalDataList,
                                               List <PlanDutyDetail> planDutyDetailList, List <SpecialDate> specialList, List <CalendarADay> retList)
        {
            CalculateDays _CalculateDays = new CalculateDays(specialList);

            foreach (LeaveRequest originalData in originalDataList)
            {
                foreach (LeaveRequestItem originalDataItem in originalData.LeaveRequestItems)
                {
                    DateTime from     = originalDataItem.FromDate;
                    DateTime to       = originalDataItem.ToDate;
                    decimal  costHour = 0m;
                    if (from >= to)
                    {
                        CreateLeaveRequestInfoInADay(retList, from, 0, originalData, originalDataItem, from, to);
                    }
                    int      days = (to.Date - from.Date).Days;
                    DateTime date = from;
                    for (int i = 0; i <= days; i++)
                    {
                        PlanDutyDetail detail = PlanDutyDetail.GetPlanDutyDetailByDate(planDutyDetailList, date);
                        if (detail != null && detail.PlanDutyClass != null)
                        {
                            DateTime dtMorningStart, dtAfternoonEnd;
                            InitDateTime(from, to, detail, out dtMorningStart, out dtAfternoonEnd);
                            DateTime fromtemp =
                                new DateTime(date.Year, date.Month, date.Day, dtMorningStart.Hour,
                                             dtMorningStart.Minute, dtMorningStart.Second);
                            DateTime totemp =
                                new DateTime(date.Year, date.Month, date.Day, dtAfternoonEnd.Hour,
                                             dtAfternoonEnd.Minute, dtAfternoonEnd.Second);
                            if (i == 0)
                            {
                                fromtemp = from;
                            }
                            if (i == days)
                            {
                                totemp = to;
                            }
                            decimal hour;
                            //排除双休日,节假日
                            if (originalData.LeaveRequestType.IncludeLegalHoliday == LegalHoliday.Include &&
                                _CalculateDays.IsNationalHoliday(date))
                            {
                                if (detail.PlanDutyClass.IsWeek)
                                {
                                    hour      = Utility._OneDayMaxHour;
                                    costHour += hour;
                                }
                                else
                                {
                                    hour      = Utility.CalculateOneDay(fromtemp, totemp, originalData.LeaveRequestType.LeastHour, detail);
                                    costHour += hour;
                                }
                                CreateLeaveRequestInfoInADay(retList, date, hour, originalData, originalDataItem, fromtemp,
                                                             totemp);
                            }
                            else if (originalData.LeaveRequestType.IncludeLegalHoliday == LegalHoliday.Include &&
                                     detail.PlanDutyClass.IsWeek && !_CalculateDays.IsNationalHoliday(date))
                            {
                                hour      = Utility._OneDayMaxHour;
                                costHour += hour;
                                CreateLeaveRequestInfoInADay(retList, date, hour, originalData, originalDataItem, fromtemp,
                                                             totemp);
                            }

                            else if (!detail.PlanDutyClass.IsWeek)
                            {
                                hour      = Utility.CalculateOneDay(fromtemp, totemp, originalData.LeaveRequestType.LeastHour, detail);
                                costHour += hour;
                                CreateLeaveRequestInfoInADay(retList, date, hour, originalData, originalDataItem, fromtemp,
                                                             totemp);
                            }
                        }
                        date = date.AddDays(1);
                    }
                }
            }

            return(retList);
        }