/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void storeAllowanceCatalog_OnRefreshData(object sender, StoreRefreshDataEventArgs e) { try { var salaryAllowances = new List <SalaryAllowanceModel>(); if (!string.IsNullOrEmpty(hdfId.Text) && int.Parse(hdfId.Text) > 0) { salaryAllowances = SalaryAllowanceController.GetAll(null, int.Parse(hdfId.Text), null, null, null); } storeAllowanceCatalog.DataSource = CreateSalaryAllowanceTable(salaryAllowances); storeAllowanceCatalog.DataBind(); } catch (Exception ex) { Dialog.ShowError(ex.Message); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUpdateImportExcel_Click(object sender, DirectEventArgs e) { var workbook = new WorkBook(); if (fileExcel.HasFile) { var path = UploadFile(fileExcel, Constant.PathTemplate); if (path != null) { // init list changes var allowanceChanges = new List <SalaryAllowanceModel>(); // Read data from excel workbook.readXLSX(Path.Combine(Server.MapPath("~/"), Constant.PathTemplate, path)); // Export to data table var dataTable = workbook.ExportDataTable(0, //first row 0, //first col workbook.LastRow + 1, //last row workbook.LastCol + 1, //last col true, //first row as header false //convert to DateTime object if it match date pattern ); foreach (DataRow row in dataTable.Rows) { // get value from cell var allowanceCode = row[nameof(SalaryAllowanceModel.AllowanceCode)].ToString(); var allowanceName = row[nameof(SalaryAllowanceModel.AllowanceName)].ToString(); var factor = row[nameof(SalaryAllowanceModel.Factor)].ToString(); var percent = row[nameof(SalaryAllowanceModel.Percent)].ToString(); var value = row[nameof(SalaryAllowanceModel.Value)].ToString(); var salaryDecisionId = int.TryParse(hdfId.Text, out var result) && result > 0 ? result : 0; // check condition if (string.IsNullOrEmpty(allowanceCode)) { continue; } if (!decimal.TryParse(factor, out var factorResult)) { continue; } if (!decimal.TryParse(percent, out var percentResult)) { continue; } if (!decimal.TryParse(value, out var valueResult)) { continue; } // get catalog by code var catalogAllowance = CatalogAllowanceController.GetByCode(allowanceCode); if (catalogAllowance == null) { continue; } // init model var salaryAllowance = new SalaryAllowanceModel(); // get allowance by decision and code var salaryAllowances = SalaryAllowanceController.GetAll(null, salaryDecisionId, allowanceCode, null, 1); if (salaryAllowances.Any()) { salaryAllowance = salaryAllowances.First(); } else { salaryAllowance.Id = 0; salaryAllowance.AllowanceCode = allowanceCode; } // check are there any changes if (salaryAllowance.Factor != factorResult || salaryAllowance.Percent != percentResult || salaryAllowance.Value != valueResult) { // set value salaryAllowance.AllowanceName = allowanceName; salaryAllowance.Factor = factorResult; salaryAllowance.Percent = percentResult; salaryAllowance.Value = valueResult; // save data to hidden field SaveEditData(JSON.Serialize(salaryAllowance)); // add data to list changes allowanceChanges.Add(salaryAllowance); } if (salaryAllowance.Factor != 0 || salaryAllowance.Percent != 0 || salaryAllowance.Value != 0) { allowanceChanges.Add(salaryAllowance); } } // hide window wdExcel.Hide(); // bind data storeAllowanceCatalog.DataSource = CreateSalaryAllowanceTable(allowanceChanges); storeAllowanceCatalog.DataBind(); } Dialog.ShowNotification("Thêm thành công"); } else { Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn."); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void DownloadTemplate_Click(object sender, DirectEventArgs e) { // get allowance var salaryAllowances = new List <SalaryAllowanceModel>(); if (!string.IsNullOrEmpty(hdfId.Text) && int.Parse(hdfId.Text) > 0) { salaryAllowances = SalaryAllowanceController.GetAll(null, int.Parse(hdfId.Text), null, null, null); } // init table var workBook = new WorkBook(); var dataTable = CreateSalaryAllowanceTable(salaryAllowances); // fixed column var fixedColumnNames = new[] { nameof(SalaryAllowanceModel.AllowanceName), nameof(SalaryAllowanceModel.AllowanceCode), nameof(SalaryAllowanceModel.Factor), nameof(SalaryAllowanceModel.Percent), nameof(SalaryAllowanceModel.Value) }; var fixedColumns = new Dictionary <string, string> { { nameof(SalaryAllowanceModel.AllowanceName), "Tên phụ cấp" }, { nameof(SalaryAllowanceModel.AllowanceCode), "Mã phụ cấp" }, { nameof(SalaryAllowanceModel.Factor), "Hệ số" }, { nameof(SalaryAllowanceModel.Percent), "Phần trăm" }, { nameof(SalaryAllowanceModel.Value), "Giá trị" } }; var data = new DataTable(); data.Rows.Add(); data.Rows.Add(); foreach (var item in fixedColumns) { var col = data.Columns.Add(); col.ColumnName = item.Key; data.Rows[0][col] = item.Value; data.Rows[1][col] = item.Key; } data.Merge(dataTable); // delete column var deleteColumnNames = new List <string>(); // add remove column to list foreach (DataColumn column in dataTable.Columns) { if (fixedColumnNames.Contains(column.ColumnName)) { continue; } deleteColumnNames.Add(column.ColumnName); } // remove column deleteColumnNames.ForEach(col => dataTable.Columns.Remove(col)); // set allowance name dataTable.Columns[nameof(SalaryAllowanceModel.AllowanceName)].SetOrdinal(0); workBook.ImportDataTable(dataTable, true, 0, 0, dataTable.Rows.Count + 1, dataTable.Columns.Count + 1); ExportToExcel(dataTable, "~/" + Constant.PathTemplate, ImportAllowanceExcelFile); }