コード例 #1
0
        /// <summary>
        /// Sinh mã cán bộ dựa vào cấu hình hệ thống:
        /// -   Tiền tố của mã cán bộ
        /// -   Số lượng chữ số theo sau tiền tố
        /// </summary>
        /// <returns>Mã cán bộ mới được sinh ra</returns>
        private string GenerateEmployeeCode()
        {
            var departments     = string.Join(",", CurrentUser.Departments.Select(d => d.Id));
            var prefix          = SystemConfigController.GetValueByNameFollowDepartment(SystemConfigParameter.PREFIX, departments);
            var numberCharacter = SystemConfigController.GetValueByNameFollowDepartment(SystemConfigParameter.NUMBER_OF_CHARACTER, departments);

            if (string.IsNullOrEmpty(prefix))
            {
                prefix = "CB";
            }
            var number = string.IsNullOrEmpty(numberCharacter) ? 5 : int.Parse(numberCharacter);

            var record  = RecordController.GetByEmployeeCodeGenerate(prefix, number);
            var oldMaCb = _generateEmployeeConst;

            if (record != null && !string.IsNullOrEmpty(record.EmployeeCode))
            {
                oldMaCb = record.EmployeeCode;
            }
            var oldNumber = long.Parse("" + oldMaCb.Substring(prefix.Length));

            oldNumber++;
            var newMaCb = _generateEmployeeConst + oldNumber;

            newMaCb = prefix + newMaCb.Substring(newMaCb.Length - number);
            return(newMaCb);
        }