public async Task <ServiceResponse <object> > AddEmployeeSalary(SalaryForAddDto model) { var ToAdd = new EmployeeSalary { EmployeeId = model.EmployeeId, Amount = Convert.ToDouble(model.Amount), Posted = false, CreatedDate = DateTime.UtcNow, CreatedById = _LoggedIn_UserID, SchoolBranchId = _LoggedIn_BranchID, }; await _context.EmployeeSalaries.AddAsync(ToAdd); await _context.SaveChangesAsync(); var ToAdd2 = new EmployeeSalaryTransaction { EmployeeId = model.EmployeeId, Amount = Convert.ToDouble(model.Amount), Posted = ToAdd.Posted, UpdatedDate = DateTime.UtcNow, UpdatedById = _LoggedIn_UserID, SchoolBranchId = _LoggedIn_BranchID, }; await _context.EmployeeSalaryTransactions.AddAsync(ToAdd2); await _context.SaveChangesAsync(); _serviceResponse.Message = CustomMessage.Added; _serviceResponse.Success = true; return(_serviceResponse); }
public async Task <ServiceResponse <object> > UpdateEmployeeSalary(SalaryForUpdateDto model) { var ObjToUpdate = _context.EmployeeSalaries.FirstOrDefault(s => s.Id.Equals(model.Id)); if (ObjToUpdate != null) { ObjToUpdate.EmployeeId = model.EmployeeId; ObjToUpdate.Amount = Convert.ToDouble(model.Amount); ObjToUpdate.Posted = false; _context.EmployeeSalaries.Update(ObjToUpdate); await _context.SaveChangesAsync(); } var ToAdd = new EmployeeSalaryTransaction { EmployeeId = model.EmployeeId, Amount = Convert.ToDouble(model.Amount), UpdatedDate = DateTime.UtcNow, UpdatedById = _LoggedIn_UserID, SchoolBranchId = _LoggedIn_BranchID, }; await _context.EmployeeSalaryTransactions.AddAsync(ToAdd); await _context.SaveChangesAsync(); _serviceResponse.Message = CustomMessage.Updated; _serviceResponse.Success = true; return(_serviceResponse); }
public async Task <ServiceResponse <object> > PostSalary(SalaryForPostDto model) { var toUpdate = await _context.EmployeeSalaries.Where(m => m.Id == model.Id).FirstOrDefaultAsync(); toUpdate.Posted = model.Posted; _context.EmployeeSalaries.Update(toUpdate); await _context.SaveChangesAsync(); var ToAdd2 = new EmployeeSalaryTransaction { EmployeeId = toUpdate.EmployeeId, Amount = toUpdate.Amount, Posted = toUpdate.Posted, UpdatedDate = DateTime.UtcNow, UpdatedById = _LoggedIn_UserID, SchoolBranchId = _LoggedIn_BranchID, }; await _context.EmployeeSalaryTransactions.AddAsync(ToAdd2); await _context.SaveChangesAsync(); _serviceResponse.Message = CustomMessage.Updated; _serviceResponse.Success = true; return(_serviceResponse); }
public async Task <IActionResult> CreateSalaryTransaction(CreateSalaryTransaction model) { long userId = _principalService.GetUserId(); Employee employee = _db.Employees.FirstOrDefault(x => x.Id == model.EmployeeId); //if (model.TransactionType == TransactionType.Deduct) //{ // employee.RemainingSalary = employee.RemainingSalary - model.Amount; // _db.SaveChanges(); //} //else //{ // employee.RemainingSalary = employee.RemainingSalary + model.Amount; // _db.SaveChanges(); //} double lastRemainingSalary = 0; if (_db.EmployeeSalaryTransactions.Where(x => x.EmployeeId == model.EmployeeId && x.CreatedAt.Month == DateTime.Now.Month).Any()) { lastRemainingSalary = _db.EmployeeSalaryTransactions.Where(x => x.EmployeeId == model.EmployeeId && x.CreatedAt.Month == DateTime.Now.Month).OrderBy(x => x.Id).LastOrDefault().RemainingSalary; } else { lastRemainingSalary = employee.Salary; } EmployeeSalaryTransaction transaction = new EmployeeSalaryTransaction { Amount = model.Amount, RemainingSalary = lastRemainingSalary, EmployeeId = model.EmployeeId, CreatedAt = DateTime.Now, CreatedById = userId, TransactionType = model.TransactionType, EmployeeSalaryGuid = Guid.NewGuid() }; if (model.TransactionType == TransactionType.Deduct) { transaction.RemainingSalary = lastRemainingSalary - model.Amount; } else { transaction.RemainingSalary = lastRemainingSalary + model.Amount; } await _db.EmployeeSalaryTransactions.AddAsync(transaction); var result = await _db.SaveChangesAsync(); if (result == 1) { return(new OkObjectResult(1)); } throw new Exception("حصل خطأ"); }