private decimal CalculateInvolvementPercentage(long _empId, decimal editDays, NewEntryModel newEntryModel) { WorkDaysModel obj = DB.Workdays.FirstOrDefault(x => x.EmpID == _empId && x.InvolveMonth == newEntryModel.InvolveMonth.Date); decimal empDaysCount = obj == null ? 0 : obj.DaysCount; if (obj == null) { empDaysCount = DB.Settings.Where(x => x.SetCode == "ManDays").First().SetValue; } decimal involveMentPercentage = (editDays * 100) / Convert.ToDecimal(empDaysCount); return(involveMentPercentage); }
public NewEntryBox BindData(string quart) { var list = (from Quart in DB.Quarter where Quart.Quarter == quart select new { Quart.Month }).ToList(); string currentQuarter = GetQuarter(); string currentmonth = quart == currentQuarter?DateTime.Now.Month.ToString("d2") : quart == "Q4" ? "10" : quart == "Q3" ? "07" : quart == "Q2" ? "04" : "01"; string month1 = quart != currentQuarter && quart == "Q4" ? DateTime.Now.AddYears(-1).ToString("yyyy/" + list[0].Month + "/01") : DateTime.Now.ToString("yyyy/" + list[0].Month + "/01"); string month2 = quart != currentQuarter && quart == "Q4" ? DateTime.Now.AddYears(-1).ToString("yyyy/" + list[1].Month + "/01") : DateTime.Now.ToString("yyyy/" + list[1].Month + "/01"); string month3 = quart != currentQuarter && quart == "Q4" ? DateTime.Now.AddYears(-1).ToString("yyyy/" + list[2].Month + "/01") : DateTime.Now.ToString("yyyy/" + list[2].Month + "/01"); if (currentmonth == list[0].Month) { TempData["CheckMonth"] = 1; } else if (currentmonth == list[1].Month) { TempData["CheckMonth"] = 2; } else if (currentmonth == list[2].Month) { TempData["CheckMonth"] = 3; } long empid = (long)Session[Constants.SessionEmpID]; System.Collections.Generic.List <BoxItems> GetDetails = DB.Database.SqlQuery <BoxItems>( @"exec " + Constants.P_GetNewEntryDefault_Test + " @EmpID,@Month1,@Month2,@Month3", new object[] { new SqlParameter("@EmpID", empid), new SqlParameter("@Month1", month1), new SqlParameter("@Month2", month2), new SqlParameter("@Month3", month3) }).ToList(); int year = (quart == "Q4" && currentQuarter != "Q4") ? DateTime.Now.AddYears(-1).Year : DateTime.Now.Year; NewEntryBox model = new NewEntryBox { CheckMonth = TempData["CheckMonth"].ToString(), Month1 = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(Convert.ToInt32(list[0].Month)) + " " + year, Month2 = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(Convert.ToInt32(list[1].Month)) + " " + year, Month3 = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(Convert.ToInt32(list[2].Month)) + " " + year }; foreach (BoxItems item in GetDetails) { item.InvolvementEditDays1 = item.InvolvementEditDays1 == 0 && item.InvolvementDays1 != 0 && item.IsEdit1 ? item.InvolvementDays1 : item.InvolvementEditDays1; item.InvolvementEditDays2 = item.InvolvementEditDays2 == 0 && item.InvolvementDays2 != 0 && item.IsEdit2 ? item.InvolvementDays2 : item.InvolvementEditDays2; item.InvolvementEditDays3 = item.InvolvementEditDays3 == 0 && item.InvolvementDays3 != 0 && item.IsEdit3 ? item.InvolvementDays3 : item.InvolvementEditDays3; } DateTime origDT1 = Convert.ToDateTime(month1); DateTime lastDate1 = new DateTime(origDT1.Year, origDT1.Month, 1).AddMonths(1).AddDays(-1); DateTime origDT2 = Convert.ToDateTime(month2); DateTime lastDate2 = new DateTime(origDT2.Year, origDT2.Month, 1).AddMonths(1).AddDays(-1); DateTime origDT3 = Convert.ToDateTime(month3); DateTime lastDate3 = new DateTime(origDT3.Year, origDT3.Month, 1).AddMonths(1).AddDays(-1); foreach (BoxItems item in GetDetails.Where(x => x.TsID != "Total")) { model.TotalDaysEditCount1 = model.TotalDaysEditCount1 + item.InvolvementEditDays1; model.TotalDaysEditCount2 = model.TotalDaysEditCount2 + item.InvolvementEditDays2; model.TotalDaysEditCount3 = model.TotalDaysEditCount3 + item.InvolvementEditDays3; item.OldInvolvementEditDays1 = item.InvolvementEditDays1; item.OldInvolvementEditDays2 = item.InvolvementEditDays2; item.OldInvolvementEditDays3 = item.InvolvementEditDays3; if (!model.ShowWarning) { if (Models.Common.CheckDateRange(item.StartDate.Value, Convert.ToDateTime(month1), lastDate3)) { if (!Models.Common.CheckIfNotMonthDateDate(Convert.ToDateTime(month1), Convert.ToDateTime(month2), Convert.ToDateTime(month3), item.StartDate.Value) || (item.EndDate <= lastDate3 && !Models.Common.CheckIfNotMonthDateDate(lastDate1, lastDate2, lastDate3, item.EndDate.Value))) { model.ShowWarning = true; } } else if (Models.Common.CheckDateRange(item.EndDate.Value, Convert.ToDateTime(month1), lastDate3)) { if ((item.StartDate.Value >= Convert.ToDateTime(month1) && !Models.Common.CheckIfNotMonthDateDate(Convert.ToDateTime(month1), Convert.ToDateTime(month2), Convert.ToDateTime(month3), item.StartDate.Value)) || (item.EndDate <= lastDate3 && !Models.Common.CheckIfNotMonthDateDate(lastDate1, lastDate2, lastDate3, item.EndDate.Value))) { model.ShowWarning = true; } } } } DateTime date1 = Convert.ToDateTime(month1); DateTime date2 = Convert.ToDateTime(month2); DateTime date3 = Convert.ToDateTime(month3); WorkDaysModel totalDays1 = DB.Workdays.FirstOrDefault(x => x.EmpID == empid && x.InvolveMonth == date1.Date); WorkDaysModel totalDays2 = DB.Workdays.FirstOrDefault(x => x.EmpID == empid && x.InvolveMonth == date2.Date); WorkDaysModel totalDays3 = DB.Workdays.FirstOrDefault(x => x.EmpID == empid && x.InvolveMonth == date3.Date); long manDays = 0; if (totalDays1 == null || totalDays2 == null || totalDays3 == null) { manDays = DB.Settings.Where(x => x.SetCode == "ManDays").First().SetValue; } if (GetDetails.Any()) { int totalInvolvementPercentage = (from x in DB.Employee where x.EmployeeID == empid select x.TotalInvolvement ?? 100).FirstOrDefault(); GetDetails[GetDetails.Count - 1].InvolvementEditDays1 = model.TotalDaysEditCount1; GetDetails[GetDetails.Count - 1].InvolvementEditDays2 = model.TotalDaysEditCount2; GetDetails[GetDetails.Count - 1].InvolvementEditDays3 = model.TotalDaysEditCount3; GetDetails[GetDetails.Count - 1].InvolvementDays1 = totalInvolvementPercentage * (totalDays1 != null ? totalDays1.DaysCount : manDays) / 100; GetDetails[GetDetails.Count - 1].InvolvementDays2 = totalInvolvementPercentage * (totalDays2 != null ? totalDays2.DaysCount : manDays) / 100; GetDetails[GetDetails.Count - 1].InvolvementDays3 = totalInvolvementPercentage * (totalDays3 != null ? totalDays3.DaysCount : manDays) / 100; } model.Count1 = model.TotalDaysEditCount1 == 0 && model.TotalDaysCount1 == 0 && date1 <= DateTime.Now ? totalDays1 != null ? totalDays1.DaysCount : manDays : model.TotalDaysEditCount1; model.Count2 = model.TotalDaysEditCount2 == 0 && model.TotalDaysCount2 == 0 && date2 <= DateTime.Now ? totalDays2 != null ? totalDays2.DaysCount : manDays : model.TotalDaysEditCount2; model.Count3 = model.TotalDaysEditCount3 == 0 && model.TotalDaysCount3 == 0 && date3 <= DateTime.Now ? totalDays3 != null ? totalDays3.DaysCount : manDays : model.TotalDaysEditCount3; model.QID = quart; model.CurrentYear = (quart == "Q4" && currentQuarter != "Q4") ? DateTime.Now.AddYears(-1).Year : DateTime.Now.Year; model.Items = GetDetails; foreach (BoxItems item in model.Items.Where(x => x.ProjectID == 0)) { item.IsEdit1 = false; item.IsEdit2 = false; item.IsEdit3 = false; } ViewBag.IsEditable = model.Items.Any(x => (x.IsEdit1 || x.IsEdit2 || x.IsEdit3) && x.ProjectID != 0); return(model); }