public async Task <ActionResult <Payroll> > PostPayrolls([FromBody] PayrollFormViewModel payroll) { VerifyUser(); var model = new Payroll() { Salary = payroll.Salary, Tax = payroll.Tax, BPJSKesehatan = payroll.BPJSKesehatan, BPJSTenagaKerja = payroll.BPJSTenagaKerja, NPWP = payroll.NPWP, NameBankAccount = payroll.NameBankAccount, Bank = payroll.Bank, BankAccountNumber = payroll.BankAccountNumber, BankBranch = payroll.BankBranch, BackDatedPayment = payroll.BackDatedPayment, Allowance = payroll.Allowance, Incentive = payroll.Incentive, PaidLeave = payroll.PaidLeave, UnPaidLeave = payroll.UnPaidLeave, SalaryPeriod = payroll.SalaryPeriod, Month = payroll.Month, Year = payroll.Year, TakeHomePay = payroll.TakeHomePay }; EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent); _context.Payrolls.Add(model); await _context.SaveChangesAsync(); return(Created("", model)); }
public async Task <IActionResult> PutPayrolls(int id, [FromBody] PayrollFormViewModel payroll) { /*if (id != workingExperience.Id) * { * return BadRequest(); * }*/ try { VerifyUser(); var model = await _context.Payrolls.FindAsync(id); { model.Salary = payroll.Salary; model.Tax = payroll.Tax; model.BPJSKesehatan = payroll.BPJSKesehatan; model.BPJSTenagaKerja = payroll.BPJSTenagaKerja; model.NPWP = payroll.NPWP; model.NameBankAccount = payroll.NameBankAccount; model.Bank = payroll.Bank; model.BankAccountNumber = payroll.BankAccountNumber; model.BankBranch = payroll.BankBranch; model.BackDatedPayment = payroll.BackDatedPayment; model.Allowance = payroll.Allowance; model.Incentive = payroll.Incentive; model.PaidLeave = payroll.PaidLeave; model.UnPaidLeave = payroll.UnPaidLeave; model.SalaryPeriod = payroll.SalaryPeriod; model.Month = payroll.Month; model.Year = payroll.Year; model.TakeHomePay = payroll.TakeHomePay; }; EntityExtension.FlagForUpdate(model, _identityService.Username, UserAgent); _context.Payrolls.Update(model); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PayrollExist(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public ActionResult Details(PayrollFormViewModel model, OptionsViewModel moreInfo, PayrollDueVM grid1, SubPeriodsVM grid2) { List <Error> errors = new List <Error>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { errors = _hrUnitOfWork.SiteRepository.CheckForm(new CheckParm { CompanyId = CompanyId, ObjectName = "Payroll", TableName = "Payrolls", ParentColumn = "CompanyId", Columns = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))), Culture = Language }); if (errors.Count() > 0) { foreach (var e in errors) { foreach (var errorMsg in e.errors) { ModelState.AddModelError(errorMsg.field, errorMsg.message); } } return(Json(Models.Utils.ParseFormErrors(ModelState))); } } Payrolls record; var PeriodIdLocal = _hrUnitOfWork.Repository <PeriodName>().Where(a => a.Id == model.PeriodId).Select(a => new { Local = a.IsLocal }).FirstOrDefault(); //insert if (model.Id == 0) { record = new Payrolls(); AutoMapper(new Models.AutoMapperParm { Destination = record, Source = model, ObjectName = "Payroll", Options = moreInfo, Transtype = TransType.Insert }); record.CreatedUser = UserName; record.CreatedTime = DateTime.Now; record.IsLocal = PeriodIdLocal.Local; record.CompanyId = record.IsLocal ? CompanyId : (int?)null; _hrUnitOfWork.PayrollRepository.Add(record); } //update else { record = _hrUnitOfWork.Repository <Payrolls>().FirstOrDefault(a => a.Id == model.Id); AutoMapper(new Models.AutoMapperParm { Destination = record, Source = model, ObjectName = "Payroll", Options = moreInfo, Transtype = TransType.Update }); record.ModifiedTime = DateTime.Now; record.ModifiedUser = UserName; record.IsLocal = PeriodIdLocal.Local; record.CompanyId = record.IsLocal ? CompanyId : (int?)null; _hrUnitOfWork.PayrollRepository.Attach(record); _hrUnitOfWork.PayrollRepository.Entry(record).State = EntityState.Modified; } // Save grid1 var payDueList = new PayDueListViewModel(); payDueList = SaveGrid1(grid1, ModelState.Where(a => a.Key.Contains("grid")), record); errors = payDueList.errors; errors = SaveGrid2(grid2, payDueList.payDueList, ModelState.Where(a => a.Key.Contains("grid")), record, model.Period.GetValueOrDefault()); if (errors.Count > 0) { return(Json(errors.First().errors.First().message)); } errors = SaveChanges(Language); var message = "OK"; if (errors.Count > 0) { message = errors.First().errors.First().message; } return(Json(message)); } return(Json(Models.Utils.ParseFormErrors(ModelState))); }