示例#1
0
        /// <summary>
        /// تعداد مانده مرخصی سال قبل که به سال جاری منتقل شده است را برمی گرداند
        /// </summary>
        /// <param name="personId">کلید اصلی پرسنل</param>
        /// <param name="result">خروجی</param>
        private void GetRemainLeaveTransferFromYearAgoToCurrentYear(decimal personId, IList <string> result, string toDate)
        {
            try
            {
                BRemainLeave leaveInfo = new BRemainLeave();
                int          hour = 0, min = 0, day = 0;//, year = 0, month = 0;
                //if (BLanguage.CurrentSystemLanguage == LanguagesName.Parsi)
                //{
                //    year = Utility.ToPersianDateTime(DateTime.Now).Year;
                //    month = Utility.ToPersianDateTime(DateTime.Now).Month;
                //}
                //else
                //{
                //    year = DateTime.Now.Year;
                //    month = DateTime.Now.Month;
                //}
                int year  = int.Parse(toDate.Substring(0, 4));
                int month = int.Parse(toDate.Substring(5, 2));
                int toDay = int.Parse(toDate.Substring(8, 2));
                IList <RemainLeaveProxy> remainLeaveCurrentYearProxy = leaveInfo.GetRemainLeave(personId, year, year);
                if (remainLeaveCurrentYearProxy.Count != 0)
                {
                    hour = (Utility.RealTimeToIntTime(remainLeaveCurrentYearProxy.First().ConfirmedHour) == -1000 ? 0 : Utility.RealTimeToIntTime(remainLeaveCurrentYearProxy.First().ConfirmedHour)) / 60;
                    min  = (Utility.RealTimeToIntTime(remainLeaveCurrentYearProxy.First().ConfirmedHour) == -1000 ? 0 : Utility.RealTimeToIntTime(remainLeaveCurrentYearProxy.First().ConfirmedHour)) % 60;
                    day  = Utility.ToInteger(remainLeaveCurrentYearProxy.First().ConfirmedDay);
                }

                string remainLeaveFromYearAgo = string.Empty;
                if (BLanguage.CurrentLocalLanguage == LanguagesName.Parsi)
                {
                    remainLeaveFromYearAgo = string.Format("مانده مرخصی انتقال یافته از سال قبل {0} روز و {1} ساعت و {2} دقیقه  .", day.ToString(), hour.ToString(), min.ToString());
                }
                else if (BLanguage.CurrentLocalLanguage == LanguagesName.English)
                {
                    remainLeaveFromYearAgo = string.Format("Remain Leave Transfer From Year Ago {0} Day and {1} Hour and {2} Minute ", day.ToString(), hour.ToString(), min.ToString());
                }
                result.Add(remainLeaveFromYearAgo);
            }
            catch (Exception ex)
            {
                BaseBusiness <Entity> .LogException(ex);

                throw ex;
            }
        }
示例#2
0
        /// <summary>
        /// ابطال مانده مرخصی تا آخر سال را بر می گرداند
        /// </summary>
        /// <param name="personId">کلید اصلی پرسنل</param>
        /// <param name="result">خروجی</param>
        private void GetRemainLeaveLoss(decimal personId, IList <string> result, string toDate)
        {
            try
            {
                string           leaveLossStr = string.Empty;
                BRemainLeave     leaveInfo = new BRemainLeave();
                ILeaveInfo       leaveInfo2 = new BRemainLeave();
                PersonRepository prsRep = new PersonRepository();
                Person           prs = prsRep.GetById(personId, false);
                int day, minutes;//, year = 0, month = 0;
                //if (BLanguage.CurrentSystemLanguage == LanguagesName.Parsi)
                //{
                //    year = Utility.ToPersianDateTime(DateTime.Now).Year;
                //    month = Utility.ToPersianDateTime(DateTime.Now).Month;
                //}
                //else
                //{
                //    year = DateTime.Now.Year;
                //    month = DateTime.Now.Month;
                //}
                int year  = int.Parse(toDate.Substring(0, 4));
                int month = int.Parse(toDate.Substring(5, 2));
                int toDay = int.Parse(toDate.Substring(8, 2));
                IList <RemainLeaveProxy> remainLeaveCurrentYearProxy = leaveInfo.GetRemainLeave(personId, year, year);
                object paramRuleRemainLeaveLossValue = this.GetRuleParameter(DateTime.Now, prs, 3009, "first");
                leaveInfo2.GetRemainLeaveToEndOfYear(personId, year, month, toDay, out day, out minutes);
                int leaveLossInYear = 0;
                if (paramRuleRemainLeaveLossValue != null && Utility.ToInteger(paramRuleRemainLeaveLossValue) != 0)
                {
                    leaveLossInYear = Convert.ToInt32(paramRuleRemainLeaveLossValue);
                }

                object paramRuleLeaveMinuteInDayObj = GetRuleParameter(DateTime.Now, prs, 3017, "First");
                int    leaveMinuteInDay             = 0;
                if (paramRuleLeaveMinuteInDayObj != null && Utility.ToInteger(paramRuleLeaveMinuteInDayObj) != 0)
                {
                    leaveMinuteInDay = Convert.ToInt32(paramRuleLeaveMinuteInDayObj);
                }
                else
                {
                    //7.30 ساعت به طور پیش فرض گرفته شده
                    leaveMinuteInDay = (int)((7 * 60) + 30);
                }

                int leaveRemainLeaveCurrentYear = 0;
                if (remainLeaveCurrentYearProxy.Count != 0)
                {
                    leaveRemainLeaveCurrentYear = (Utility.ToInteger(remainLeaveCurrentYearProxy.First().ConfirmedDay) * leaveMinuteInDay) + (Utility.RealTimeToIntTime(remainLeaveCurrentYearProxy.First().ConfirmedHour) == -1000 ? 0 : Utility.RealTimeToIntTime(remainLeaveCurrentYearProxy.First().ConfirmedHour));
                }

                int    leaveLossInt  = ((day * leaveMinuteInDay) + minutes) - leaveRemainLeaveCurrentYear - (Utility.ToInteger(paramRuleRemainLeaveLossValue) * leaveMinuteInDay);
                string dayLossStr    = string.Empty;
                string hourLossStr   = string.Empty;
                string minuteLossStr = string.Empty;
                if (leaveLossInt > 0)
                {
                    dayLossStr = (leaveLossInt / leaveMinuteInDay).ToString();
                    int remainMinuteLoss = (leaveLossInt % leaveMinuteInDay);
                    hourLossStr   = (remainMinuteLoss / 60).ToString();
                    minuteLossStr = (remainMinuteLoss % 60).ToString();
                }
                else
                {
                    dayLossStr    = "0";
                    hourLossStr   = "0";
                    minuteLossStr = "0";
                }
                if (BLanguage.CurrentLocalLanguage == LanguagesName.Parsi)
                {
                    leaveLossStr = string.Format("مقدار مرخصی غیر قابل انتقال به سال بعد {0} روز و {1} ساعت و {2} دقیقه .", dayLossStr, hourLossStr, minuteLossStr);
                }
                else if (BLanguage.CurrentLocalLanguage == LanguagesName.English)
                {
                    leaveLossStr = string.Format("Amount Leave Not Transfer To next Year {0} Day and {1} Hours And {2} Minute ", dayLossStr, hourLossStr, minuteLossStr);
                }
                result.Add(leaveLossStr);
            }
            catch (Exception ex)
            {
                BaseBusiness <Entity> .LogException(ex);

                throw ex;
            }
        }