Пример #1
0
 public string[] GetUserNames(EmployeeStatus status)
 {
     return GetUsers(status)
         .Select(u => u.UserName)
         .Where(s => !string.IsNullOrEmpty(s))
         .ToArray();
 }
Пример #2
0
 public IEnumerable<EmployeeWraperFull> GetByStatus(EmployeeStatus status)
 {
     var query = CoreContext.UserManager.GetUsers(status).AsEnumerable();
     if ("group".Equals(_context.FilterBy, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(_context.FilterValue))
     {
         var groupId = new Guid(_context.FilterValue);
         //Filter by group
         query = query.Where(x => CoreContext.UserManager.IsUserInGroup(x.ID, groupId));
         _context.SetDataFiltered();
     }
     return query.Select(x => new EmployeeWraperFull(x)).ToSmartList();
 }
 public UserInfo[] GetUsers(EmployeeStatus status, EmployeeType type)
 {
     var users = GetUsersInternal().Where(u => (u.Status & status) == u.Status);
     switch (type)
     {
         case EmployeeType.User:
             users = users.Where(u => !u.IsVisitor());
             break;
         case EmployeeType.Visitor:
             users = users.Where(u => u.IsVisitor());
             break;
     }
     return users.ToArray();
 }
Пример #4
0
 public UserInfo[] Search(string text, EmployeeStatus status)
 {
     return Search(text, status, Guid.Empty);
 }
Пример #5
0
        public UserInfo[] Search(string text, EmployeeStatus status, Guid groupId)
        {
            if (text == null || text.Trim() == string.Empty) return new UserInfo[0];

            var words = text.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            if (words.Length == 0) return new UserInfo[0];

            var users = groupId == Guid.Empty ?
                GetUsers(status) :
                GetUsersByGroup(groupId).Where(u => (u.Status & status) == status);

            var findUsers = new List<UserInfo>();
            foreach (var user in users)
            {
                var properties = new string[]
                {
                    user.LastName ?? string.Empty,
                    user.FirstName ?? string.Empty,
                    user.Title ?? string.Empty,
                    user.Email ?? string.Empty,
                };
                if (IsPropertiesContainsWords(properties, words))
                {
                    findUsers.Add(user);
                }
            }
            return findUsers.ToArray();
        }
Пример #6
0
 public UserInfo[] GetUsers(EmployeeStatus status)
 {
     return GetUsersInternal()
         .Where(u => (u.Status & status) == u.Status)
         .ToArray();
 }
 public SetEmployeeStatusAction(EmployeeStatus status, bool loadFromApi) =>
 (Status, LoadFromApi) = (status, loadFromApi);
Пример #8
0
 /// <summary>
 /// Resets content
 /// </summary>
 public override void Clear()
 {
     base.Clear();
     m_UserName = "";
     m_FirstName = "";
     m_LastName = "";
     m_EMail = "";
     m_Birthday = null;
     m_Sex = Sex.Unknown;
     m_Status = EmployeeStatus.Default;
     m_Terminated = null;
     m_Department = "";
     m_WorkFrom = null;
     m_Location = "";
     m_Notes = "";
     m_Groups = new TlUserGroupCollection();
     m_Contacts = new ContactCollection();
     m_AvatarURL = "";
     m_AvatarMediumURL = "";
 }
Пример #9
0
 public static string GetEmployees(Guid productID, EmployeeStatus empStatus)
 {
     return VirtualPathUtility.ToAbsolute("~/employee.aspx") + "?" + GetProductParamsPair(productID) +
            (empStatus == EmployeeStatus.Terminated ? "&es=0" : string.Empty);
 }
Пример #10
0
        public IEnumerable<EmployeeWraperFull> UpdateUserStatus(EmployeeStatus status, IEnumerable<Guid> userIds)
        {
            SecurityContext.DemandPermissions(Core.Users.Constants.Action_EditUser);

            var users = userIds
                .Where(userId => !userId.Equals(Core.Users.Constants.LostUser.ID))
                .Select(userId => CoreContext.UserManager.GetUsers(userId))
                .ToList();

            foreach (var user in users)
            {
                if (user.IsOwner() || user.IsMe())
                    continue;

                switch (status)
                {
                    case EmployeeStatus.Active:
                        if (user.Status == EmployeeStatus.Terminated)
                        {
                            if (TenantStatisticsProvider.GetUsersCount() < TenantExtra.GetTenantQuota().ActiveUsers || user.IsVisitor())
                            {
                                user.Status = EmployeeStatus.Active;
                                CoreContext.UserManager.SaveUserInfo(user);
                            }
                        }
                        break;
                    case EmployeeStatus.Terminated:
                        user.Status = EmployeeStatus.Terminated;
                        CoreContext.UserManager.SaveUserInfo(user);
                        break;
                }
            }

            MessageService.Send(_context, MessageAction.UsersUpdatedStatus, users.Select(x => x.DisplayUserName(false)));

            return users.Select(user => new EmployeeWraperFull(user)).ToSmartList();
        }
Пример #11
0
 public static Dictionary<Guid, string> GetAccessSubjectTo(Contact contact, EmployeeStatus employeeStatus)
 {
     return GetAccessSubjectTo((ISecurityObjectId)contact, employeeStatus);
 }
Пример #12
0
 public IEnumerable<EmployeeWraperFull> GetAdvancedPeopleSearch(EmployeeStatus status, string query)
 {
     return GetAdvanced(status, query);
 }
Пример #13
0
        public IEnumerable<EmployeeWraperFull> GetAdvanced(EmployeeStatus status, string query)
        {
            try
            {
                var list = CoreContext.UserManager.GetUsers(status).AsEnumerable();

                if ("group".Equals(_context.FilterBy, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(_context.FilterValue))
                {
                    var groupId = new Guid(_context.FilterValue);
                    //Filter by group
                    list = list.Where(x => CoreContext.UserManager.IsUserInGroup(x.ID, groupId));
                    _context.SetDataFiltered();
                }

                list = list.Where(x => x.FirstName != null && x.FirstName.IndexOf(query, StringComparison.OrdinalIgnoreCase) > -1 || (x.LastName != null && x.LastName.IndexOf(query, StringComparison.OrdinalIgnoreCase) != -1) ||
                                       (x.UserName != null && x.UserName.IndexOf(query, StringComparison.OrdinalIgnoreCase) != -1) || (x.Email != null && x.Email.IndexOf(query, StringComparison.OrdinalIgnoreCase) != -1) || (x.Contacts != null && x.Contacts.Any(y => y.IndexOf(query, StringComparison.OrdinalIgnoreCase) != -1)));

                var usr = list.Select(x => new EmployeeWraperFull(x)).AsEnumerable();

                return usr.ToSmartList();
            }
            catch (Exception error)
            {
                LogManager.GetLogger("ASC.Web").Error(error);
            }
            return null;
        }
Пример #14
0
 public IEnumerable<EmployeeWraperFull> GetByStatus(EmployeeStatus status)
 {
     if (CoreContext.Configuration.Personal) throw new MethodAccessException("Method not available on personal.onlyoffice.com");
     var query = CoreContext.UserManager.GetUsers(status).AsEnumerable();
     if ("group".Equals(_context.FilterBy, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(_context.FilterValue))
     {
         var groupId = new Guid(_context.FilterValue);
         //Filter by group
         query = query.Where(x => CoreContext.UserManager.IsUserInGroup(x.ID, groupId));
         _context.SetDataFiltered();
     }
     return query.Select(x => new EmployeeWraperFull(x)).ToSmartList();
 }
 public UserInfo[] Search(string text, EmployeeStatus status)
 {
     return(Search(text, status, Guid.Empty));
 }
Пример #16
0
        private static Dictionary <Guid, String> GetAccessSubjectTo(ISecurityObjectId entity, EmployeeStatus employeeStatus)
        {
            var allAces = CoreContext.AuthorizationManager.GetAcesWithInherits(Guid.Empty, _actionRead.ID, entity,
                                                                               GetCRMSecurityProvider())
                          .Where(item => item.SubjectId != Constants.GroupEveryone.ID);

            var result = new Dictionary <Guid, String>();

            foreach (var azRecord in allAces)
            {
                if (!result.ContainsKey(azRecord.SubjectId))
                {
                    var userInfo    = CoreContext.UserManager.GetUsers(azRecord.SubjectId);
                    var displayName = employeeStatus == EmployeeStatus.All || userInfo.Status == employeeStatus
                                          ? userInfo.DisplayUserName()
                                          : Constants.LostUser.DisplayUserName();

                    result.Add(azRecord.SubjectId, displayName);
                }
            }
            return(result);
        }
Пример #17
0
        private void ImportEmployeeDetail(string fileName)
        {
            Excel.Application xlApp;
            Excel.Workbook    xlWorkBook;
            Excel.Worksheet   xlWorkSheet;
            Excel.Range       range;

            xlApp = new Excel.ApplicationClass();

            xlWorkBook  = xlApp.Workbooks.Open(fileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);

            range = xlWorkSheet.UsedRange;

            for (var row = 2; row <= range.Rows.Count; row++)
            {
                string nik             = (string)(range.Cells[row, 1] as Excel.Range).Value2;
                string branch          = (string)(range.Cells[row, 2] as Excel.Range).Value2;
                string department      = (string)(range.Cells[row, 3] as Excel.Range).Value2;
                string departmentDate  = (string)(range.Cells[row, 4] as Excel.Range).Value2;
                string grade           = (string)(range.Cells[row, 5] as Excel.Range).Value2;
                string gradeDate       = (string)(range.Cells[row, 6] as Excel.Range).Value2;
                string occupation      = (string)(range.Cells[row, 7] as Excel.Range).Value2;
                string occupationDate  = (string)(range.Cells[row, 8] as Excel.Range).Value2;
                string isTaskForce     = (string)(range.Cells[row, 9] as Excel.Range).Value2;
                string principal       = (string)(range.Cells[row, 10] as Excel.Range).Value2;
                string principalDate   = (string)(range.Cells[row, 11] as Excel.Range).Value2;
                string status          = (string)(range.Cells[row, 12] as Excel.Range).Value2;
                string paymentType     = (string)(range.Cells[row, 13] as Excel.Range).Value2;
                string statusDate      = (string)(range.Cells[row, 14] as Excel.Range).Value2;
                string jamsostekNumber = (string)(range.Cells[row, 15] as Excel.Range).Value2;
                string jamsostekDate   = (string)(range.Cells[row, 16] as Excel.Range).Value2;


                string salaryDate             = (string)(range.Cells[row, 17] as Excel.Range).Value2;
                double mainSalary             = (double)(range.Cells[row, 18] as Excel.Range).Value2;
                double occupationAllowance    = (double)(range.Cells[row, 19] as Excel.Range).Value2;
                double fixedAllowance         = (double)(range.Cells[row, 20] as Excel.Range).Value2;
                double healthAllowance        = (double)(range.Cells[row, 21] as Excel.Range).Value2;
                double communicationAllowance = (double)(range.Cells[row, 22] as Excel.Range).Value2;
                double supervisionAllowance   = (double)(range.Cells[row, 23] as Excel.Range).Value2;
                double otherAllowance         = (double)(range.Cells[row, 24] as Excel.Range).Value2;
                double fuelAllowance          = (double)(range.Cells[row, 25] as Excel.Range).Value2;
                double vehicleAllowance       = (double)(range.Cells[row, 26] as Excel.Range).Value2;
                double lunchAllowance         = (double)(range.Cells[row, 27] as Excel.Range).Value2;
                double transportAllowance     = (double)(range.Cells[row, 28] as Excel.Range).Value2;


                if (nik == null)
                {
                    break;
                }

                var employee = employeeRepository.GetByCode(nik);

                if (employee != null)
                {
                    //Department

                    var employeeDepartment = new EmployeeDepartment();

                    employeeDepartment.EmployeeId    = employee.ID;
                    employeeDepartment.EffectiveDate = DateTime.ParseExact(departmentDate,
                                                                           "dd/MM/yyyy", CultureInfo.InvariantCulture);

                    employeeDepartment.BranchId     = branchRepository.GetByName(branch).ID;
                    employeeDepartment.DepartmentId = departmentRepository.GetByName(department).ID;

                    employeeDepartmentRepository.Save(employeeDepartment);


                    //Grade

                    var employeeGrade = new EmployeeGrade();

                    employeeGrade.EmployeeId    = employee.ID;
                    employeeGrade.EffectiveDate = DateTime.ParseExact(gradeDate,
                                                                      "dd/MM/yyyy", CultureInfo.InvariantCulture);

                    employeeGrade.GradeId = gradeRepository.GetByName(grade).ID;

                    employeeGradeRepository.Save(employeeGrade);


                    //Occupation

                    var employeeOccupation = new EmployeeOccupation();

                    employeeOccupation.EmployeeId    = employee.ID;
                    employeeOccupation.EffectiveDate = DateTime.ParseExact(occupationDate,
                                                                           "dd/MM/yyyy", CultureInfo.InvariantCulture);
                    employeeOccupation.OccupationId = occupationRepository.GetByName(occupation).ID;
                    employeeOccupation.IsTaskForce  = isTaskForce.ToUpper() == "Y" ? true : false;

                    employeeOccupationRepository.Save(employeeOccupation);


                    //Status

                    var employeeStatus = new EmployeeStatus();

                    employeeStatus.EmployeeId    = employee.ID;
                    employeeStatus.EffectiveDate = DateTime.ParseExact(statusDate,
                                                                       "dd/MM/yyyy", CultureInfo.InvariantCulture);

                    employeeStatus.IsEnd       = false;
                    employeeStatus.EndDate     = DateTime.Now;
                    employeeStatus.Status      = status;
                    employeeStatus.PaymentType = paymentType;

                    employeeStatusRepository.Save(employeeStatus);


                    //Insurance

                    var insurancePrograms = insuranceProgramRepository.GetByInsuranceId(Guid.Empty);

                    foreach (var program in insurancePrograms)
                    {
                        var employeeInsurance = new EmployeeInsurance();

                        employeeInsurance.EmployeeId         = employee.ID;
                        employeeInsurance.InsuranceId        = Guid.Empty;
                        employeeInsurance.InsuranceProgramId = program.ID;

                        employeeInsurance.EffectiveDate = DateTime.ParseExact(jamsostekDate,
                                                                              "dd/MM/yyyy", CultureInfo.InvariantCulture);

                        employeeInsurance.EndDate         = DateTime.Now;
                        employeeInsurance.InsuranceNumber = jamsostekNumber;

                        employeeInsuranceRepository.Save(employeeInsurance);
                    }


                    //Salary

                    var employeeSalary = new EmployeeSalary();

                    employeeSalary.EmployeeId    = employee.ID;
                    employeeSalary.EffectiveDate = DateTime.ParseExact(salaryDate,
                                                                       "dd/MM/yyyy", CultureInfo.InvariantCulture);

                    employeeSalary.MainSalary = Convert.ToDecimal(mainSalary);
                    employeeSalary.OccupationAllowancePerMonth    = Convert.ToDecimal(occupationAllowance);
                    employeeSalary.FixedAllowancePerMonth         = Convert.ToDecimal(fixedAllowance);
                    employeeSalary.HealthAllowancePerMonth        = Convert.ToDecimal(healthAllowance);
                    employeeSalary.CommunicationAllowancePerMonth = Convert.ToDecimal(communicationAllowance);
                    employeeSalary.SupervisionAllowancePerMonth   = Convert.ToDecimal(supervisionAllowance);
                    employeeSalary.OtherAllowance                 = Convert.ToDecimal(otherAllowance);
                    employeeSalary.FuelAllowancePerDays           = Convert.ToDecimal(fuelAllowance);
                    employeeSalary.VehicleAllowancePerDays        = Convert.ToDecimal(vehicleAllowance);
                    employeeSalary.LunchAllowancePerDays          = Convert.ToDecimal(lunchAllowance);
                    employeeSalary.TransportationAllowancePerDays = Convert.ToDecimal(transportAllowance);
                    employeeSalary.JamsostekAmount                = 0;
                    employeeSalary.PersonalDebt = 0;
                    employeeSalary.OtherFee     = 0;

                    employeeSalaryRepository.Save(employeeSalary);


                    UpdateEmployeeCurrentInfo(employee.ID, branch, department, grade, occupation, status, paymentType);
                }
            }

            xlWorkBook.Close(true, null, null);
            xlApp.Quit();

            ReleaseObject(xlWorkSheet);
            ReleaseObject(xlWorkBook);
            ReleaseObject(xlApp);
        }
Пример #18
0
 public static Dictionary <Guid, string> GetAccessSubjectTo(Contact contact, EmployeeStatus employeeStatus)
 {
     return(GetAccessSubjectTo((ISecurityObjectId)contact, employeeStatus));
 }
Пример #19
0
        public IEnumerable<EmployeeWraperFull> GetByFilter(EmployeeStatus? employeeStatus, Guid? groupId, EmployeeActivationStatus? activationStatus, EmployeeType? employeeType, bool? isAdministrator)
        {
            var isAdmin = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID).IsAdmin();
            var status = isAdmin ? EmployeeStatus.All : EmployeeStatus.Default;

            if (employeeStatus != null)
            {
                switch (employeeStatus)
                {
                    case EmployeeStatus.Terminated:
                    case EmployeeStatus.All:
                        status = isAdmin ? (EmployeeStatus)employeeStatus : EmployeeStatus.Default;
                        break;
                    default:
                        status = (EmployeeStatus)employeeStatus;
                        break;
                }
            }

            var users = String.IsNullOrEmpty(_context.FilterValue) ?
                            CoreContext.UserManager.GetUsers(status).AsEnumerable() :
                            CoreContext.UserManager.Search(_context.FilterValue, status).AsEnumerable();

            if (groupId != null && !groupId.Equals(Guid.Empty))
            {
                users = users.Where(x => CoreContext.UserManager.IsUserInGroup(x.ID, (Guid)groupId));
            }
            if (activationStatus != null)
            {
                users = activationStatus == EmployeeActivationStatus.Activated ?
                            users.Where(x => x.ActivationStatus == EmployeeActivationStatus.Activated) :
                            users.Where(x => x.ActivationStatus == EmployeeActivationStatus.NotActivated ||
                                             x.ActivationStatus == EmployeeActivationStatus.Pending);
            }
            if (employeeType != null)
            {
                switch (employeeType)
                {
                    case EmployeeType.User:
                        users = users.Where(x => !x.IsVisitor());
                        break;
                    case EmployeeType.Visitor:
                        users = users.Where(x => x.IsVisitor());
                        break;
                }
            }

            if (isAdministrator.HasValue)
            {
                if (isAdministrator.Value)
                {
                    users = users.Where(x => x.IsAdmin());
                }
            }

            _context.TotalCount = users.Count();

            users = _context.SortDescending ? users.OrderByDescending(r => r.DisplayUserName()) : users.OrderBy(r => r.DisplayUserName());
            users = users.Skip((int)_context.StartIndex).Take((int)_context.Count - 1);

            _context.SetDataSorted();
            _context.SetDataPaginated();

            return users.Select(x => new EmployeeWraperFull(x, _context)).ToSmartList();
        }
Пример #20
0
 public UserInfo[] GetUsersByGroup(Guid groupId, EmployeeStatus employeeStatus = EmployeeStatus.Default)
 {
     var refs = GetRefsInternal();
     return GetUsers(employeeStatus).Where(u => IsUserInGroupInternal(u.ID, groupId, refs)).ToArray();
 }
Пример #21
0
        private static Dictionary<Guid, String> GetAccessSubjectTo(ISecurityObjectId entity, EmployeeStatus employeeStatus)
        {
            var allAces = CoreContext.AuthorizationManager.GetAcesWithInherits(Guid.Empty, _actionRead.ID, entity,
                                                                               GetCRMSecurityProvider())
                                     .Where(item => item.SubjectId != Constants.GroupEveryone.ID);

            var result = new Dictionary<Guid, String>();

            foreach (var azRecord in allAces)
            {
                if (!result.ContainsKey(azRecord.SubjectId))
                {
                    var userInfo = CoreContext.UserManager.GetUsers(azRecord.SubjectId);
                    var displayName = employeeStatus == EmployeeStatus.All || userInfo.Status == employeeStatus
                                          ? userInfo.DisplayUserName()
                                          : Constants.LostUser.DisplayUserName();
                    result.Add(azRecord.SubjectId, displayName);
                }
            }
            return result;
        }
 public UserInfo[] GetUsers(EmployeeStatus status)
 {
     return GetUsers(status, EmployeeType.All);
 }
Пример #23
0
 public List<UserInfo> GetUsers(EmployeeStatus status, int tenant)
 {
     var q = GetUserQuery(tenant, default(DateTime));
     return ExecList(q).ConvertAll(r => ToUser(r)).Where(r => r.Status == status).ToList();
 }
Пример #24
0
 /// <summary>
 /// 恢复
 /// </summary>
 private void CallRestart()
 {
     try
     {
         string value = GetCall("RESTART", GlobalData.WindowNo);
         if (value != "0")
         {
             ShowErrorMsg(value);
         }
         else
         {
             _Page.PauseButtonTextBlock.Text = "暂停";
             _Page.btnPauseReStart.CommandParameter = "PAUSE";
             _Page.PauseButtonImage.Source = new BitmapImage(new Uri(@"Resources/Images/pause.png", UriKind.RelativeOrAbsolute));
             _NowEmployeeStaus = EmployeeStatus.Normal;
         }
     }
     catch (Exception ex)
     {
         ErrorLog.WriteLog("CallRestart:", ex.Message);
     }
 }
Пример #25
0
 public static string GetEmployees(EmployeeStatus empStatus)
 {
     return ToAbsolute("~/products/people/") +
            (empStatus == EmployeeStatus.Terminated ? "#type=disabled" : string.Empty);
 }
Пример #26
0
 public static string GetEmployees(EmployeeStatus empStatus)
 {
     return(ToAbsolute("~/products/people/") +
            (empStatus == EmployeeStatus.Terminated ? "#type=disabled" : string.Empty));
 }