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));
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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}");
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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));
        }
Beispiel #13
0
        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());
        }