public void TestEmployeeInfoReturnPayModel() { //Arrange var controller = new PayrollController(); var employeeModel = new EmployeeModel { AnnualSalary = 100000, FirstName = "Test1", LastName = "Test2", Month = "2019-11", SuperRate = 9.5 }; //Act var result = controller.EmployeeInfo(employeeModel) as ViewResult; var outputModel = result.Model as PayModel; //Assert Assert.AreEqual("Test1 Test2", outputModel.EmployeeName); Assert.AreEqual("$ 8333", outputModel.GrossIncome); Assert.AreEqual("$ 792", outputModel.SuperAmount); Assert.AreEqual("$ 2269", outputModel.IncomeTax); Assert.AreEqual("$ 6065", outputModel.NetIncome); Assert.AreEqual("01 November - 30 November", outputModel.PayPeriod); }
private void createPayrollButton_Click(object sender, EventArgs e) { TimeSpan validDate = endDatePeriod.Value - startDatePeriod.Value; if (validDate <= fetchValidDateDuration()) { showErrorMessage("Invalid period."); return; } hideErrorMessage(); if (!selectAllCheckBox.Checked) { EmployeeControllerInterface employeeController = new EmployeeController(); Employee employee = employeeController.fetchEmployeeByUsername(usernameOrEmployeeId.Text); if (employee == null || employee.Equals("")) { showErrorMessage("Please input a valid username."); return; } PayrollControllerInterface payslipController = new PayrollController(); Payslip payslip = payslipController.createPayslip(startDatePeriod.Value, endDatePeriod.Value, employee); if (thirteenMonthPayCheckBox.Checked) { payslipController.addThirteenMonthPayToPayslip(employee, payslip); } loadPayrollList(); adminTab.SelectedTab = payrollTab; showErrorMessage("Successfully created payroll to user: "******"admin" && user.status == AccountStatus.Enable) { EmployeeControllerInterface employeeController = new EmployeeController(); Employee employee = employeeController.fetchEmployeeByUsername(user.username); if (employee == null || employee.Equals("")) { showErrorMessage("Please input a valid username."); return; } PayrollControllerInterface payslipController = new PayrollController(); payslipController.createPayslip(startDatePeriod.Value, endDatePeriod.Value, employee); } } selectAllCheckBox.Checked = false; loadPayrollList(); adminTab.SelectedTab = payrollTab; showErrorMessage("Successfully create payroll to all users"); } }
private void viewPayslipButton_Click(object sender, EventArgs e) { try { if (payrollListBox.SelectedIndex != -1) { int payslipId = Convert.ToInt32(payrollListBox.SelectedItem.ToString().Split('.')[0]); PayrollControllerInterface payrollController = new PayrollController(); Payslip payslip = payrollController.fetchPayslipById(payslipId); EmployeeControllerInterface employeeController = new EmployeeController(); payslip.employee = employeeController.fetchEmployeeById(payslip.employee.id); FormControllerInterface formController = new FormController(); formController.showUserPayroll(this, payslip); } else { showErrorMessage("Please select a record to view."); } } catch (FormatException ex) { Console.WriteLine("No item selected: " + ex.Message); } }
/// <summary> /// Delete catalog /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Delete(object sender, DirectEventArgs e) { try { var param = e.ExtraParams["Id"]; // parse id if (!int.TryParse(param, out var id) || id <= 0) { // parse error, show error Dialog.ShowError("Có lỗi xảy ra trong quá trình xử lý"); return; } // delete //Xoa bang luong SalaryBoardInfoController.DeleteByBoardListId(id); //delete salary column dynamic SalaryBoardDynamicColumnController.DeleteByCondition(id); //Xoa trong danh sach bang luong PayrollController.Delete(id); // reload data grdSalaryBoardList.Reload(); } catch (Exception ex) { Dialog.ShowError(ex.Message); } }
private void initializeDataGrid() { PayrollControllerInterface payrollController = new PayrollController(); List <Payslip> payrollSheet = payrollController.fetchPayroll(); payrollSheetDataGridView.DataSource = ConvertListToDataTable(payrollSheet); }
private void createPayrollButton_Click(object sender, EventArgs e) { EmployeeControllerInterface employeeController = new EmployeeController(); Employee employee = employeeController.fetchEmployeeByUsername(usernameOrEmployeeId.Text); PayrollControllerInterface payslipController = new PayrollController(); payslipController.createPayslip(startDatePeriod.Value, endDatePeriod.Value, employee); }
private void loadPayrollList() { PayrollControllerInterface payrollController = new PayrollController(); List <Payslip> payroll = payrollController.fetchUserPayrolls(user); userPayrollListBox.Items.Clear(); foreach (Payslip payslip in payroll) { userPayrollListBox.Items.Add(payslip.id + ".)" + payslip.startDatePeriod.ToString("MM/dd/yyyy") + "-" + payslip.endDatePeriod.ToString("MM/dd/yyyy")); } }
public DashboardForm(LoginForm login, User user) { this.login = login; this.user = user; InitializeComponent(); username.Text = user.username; PayrollControllerInterface payrollController = new PayrollController(); List <Payroll> payrolls = payrollController.fetchUserPayrolls(user); loadPayrollList(payrolls); }
private void loadPayrollList() { PayrollControllerInterface payrollController = new PayrollController(); List <Payslip> payroll = payrollController.fetchPayroll(); payrollListBox.Items.Clear(); foreach (Payslip payslip in payroll) { payrollListBox.Items.Add(payslip.id + ".)" + payslip.startDatePeriod.ToString("MM/dd/yyyy") + " - " + payslip.endDatePeriod.ToString("MM/dd/yyyy") + " | " + payslip.employee.userAccount.username); } }
/// <summary> /// Sinh cột động /// </summary> public void InitDynamicColumn() { // get payroll var payroll = PayrollController.GetById(int.Parse(hdfPayrollId.Text)); if (payroll == null) { return; } grpPayrollDetail.Title = payroll.Title; // get salary board config var salaryBoardConfigs = SalaryBoardConfigController.GetAll(payroll.ConfigId, true, null, null, null, null, null); //sort list by columnExcel salaryBoardConfigs.Sort((x, y) => CompareUtil.CompareStringByLength(x.ColumnExcel, y.ColumnExcel)); foreach (var config in salaryBoardConfigs) { var recordField = new RecordField { Name = config.ColumnCode }; var column = new Column { Header = config.Display, DataIndex = recordField.Name, Width = 120, Align = Alignment.Right, Renderer = { Fn = "RenderValue" }, Tooltip = config.Display, }; switch (config.DataType) { case SalaryConfigDataType.FieldFormula: case SalaryConfigDataType.Formula: column.Css = "font-weight:bold;"; break; case SalaryConfigDataType.DynamicValue: column.Css = "background:#e6eaf2;"; column.Editor.Add(new TextField()); break; } storePayrollDetail.AddField(recordField); grpPayrollDetail.ColumnModel.Columns.Add(column); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void DownloadTemplate_Click(object sender, DirectEventArgs e) { // init table var dataTable = new DataTable(); var salaryBoardConfigs = new List <SalaryBoardConfigModel>(); var payroll = new PayrollModel(); var salaryBoardInfos = new List <SalaryBoardInfoModel>(); // adjust table dataTable.Rows.Add(); dataTable.Columns.Add(new DataColumn(EmployeeCode)); dataTable.Columns.Add(new DataColumn(FullName)); // get config if (!string.IsNullOrEmpty(hdfConfigId.Text)) { salaryBoardConfigs = SalaryBoardConfigController.GetAll(int.Parse(hdfConfigId.Text), null, null, null, SalaryConfigDataType.DynamicValue, null, null); } // get payroll if (!string.IsNullOrEmpty(hdfSalaryBoardListID.Text)) { payroll = PayrollController.GetById(int.Parse(hdfSalaryBoardListID.Text)); } if (salaryBoardConfigs != null) { foreach (var model in salaryBoardConfigs) { dataTable.Columns.Add(new DataColumn(model.Display)); } } // get record by department if (payroll != null) { salaryBoardInfos = SalaryBoardInfoController.GetAll(null, payroll.Id.ToString(), null, null); } // fill employee name and code for (var i = 0; i < salaryBoardInfos.Count; i++) { dataTable.Rows.Add(); dataTable.Rows[i][EmployeeCode] = salaryBoardInfos[i].EmployeeCode; dataTable.Rows[i][FullName] = salaryBoardInfos[i].FullName; } ExportToExcel(dataTable, "~/" + Constant.PathTemplate, ImportSalaryExcelFile); }
public void ProcessRequest(HttpContext context) { if (!string.IsNullOrEmpty(context.Request["payrollId"])) { _payrollId = int.Parse(context.Request["payrollId"]); } if (!string.IsNullOrEmpty(context.Request["keyword"])) { _keyword = context.Request["keyword"]; } var result = PayrollController.GetPayrollDetail(_keyword, _payrollId, null, null); context.Response.Write("{{TotalRecords:{0},Data:{1}}}".FormatWith(result.Rows.Count, Ext.Net.JSON.Serialize(result))); }
public void ValidateInValidDataReturnsNullOutputModel() { //Arrange var controller = new PayrollController(); controller.ModelState.AddModelError("AnnualSalary", "Please enter a valid Annual Salary"); var employeeModel = new EmployeeModel(); //Act var result = controller.EmployeeInfo(employeeModel) as ViewResult; var outputModel = result.Model as PayModel; //Assert Assert.IsNull(outputModel); }
public void SelectSalaryBoard() { if (!string.IsNullOrEmpty(hdfSalaryBoardListId.Text)) { //Lay danh sach bang luong var boardList = PayrollController.GetById(Convert.ToInt32(hdfSalaryBoardListId.Text)); if (boardList != null) { //get all event var lisEvents = GetAllEvents(boardList, false); //TH chua ton tai bang luong thi di tao moi bang luong var salaryBoard = SalaryBoardInfoController.GetAll(null, hdfSalaryBoardListId.Text, null, null); if (salaryBoard != null && salaryBoard.Count > 0) { if (bool.Parse(hdfChkIsUpdateTimeSheet.Text)) { //Truong hop da co bang luong, thi cap nhat lai du lieu tu cham cong cho moi recordId foreach (var salary in salaryBoard) { var salaryInfo = SalaryBoardInfoController.GetById(salary.Id); //Lay tu timeSheet GetDataFromTimeSheet(salaryInfo, lisEvents); //Update SalaryBoardInfoController.Update(salaryInfo); } } if (bool.Parse(hdfChkIsUpdateSalary.Text)) { //Truong hop da co bang luong, thi cap nhat lai du lieu tu luong cho moi recordId foreach (var salary in salaryBoard) { var salaryInfo = SalaryBoardInfoController.GetById(salary.Id); //Lay tu sal_SalaryDecision EditDataSalary(salary.RecordId, salaryInfo); //Update SalaryBoardInfoController.Update(salaryInfo); } } } } Response.Redirect(SalaryBoardInfoUrl + "?mId=" + MenuId + "&id=" + hdfSalaryBoardListId.Text, true); } }
/// <summary> /// Init setting window /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void InitWindow(object sender, DirectEventArgs e) { ResetForm(); var param = e.ExtraParams["Id"]; if (int.TryParse(param, out var id)) { if (id > 0) { // edit EmployeeGrid.Disabled = true; cbxDepartment.Disabled = true; wdSetting.Title = @"Sửa bảng lương"; wdSetting.Icon = Icon.Pencil; } else { // insert EmployeeGrid.Disabled = false; cbxDepartment.Disabled = false; wdSetting.Title = @"Thêm mới bảng lương"; wdSetting.Icon = Icon.Add; } hdfSalaryBoardListId.Text = id.ToString(); var payrollModel = new PayrollModel(); if (id > 0) { var result = PayrollController.GetById(Convert.ToInt32(hdfSalaryBoardListId.Text)); if (result != null) { payrollModel = result; } //data txtName.Text = payrollModel.Title; txtCode.Text = payrollModel.Code; txtNote.Text = payrollModel.Description; hdfConfigId.Text = payrollModel.ConfigId.ToString(); cbxConfigList.Text = payrollModel.ConfigName; } hdfMonth.Text = payrollModel.Month.ToString(); cbxMonth.Text = payrollModel.Month.ToString(); hdfYear.Text = payrollModel.Year.ToString(); spnYear.Text = payrollModel.Year.ToString(); // show window wdSetting.Show(); } }
protected void Page_Load(object sender, EventArgs e) { hdfPayrollId.Text = Request.QueryString["id"]; // get payroll _payroll = PayrollController.GetById(int.Parse(hdfPayrollId.Text)); if (!ExtNet.IsAjaxRequest) { if (_payroll != null) { hdfConfigId.Text = _payroll.ConfigId.ToString(); ReloadGrid(); } } InitDynamicColumn(); }
public void GetConfig() { try { if (!string.IsNullOrEmpty(hdfPayrollId.Text)) { var payroll = PayrollController.GetById(Convert.ToInt32(hdfPayrollId.Text)); if (payroll != null) { hdfConfigId.Text = payroll.ConfigId.ToString(); } } } catch (Exception exception) { Dialog.Alert(exception.Message); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUnlock_Click(object sender, DirectEventArgs e) { // get payroll _payroll = PayrollController.GetById(int.Parse(hdfPayrollId.Text)); if (_payroll == null) { return; } // lock payroll _payroll.Status = PayrollStatus.Active; // update payroll PayrollController.Update(_payroll); ReloadGrid(); }
public async Task CanGetDatesPaid() { foreach (var testAccount in TestAccounts.TyLinAccounts.Accounts) { var employer = EmployerCache.Employers.FirstOrDefault(e => e.Id == testAccount.EmployerId); var repository = new PayrollRepository(); repository.Initialize(employer.ConnectionString); var dispatcher = new PayrollDispatcher(repository); var controller = new PayrollController(dispatcher); var result = await controller.GetDatesPaidAsync(employer, testAccount.CchId); Assert.IsNotNull(result); //Assert.IsNotNull(result.Content); } }
public void TestEmployeeInfoReturnViewName() { //Arrange var controller = new PayrollController(); var employeeModel = new EmployeeModel { AnnualSalary = 10000, FirstName = "Test1", LastName = "Test2", Month = "2019-11", SuperRate = 9.5 }; //Act var result = controller.EmployeeInfo(employeeModel) as ViewResult; //Assert Assert.AreEqual("EmployeePayDetails", result.ViewName); }
/// <summary> /// Sinh cột và record field động /// </summary> private void InitDynamicColumn() { if (string.IsNullOrEmpty(hdfSalaryBoardListID.Text)) { return; } // get payroll var payroll = PayrollController.GetById(Convert.ToInt32(hdfSalaryBoardListID.Text)); if (payroll == null) { return; } // get payroll config var salaryBoardConfigs = SalaryBoardConfigController.GetAll(payroll.ConfigId, true, null, null, SalaryConfigDataType.DynamicValue, null, null); foreach (var salaryBoardConfig in salaryBoardConfigs) { // init record field var recordField = new RecordField { Name = salaryBoardConfig.ColumnCode, }; // init column var column = new Column { DataIndex = recordField.Name, Header = salaryBoardConfig.Display, Width = 120, Align = Alignment.Right, Tooltip = salaryBoardConfig.Description, Editor = { new TextField() }, Renderer = { Fn = "RenderValue" } }; storeAdjustment.AddField(recordField); gridColumnDynamic.ColumnModel.Columns.Add(column); } }
private void resetLeaveCreditsButton_Click(object sender, EventArgs e) { hideErrorMessage(); if (!selectAllCheckBox.Checked) { EmployeeControllerInterface employeeController = new EmployeeController(); Employee employee = employeeController.fetchEmployeeByUsername(usernameOrEmployeeId.Text); if (employee == null || employee.Equals("")) { showErrorMessage("Please input a valid username."); return; } LeaveCreditsControllerInteface leaveCreditsController = new LeaveCreditsController(); EmployeeLeaveCredits employeeLeaveCredits = leaveCreditsController.resetEmployeeLeaveCredits(employee); showErrorMessage("Successfully created payroll to user: "******"admin") { EmployeeControllerInterface employeeController = new EmployeeController(); Employee employee = employeeController.fetchEmployeeByUsername(user.username); if (employee == null || employee.Equals("")) { showErrorMessage("Please input a valid username."); return; } PayrollControllerInterface payslipController = new PayrollController(); payslipController.createPayslip(startDatePeriod.Value, endDatePeriod.Value, employee); } } selectAllCheckBox.Checked = false; showErrorMessage("Successfully create payroll to all users"); } }
public async Task CanGetPaycheck() { foreach (var testAccount in TestAccounts.TyLinAccounts.Accounts) { var employer = EmployerCache.Employers.FirstOrDefault(e => e.Id == testAccount.EmployerId); var repository = new PayrollRepository(); repository.Initialize(employer.ConnectionString); var dispatcher = new PayrollDispatcher(repository); var controller = new PayrollController(dispatcher); controller.ControllerContext.Request = new System.Net.Http.HttpRequestMessage(); controller.ControllerContext.Request.CCHID(testAccount.CchId); var result = await controller.GetPaycheckAsync(employer, testAccount.PaycheckDocumentId); Assert.IsNotNull(result); //Assert.IsNotNull(result.Content); } }
public void SaveData(string json) { // get payroll _payroll = PayrollController.GetById(int.Parse(hdfPayrollId.Text)); if (_payroll == null) { return; } // save data _payroll.Data = json; var table = PayrollController.GetPayrollDetail(null, _payroll.Id, null, null); if (table.Rows.Count > 0) { for (var i = 0; i < table.Rows.Count; i++) { //save payrollInfo var payrollInfo = new PayrollInfoModel() { SalaryBoardId = _payroll.Id, RecordId = table.Rows[i]["RecordId"] != null?Convert.ToInt32(table.Rows[i]["RecordId"].ToString()) : 0, TotalIncome = 0, IndividualTax = 0, EnterpriseSocial = 0, LaborerSocial = 0, ActualSalary = 0, Month = _payroll.Month, Year = _payroll.Year, CreatedBy = "admin", CreatedDate = DateTime.Now, EditedBy = "", EditedDate = DateTime.Now, IsDeleted = false }; //check exist column if (table.Columns.Contains("{0}".FormatWith(Constant.IndividualTax))) { payrollInfo.IndividualTax = table.Rows[i]["IndividualTax"] != null ? Convert.ToDecimal(table.Rows[i]["IndividualTax"].ToString()) : 0; } if (table.Columns.Contains("{0}".FormatWith(Constant.TotalIncome))) { payrollInfo.TotalIncome = table.Rows[i]["TotalIncome"] != null ? Convert.ToInt32(table.Rows[i]["TotalIncome"].ToString()) : 0; } if (table.Columns.Contains("{0}".FormatWith(Constant.EnterpriseSocialInsurance))) { payrollInfo.EnterpriseSocial = table.Rows[i]["EnterpriseSocialInsurance"] != null ? Convert.ToInt32(table.Rows[i]["EnterpriseSocialInsurance"].ToString()) : 0; } if (table.Columns.Contains("{0}".FormatWith(Constant.LaborerSocialInsurance))) { payrollInfo.LaborerSocial = table.Rows[i]["LaborerSocialInsurance"] != null ? Convert.ToInt32(table.Rows[i]["LaborerSocialInsurance"].ToString()) : 0; } if (table.Columns.Contains("{0}".FormatWith(Constant.ActualSalary))) { payrollInfo.ActualSalary = table.Rows[i]["ActualSalary"] != null ? Convert.ToInt32(table.Rows[i]["ActualSalary"].ToString()) : 0; } var checkExistModel = PayrollInfoController.GetUnique(payrollInfo.SalaryBoardId, payrollInfo.RecordId, payrollInfo.Month, payrollInfo.Year); if (checkExistModel != null) { payrollInfo.Id = checkExistModel.Id; payrollInfo.EditedDate = DateTime.Now; payrollInfo.EditedBy = CurrentUser.User.UserName; //update PayrollInfoController.Update(payrollInfo); } else { //create PayrollInfoController.Create(payrollInfo); } } } // update payroll PayrollController.Update(_payroll); }
/// <summary> /// /// </summary> /// <returns></returns> private XtraReport InitPayrollReport(ReportDynamicModel report) { // check payroll config id if (!int.TryParse(report.Argument, out var payrollConfigId) || payrollConfigId <= 0) { // invalid argument return(null); } // set current payroll config id hdfPayrollConfigId.Text = payrollConfigId.ToString(); // check payroll id if (!int.TryParse(hdfPayrollId.Text, out var payrollId) || payrollId <= 0) { // get last payroll var payrolls = PayrollController.GetAll(null, payrollConfigId, hdfSelectedDepartmentIds.Text, null, null, null, false, null, 1); // check result if (payrolls.Count > 0) { // set current payroll id hdfPayrollId.Text = payrolls.First().Id.ToString(); // payroll selected cboPayroll.Text = payrolls.First().Title; } else { // no payroll found return(null); } } else { // get payroll by id var payroll = PayrollController.GetById(payrollId); if (payroll != null) { // get month and year var payrollMonth = payroll.Month; var payrollYear = payroll.Year; // set payroll start date report.StartDate = new DateTime(payrollYear, payrollMonth, 1); // set payroll end date report.EndDate = new DateTime(payrollYear, payrollMonth, DateTime.DaysInMonth(payrollYear, payrollMonth)); // payroll selected cboPayroll.Text = payroll.Title; } else { // no payroll found return(null); } } // init payroll report XtraReport rpHRM_Payroll = new rpHRM_Payroll_A4_Landscape(report.Id, payrollId); // check paper kind and orientation switch (report.PaperKind) { case ReportPaperKind.A4: switch (report.Orientation) { case ReportOrientation.Landscape: rpHRM_Payroll = new rpHRM_Payroll_A4_Landscape(report.Id, payrollId); break; case ReportOrientation.Portrait: rpHRM_Payroll = new rpHRM_Payroll_A4_Potrait(report.Id, payrollId); break; } break; case ReportPaperKind.A3: switch (report.Orientation) { case ReportOrientation.Landscape: rpHRM_Payroll = new rpHRM_Payroll_A3_Landscape(report.Id, payrollId); break; case ReportOrientation.Portrait: rpHRM_Payroll = new rpHRM_Payroll_A3_Potrait(report.Id, payrollId); break; } break; case ReportPaperKind.A2: switch (report.Orientation) { case ReportOrientation.Landscape: rpHRM_Payroll = new rpHRM_Payroll_A2_Landscape(report.Id, payrollId); break; case ReportOrientation.Portrait: rpHRM_Payroll = new rpHRM_Payroll_A2_Landscape(report.Id, payrollId); break; } break; } // init extra report return(rpHRM_Payroll); }
public PayrollControllerUnitTests() { _controller = new PayrollController(_appSettingsMock.Object, _serviceMock.Object); }
/// <summary> /// Insert or Update Catalog /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void InsertOrUpdate(object sender, DirectEventArgs e) { var payrollModel = new PayrollModel(); // check id if (!string.IsNullOrEmpty(hdfSalaryBoardListId.Text) && Convert.ToInt32(hdfSalaryBoardListId.Text) > 0) { var result = PayrollController.GetById(Convert.ToInt32(hdfSalaryBoardListId.Text)); if (result != null) { payrollModel = result; } } // set new props if (!string.IsNullOrEmpty(hdfConfigId.Text)) { payrollModel.ConfigId = Convert.ToInt32(hdfConfigId.Text); } if (!string.IsNullOrEmpty(hdfMonth.Text)) { payrollModel.Month = Convert.ToInt32(hdfMonth.Text); } if (!string.IsNullOrEmpty(hdfYear.Text)) { payrollModel.Year = Convert.ToInt32(hdfYear.Text); } payrollModel.Title = txtName.Text; payrollModel.Code = txtCode.Text; payrollModel.Description = txtNote.Text; if (payrollModel.Id > 0) { payrollModel.EditedDate = DateTime.Now; payrollModel.EditedBy = CurrentUser.User.UserName; // update var resultModel = PayrollController.Update(payrollModel); // check if payroll code exists if (resultModel != null) { // show success message Dialog.ShowNotification("Lưu thành công"); wdSetting.Hide(); ResetForm(); } else { Dialog.ShowNotification("Mã bảng lương đã tồn tại"); } } else { payrollModel.CreatedDate = DateTime.Now; payrollModel.CreatedBy = CurrentUser.User.UserName; payrollModel.EditedDate = DateTime.Now; payrollModel.EditedBy = CurrentUser.User.UserName; // create payroll var resultModel = PayrollController.Create(payrollModel); // check if payroll code exists if (resultModel != null) { // init list var listEvents = GetAllEvents(resultModel, true); // create salaryBoardInfo foreach (var employee in chkEmployeeRowSelection.SelectedRows) { var salaryInfo = new SalaryBoardInfoModel(new hr_SalaryBoardInfo()) { RecordId = Convert.ToInt32(employee.RecordID), SalaryBoardId = resultModel.Id, CreatedDate = DateTime.Now, EditedDate = DateTime.Now }; //Lay tu timeSheet GetDataFromTimeSheet(salaryInfo, listEvents); //Lay tu sal_SalaryDecision EditDataSalary(salaryInfo.RecordId, salaryInfo); //create SalaryBoardInfoController.Create(salaryInfo); } // show success message Dialog.ShowNotification("Lưu thành công"); wdSetting.Hide(); ResetForm(); } else { Dialog.ShowNotification("Mã bảng lương đã tồn tại"); } } grdSalaryBoardList.Reload(); }