public async Task <IActionResult> OnPostAsync(string monthlyBonus, string quarterlyBonus) { var SalaryUtilities = new SalaryUtil(_context); var returnJSON = await SalaryUtilities.CalculateSalary(Paycheck, Convert.ToBoolean(monthlyBonus), Convert.ToBoolean(quarterlyBonus)); return(RedirectToPage("./Index")); }
public IActionResult GetSalary([FromForm] string monthlyBonus, [FromForm] string quarterlyBonus, [FromForm] string payStart, [FromForm] string payEnd) { if (!String.IsNullOrEmpty(monthlyBonus) && !String.IsNullOrEmpty(quarterlyBonus) && !String.IsNullOrEmpty(payStart) && !String.IsNullOrEmpty(payEnd)) { var SalaryUtilities = new SalaryUtil(_context); //Make make shift Paycheck var paystub = new Paycheck(); paystub.PayPeriodStart = DateTime.Parse(payStart); paystub.PayPeriodEnd = DateTime.Parse(payEnd); var returnDictionary = SalaryUtilities.CalculateSalary(paystub, Convert.ToBoolean(monthlyBonus), Convert.ToBoolean(quarterlyBonus)).Result; if (returnDictionary.ContainsKey("status") && returnDictionary["status"] == "error") { return(BadRequest(new { status = "error", message = returnDictionary["message"] })); } else { return(Ok(new { lumpSum = returnDictionary["lumpSum"], startDate = returnDictionary["startDate"], endDate = returnDictionary["endDate"], status = "success" })); } } else { return(BadRequest(new { status = "error", message = "Missing Arguments" })); } }
public bool DoSalaryCounting(long empId, Date countingDate) { var transaction = _humanManagerContext.Database.BeginTransaction(); try { // Lấy cấu hình ConfigureEntity configure = _humanManagerContext.Configures.SingleOrDefault(); // lấy nhân viên EmployeeEntity employeeEntity = _humanManagerContext.Employees .Where(e => e.Id == empId) .Include(e => e.Job) .ThenInclude(j => j.JobLevel) .Include(e => e.RewardPunishes) .SingleOrDefault(); // Lấy bảo hiểm List <InsurranceEntity> insurrances = _humanManagerContext.Insurrances.ToList(); // Lấy lương quy định tối thiểu int miniumSalary = (int)configure.MinimumSalary; // Tính hệ số lương double salaryCoefficient = SalaryUtil.GetSalaryCoefficient(employeeEntity.Job.JobLevel, employeeEntity.JobLevel); // Lây số ngày công quy định int regulationWorkDay = (int)configure.RegulationWorkDay; // Lấy số ngày công thực tế int empWorkDay = 30; // Tính phụ cấp // Tính thưởng phạt int rewardMoney = SalaryUtil.DoRewardMoneyCounting(employeeEntity.RewardPunishes); int publishMoney = SalaryUtil.DoPublishMoneyCounting(employeeEntity.RewardPunishes); // Tính bảo hiểm double totalInsurranceRatio = SalaryUtil.CountTotalInsurranceRatio(insurrances); // Lấy bảng thuế List <TaxEntity> taxs = _humanManagerContext.Taxs.ToList(); // Tính lương SalaryHistoryEntity salaryHistoryEntity =// SalaryUtil.DoSalaryConting(employeeEntity, new DateTime(countingDate.year, countingDate.month, countingDate.day), miniumSalary, salaryCoefficient, regulationWorkDay, empWorkDay, rewardMoney, publishMoney, totalInsurranceRatio, taxs); // kiểm tra thay đổi lương SalaryHistoryEntity oldSalaryHistory = _humanManagerContext.SalaryHistories.Where(sh => sh.EmployeeId == employeeEntity.Id && sh.CountedDate.Month == countingDate.month && sh.CountedDate.Year == countingDate.year && sh.IsActive == true).SingleOrDefault(); if (oldSalaryHistory == null || salaryHistoryEntity.NetSalary != oldSalaryHistory.NetSalary) { // Chuyển trạng thái lương cũ if (oldSalaryHistory != null) { oldSalaryHistory.IsActive = false; } // Lưu lương mới salaryHistoryEntity = _humanManagerContext.SalaryHistories.Add(salaryHistoryEntity).Entity; _humanManagerContext.SaveChanges(); transaction.Commit(); } else { transaction.Rollback(); return(false); } return(true); } catch (Exception ex) { transaction.Rollback(); throw ex; } }
public KennUwareHR_SalaryUtilityShould(DatabaseFixture fixture) { _salaryUtil = new SalaryUtil(fixture.Context); _context = fixture.Context; }