Exemple #1
0
        public static DataColumn GetDataColumnFrom(string excelFileNameWithoutExtension)
        {
            var       fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Data\\{excelFileNameWithoutExtension}.xls");
            DataTable dataTable;

            using (var workBook = new WorkBook())
            {
                workBook.read(fileName);
                dataTable = workBook.ExportDataTable(0, 0, workBook.LastRow + 1, workBook.LastCol + 1);
            }

            var timeValues = new List <float>();
            var concValues = new List <float>();

            foreach (DataRow row in dataTable.Rows)
            {
                timeValues.Add(row[0].ConvertedTo <float>());
                concValues.Add(row[1].ConvertedTo <float>());
            }


            var baseGrid = new BaseGrid("Time", "Time", Constants.Dimension.NO_DIMENSION)
            {
                Values = timeValues.ToArray()
            };

            return(new DataColumn("Value", excelFileNameWithoutExtension, Constants.Dimension.NO_DIMENSION, baseGrid)
            {
                Values = concValues.ToArray()
            });
        }
        internal DataTable GetDataTable(string filePath)
        {
            WorkBook workBook = new WorkBook();

            this.ReadFile(filePath, workBook);
            DataTable dt = workBook.ExportDataTable(0, 0, workBook.LastRow + 1, workBook.LastCol + 1, true);

            return(dt);
        }
        protected void ImportFile(object sender, DirectEventArgs e)
        {
            try
            {
                var workbook = new WorkBook();
                var fromRow  = 2;
                var toRow    = 2;

                // upload file

                var path = string.Empty;
                if (fileExcel.HasFile)
                {
                    path = UploadFile(fileExcel, Constant.PathTemplate);
                    if (path != null)
                    {
                        // Read data from excel
                        workbook.readXLSX(path);

                        // Check validation workbook
                        if (CheckValidation(workbook, out fromRow, out toRow) == false)
                        {
                            return;
                        }

                        // Export to datatable
                        var dataTable = workbook.ExportDataTable(fromRow - 1,          //first row
                                                                 0,                    //first col
                                                                 toRow - 1,            //last row
                                                                 workbook.LastCol + 1, //last col
                                                                 false,                //first row as header
                                                                 false                 //convert to DateTime object if it match date pattern
                                                                 );

                        hdfDataTable.Text = JSON.Serialize(dataTable);

                        ContinueProcess(count);
                    }
                }
                else
                {
                    Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn.");
                    return;
                }
            }
            catch (Exception ex)
            {
                Dialog.Alert("Có lỗi xảy ra trong quá trình xử lý {0}".FormatWith(ex.Message));
            }
        }
Exemple #4
0
 private static IEnumerable <DataTable> dataTables(string fileName, string sheetName, bool firstRowAsCaption)
 {
     using (var workbook = new WorkBook())
     {
         workbook.ReadExcelFile(fileName);
         for (var i = 0; i < workbook.NumSheets; i++)
         {
             if (!String.IsNullOrEmpty(sheetName) && !workbook.getSheetName(i).Equals(sheetName))
             {
                 continue;
             }
             workbook.Sheet = i;
             //+1 because lastrow starts counting from 0, but export counts from 1
             yield return(workbook.ExportDataTable(0, 0, workbook.LastRow + 1, workbook.LastCol + 1, firstRowAsCaption));
         }
     }
 }
Exemple #5
0
        protected void fileAttachment_FileSelected(object sender, DirectEventArgs e)
        {
            try
            {
                var workbook = new WorkBook();

                var path = string.Empty;
                if (fileExcel.HasFile)
                {
                    path = UploadFile(fileExcel, relativePath);
                    if (path != null)
                    {
                        // Read data from excel
                        workbook.readXLSX(path);

                        if (!txtSheetName.IsEmpty)
                        {
                            workbook.Sheet = workbook.findSheetByName(txtSheetName.Text);
                        }

                        // Export to datatable
                        var dataTable = workbook.ExportDataTable(1,                    //first row
                                                                 0,                    //first col
                                                                 workbook.LastRow,     //last row
                                                                 workbook.LastCol + 1, //last col
                                                                 true,                 //first row as header
                                                                 true                  //convert to DateTime object if it match date pattern
                                                                 );

                        hdfDataTable.Text = JSON.Serialize(dataTable);
                    }
                }
                else
                {
                    Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn.");
                    return;
                }
            }
            catch (Exception ex)
            {
                Dialog.Alert("Có lỗi xảy ra trong quá trình xử lý {0}".FormatWith(ex.Message));
            }
        }
