public ActionResult Create(EmployeeSalaryDetailViewModel viewModel) { if (ModelState.IsValid) { EmployeeSalaryDetail employeeSalaryDetail = new EmployeeSalaryDetail(); employeeSalaryDetail.Id = viewModel.Id; employeeSalaryDetail.RatePerHour = viewModel.RatePerHour; employeeSalaryDetail.RatePerHourOvertime = viewModel.RatePerHourOvertime; employeeSalaryDetail.ContactId = viewModel.EmployeeId; employeeSalaryDetail.PF = viewModel.PF; employeeSalaryDetail.ESI = viewModel.ESI; employeeSalaryDetail.Enrolled = viewModel.Enrolled; if (viewModel.OverTimeCal == null) { employeeSalaryDetail.OverTimeCal = null; } else { employeeSalaryDetail.OverTimeCal = viewModel.OverTimeCal.Value.ToString(); } db.EmployeeSalaryDetails.Add(employeeSalaryDetail); db.SaveChanges(); TempData["MessageToClientSuccess"] = "Succesfully Saved Employee Salary Detail"; return(RedirectToAction("Index", "Employees")); } return(View(viewModel)); }
public ActionResult Edit(Guid?Id) { EmployeeSalaryDetail retriveEmployeeSalaryDetail = db.EmployeeSalaryDetails.Where(es => es.ContactId == Id).FirstOrDefault(); if (retriveEmployeeSalaryDetail == null) { EmployeeSalaryDetail employeeSalaryDetail = new EmployeeSalaryDetail(); EmployeeSalaryDetailViewModel empSalViewModel = Mapper.Map <EmployeeSalaryDetailViewModel>(employeeSalaryDetail); empSalViewModel.EmployeeId = Id; return(View("Create", empSalViewModel)); } EmployeeSalaryDetailViewModel viewModel = new EmployeeSalaryDetailViewModel(); viewModel.Id = retriveEmployeeSalaryDetail.Id; viewModel.RatePerHour = retriveEmployeeSalaryDetail.RatePerHour; viewModel.RatePerHourOvertime = retriveEmployeeSalaryDetail.RatePerHourOvertime; viewModel.EmployeeId = retriveEmployeeSalaryDetail.ContactId; viewModel.PF = retriveEmployeeSalaryDetail.PF; viewModel.ESI = retriveEmployeeSalaryDetail.ESI; viewModel.Enrolled = retriveEmployeeSalaryDetail.Enrolled; if (retriveEmployeeSalaryDetail.OverTimeCal == null) { retriveEmployeeSalaryDetail.OverTimeCal = null; } else { var dt = TimeSpan.Parse(retriveEmployeeSalaryDetail.OverTimeCal); viewModel.OverTimeCal = dt; } return(RedirectToAction("EditSave", viewModel)); }
public ActionResult DeleteConfirmed(int id) { EmployeeSalaryDetail employeeSalaryDetail = db.EmployeeSalaryDetails.Find(id); db.EmployeeSalaryDetails.Remove(employeeSalaryDetail); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } EmployeeSalaryDetail employeeSalaryDetail = db.EmployeeSalaryDetails.Find(id); if (employeeSalaryDetail == null) { return(HttpNotFound()); } return(View(employeeSalaryDetail)); }
public void TaxSlab_18k_0() { EmployeeSalaryDetail empTestCase = new EmployeeSalaryDetail(new PaySlip()); EmployeeSalaryDetailModel requestModel = new EmployeeSalaryDetailModel(); requestModel.FirstName = "Andrew"; requestModel.LastName = "Smith"; requestModel.AnnualSalary = 0; requestModel.SuperRate = 9; requestModel.PaymentStartDate = "01 March – 31 March"; EmployeeSalaryDetailDTO response = empTestCase.GetEmployeeSalaryDetaill(requestModel); Assert.AreEqual(null, response); }
private void AddRowContent(TableRow annualRow, EmployeeSalaryDetail detail) { TableCell cell1 = annualRow.Cells.AddTableCell(); cell1.PreferredWidth = 150; Block block1 = cell1.Blocks.AddBlock(); block1.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Center; block1.TextProperties.FontSize = 14; block1.TextProperties.TrySetFont(new FontFamily("Calibri"), FontStyles.Normal, FontWeights.Normal); block1.InsertText(detail.Category); TableCell cell2 = annualRow.Cells.AddTableCell(); cell2.PreferredWidth = 150; Block block2 = cell2.Blocks.AddBlock(); block2.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Right; block2.TextProperties.FontSize = 14; block2.TextProperties.TrySetFont(new FontFamily("Calibri"), FontStyles.Normal, FontWeights.Normal); block2.InsertText($"{detail.Salary:N2}"); TableCell cell3 = annualRow.Cells.AddTableCell(); cell3.PreferredWidth = 150; Block block3 = cell3.Blocks.AddBlock(); block3.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Right; block3.TextProperties.FontSize = 14; block3.TextProperties.TrySetFont(new FontFamily("Calibri"), FontStyles.Normal, FontWeights.Normal); block3.InsertText($"{detail.Bonus:n2}"); TableCell cell4 = annualRow.Cells.AddTableCell(); cell4.PreferredWidth = 150; Block block4 = cell4.Blocks.AddBlock(); block4.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Right; block4.TextProperties.FontSize = 14; block4.TextProperties.TrySetFont(new FontFamily("Calibri"), FontStyles.Normal, FontWeights.Normal); block4.InsertText($"{detail.TotalCompensation:n2}"); }
public void TaxSlab_180k_120k() { EmployeeSalaryDetail empTestCase = new EmployeeSalaryDetail(new PaySlip()); EmployeeSalaryDetailModel requestModel = new EmployeeSalaryDetailModel(); requestModel.FirstName = "Claire"; requestModel.LastName = "Wong"; requestModel.AnnualSalary = 120000; requestModel.SuperRate = 10; requestModel.PaymentStartDate = "01 March – 31 March"; EmployeeSalaryDetailDTO response = empTestCase.GetEmployeeSalaryDetaill(requestModel); Assert.AreEqual(10000, response.GrossIncome); Assert.AreEqual(2669, response.IncomeTax); Assert.AreEqual(7331, response.NetIncome); Assert.AreEqual(1000, response.SuperAmount); }
public void TaxSlab_87k_60k() { EmployeeSalaryDetail empTestCase = new EmployeeSalaryDetail(new PaySlip()); EmployeeSalaryDetailModel requestModel = new EmployeeSalaryDetailModel(); requestModel.FirstName = "Andrew"; requestModel.LastName = "Smith"; requestModel.AnnualSalary = 60050; requestModel.SuperRate = 9; requestModel.PaymentStartDate = "01 March – 31 March"; EmployeeSalaryDetailDTO response = empTestCase.GetEmployeeSalaryDetaill(requestModel); Assert.AreEqual(5004, response.GrossIncome); Assert.AreEqual(922, response.IncomeTax); Assert.AreEqual(4082, response.NetIncome); Assert.AreEqual(450, response.SuperAmount); }
public void TaxSlab_37k_25k() { EmployeeSalaryDetail empTestCase = new EmployeeSalaryDetail(new PaySlip()); EmployeeSalaryDetailModel requestModel = new EmployeeSalaryDetailModel(); requestModel.FirstName = "Andrew"; requestModel.LastName = "Smith"; requestModel.AnnualSalary = 25000; requestModel.SuperRate = 9; requestModel.PaymentStartDate = "01 March – 31 March"; EmployeeSalaryDetailDTO response = empTestCase.GetEmployeeSalaryDetaill(requestModel); Assert.AreEqual(2083, response.GrossIncome); Assert.AreEqual(108, response.IncomeTax); Assert.AreEqual(1975, response.NetIncome); Assert.AreEqual(187, response.SuperAmount); }
public ActionResult Edit(EmployeeSalaryDetailViewModel viewModel) { if (ModelState.IsValid) { try { EmployeeSalaryDetail employeeSalaryDetail = Mapper.Map <EmployeeSalaryDetail>(viewModel); db.Entry(employeeSalaryDetail).State = EntityState.Modified; db.SaveChanges(); TempData["MessageToClientSuccess"] = "Succesfully Updated Employee Salary Detail"; return(RedirectToAction("Index", "Employees")); } catch (Exception ex) { // Log4NetHelper.Log(String.Format("Cannot Create Deparment {0} ", viewModel.Id), LogLevel.ERROR, "Department", viewModel.Id, User.Identity.Name, ex); var msg = ex.Message; TempData["MessageToClientError"] = msg; } } // ViewBag.EmployeeId = new SelectList(db.Employees, "Id", "FirstName", employeeSalaryDetail.EmployeeId); return(View(viewModel)); }
private void CreateAnnualPaymentInformtion() { employeeAnnualSalaries = new List <EmployeeSalaryDetail>(); EmployeeSalaryDetail monthItem = new EmployeeSalaryDetail(); int startYear = 0; foreach (EmployeeSalaryDetail detail in employeeSalaryDetails) { if (startYear != detail.SalaryMonth.Year) { startYear = detail.SalaryMonth.Year; monthItem = new EmployeeSalaryDetail() { Category = startYear.ToString(), SalaryMonth = new DateTime(startYear, 1, 1) }; employeeAnnualSalaries.Add(monthItem); } monthItem.Salary += detail.Salary; monthItem.Bonus += detail.Bonus; monthItem.TotalCompensation = monthItem.Salary + monthItem.Bonus; } }
public ActionResult EditSave(EmployeeSalaryDetailViewModel viewModel) { EmployeeSalaryDetail employeeSalaryDetail = Mapper.Map <EmployeeSalaryDetail>(viewModel); return(View("EditSave", viewModel)); }
public ActionResult Save(string employeeName, string inTimeVal, string outTimeVal, Guid AttendenceId, string attendenceTypeVal, DateTime date, Guid empidval, string command) { string messageToClient = string.Empty; if (ModelState.IsValid) { try { if (command == "Submit") { int overTimeCalHr = 0; int th = 0; EmployeeAttendence employeeAttendence = new EmployeeAttendence(); EmployeeSalary employeeSalary = new EmployeeSalary(); EmployeeSalaryDetail retriveEmployeeSalaryDetail = _dbContext.EmployeeSalaryDetails.Where(es => es.ContactId == empidval).FirstOrDefault(); if (inTimeVal == "") { } else { DateTime i = Convert.ToDateTime(inTimeVal); if (outTimeVal == "") { } else { DateTime o = Convert.ToDateTime(outTimeVal); //hour calculation int inTime = i.Hour; int outTime = o.Hour; if (inTime == outTime) { inTime = 0; outTime = 0; } if (inTime > 12) { int newInTime = 24 - inTime; th = newInTime + outTime; } else { th = outTime - inTime; } if (retriveEmployeeSalaryDetail != null) { if (retriveEmployeeSalaryDetail.OverTimeCal != null) { DateTime overtimeCal = Convert.ToDateTime(retriveEmployeeSalaryDetail.OverTimeCal); overTimeCalHr = overtimeCal.Hour; //work hour and overtime hour Cal // retriving overtime and subtracting frm total hr if (th > overTimeCalHr) { int otHrcal = th - overTimeCalHr; employeeAttendence.WorkHours = overTimeCalHr; employeeSalary.WorkHours = overTimeCalHr; employeeAttendence.OverTimeHours = otHrcal; employeeSalary.OverTimeHours = otHrcal; } else { employeeAttendence.WorkHours = th; employeeSalary.WorkHours = th; employeeAttendence.OverTimeHours = 0; employeeSalary.OverTimeHours = 0; } } } //total Hours Cal int im = i.Minute; int om = o.Minute; int t = im + om; if (im == om) { employeeAttendence.TotalTime = Convert.ToString(th); } else if (im > om) { employeeAttendence.TotalTime = Convert.ToString(th); } else if (t > 60) { int totalhour = th + 1; int min = t - 60; employeeAttendence.TotalTime = totalhour + " : " + min; } else { employeeAttendence.TotalTime = th + " : " + t; } } } employeeAttendence.AttendenceId = AttendenceId; employeeAttendence.EmployeeId = empidval; employeeAttendence.FullName = employeeName; employeeAttendence.AttendenceType = attendenceTypeVal; employeeAttendence.Date = date; employeeAttendence.InTime = inTimeVal; employeeAttendence.OutTime = outTimeVal; employeeAttendence.Status = true; _dbContext.EmployeeAttendences.Add(employeeAttendence); //emp salary Salary salary = _dbContext.Salary.Where(s => s.Date == date).FirstOrDefault(); employeeSalary.FullName = employeeName; employeeSalary.RatePerHour = retriveEmployeeSalaryDetail.RatePerHour; employeeSalary.RatePerHourOvertime = retriveEmployeeSalaryDetail.RatePerHourOvertime; employeeSalary.Date = date; employeeSalary.SalaryId = salary.Id; _dbContext.EmployeeSalaries.Add(employeeSalary); _dbContext.SaveChanges(); } else { int overTimeCalHr = 0; int th = 0; EmployeeAttendence employeeAttendence = _dbContext.EmployeeAttendences.Where(ea => ea.AttendenceId == AttendenceId && ea.FullName == employeeName).FirstOrDefault(); Salary salary = _dbContext.Salary.Where(s => s.Date == date).FirstOrDefault(); EmployeeSalary employeeSalary = _dbContext.EmployeeSalaries.Where(es => es.SalaryId == salary.Id && es.FullName == employeeName).FirstOrDefault(); if (inTimeVal == "") { } else { DateTime i = Convert.ToDateTime(inTimeVal); if (outTimeVal == "") { } else { DateTime o = Convert.ToDateTime(outTimeVal); //hour calculation int inTime = i.Hour; int outTime = o.Hour; if (inTime == outTime) { inTime = 0; outTime = 0; } if (inTime > 12) { int newInTime = 24 - inTime; th = newInTime + outTime; } else { th = outTime - inTime; } EmployeeSalaryDetail retriveEmployeeSalaryDetail = _dbContext.EmployeeSalaryDetails.Where(es => es.ContactId == empidval).FirstOrDefault(); if (retriveEmployeeSalaryDetail != null) { if (retriveEmployeeSalaryDetail.OverTimeCal != null) { DateTime overtimeCal = Convert.ToDateTime(retriveEmployeeSalaryDetail.OverTimeCal); overTimeCalHr = overtimeCal.Hour; //work hour and overtime hour Cal // retriving overtime and subtracting frm total hr if (th > overTimeCalHr) { int otHrcal = th - overTimeCalHr; employeeAttendence.WorkHours = overTimeCalHr; employeeSalary.WorkHours = overTimeCalHr; employeeAttendence.OverTimeHours = otHrcal; employeeSalary.OverTimeHours = otHrcal; } else { employeeAttendence.WorkHours = th; employeeSalary.WorkHours = th; employeeAttendence.OverTimeHours = 0; employeeSalary.OverTimeHours = 0; } } } //total Hours Cal int im = i.Minute; int om = o.Minute; int t = im + om; if (im == om) { employeeAttendence.TotalTime = Convert.ToString(th); } else if (im > om) { employeeAttendence.TotalTime = Convert.ToString(th); } else if (t > 60) { int totalhour = th + 1; int min = t - 60; employeeAttendence.TotalTime = totalhour + " : " + min; } else { employeeAttendence.TotalTime = th + " : " + t; } //emp salary employeeSalary.FullName = employeeName; employeeSalary.RatePerHour = retriveEmployeeSalaryDetail.RatePerHour; employeeSalary.RatePerHourOvertime = retriveEmployeeSalaryDetail.RatePerHourOvertime; employeeSalary.Date = date; employeeSalary.SalaryId = salary.Id; _dbContext.Entry(employeeSalary).State = EntityState.Modified; _dbContext.SaveChanges(); } } employeeAttendence.AttendenceId = AttendenceId; employeeAttendence.EmployeeId = empidval; employeeAttendence.FullName = employeeName; employeeAttendence.AttendenceType = attendenceTypeVal; employeeAttendence.InTime = inTimeVal; employeeAttendence.OutTime = outTimeVal; employeeAttendence.Status = true; _dbContext.Entry(employeeAttendence).State = EntityState.Modified; } _dbContext.SaveChanges(); return(Json(new { success = true })); } catch (DbUpdateException dbex) { // var error = new ModelStateException(dbex); // Log4NetHelper.Log(String.Format("Cannot Create Deparment {0} ", viewModel.Id), LogLevel.ERROR, "Department", viewModel.Id, User.Identity.Name, dbex); var msg = new ModelStateException(dbex); TempData["MessageToClient"] = msg; messageToClient = msg.ToString(); } catch (Exception ex) { // Log4NetHelper.Log(String.Format("Cannot Create Deparment {0} ", viewModel.Id), LogLevel.ERROR, "Department", viewModel.Id, User.Identity.Name, ex); var msg = new ModelStateException(ex); TempData["MessageToClient"] = msg; } } ViewBag.CompanyId = new SelectList(_dbContext.Companyies, "Id", "CompanyName"); return(View()); }