public async Task <IActionResult> Edit(PayslipMaster payslipMaster) { try { if (ModelState.IsValid) { if (payslipMaster.Month == "" || payslipMaster.Month == null) { ModelState.AddModelError(string.Empty, "Please select month and try again."); ViewBag.EmployeeCode = new SelectList(_userManager.Users.OrderBy(p => p.EmployeeCode), "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); return(View(payslipMaster)); } if (payslipMaster.Year < 2019) { ModelState.AddModelError(string.Empty, "Please select year and try again."); ViewBag.EmployeeCode = new SelectList(_userManager.Users.OrderBy(p => p.EmployeeCode), "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); return(View(payslipMaster)); } // var exists = db.PayslipMasters.Any(p => // p.Month == payslipMaster.Month && // p.Year == payslipMaster.Year && // p.EmployeeCode == payslipMaster.EmployeeCode); MonthsEnum month = GetFinDate(payslipMaster.Month); payslipMaster.UpdatedBy = User.Identity.Name; payslipMaster.UpdatedDate = DateTime.Now; payslipMaster.FinDate = new DateTime(payslipMaster.Year, (int)month, (int)month == 3 ? 31 : 1); // if (exists) // { // ModelState.AddModelError(string.Empty, "Payslip already exist for this month."); // ViewBag.EmployeeCode = new SelectList(_userManager.Users, "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); // return View(payslipMaster); // } //_dbContext.PayslipMasters.Add(payslipMaster); db.Entry(payslipMaster).State = EntityState.Modified; await _dbContext.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.EmployeeCode = new SelectList(_userManager.Users.OrderBy(p => p.EmployeeCode), "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); return(View(payslipMaster)); } catch (Exception ex) { if (ex.InnerException.Message.Contains("IX_PayslipMasters_Month_Year_EmployeeCode")) { ViewBag.Message = " Payslip already exist for this month."; } ViewBag.EmployeeCode = new SelectList(_userManager.Users.OrderBy(p => p.EmployeeCode), "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); return(View(payslipMaster)); } }
public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } PayslipMaster payslipMaster = await db.PayslipMasters.FindAsync(id); if (payslipMaster == null) { return(NotFound()); } ViewBag.EmployeeCode = new SelectList(_userManager.Users, "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); return(View(payslipMaster)); }
public async Task <IActionResult> Create(PayslipMaster payslipMaster) { if (ModelState.IsValid) { if (payslipMaster.Month == "" || payslipMaster.Month == null) { ModelState.AddModelError(string.Empty, "Please select month and try again."); ViewBag.EmployeeCode = new SelectList(_userManager.Users, "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); return(View(payslipMaster)); } if (payslipMaster.Year < 2019) { ModelState.AddModelError(string.Empty, "Please select year and try again."); ViewBag.EmployeeCode = new SelectList(_userManager.Users, "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); return(View(payslipMaster)); } var exists = db.PayslipMasters.Any(p => p.Month == payslipMaster.Month && p.Year == payslipMaster.Year && p.EmployeeCode == payslipMaster.EmployeeCode); MonthsEnum month = GetFinDate(payslipMaster.Month); payslipMaster.CreatedBy = User.Identity.Name; payslipMaster.CreatedDate = DateTime.Now; payslipMaster.FinDate = new DateTime(payslipMaster.Year, (int)month, (int)month == 3 ? 31 : 1); if (exists) { ModelState.AddModelError(string.Empty, "Payslip already exist for this month."); ViewBag.EmployeeCode = new SelectList(_userManager.Users, "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); return(View(payslipMaster)); } _dbContext.PayslipMasters.Add(payslipMaster); await _dbContext.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.EmployeeCode = new SelectList(_userManager.Users, "EmployeeCode", "EmployeeCode", payslipMaster.EmployeeCode); return(View(payslipMaster)); }
//, out int count public List <PayslipMaster> GetRec(PaySlipMasterViewModel model) { List <PayslipMaster> payslipMasters = new List <PayslipMaster>(); var fileName = $"{Directory.GetCurrentDirectory()}{@"\wwwroot\files"}" + "\\" + model.ExcelFile.FileName; System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); //int cnt = 0; using (var stream = System.IO.File.Open(fileName, FileMode.Open, FileAccess.Read)) { using (var reader = ExcelReaderFactory.CreateReader(stream)) { while (reader.Read()) { if (!reader.GetValue(0).ToString().Contains("SNO")) { bool exists = db.PayslipMasters.Any(p => p.Month == model.Month && p.Year == model.Year && p.EmployeeCode == reader.GetValue(1).ToString()); if (exists) { continue; } MonthsEnum month = GetFinDate(model.Month); var payslip = new PayslipMaster() { EmployeeCode = reader.GetValue(1).ToString(), WorkingDays = Convert.ToInt32(reader.GetValue(2).ToString()), //GrossPay = Convert.ToDouble(reader.GetValue(3).ToString()), Basic = Convert.ToDouble(reader.GetValue(3).ToString()), HRA = Convert.ToDouble(reader.GetValue(4).ToString()), TA = Convert.ToDouble(reader.GetValue(5).ToString()), LTA = Convert.ToDouble(reader.GetValue(6).ToString()), CEA = Convert.ToDouble(reader.GetValue(7).ToString()), SPL = Convert.ToDouble(reader.GetValue(8).ToString()), Arrears = Convert.ToDouble(reader.GetValue(9).ToString()), MonthlyGross = Convert.ToDouble(reader.GetValue(10).ToString()), EmpEPF = Convert.ToDouble(reader.GetValue(11).ToString()), EmpESI = Convert.ToDouble(reader.GetValue(12).ToString()), TAX = Convert.ToDouble(reader.GetValue(13).ToString()), TDS = Convert.ToDouble(reader.GetValue(14).ToString()), OtherDeduction = Convert.ToDouble(reader.GetValue(15).ToString()), TotalDeductions = Convert.ToDouble(reader.GetValue(16).ToString()), TakeHome = Convert.ToDouble(reader.GetValue(17).ToString()), Month = model.Month, Year = model.Year, CreatedBy = User.Identity.Name, CreatedDate = DateTime.Now, FinDate = new DateTime(model.Year, (int)month, (int)month == 3 ? 31 : 1) }; payslipMasters.Add(payslip); //cnt++; } } } } //Inserted = true; //count = cnt; return(payslipMasters); }