Exemple #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnUpdateImportExcel_Click(object sender, DirectEventArgs e)
        {
            var workbook = new WorkBook();

            // upload file

            if (fileExcel.HasFile)
            {
                var path = UploadFile(fileExcel, Constant.PathTemplate);
                if (path != null)
                {
                    // Read data from excel
                    workbook.readXLSX(Path.Combine(Server.MapPath("~/"), Constant.PathTemplate, path));

                    // Export to datatable
                    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
                                                             );

                    // get config by ID
                    var salaryBoardConfig = SalaryBoardConfigController.GetAll(int.Parse(hdfConfigId.Text), null, null, null,
                                                                               SalaryConfigDataType.DynamicValue, null, null);

                    foreach (DataRow row in dataTable.Rows)
                    {
                        // get employee code
                        var employeeCode = row[EmployeeCode].ToString();
                        if (string.IsNullOrEmpty(employeeCode))
                        {
                            continue;
                        }

                        // get record by employee code
                        var record = RecordController.GetByEmployeeCode(employeeCode);

                        foreach (DataColumn col in dataTable.Columns)
                        {
                            foreach (var item in salaryBoardConfig)
                            {
                                // check column name exists
                                if (item.Display != col.ColumnName)
                                {
                                    continue;
                                }

                                // check empty string
                                var value = Convert.ToString(row[col], CultureInfo.InvariantCulture);
                                if (string.IsNullOrEmpty(value))
                                {
                                    continue;
                                }

                                // check if dynamic column value exists
                                var salaryBoardDynamicColumn = SalaryBoardDynamicColumnController.GetAll(null, record.Id.ToString(), int.Parse(hdfPayrollId.Text), item.ColumnCode, true, null, null);

                                if (salaryBoardDynamicColumn.Count > 0)
                                {
                                    // update dynamic column value
                                    salaryBoardDynamicColumn.First().Value = value;
                                    SalaryBoardDynamicColumnController.Update(salaryBoardDynamicColumn.First());
                                }
                                else
                                {
                                    // create dynamic column value
                                    var salaryBoardConfigColumn = new SalaryBoardDynamicColumnModel()
                                    {
                                        RecordId      = record.Id,
                                        SalaryBoardId = int.Parse(hdfPayrollId.Text),
                                        ColumnCode    = item.ColumnCode,
                                        Value         = value,
                                        Display       = item.Display
                                    };
                                    SalaryBoardDynamicColumnController.Create(salaryBoardConfigColumn);
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn.");
                return;
            }
            Dialog.Alert("Cập nhật thành công");
            grpPayrollDetail.Reload();
        }
Exemple #7
0
        protected void btnUpdateImportExcel_Click(object sender, DirectEventArgs e)
        {
            var workbook = new WorkBook();
            var fromRow  = 2;
            var toRow    = 2;

            // upload file

            var path = string.Empty;

            if (fileExcel.HasFile)
            {
                path = UploadFile(fileExcel, PathTemplate);
                if (path != null)
                {
                    // Read data from excel
                    workbook.readXLSX(path);

                    // Check validation workbook
                    if (CheckValidation(workbook, out fromRow, out toRow) == false)
                    {
                        return;
                    }

                    // Export to datatable
                    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
                                                             );

                    var salaryBoardConfig = hr_SalaryBoardConfigServices.GetByConfigId(null, int.Parse(hdfConfigId.Text));
                    foreach (DataRow row in dataTable.Rows)
                    {
                        var employeeCode = row[EmployeeCodeColumn].ToString();
                        if (!string.IsNullOrEmpty(employeeCode))
                        {
                            var recordId = hr_RecordServices.GetRecordIdByEmployeeCode(employeeCode);
                            foreach (DataColumn col in dataTable.Columns)
                            {
                                foreach (var item in salaryBoardConfig)
                                {
                                    if (item.Display == col.ColumnName)
                                    {
                                        // check if item exists
                                        var salaryBoardDynamicColumn = hr_SalaryBoardDynamicColumnService.GetBoardDynamicColumn(recordId, item.ColumnCode, int.Parse(hdfSalaryBoardListID.Text));
                                        var value = Convert.ToString(row[col], CultureInfo.InvariantCulture);
                                        if (salaryBoardDynamicColumn != null)
                                        {
                                            salaryBoardDynamicColumn.Value = value;
                                            hr_SalaryBoardDynamicColumnService.Update(salaryBoardDynamicColumn);
                                        }
                                        else
                                        {
                                            var salaryBoardConfigColumn = new hr_SalaryBoardDynamicColumn()
                                            {
                                                RecordId      = recordId,
                                                SalaryBoardId = int.Parse(hdfSalaryBoardListID.Text),
                                                ColumnCode    = item.ColumnCode,
                                                Value         = value,
                                                IsInUsed      = true,
                                                CreatedDate   = DateTime.Now,
                                                Display       = item.Display
                                            };
                                            hr_SalaryBoardDynamicColumnService.Create(salaryBoardConfigColumn);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn.");
                return;
            }
            ResetFormUpdate();
            Dialog.Alert("Cập nhật thành công");
        }
        /// <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.");
            }
        }
Exemple #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ImportFile(object sender, DirectEventArgs e)
        {
            try
            {
                var workbook = new WorkBook();

                if (fileExcel.HasFile)
                {
                    var path = UploadFile(fileExcel, Constant.PathTemplate);

                    if (path == null)
                    {
                        return;
                    }

                    // Read data from excel
                    workbook.readXLSX(Path.Combine(Server.MapPath("~/"), Constant.PathTemplate, path));

                    if (!txtSheetName.IsEmpty)
                    {
                        workbook.Sheet = workbook.findSheetByName(txtSheetName.Text);
                    }

                    // Export to datatable
                    var dataTable = workbook.ExportDataTable(1,                    //first row
                                                             0,                    //first col
                                                             workbook.LastRow,     //last row
                                                             workbook.LastCol + 1, //last col
                                                             true,                 //first row as header
                                                             true                  //convert to DateTime object if it match date pattern
                                                             );

                    // count success create
                    var successRecords = new List <int>();
                    foreach (DataRow row in dataTable.Rows)
                    {
                        // Check employee code
                        var employeeCode = row["EmployeeCode"].ToString().Trim();
                        var idNumber     = row["IDNumber"].ToString().Trim();
                        if (!string.IsNullOrEmpty(employeeCode))
                        {
                            var recordList = RecordController.CheckExistIDNumberAndEmployeeCode(null, null, employeeCode);
                            if (recordList != null && recordList.Count > 0)
                            {
                                continue;
                            }
                        }
                        // Check id number
                        if (!string.IsNullOrEmpty(idNumber))
                        {
                            var recordList = RecordController.CheckExistIDNumberAndEmployeeCode(null, idNumber, null);
                            if (recordList != null && recordList.Count > 0)
                            {
                                continue;
                            }
                        }
                        // Create new record
                        var record = new hr_Record
                        {
                            // Set default work status
                            WorkStatusId = CatalogWorkStatusController.GetByGroup(RecordStatus.Working).Id
                        };

                        foreach (DataColumn col in dataTable.Columns)
                        {
                            if (string.IsNullOrEmpty(row[col].ToString()))
                            {
                                continue;
                            }
                            var          condition = " [Name] = N'{0}' ".FormatWith(row[col]);
                            cat_Location location;
                            switch (col.ColumnName)
                            {
                            case nameof(hr_Record.FullName):
                                record.FullName = row[col].ToString();
                                // lấy họ và đệm từ họ tên
                                var position = record.FullName.LastIndexOf(' ');
                                record.Name = position == -1 ? record.FullName : record.FullName.Substring(position + 1).Trim();
                                break;

                            case nameof(hr_Record.Sex):
                                record.Sex = row[col].ToString().Equals("Nam");
                                break;

                            case nameof(hr_Record.BirthPlaceWardId):
                                location = cat_LocationServices.GetByCondition(condition);
                                record.BirthPlaceWardId = location.Id;
                                break;

                            case nameof(hr_Record.BirthPlaceDistrictId):
                                location = cat_LocationServices.GetByCondition(condition);
                                record.BirthPlaceDistrictId = location.Id;
                                break;

                            case nameof(hr_Record.BirthPlaceProvinceId):
                                location = cat_LocationServices.GetByCondition(condition);
                                record.BirthPlaceProvinceId = location.Id;
                                break;

                            case nameof(hr_Record.HometownWardId):
                                location = cat_LocationServices.GetByCondition(condition);
                                record.HometownWardId = location.Id;
                                break;

                            case nameof(hr_Record.HometownDistrictId):
                                location = cat_LocationServices.GetByCondition(condition);
                                record.HometownDistrictId = location.Id;
                                break;

                            case nameof(hr_Record.HometownProvinceId):
                                location = cat_LocationServices.GetByCondition(condition);
                                record.HometownProvinceId = location.Id;
                                break;

                            default:
                                // TODO : need create util function
                                var reg     = @"\(([^)]*)\)";
                                var propVal = row[col];
                                if (Regex.IsMatch(propVal.ToString(), reg))
                                {
                                    propVal = Regex.Match(propVal.ToString(), reg).Groups[1].Value;
                                }
                                //get the property information based on the type
                                var propInfo = record.GetType().GetProperty(col.ColumnName);
                                //find the property type
                                if (propInfo == null)
                                {
                                    break;
                                }
                                var propType = propInfo.PropertyType;

                                //equivalent to the specified object.
                                if (propType.IsEnum)
                                {
                                    propVal = Enum.ToObject(propType, int.Parse(propVal.ToString()));
                                }
                                if (propType.Name == typeof(Nullable <>).Name)
                                {
                                    if (Nullable.GetUnderlyingType(propType) == typeof(DateTime))
                                    {
                                        if (!DateTime.TryParseExact(row[col].ToString(), "dd/MM/yyyy",
                                                                    CultureInfo.CurrentCulture, DateTimeStyles.None, out var date))
                                        {
                                            break;
                                        }
                                        propVal = Convert.ChangeType(date, typeof(DateTime));
                                    }
                                    else
                                    {
                                        propVal = Convert.ChangeType(propVal, Nullable.GetUnderlyingType(propType));
                                    }
                                }
                                else
                                {
                                    propVal = Convert.ChangeType(propVal, propType);
                                }

                                //Set the value of the property
                                propInfo.SetValue(record, propVal, null);
                                break;
                            }
                        }
                        // add record
                        hr_RecordServices.Create(record);
                        successRecords.Add(dataTable.Rows.IndexOf(row));
                    }
                    Dialog.Alert("Thêm thành công " + successRecords.Count + " bản ghi");
                    grpImportExcel.Reload();
                }
                else
                {
                    Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn.");
                }
            }
            catch (Exception ex)
            {
                Dialog.ShowError("Đã có lỗi xảy ra: " + ex.Message);
            }
        }
Exemple #10
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="path">Đường dẫn đến file excel</param>
        public static List <T> ImportExcel <T>(string path) where T : new()
        {
            try
            {
                var list = new List <T>();
                if (path != null)
                {
                    var workbook = new WorkBook();
                    // Read data from excel
                    workbook.readXLSX(path);

                    // Export to datatable
                    var dataTable = workbook.ExportDataTable(1,                    //first row
                                                             0,                    //first col
                                                             workbook.LastRow,     //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)
                    {
                        var obj = new T();
                        foreach (DataColumn col in dataTable.Columns)
                        {
                            foreach (var property in typeof(T).GetProperties())
                            {
                                // get prop description
                                var attributeDisplayName = property.GetCustomAttribute(typeof(DisplayNameAttribute));
                                var attributeType        = property.GetCustomAttribute(typeof(TypeConverterAttribute));
                                if (attributeDisplayName != null && col.ColumnName == property.Name && property.CanWrite)
                                {
                                    var value = row[col];
                                    if (attributeType != null)
                                    {
                                        var reg = @"\(([^)]*)\)";
                                        if (Regex.IsMatch(value.ToString(), reg))
                                        {
                                            value = Regex.Match(value.ToString(), reg).Groups[1].Value;
                                        }
                                    }
                                    if (!property.PropertyType.IsEnum)
                                    {
                                        var val = value;
                                        if (!(val is DBNull))
                                        {
                                            typeof(T).InvokeMember(property.Name, BindingFlags.SetProperty, null, obj,
                                                                   new[] { val });
                                        }
                                    }
                                    else
                                    {
                                        var val = Enum.ToObject(property.PropertyType, Convert.ToInt32(value));
                                        if (!(val is DBNull))
                                        {
                                            typeof(T).InvokeMember(property.Name, BindingFlags.SetProperty, null, obj,
                                                                   new[] { val });
                                        }
                                    }
                                }
                            }
                        }
                        // create
                        list.Add(obj);
                    }
                }

                return(list);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Exemple #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnUpdateImportExcel_Click(object sender, DirectEventArgs e)
        {
            var workbook = new WorkBook();

            // upload file

            if (fileExcel.HasFile)
            {
                var path = UploadFile(fileExcel, Constant.PathTemplate);
                if (path != null)
                {
                    // Read data from excel
                    workbook.readXLSX(Path.Combine(Server.MapPath("~/"), Constant.PathTemplate, path));

                    // Check validation workbook
                    if (CheckValidation(workbook, out _, out _, txtFromRow, txtToRow, txtSheetName) == false)
                    {
                        return;
                    }

                    // Export to datatable
                    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
                                                             );

                    var interview     = InterviewController.GetById(Convert.ToInt32(hdfId.Text));
                    var interviewDate = new DateTime();
                    if (interview != null)
                    {
                        interviewDate = interview.InterviewDate;
                    }

                    foreach (DataRow row in dataTable.Rows)
                    {
                        //get employee code
                        var employeeCode = row[EmployeeCode].ToString();
                        if (string.IsNullOrEmpty(employeeCode))
                        {
                            continue;
                        }

                        // get record by employee code
                        var candidate = CandidateController.GetByCode(employeeCode, CandidateType.Interview);
                        //check if value exists
                        var candidateInterviewModel = CandidateInterviewController.GetUnique(Convert.ToInt32(hdfId.Text), candidate.RecordId);
                        if (candidateInterviewModel != null)
                        {
                            //update value
                            EditDataToModel(dataTable, row, candidateInterviewModel, interviewDate);
                            candidateInterviewModel.EditedBy   = CurrentUser.User.UserName;
                            candidateInterviewModel.EditedDate = DateTime.Now;
                            CandidateInterviewController.Update(candidateInterviewModel);
                        }
                        else
                        {
                            var model = new CandidateInterviewModel()
                            {
                                RecordId    = candidate.RecordId,
                                InterviewId = Convert.ToInt32(hdfId.Text),
                                EditedBy    = CurrentUser.User.UserName,
                                EditedDate  = DateTime.Now,
                                CreatedBy   = CurrentUser.User.UserName,
                                CreatedDate = DateTime.Now
                            };

                            EditDataToModel(dataTable, row, model, interviewDate);
                            //create
                            CandidateInterviewController.Create(model);
                        }
                    }
                }
            }
            else
            {
                Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn.");
                return;
            }

            Dialog.Alert("Cập nhật thành công");
            //Reset form excel
            fileExcel.Reset();
            txtSheetName.Reset();
            //close window
            wdImportExcelFile.Hide();
        }
Exemple #12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="keyword"></param>
        /// <param name="payrollId"></param>
        /// <param name="order"></param>
        /// <param name="limit"></param>
        /// <returns></returns>
        public static DataTable GetPayrollDetail(string keyword, int payrollId, string order, int?limit)
        {
            // get payroll
            var payroll = GetById(payrollId);

            if (payroll == null)
            {
                return(null);
            }

            // get salary board info
            var salaryBoardInfos = SalaryBoardInfoController.GetAll(keyword, payrollId.ToString(), order, limit);

            if (payroll.Status == PayrollStatus.Locked)
            {
                return(JsonConvert.DeserializeObject <DataTable>(payroll.Data));
            }

            // get salary board config
            var salaryBoardConfigs = SalaryBoardConfigController.GetAll(payroll.ConfigId, true, null, null, null, null, null);

            // get payroll dynamic data
            var salaryBoardDynamicColumns = SalaryBoardDynamicColumnController.GetAll(null, null, payroll.Id, null, true, null, null);


            var workbook = new WorkBook {
                AutoCalc = false
            };

            // generate default column
            workbook.setText("A1", "Id");
            workbook.setText("B1", "RecordId");
            workbook.setText("C1", "FullName");
            workbook.setText("D1", "EmployeeCode");
            workbook.setText("E1", "PositionName");
            // generate other column
            foreach (var config in salaryBoardConfigs)
            {
                // set column name as Property name
                workbook.setText(config.ColumnExcel + 1, config.ColumnCode);
            }

            // fill data into table
            for (var i = 0; i < salaryBoardInfos.Count; i++)
            {
                workbook.setNumber("A{0}".FormatWith(i + 2), salaryBoardInfos[i].Id);
                workbook.setNumber("B{0}".FormatWith(i + 2), salaryBoardInfos[i].RecordId);
                workbook.setText("C{0}".FormatWith(i + 2), salaryBoardInfos[i].FullName);
                workbook.setText("D{0}".FormatWith(i + 2), salaryBoardInfos[i].EmployeeCode);
                workbook.setText("E{0}".FormatWith(i + 2), salaryBoardInfos[i].PositionName);

                // add value for dynamic column
                foreach (var config in salaryBoardConfigs)
                {
                    var columnExcel = config.ColumnExcel + (i + 2);
                    switch (config.DataType)
                    {
                    case SalaryConfigDataType.FieldValue:
                        var type     = salaryBoardInfos[i].GetType();
                        var propInfo = type.GetProperty(config.ColumnCode);
                        if (propInfo == null)
                        {
                            break;
                        }
                        var value = Convert.ToString(propInfo.GetValue(salaryBoardInfos[i], BindingFlags.GetProperty, null, null, CultureInfo.InvariantCulture), CultureInfo.InvariantCulture);
                        // convert to double
                        if (double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out var result))
                        {
                            workbook.setNumber(columnExcel, result);
                        }
                        else
                        {
                            workbook.setText(columnExcel, value);
                        }
                        break;

                    case SalaryConfigDataType.FixedValue:
                    case SalaryConfigDataType.FieldFormula:
                    case SalaryConfigDataType.Formula:
                        workbook.setFormula(columnExcel, config.Formula.FormatWith(i + 2).TrimStart('='));
                        break;

                    case SalaryConfigDataType.DynamicValue:
                        var findObj = salaryBoardDynamicColumns.Find(o =>
                                                                     o.RecordId == salaryBoardInfos[i].RecordId && o.ColumnCode == config.ColumnCode);
                        if (findObj != null)
                        {
                            // convert to double
                            if (double.TryParse(findObj.Value, NumberStyles.Float, CultureInfo.InvariantCulture, out var result2))
                            {
                                workbook.setNumber(columnExcel, result2);
                            }
                            else
                            {
                                workbook.setText(columnExcel, findObj.Value);
                            }
                        }
                        else
                        {
                            workbook.setText(columnExcel, string.Empty);
                        }
                        break;

                    default:
                        workbook.setText(columnExcel, string.Empty);
                        break;
                    }
                }
            }
            workbook.recalc();
            var table = workbook.ExportDataTable(0, 0, workbook.LastRow + 1, workbook.LastCol + 1);

            return(workbook.ExportDataTable(0, 0, workbook.LastRow + 1, workbook.LastCol + 1));
        }
Exemple #13
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnUpdateImportExcel_Click(object sender, DirectEventArgs e)
        {
            var workbook = new WorkBook();

            // upload file

            if (fileExcel.HasFile)
            {
                var path = UploadFile(fileExcel, Constant.PathTemplate);
                if (path != null)
                {
                    // Read data from excel
                    workbook.readXLSX(Path.Combine(Server.MapPath("~/"), Constant.PathTemplate, path));

                    // Check validation workbook
                    if (CheckValidation(workbook, out _, out _, txtFromRow, txtToRow, txtSheetName) == false)
                    {
                        return;
                    }

                    // Export to datatable
                    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
                                                             );

                    var argumentModels = ArgumentController.GetAll(null, false, KpiStatus.Active, null, null, null);
                    foreach (DataRow row in dataTable.Rows)
                    {
                        //get employee code
                        var employeeCode = row[EmployeeCode].ToString();
                        if (string.IsNullOrEmpty(employeeCode))
                        {
                            continue;
                        }

                        // get record by employee code
                        var record = RecordController.GetByEmployeeCode(employeeCode);

                        foreach (DataColumn col in dataTable.Columns)
                        {
                            foreach (var argument in argumentModels)
                            {
                                //check column name exists
                                if (argument.Name != col.ColumnName)
                                {
                                    continue;
                                }

                                //check empty string
                                var value = Convert.ToString(row[col], CultureInfo.InvariantCulture);
                                if (string.IsNullOrEmpty(value))
                                {
                                    continue;
                                }

                                //check if value exists
                                var employeeArgument = EmployeeArgumentController.GetUnique(Convert.ToInt32(hdfGroup.Text), record.Id, argument.Id,
                                                                                            Convert.ToInt32(hdfMonth.Text), Convert.ToInt32(hdfYear.Text));
                                if (employeeArgument != null)
                                {
                                    //update value
                                    employeeArgument.Value   = value;
                                    employeeArgument.GroupId = !string.IsNullOrEmpty(hdfGroup.Text)
                                        ? Convert.ToInt32(hdfGroup.Text)
                                        : 0;
                                    employeeArgument.EditedBy   = CurrentUser.User.UserName;
                                    employeeArgument.EditedDate = DateTime.Now;
                                    EmployeeArgumentController.Update(employeeArgument);
                                }
                                else
                                {
                                    var model = new EmployeeArgumentModel()
                                    {
                                        RecordId   = record.Id,
                                        ArgumentId = argument.Id,
                                        GroupId    = !string.IsNullOrEmpty(hdfGroup.Text)
                                            ? Convert.ToInt32(hdfGroup.Text)
                                            : 0,
                                        Month = Convert.ToInt32(hdfMonth.Text),
                                        Year  = Convert.ToInt32(hdfYear.Text),
                                        Value = value
                                    };

                                    EmployeeArgumentController.Create(model);
                                }
                            }
                        }
                    }
                    //reset
                    hdfGroup.Reset();
                    cboGroup.Reset();
                    hdfDepartmentId.Reset();
                    cboDepartment.Reset();
                }
            }
            else
            {
                Dialog.Alert("Bạn chưa chọn tệp tin đính kèm. Vui lòng chọn.");
                return;
            }

            Dialog.Alert("Cập nhật thành công");
            //Reset form excel
            fileExcel.Reset();
            txtSheetName.Reset();
            //reload grid
            gpEmployeeArgument.Reload();
        }
Exemple #14
0
        private void openFD_FileOk(object sender, CancelEventArgs e)
        {
            try
            {
                ASignal.Clear();
                KursCurves.Clear();
                comboSignalsAprox.Items.Clear();

                var wb = new WorkBook();
                wb.readXLSX(openFD.FileName);
                DataTable dt = wb.ExportDataTable();
                double t = 0;
                double d = 0.01;
                for (int j = 2; j < dt.Columns.Count; j++)
                {
                    string key = dt.Rows[0][j].ToString();
                    comboSignalsAprox.Items.Add(key);
                    KursCurves.Add(key, new PointPairList());
                    t = 0;
                    for (int i = 1; i < dt.Rows.Count; i++, t += d)
                    {
                        object o = dt.Rows[i][j];
                        KursCurves[key].Add(new PointPair(i, Convert.ToDouble(o)));
                    }
                }
                comboSignalsAprox.SelectedIndex = 0;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }