示例#1
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
                                                             );

                    //check limit package
                    var limitPackage = SystemConfigController.GetLimitPackage();
                    if (dataTable.Rows.Count > limitPackage)
                    {
                        Dialog.Alert("File Excel của bạn đã vượt quá giới hạn gói phần mềm đã đăng ký. Vui lòng đăng ký thêm để sử dụng.");
                        return;
                    }

                    // 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);
            }
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSaveEmployee_Click(object sender, DirectEventArgs e)
        {
            var record    = new RecordModel();
            var candidate = new CandidateModel();

            if (!string.IsNullOrEmpty(hdfRecordId.Text))
            {
                record.EmployeeCode = txtEmployeeCode.Text;
                if (!string.IsNullOrEmpty(txtEmployeeCode.Text.Trim()))
                {
                    var recordList = RecordController.CheckExistIDNumberAndEmployeeCode(null, null, txtEmployeeCode.Text);
                    if (recordList != null && recordList.Count > 1)
                    {
                        Dialog.ShowError("Mã nhân viên đã tồn tại. Vui lòng nhập mã khác.");
                        txtEmployeeCode.Text = GenerateEmployeeCode();
                        return;
                    }
                }
            }
            else
            {
                record.EmployeeCode = txtEmployeeCode.Text;
                if (!string.IsNullOrEmpty(txtEmployeeCode.Text.Trim()))
                {
                    var recordList = RecordController.CheckExistIDNumberAndEmployeeCode(null, null, txtEmployeeCode.Text);
                    if (recordList != null && recordList.Count > 0)
                    {
                        Dialog.ShowError("Mã nhân viên đã tồn tại. Vui lòng nhập mã khác.");
                        return;
                    }
                }
                if (!string.IsNullOrEmpty(txtIDNumber.Text.Trim()))
                {
                    var recordList = RecordController.CheckExistIDNumberAndEmployeeCode(null, txtIDNumber.Text, null);
                    if (recordList != null && recordList.Count > 0)
                    {
                        Dialog.ShowError("Số chứng minh nhân dân đã tồn tại. Vui lòng nhập số chứng minh nhân dân khác.");
                        return;
                    }
                }
            }
            if (!string.IsNullOrEmpty(hdfImagePerson.Text))
            {
                record.ImageUrl = hdfImagePerson.Text;
            }
            record.FullName = txtFullName.Text;
            // 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();

            record.Alias = txtAlias.Text;
            if (!DatetimeHelper.IsNull(dfBirthDate.SelectedDate))
            {
                record.BirthDate = dfBirthDate.SelectedDate;
            }
            if (!string.IsNullOrEmpty(cbxSex.SelectedItem.Value) && cbxSex.SelectedItem.Value == "M")
            {
                record.Sex = true;
            }
            else
            {
                record.Sex = false;
            }
            if (string.IsNullOrEmpty(cbxBasicEducation.Text))
            {
                hdfBasicEducationId.Text = @"0";
            }
            if (string.IsNullOrEmpty(cbxEducation.Text))
            {
                hdfEducationId.Text = @"0";
            }
            if (string.IsNullOrEmpty(cbxInputIndustry.Text))
            {
                hdfInputIndustryId.Text = @"0";
            }
            if (string.IsNullOrEmpty(cbxITLevel.Text))
            {
                hdfITLevelId.Text = @"0";
            }
            if (string.IsNullOrEmpty(cbxLanguageLevel.Text))
            {
                hdfLanguageLevelId.Text = @"0";
            }
            if (string.IsNullOrEmpty(cbxPosition.Text))
            {
                hdfPositionId.Text = @"0";
            }
            if (string.IsNullOrEmpty(cbxJobTitle.Text))
            {
                hdfJobTitleId.Text = @"0";
            }
            if (!string.IsNullOrEmpty(hdfBirthPlaceProvinceId.Text))
            {
                record.BirthPlaceProvinceId = Convert.ToInt32(hdfBirthPlaceProvinceId.Text);
            }
            if (string.IsNullOrEmpty(cbxBirthPlaceDistrict.Text))
            {
                hdfBirthPlaceDistrictId.Text = @"0";
            }
            if (!string.IsNullOrEmpty(hdfBirthPlaceDistrictId.Text))
            {
                record.BirthPlaceDistrictId = Convert.ToInt32(hdfBirthPlaceDistrictId.Text);
            }
            if (string.IsNullOrEmpty(cbxBirthPlaceWard.Text))
            {
                hdfBirthPlaceWardId.Text = @"0";
            }
            if (!string.IsNullOrEmpty(hdfBirthPlaceWardId.Text))
            {
                record.BirthPlaceWardId = Convert.ToInt32(hdfBirthPlaceWardId.Text);
            }
            if (!string.IsNullOrEmpty(hdfHometownProvinceId.Text))
            {
                record.HometownProvinceId = Convert.ToInt32(hdfHometownProvinceId.Text);
            }
            if (string.IsNullOrEmpty(cbxHometownDistrict.Text))
            {
                hdfHometownDistrictId.Text = @"0";
            }
            if (!string.IsNullOrEmpty(hdfHometownDistrictId.Text))
            {
                record.HometownDistrictId = Convert.ToInt32(hdfHometownDistrictId.Text);
            }
            if (string.IsNullOrEmpty(cbxHometownWard.Text))
            {
                hdfHometownWardId.Text = @"0";
            }
            if (!string.IsNullOrEmpty(hdfHometownWardId.Text))
            {
                record.HometownWardId = Convert.ToInt32(hdfHometownWardId.Text);
            }
            if (!string.IsNullOrEmpty(hdfMaritalStatusId.Text))
            {
                record.MaritalStatusId = Convert.ToInt32(hdfMaritalStatusId.Text);
            }
            if (!string.IsNullOrEmpty(hdfFolkId.Text))
            {
                record.FolkId = Convert.ToInt32(hdfFolkId.Text);
            }
            if (!string.IsNullOrEmpty(hdfReligionId.Text))
            {
                record.ReligionId = Convert.ToInt32(hdfReligionId.Text);
            }
            record.ResidentPlace = txt_ResidentPlace.Text;
            record.Address       = txt_Address.Text;
            record.CPVCardNumber = txtCPVCardNumber.Text;
            if (!string.IsNullOrEmpty(hdfJobTitleId.Text))
            {
                record.JobTitleId = Convert.ToInt32(hdfJobTitleId.Text);
            }
            //Ngay thu viec
            if (!DatetimeHelper.IsNull(RecruimentDate.SelectedDate))
            {
                record.RecruimentDate = RecruimentDate.SelectedDate;
            }
            //Ngay chinh thuc
            if (!DatetimeHelper.IsNull(ParticipationDate.SelectedDate))
            {
                record.ParticipationDate = ParticipationDate.SelectedDate;
            }
            record.RecruimentDepartment = txtRecruitmentDepartment.Text;
            if (!string.IsNullOrEmpty(hdfBasicEducationId.Text))
            {
                record.BasicEducationId = Convert.ToInt32(hdfBasicEducationId.Text);
            }
            if (!string.IsNullOrEmpty(hdfEducationId.Text))
            {
                record.EducationId = Convert.ToInt32(hdfEducationId.Text);
            }
            if (!string.IsNullOrEmpty(hdfPoliticLevelId.Text))
            {
                record.PoliticLevelId = Convert.ToInt32(hdfPoliticLevelId.Text);
            }
            if (!string.IsNullOrEmpty(hdfLanguageLevelId.Text))
            {
                record.LanguageLevelId = Convert.ToInt32(hdfLanguageLevelId.Text);
            }
            if (!string.IsNullOrEmpty(hdfITLevelId.Text))
            {
                record.ITLevelId = Convert.ToInt32(hdfITLevelId.Text);
            }
            if (!DatetimeHelper.IsNull(CPVJoinedDate.SelectedDate))
            {
                record.CPVJoinedDate = CPVJoinedDate.SelectedDate;
            }
            if (!DatetimeHelper.IsNull(CPVOfficialJoinedDate.SelectedDate))
            {
                record.CPVOfficialJoinedDate = CPVOfficialJoinedDate.SelectedDate;
            }
            record.CPVJoinedPlace = txtCPVJoinedPlace.Text;
            if (!string.IsNullOrEmpty(hdfCPVPositionId.Text))
            {
                record.CPVPositionId = Convert.ToInt32(hdfCPVPositionId.Text);
            }
            if (!string.IsNullOrEmpty(hdfVYUPositionId.Text))
            {
                record.VYUPositionId = Convert.ToInt32(hdfVYUPositionId.Text);
            }
            if (!DatetimeHelper.IsNull(ArmyJoinedDate.SelectedDate))
            {
                record.ArmyJoinedDate = ArmyJoinedDate.SelectedDate;
            }
            if (!DatetimeHelper.IsNull(ArmyLeftDate.SelectedDate))
            {
                record.ArmyLeftDate = ArmyLeftDate.SelectedDate;
            }
            if (!string.IsNullOrEmpty(hdfPositionId.Text))
            {
                record.PositionId = Convert.ToInt32(hdfPositionId.Text);
            }
            if (!string.IsNullOrEmpty(hdfArmyLevelId.Text))
            {
                record.ArmyLevelId = Convert.ToInt32(hdfArmyLevelId.Text);
            }
            if (!string.IsNullOrEmpty(hdfHealthStatusId.Text))
            {
                record.HealthStatusId = Convert.ToInt32(hdfHealthStatusId.Text);
            }
            record.BloodGroup = cbxBloodGroup.SelectedIndex >= 0 ? cbxBloodGroup.SelectedItem.Value : "";
            if (!string.IsNullOrEmpty(txtHeight.Text))
            {
                record.Height = Convert.ToDecimal(txtHeight.Text);
            }
            if (!string.IsNullOrEmpty(txtWeight.Text))
            {
                record.Weight = Convert.ToDecimal(txtWeight.Text);
            }
            record.DepartmentId = !string.IsNullOrEmpty(hdfDepartmentId.Text) ? Convert.ToInt32(hdfDepartmentId.Text) : CurrentUser.RootDepartment.Id;
            record.RankWounded  = txtRankWounded.Text;
            if (!string.IsNullOrEmpty(hdfFamilyPolicyId.Text))
            {
                record.FamilyPolicyId = Convert.ToInt32(hdfFamilyPolicyId.Text);
            }
            if (!string.IsNullOrEmpty(txtIDNumber.Text))
            {
                record.IDNumber = txtIDNumber.Text;
            }
            if (!DatetimeHelper.IsNull(IDIssueDate.SelectedDate))
            {
                record.IDIssueDate = IDIssueDate.SelectedDate;
            }
            if (!string.IsNullOrEmpty(hdfIDIssuePlaceId.Text))
            {
                record.IDIssuePlaceId = Convert.ToInt32(hdfIDIssuePlaceId.Text);
            }
            if (!DatetimeHelper.IsNull(VYUJoinedDate.SelectedDate))
            {
                record.VYUJoinedDate = VYUJoinedDate.SelectedDate;
            }
            record.VYUJoinedPlace  = txtVYUJoinedPlace.Text;
            record.PersonalTaxCode = txtPersonalTaxCode.Text;
            var workStatus = CatalogController.GetAll("cat_WorkStatus", null, ((int)RecordStatus.Working).ToString(),
                                                      null, false, null, 1);

            if (workStatus.Count > 0)
            {
                record.WorkStatusId = workStatus.First().Id;
            }

            record.WorkEmail          = txtWorkEmail.Text;
            record.PersonalEmail      = txtPersonalEmail.Text;
            record.CellPhoneNumber    = txtCellPhoneNumber.Text;
            record.HomePhoneNumber    = txtHomePhoneNumber.Text;
            record.WorkPhoneNumber    = txtWorkPhoneNumber.Text;
            record.InsuranceNumber    = txtInsuranceNumber.Text;
            record.ContactPersonName  = txtContactPersonName.Text;
            record.ContactPhoneNumber = txtContactPhoneNumber.Text;
            record.ContactRelation    = txtContactRelation.Text;
            record.ContactAddress     = txtContactAddress.Text;
            if (!string.IsNullOrEmpty(hdfInputIndustryId.Text))
            {
                record.IndustryId = Convert.ToInt32(hdfInputIndustryId.Text);
            }
            if (!DatetimeHelper.IsNull(InsuranceIssueDate.SelectedDate))
            {
                record.InsuranceIssueDate = InsuranceIssueDate.SelectedDate;
            }
            //other info
            if (!string.IsNullOrEmpty(hdfConstructionId.Text))
            {
                record.ConstructionId = Convert.ToInt32(hdfConstructionId.Text);
            }
            if (!string.IsNullOrEmpty(hdfTeamId.Text))
            {
                record.TeamId = Convert.ToInt32(hdfTeamId.Text);
            }
            if (!string.IsNullOrEmpty(txtStudyWorkingDay.Text))
            {
                record.StudyWorkingDay = Convert.ToInt32(txtStudyWorkingDay.Text);
            }
            //Thoi gian thu viec
            if (!string.IsNullOrEmpty(txtProbationWorkingTime.Text))
            {
                record.ProbationWorkingTime = Convert.ToInt32(txtProbationWorkingTime.Text);
            }
            if (!string.IsNullOrEmpty(hdfWorkingFormId.Text))
            {
                record.WorkingFormId = (WorkingFormType)Enum.Parse(typeof(WorkingFormType), hdfWorkingFormId.Text);
            }
            if (!string.IsNullOrEmpty(hdfWorkLocationId.Text))
            {
                record.WorkLocationId = Convert.ToInt32(hdfWorkLocationId.Text);
            }
            if (!string.IsNullOrEmpty(txtGraduationYear.Text))
            {
                record.GraduationYear = Convert.ToInt32(txtGraduationYear.Text);
            }
            if (!string.IsNullOrEmpty(hdfGraduationTypeId.Text))
            {
                record.GraduationTypeId = Convert.ToInt32(hdfGraduationTypeId.Text);
            }
            if (!string.IsNullOrEmpty(hdfUniversityId.Text))
            {
                record.UniversityId = Convert.ToInt32(hdfUniversityId.Text);
            }
            if (!DatetimeHelper.IsNull(dfUnionJoinedDate.SelectedDate))
            {
                record.UnionJoinedDate = dfUnionJoinedDate.SelectedDate;
            }
            if (!string.IsNullOrEmpty(hdfUnionPosition.Text))
            {
                record.UnionJoinedPositionId = Convert.ToInt32(hdfUnionPosition.Text);
            }
            //BHYT
            record.HealthInsuranceNumber = txtHealthInsuranceNumber.Text;
            if (!DatetimeHelper.IsNull(dfHealthJoinedDate.SelectedDate))
            {
                record.HealthJoinedDate = dfHealthJoinedDate.SelectedDate;
            }

            if (!DatetimeHelper.IsNull(dfHealthExpiredDate.SelectedDate))
            {
                record.HealthExpiredDate = dfHealthExpiredDate.SelectedDate;
            }

            // Tuyển dụng
            if (!string.IsNullOrEmpty(txtCandidateCode.Text))
            {
                candidate.Code = txtCandidateCode.Text;
            }
            if (!string.IsNullOrEmpty(txtDesiredSalary.Text))
            {
                candidate.DesiredSalary = Convert.ToDecimal(txtDesiredSalary.Text);
            }
            if (!string.IsNullOrEmpty(hdfRequiredRecruitmentId.Text))
            {
                candidate.RequiredRecruitmentId = Convert.ToInt32(hdfRequiredRecruitmentId.Text);
            }
            if (!DatetimeHelper.IsNull(dfApplyDate.SelectedDate))
            {
                candidate.ApplyDate = dfApplyDate.SelectedDate;
            }
            if (!string.IsNullOrEmpty(hdfCandidateStatus.Text))
            {
                candidate.Status = (CandidateType)Enum.Parse(typeof(CandidateType), hdfCandidateStatus.Text);
            }

            // Kiểm tra tuyển dụng
            if (int.TryParse(hdfType.Text, out var type) && type == 1)
            {
                record.Type = RecordType.Candidate;
            }

            var recordId   = 0;
            var limitCount = SystemConfigController.GetLimitPackage();

            if (Request.QueryString["Event"] == "Edit" || !string.IsNullOrEmpty(hdfRecordId.Text))
            {
                //Update Ho so
                record.Id = Convert.ToInt32(hdfRecordId.Text);
                RecordController.Update(record);
                recordId = record.Id;

                // lấy record id thông tin ứng viên
                candidate.RecordId = Convert.ToInt32(hdfRecordId.Text);

                Dialog.ShowNotification("Cập nhật dữ liệu thành công!");
            }
            else
            {
                var recordCount = RecordController.GetCountRecords((int)RecordType.Default);
                //check over limit package
                if (recordCount > limitCount)
                {
                    Dialog.Alert("Gói phần mềm bạn đăng ký đã vượt quá giới hạn. Vui lòng đăng ký thêm để sử dụng.");
                    return;
                }
                //create
                var newRecord = RecordController.Create(record);
                recordId = newRecord.Id;

                // lấy record id thông tin ứng viên
                candidate.RecordId = newRecord.Id;

                Dialog.ShowNotification("Thêm mới thành công!");
            }

            // tuyển dụng
            if (type == 1)
            {
                if (int.TryParse(hdfCandidateId.Text, out var result) && result > 0)
                {
                    candidate.Id = result;
                    //update
                    CandidateController.Update(candidate);
                }
                else
                {
                    //count candidate exist
                    var recordCount = RecordController.GetCountRecords((int)RecordType.Candidate);
                    //check over limit package
                    if (recordCount > limitCount)
                    {
                        Dialog.Alert("Gói phần mềm bạn đăng ký đã vượt quá giới hạn. Vui lòng đăng ký thêm để sử dụng.");
                        return;
                    }
                    //create
                    CandidateController.Create(candidate);
                }
            }

            // Save family
            SaveGridFamilyRelationship(e.ExtraParams["jsonFamilyRelationship"], recordId);
            if (e.ExtraParams["Reset"] == "True")
            {
                hdfRecordId.Text = "";
                GridPanelFamilyRelationship.Reload();
            }
            //set tabindex default
            tab_Employee.SetActiveTab(panelEmployee);
            //reset
            hdfImagePerson.Reset();
            fufUploadControl.Reset();
            img_anhdaidien.ImageUrl = "";
            //close window
            wdInput.Hide();

            UserControlClose();
        }