public static decimal GetCompanyPaidPercent(DateTime startDate, DateTime endDate)
        {
            ConditionsDatetime conditionsDatetime = new ConditionsDatetime(startDate);

            if (endDate < conditionsDatetime.ThreeMonthDate)
            {
                return(0);
            }

            if (endDate < conditionsDatetime.OneYearDate)
            {
                return(10);
            }

            if (endDate < conditionsDatetime.ThreeYearDate)
            {
                return(30);
            }

            if (endDate < conditionsDatetime.FiveYearDate)
            {
                return(50);
            }

            //if (endDate > conditionsDatetime.FiveYearDate)
            return(80);
        }
        public static Dictionary <Int32, decimal> GetMonthAndYearPVDPaid(DateTime startDate, DateTime endDate)
        {
            ConditionsDatetime conditionsDatetime = new ConditionsDatetime(startDate);
            DateTime           beginPaidDate      = conditionsDatetime.ThreeMonthDate;

            Dictionary <Int32, decimal> monthAndYear = new Dictionary <int, decimal>();

            decimal month   = 0;
            int     oldYear = beginPaidDate.Year;

            while (beginPaidDate < endDate)
            {
                beginPaidDate = beginPaidDate.AddMonths(1);
                ++month;

                if (beginPaidDate.Year != oldYear)
                {
                    monthAndYear.Add(oldYear, month);
                    oldYear = beginPaidDate.Year;
                    month   = 0;
                }
            }

            monthAndYear.Add(oldYear, month);

            return(monthAndYear);
        }
        public static decimal GetProvidentFundNotOverRatePercent(DateTime startDate, DateTime endDate)
        {
            ConditionsDatetime conditionsDatetime = new ConditionsDatetime(startDate);

            if (endDate < conditionsDatetime.ThreeMonthDate)
            {
                return(0);
            }

            if (endDate < conditionsDatetime.OneYearDate)
            {
                return(3);
            }

            if (endDate < conditionsDatetime.ThreeYearDate)
            {
                return(5);
            }

            if (endDate < conditionsDatetime.FiveYearDate)
            {
                return(8);
            }

            //if (endDate > conditionsDatetime.FiveYearDate)
            return(12);
        }
Example #4
0
        private void SetDatasourceGridView()
        {
            DateTime startDate = dtpStartWorkDate.Value.Date;
            DateTime endDate   = DateTime.Now.Date;

            //Dictionary<Int32, decimal> monthAndYear = ProvidentFundCalculator.GetMonthAndYearPVDPaid(startDate, endDate);

            decimal month    = ProvidentFundCalculator.GetMonthPVDPaid(startDate, endDate);
            decimal monthCal = ProvidentFundCalculator.GetMonthPVDPaid(startDate, endDate);

            monthCal -= 3;
            decimal yearWork = ProvidentFundCalculator.GetWorkYear(startDate, endDate);

            if (yearWork == 0)
            {
                return;
            }

            List <EmployeeLogDetail> providentFunds = new List <EmployeeLogDetail>();

            for (int row = 0; row <= yearWork; row++)
            {
                EmployeeLogDetail providentFund = new EmployeeLogDetail();

                if (row == 0)
                {
                    providentFund.Month = month - 11 >= 0 ? 11 : month;
                }
                else if (month - 12 >= 0)
                {
                    providentFund.Month = 12;
                }
                else
                {
                    providentFund.Month = month;
                }

                month -= providentFund.Month;

                providentFund.WorkYear             = row == 0 ? "1-11 M" : row + "+";
                providentFund.ProvidentFundCollect = 0;
                providentFund.Salary = Convert.ToDecimal(txtSalary.Text);

                DateTime newEndDate = endDate.AddMonths(-Convert.ToInt32(monthCal));
                providentFund.CompanyPaidPercent = ProvidentFundCalculator.GetCompanyPaidPercent(startDate, newEndDate);
                monthCal -= providentFund.Month;

                ConditionsDatetime conditionsDatetime = new ConditionsDatetime(startDate);

                providentFunds.Add(providentFund);
            }

            gridViewDisplay.DataSource = providentFunds;

            SetComBoboxOnGird(startDate, endDate, providentFunds);
        }
        public static decimal GetMonthPVDPaid(DateTime startDate, DateTime endDate)
        {
            ConditionsDatetime conditionsDatetime = new ConditionsDatetime(startDate);

            DateTime beginPaidDate = conditionsDatetime.ThreeMonthDate;

            decimal month = 0;

            while (beginPaidDate < endDate)
            {
                beginPaidDate = beginPaidDate.AddMonths(1);
                ++month;
            }

            return(month);
        }