/// <summary> /// مانده مرخصی در ماه را برای یک پرسنل بر می گرداند /// </summary> /// <param name="personId">کلید اصلی پرسنل</param> /// <param name="result">خروجی</param> private void GetRemainMonthLeave(decimal personId, IList <string> result, string toDate) { try { string remain = ""; int day, minutes, hour, min;//year = 0, month = 0, bool negative = false; PersonRepository prsRep = new PersonRepository(); ILeaveInfo leaveInfo = new BRemainLeave(); //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)); leaveInfo.GetRemainLeaveToEndOfMonth(personId, year, month, toDay, out day, out minutes); hour = (minutes / 60); min = minutes % 60; string dayValue = day >= 0 ? day.ToString() : String.Format("-({0})", Math.Abs(day)); string hourValue = hour >= 0 ? hour.ToString() : String.Format("-({0})", Math.Abs(hour)); string minValue = min >= 0 ? min.ToString() : String.Format("-({0})", Math.Abs(min)); if (BLanguage.CurrentLocalLanguage == LanguagesName.Parsi) { remain = String.Format("مانده مرخصی تا انتهای ماه انتخابی {0} روز و {1} ساعت و {2} دقیقه", dayValue, hourValue, minValue); } else if (BLanguage.CurrentLocalLanguage == LanguagesName.English) { remain = String.Format("Remains off until the end of selected Month, {0} days and {1} hours and {2} minutes", dayValue, hourValue, minValue); } result.Add(remain); } catch (Exception ex) { BaseBusiness <Entity> .LogException(ex, "BUserInfo", "GetRemainMonthLeave"); throw ex; } }
private void GetRemainYearLeave(decimal personId, IList <string> result) { try { string remain = ""; int day, minutes, hour, min, year = 0, month = 0; ILeaveInfo leaveInfo = new BRemainLeave(); PersonRepository prsRep = new PersonRepository(); Person prs = prsRep.GetById(personId, false); 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; } leaveInfo.GetRemainLeaveToEndOfYear(personId, year, month, out day, out minutes); hour = (minutes / 60); min = minutes % 60; string dayValue = day >= 0 ? day.ToString() : String.Format("-({0})", Math.Abs(day)); string hourValue = hour >= 0 ? hour.ToString() : String.Format("-({0})", Math.Abs(hour)); string minValue = min >= 0 ? min.ToString() : String.Format("-({0})", Math.Abs(min)); if (BLanguage.CurrentLocalLanguage == LanguagesName.Parsi) { remain = String.Format("مانده مرخصی تا انتهای سال جاری {0} روز و {1} ساعت و {2} دقیقه", dayValue, hourValue, minValue); } else if (BLanguage.CurrentLocalLanguage == LanguagesName.English) { remain = String.Format("Remains off until the end of this Year, {0} days and {1} hours and {2} minutes", dayValue, hourValue, minValue); } result.Add(remain); } catch (Exception ex) { BaseBusiness <Entity> .LogException(ex); throw ex; } }
/// <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; } }
/// <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; } }
/// مرخصی استفاده شده در سال را برای یک پرسنل بر می گرداند /// </summary> /// <param name="personId">کلید اصلی پرسنل</param> /// <param name="result">خروجی</param> private void GetUsedYearLeave(decimal personId, IList <string> result, string toDate) { try { string usedLeave = ""; int day, minutes, hour, min;//, year = 0, month = 0; ILeaveInfo leaveInfo = new BRemainLeave(); PersonRepository prsRep = new PersonRepository(); Person prs = prsRep.GetById(personId, false); //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)); leaveInfo.GetUsedLeaveToEndOfYear(personId, year, month, toDay, out day, out minutes); hour = (minutes / 60); min = minutes % 60; string dayValue = day >= 0 ? day.ToString() : String.Format("-({0})", Math.Abs(day)); string hourValue = hour >= 0 ? hour.ToString() : String.Format("-({0})", Math.Abs(hour)); string minValue = min >= 0 ? min.ToString() : String.Format("-({0})", Math.Abs(min)); if (prs.PersonTASpec.IsLeaveYearDependonContract) { if (BLanguage.CurrentLocalLanguage == LanguagesName.Parsi) { usedLeave = String.Format("مرخصی مصرف شده از ابتدای سال قراردادی {0} روز و {1} ساعت و {2} دقیقه", dayValue, hourValue, minValue); } else if (BLanguage.CurrentLocalLanguage == LanguagesName.English) { usedLeave = String.Format("Used Leave From Begenning of current leave year is , {0} days and {1} hours and {2} minutes", dayValue, hourValue, minValue); } } else { if (BLanguage.CurrentLocalLanguage == LanguagesName.Parsi) { usedLeave = String.Format("مرخصی مصرف شده از ابتدای سال {0} روز و {1} ساعت و {2} دقیقه", dayValue, hourValue, minValue); } else if (BLanguage.CurrentLocalLanguage == LanguagesName.English) { usedLeave = String.Format("Used Leave From Begenning of current year is , {0} days and {1} hours and {2} minutes", dayValue, hourValue, minValue); } } result.Add(usedLeave); } catch (Exception ex) { BaseBusiness <Entity> .LogException(ex); throw ex; } }