public ActionResult Create(IEnumerable <EmployeeItem> lstEmployee, PayrollItem payroll, IEnumerable <PayrollItem> lstPayroll) { string strMsg = ""; if (TempData["Msg"] != "") { strMsg = TempData["Msg"].ToString(); } objPayService = new PayrollService(); List <CompanyItem> clsCompany = new List <CompanyItem>(); clsCompany = objPayService.BindCompany(); objPayItem.lstCompany = new List <CompanyItem>(); objPayItem.lstCompany.AddRange(clsCompany); BindMonthYear(); var lstEmp = lstEmployee.ToList(); for (int i = 0; i < lstEmployee.ToList().Count; i++) { objPayItem = new PayrollItem(); var ID = lstEmp[i].id; objPayItem.Month = Convert.ToInt32(payroll.Month); objPayItem.Year = Convert.ToInt32(payroll.Year); objPayItem.CompId = Convert.ToInt32(payroll.CompId); objPayItem.Empid = lstEmp[i].id; objPayItem.OT = lstEmp[i].OT; objPayItem.DA = lstEmp[i].DA; if (payroll.Month == 2) { if ((payroll.Year % 4 == 0 && payroll.Year % 100 != 0) || (payroll.Year % 400 == 0)) { objPayItem.TotalDays = 29; objPayItem.Days = lstEmp[i].Days; } else { objPayItem.TotalDays = 28; objPayItem.Days = lstEmp[i].Days; } } if (payroll.Month == 1 || payroll.Month == 3 || payroll.Month == 5 || payroll.Month == 7 || payroll.Month == 8 || payroll.Month == 10 || payroll.Month == 12) { objPayItem.TotalDays = 31; if (lstEmp[i].Days > 31) { objPayItem.lstEmployee = new List <EmployeeItem>(); objPayItem.lstEmployee.AddRange(lstEmp); ViewBag.ErrorMsg = "Data Not Successfully Added..Check Proper Days"; ModelState.AddModelError(string.Empty, "The item cannot be removed"); return(View()); } else { objPayItem.Days = lstEmp[i].Days; } } if (payroll.Month == 4 || payroll.Month == 6 || payroll.Month == 9 || payroll.Month == 11) { objPayItem.TotalDays = 30; if (lstEmp[i].Days > 30) { ViewBag.ErrorMsg = "Data Not Successfully Added..Check Proper Days"; return(View(objPayItem)); } else { objPayItem.Days = lstEmp[i].Days; } } List <CompanyItem> clsCompany1 = new List <CompanyItem>(); clsCompany1 = objPayService.BindCompany(); objPayItem.lstCompany = new List <CompanyItem>(); objPayItem.lstCompany.AddRange(clsCompany1); if (strMsg.ToString() == "") { objPayService.InsertPayroll(objPayItem); } else { objPayService.UpdatePayroll(objPayItem); } } int cid = 0; if (Session["CompID"] != null) { cid = Convert.ToInt32(Session["CompID"].ToString()); } List <PayrollItem> lstPayoll = new List <PayrollItem>(); lstPayoll = objPayService.GridPayroll(cid); objPayItem.lstPayroll = new List <PayrollItem>(); objPayItem.lstPayroll.AddRange(lstPayoll); ModelState.Clear(); return(View(objPayItem)); }