public IList <Person> GetQuickSearchPersonByImperativeRequest(string key, ImperativeRequestLoadState IRLS, ImperativeRequest imperativeRequest, decimal userId, decimal managerId, PersonCategory searchCat, int pageSize, int pageIndex) { string SQLCommand = ""; SQLCommand = @"SELECT prs.* FROM TA_Person as prs where prs_IsDeleted=0 AND prs_Active=1 AND prs_BarCode <> '00000000' AND ( prs_BarCode like :searchKey OR prs_CardNum like :searchKey OR prs_FirstName + ' ' + prs_LastName like :searchKey) AND prs_ID in (select * from fn_GetAccessiblePersons(:managerId,:userId,:searchCat))"; if (IRLS != ImperativeRequestLoadState.Normal) { SQLCommand += "AND prs_ID"; switch (IRLS) { case ImperativeRequestLoadState.Applied: SQLCommand += " in"; break; case ImperativeRequestLoadState.NotApplied: SQLCommand += " not in"; break; } SQLCommand += @"(select impReq.imperativeRequest_PersonID from TA_ImperativeRequest impReq where impReq.imperativeRequest_PrecardID = :precardId and impReq.imperativeRequest_IsLocked = :isLocked and impReq.imperativeRequest_Year = :year and impReq.imperativeRequest_Month = :month )"; } IQuery query = base.NHibernateSession.CreateSQLQuery(SQLCommand) .AddEntity(typeof(Person)) .SetParameter("searchKey", "%" + key + "%") .SetParameter("userId", userId) .SetParameter("managerId", managerId) .SetParameter("searchCat", (int)searchCat); if (IRLS == ImperativeRequestLoadState.Applied || IRLS == ImperativeRequestLoadState.NotApplied) { query = query.SetParameter("precardId", imperativeRequest.Precard.ID) .SetParameter("isLocked", imperativeRequest.IsLocked) .SetParameter("year", imperativeRequest.Year) .SetParameter("month", imperativeRequest.Month); } query = query.SetFirstResult(pageIndex * pageSize).SetMaxResults(pageSize); IList <Person> list = new List <Person>(); list = query.List <Person>(); return(list); }
public int GetQuickSearchPersonCountByImperativeRequest(string key, ImperativeRequestLoadState IRLS, ImperativeRequest imperativeRequest, decimal userId, decimal managerId, PersonCategory searchCat) { string SQLCommand = ""; SQLCommand = @"select count(prs_ID) from TA_Person prs where Prs_IsDeleted=0 AND prs_Active=1 AND (prs_BarCode like :searchKey OR prs_CardNum like :searchKey OR prs_FirstName + ' ' + prs_LastName like :searchKey) AND prs.prs_BarCode <> '00000000' AND prs.prs_ID in (select * from fn_GetAccessiblePersons(:managerId,:userId,:searchCat))"; if (IRLS != ImperativeRequestLoadState.Normal) { SQLCommand += "AND prs_ID"; switch (IRLS) { case ImperativeRequestLoadState.Applied: SQLCommand += " in"; break; case ImperativeRequestLoadState.NotApplied: SQLCommand += " not in"; break; } SQLCommand += @"(select impReq.imperativeRequest_PersonID from TA_ImperativeRequest impReq where impReq.imperativeRequest_PrecardID = :precardId and impReq.imperativeRequest_IsLocked = :isLocked and impReq.imperativeRequest_Year = :year and impReq.imperativeRequest_Month = :month )"; } IQuery query = base.NHibernateSession.CreateSQLQuery(SQLCommand) .SetParameter("searchKey", "%" + key + "%") .SetParameter("userId", userId) .SetParameter("managerId", managerId) .SetParameter("searchCat", (int)searchCat); if (IRLS == ImperativeRequestLoadState.Applied || IRLS == ImperativeRequestLoadState.NotApplied) { query = query.SetParameter("precardId", imperativeRequest.Precard.ID) .SetParameter("isLocked", imperativeRequest.IsLocked) .SetParameter("year", imperativeRequest.Year) .SetParameter("month", imperativeRequest.Month); } object count = query.List <object>().First(); return(Utility.Utility.ToInteger(count.ToString())); }
public int GetQuickSearchPersonCountByImperativeRequest(string key, ImperativeRequestLoadState IRLS, ImperativeRequest imperativeRequest, PersonCategory searchCat) { try { BApplicationSettings.CheckGTSLicense(); IList <Person> personList = new List <Person>(); key = key == null ? String.Empty : key; key = key.Trim(); decimal managerId = this.personBusiness.GetCurentManagerId(ref searchCat); int count = this.imperativeRequestRepository.GetQuickSearchPersonCountByImperativeRequest(key, IRLS, imperativeRequest, BUser.CurrentUser.ID, managerId, searchCat); return(count); } catch (Exception ex) { LogException(ex, "BImperativeRequest", "GetQuickSearchPersonCountByImperativeRequest"); throw ex; } }
public int GetAdvancedSearchPersonCountByImperativeRequest(PersonAdvanceSearchProxy proxy, ImperativeRequestLoadState IRLS, ImperativeRequest imperativeRequest, PersonCategory searchInCategory) { try { BApplicationSettings.CheckGTSLicense(); #region Date Convert if (!Utility.IsEmpty(proxy.FromBirthDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.FromBirthDate = Utility.ToMildiDateString(proxy.FromBirthDate); } if (!Utility.IsEmpty(proxy.ToBirthDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.ToBirthDate = Utility.ToMildiDateString(proxy.ToBirthDate); } if (!Utility.IsEmpty(proxy.FromEmploymentDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.FromEmploymentDate = Utility.ToMildiDateString(proxy.FromEmploymentDate); } if (!Utility.IsEmpty(proxy.ToEmploymentDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.ToEmploymentDate = Utility.ToMildiDateString(proxy.ToEmploymentDate); } if (!Utility.IsEmpty(proxy.WorkGroupFromDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.WorkGroupFromDate = Utility.ToMildiDateString(proxy.WorkGroupFromDate); } if (!Utility.IsEmpty(proxy.RuleGroupFromDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.RuleGroupFromDate = Utility.ToMildiDateString(proxy.RuleGroupFromDate); } if (!Utility.IsEmpty(proxy.RuleGroupToDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.RuleGroupToDate = Utility.ToMildiDateString(proxy.RuleGroupToDate); } if (!Utility.IsEmpty(proxy.CalculationFromDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.CalculationFromDate = Utility.ToMildiDateString(proxy.CalculationFromDate); } #endregion decimal managerId = this.personBusiness.GetCurentManagerId(ref searchInCategory); int count = this.imperativeRequestRepository.GetAdvancedSearchPersonCountByImperativeRequest(proxy, IRLS, imperativeRequest, BUser.CurrentUser.ID, managerId, searchInCategory); return(count); } catch (Exception ex) { LogException(ex, "BImperativeRequest", "GetAdvancedSearchPersonCountByImperativeRequest"); throw ex; } }
public IList <ImperativeUndermanagementInfoProxy> GetQuickSearchPersonByImperativeRequest(string searchValue, ImperativeRequestLoadState IRLS, ImperativeRequest imperativeRequest, PersonCategory searchInCategory, int pageIndex, int pageSize) { try { UIValidationExceptions exception = new UIValidationExceptions(); if (imperativeRequest.Precard == null || imperativeRequest.Precard.ID == 0) { exception.Add(new ValidationException(ExceptionResourceKeys.RequestPrecardIsEmpty, "پیشکارت نباید خالی باشد", ExceptionSrc)); } if (imperativeRequest.Year == null || imperativeRequest.Year == 0) { exception.Add(new ValidationException(ExceptionResourceKeys.RequestYearIsEmpty, "سال نباید خالی باشد", ExceptionSrc)); } if (imperativeRequest.Month == null || imperativeRequest.Month == 0) { exception.Add(new ValidationException(ExceptionResourceKeys.RequestMonthIsEmpty, "ماه نباید خالی باشد", ExceptionSrc)); } if (exception.Count == 0) { BApplicationSettings.CheckGTSLicense(); IList <Person> personList = new List <Person>(); ISearchPerson searchTool = new BPerson(); searchValue = searchValue == null ? String.Empty : searchValue; searchValue = searchValue.Trim(); int count = searchTool.GetPersonInQuickSearchCount(searchValue, searchInCategory); if (pageSize * pageIndex == 0 || pageSize * pageIndex < count) { decimal managerId = this.personBusiness.GetCurentManagerId(ref searchInCategory); IList <Person> result = this.imperativeRequestRepository.GetQuickSearchPersonByImperativeRequest(searchValue, IRLS, imperativeRequest, BUser.CurrentUser.ID, managerId, searchInCategory, pageSize, pageIndex); return(this.ConvertToImperativeUndermanagementInfoProxy(result, imperativeRequest, pageSize, pageIndex)); } else { throw new OutOfExpectedRangeException("0", Convert.ToString(count - 1), Convert.ToString(pageSize * (pageIndex + 1)), ExceptionSrc + "GetQuickSearchPersonByImperativeRequest"); } } else { throw exception; } } catch (Exception ex) { LogException(ex, "BImperativeRequest", "GetQuickSearchPersonByImperativeRequest"); throw ex; } }
public IList <ImperativeUndermanagementInfoProxy> GetAdvancedSearchPersonByImperativeRequest(PersonAdvanceSearchProxy proxy, ImperativeRequestLoadState IRLS, ImperativeRequest imperativeRequest, PersonCategory searchInCategory, int pageIndex, int pageSize) { try { UIValidationExceptions exception = new UIValidationExceptions(); if (imperativeRequest.Precard == null || imperativeRequest.Precard.ID == 0) { exception.Add(new ValidationException(ExceptionResourceKeys.RequestPrecardIsEmpty, "پیشکارت نباید خالی باشد", ExceptionSrc)); } if (imperativeRequest.Year == null || imperativeRequest.Year == 0) { exception.Add(new ValidationException(ExceptionResourceKeys.RequestYearIsEmpty, "سال نباید خالی باشد", ExceptionSrc)); } if (imperativeRequest.Month == null || imperativeRequest.Month == 0) { exception.Add(new ValidationException(ExceptionResourceKeys.RequestMonthIsEmpty, "ماه نباید خالی باشد", ExceptionSrc)); } if (exception.Count == 0) { BApplicationSettings.CheckGTSLicense(); #region Date Convert if (!Utility.IsEmpty(proxy.FromBirthDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.FromBirthDate = Utility.ToMildiDateString(proxy.FromBirthDate); } if (!Utility.IsEmpty(proxy.ToBirthDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.ToBirthDate = Utility.ToMildiDateString(proxy.ToBirthDate); } if (!Utility.IsEmpty(proxy.FromEmploymentDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.FromEmploymentDate = Utility.ToMildiDateString(proxy.FromEmploymentDate); } if (!Utility.IsEmpty(proxy.ToEmploymentDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.ToEmploymentDate = Utility.ToMildiDateString(proxy.ToEmploymentDate); } if (!Utility.IsEmpty(proxy.WorkGroupFromDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.WorkGroupFromDate = Utility.ToMildiDateString(proxy.WorkGroupFromDate); } if (!Utility.IsEmpty(proxy.RuleGroupFromDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.RuleGroupFromDate = Utility.ToMildiDateString(proxy.RuleGroupFromDate); } if (!Utility.IsEmpty(proxy.RuleGroupToDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.RuleGroupToDate = Utility.ToMildiDateString(proxy.RuleGroupToDate); } if (!Utility.IsEmpty(proxy.CalculationFromDate) && BLanguage.CurrentSystemLanguage == LanguagesName.Parsi) { proxy.CalculationFromDate = Utility.ToMildiDateString(proxy.CalculationFromDate); } #endregion IList <Person> list; if (!Utility.IsEmpty(proxy.PersonId)) { list = new List <Person>(); Person prs = this.personBusiness.GetByID((decimal)proxy.PersonId); list.Add(prs); } else { decimal managerId = personBusiness.GetCurentManagerId(ref searchInCategory); list = this.imperativeRequestRepository.GetAdvancedSearchPersonByImperativeRequest(proxy, IRLS, imperativeRequest, BUser.CurrentUser.ID, managerId, searchInCategory, pageIndex, pageSize); } return(this.ConvertToImperativeUndermanagementInfoProxy(list, imperativeRequest, pageSize, pageIndex)); } else { throw exception; } } catch (Exception ex) { LogException(ex, "BImperativeRequest", "GetAdvancedSearchPersonByImperativeRequest"); throw ex; } }
public int GetAdvancedSearchPersonCountByImperativeRequest(PersonSearchProxy proxy, ImperativeRequestLoadState IRLS, ImperativeRequest imperativeRequest, decimal userId, decimal managerId, PersonCategory searchCat) { { const string PersonDetailAlias = "prsDtl"; const string WorkGroupAlias = "wg"; const string RuleGroupAlias = "rg"; const string CalculationDateRangeGroupAlias = "cdrg"; const string DepartmentAlias = "dep"; const string OrganizationUnitAlias = "organ"; ICriteria crit = base.NHibernateSession.CreateCriteria(typeof(Person)); Junction disjunction = Restrictions.Disjunction(); crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonDetail), PersonDetailAlias); crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().IsDeleted), false)); //فعال if (proxy.PersonActivateState != null) { crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().Active), (bool)proxy.PersonActivateState)); } //کد پرسنلی if (!Utility.Utility.IsEmpty(proxy.PersonCode)) { crit.Add(Restrictions.Like(Utility.Utility.GetPropertyName(() => new Person().BarCode), proxy.PersonCode, MatchMode.Anywhere)); } //نام if (!Utility.Utility.IsEmpty(proxy.FirstName)) { crit.Add(Restrictions.Like(Utility.Utility.GetPropertyName(() => new Person().FirstName), proxy.FirstName, MatchMode.Anywhere)); } //نام خانوادگی if (!Utility.Utility.IsEmpty(proxy.LastName)) { crit.Add(Restrictions.Like(Utility.Utility.GetPropertyName(() => new Person().LastName), proxy.LastName, MatchMode.Anywhere)); } //نام پدر if (!Utility.Utility.IsEmpty(proxy.FatherName)) { crit.Add(Restrictions.Like(PersonDetailAlias + "." + Utility.Utility.GetPropertyName(() => new PersonDetail().FatherName), proxy.FatherName, MatchMode.Anywhere)); } //جنسیت if (!Utility.Utility.IsEmpty(proxy.Sex)) { crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().Sex), proxy.Sex)); } //شروع تاریخ تولد if (!Utility.Utility.IsEmpty(proxy.FromBirthDate)) { crit.Add(Restrictions.Ge(PersonDetailAlias + "." + Utility.Utility.GetPropertyName(() => new PersonDetail().BirthDate), proxy.FromBirthDate)); } //پایان تاریخ تولد if (!Utility.Utility.IsEmpty(proxy.ToBirthDate)) { crit.Add(Restrictions.Le(PersonDetailAlias + "." + Utility.Utility.GetPropertyName(() => new PersonDetail().BirthDate), proxy.ToBirthDate)); } //شروع تاریخ استخدام if (!Utility.Utility.IsEmpty(proxy.FromEmploymentDate)) { crit.Add(Restrictions.Ge(Utility.Utility.GetPropertyName(() => new Person().EmploymentDate), proxy.FromEmploymentDate)); } //پایان تاریخ استخدام if (!Utility.Utility.IsEmpty(proxy.ToEmploymentDate)) { crit.Add(Restrictions.Ge(Utility.Utility.GetPropertyName(() => new Person().EndEmploymentDate), proxy.ToEmploymentDate)); } //شماره کارت if (!Utility.Utility.IsEmpty(proxy.CartNumber)) { crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().CardNum), proxy.CartNumber)); } //نظام وضیفه if (!Utility.Utility.IsEmpty(proxy.Military)) { crit.Add(Restrictions.Eq(PersonDetailAlias + "." + Utility.Utility.GetPropertyName(() => new PersonDetail().MilitaryStatus), proxy.Military)); } //تحصیلات if (!Utility.Utility.IsEmpty(proxy.Education)) { crit.Add(Restrictions.Like(Utility.Utility.GetPropertyName(() => new Person().Education), proxy.Education, MatchMode.Anywhere)); } //تاهل if (!Utility.Utility.IsEmpty(proxy.MaritalStatus)) { crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().MaritalStatus), proxy.MaritalStatus)); } //بخش if (!Utility.Utility.IsEmpty(proxy.DepartmentId)) { crit.CreateAlias("department", DepartmentAlias); if (proxy.IncludeSubDepartments) { disjunction.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().Department).ToLower(), new Department() { ID = (decimal)proxy.DepartmentId })); disjunction.Add(Restrictions.Like(DepartmentAlias + "." + Utility.Utility.GetPropertyName(() => new Department().ParentPath), "," + proxy.DepartmentId.ToString() + ",", MatchMode.Anywhere)); } else { crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().Department).ToLower(), new Department() { ID = (decimal)proxy.DepartmentId })); } } //پست سازمانی if (!Utility.Utility.IsEmpty(proxy.OrganizationUnitId)) { crit.CreateAlias("OrganizationUnitList", OrganizationUnitAlias); crit.Add(Restrictions.Eq(OrganizationUnitAlias + "." + Utility.Utility.GetPropertyName(() => new OrganizationUnit().ID), (decimal)proxy.OrganizationUnitId)); } //گروه کاری if (!Utility.Utility.IsEmpty(proxy.WorkGroupId)) { crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonWorkGroupList), WorkGroupAlias); crit.Add(Restrictions.Eq(WorkGroupAlias + "." + Utility.Utility.GetPropertyName(() => new AssignWorkGroup().WorkGroup), new WorkGroup() { ID = (decimal)proxy.WorkGroupId })); if (!Utility.Utility.IsEmpty(proxy.WorkGroupFromDate)) { crit.Add(Restrictions.Le(WorkGroupAlias + "." + Utility.Utility.GetPropertyName(() => new AssignWorkGroup().FromDate), proxy.WorkGroupFromDate)); } } //گروه قوانین if (!Utility.Utility.IsEmpty(proxy.RuleGroupId)) { crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonRuleCatAssignList), RuleGroupAlias); crit.Add(Restrictions.Eq(RuleGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRuleCatAssignment().RuleCategory), new RuleCategory() { ID = (decimal)proxy.RuleGroupId })); if (!Utility.Utility.IsEmpty(proxy.RuleGroupFromDate)) { crit.Add(Restrictions.Le(RuleGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRuleCatAssignment().FromDate), proxy.RuleGroupFromDate)); } if (!Utility.Utility.IsEmpty(proxy.RuleGroupToDate)) { crit.Add(Restrictions.Ge(RuleGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRuleCatAssignment().ToDate), proxy.RuleGroupToDate)); } } //محدوده محاسبات if (!Utility.Utility.IsEmpty(proxy.CalculationDateRangeId)) { crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonRangeAssignList), CalculationDateRangeGroupAlias); crit.Add(Restrictions.Eq(CalculationDateRangeGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRangeAssignment().CalcDateRangeGroup), new CalculationRangeGroup() { ID = (decimal)proxy.CalculationDateRangeId })); if (!Utility.Utility.IsEmpty(proxy.CalculationFromDate)) { crit.Add(Restrictions.Le(CalculationDateRangeGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRangeAssignment().FromDate), proxy.CalculationFromDate)); } } //ایستگاه کنترل if (!Utility.Utility.IsEmpty(proxy.ControlStationId)) { crit.Add(Restrictions.Eq("controlStation", new ControlStation() { ID = (decimal)proxy.ControlStationId })); } //نوع استخدام if (!Utility.Utility.IsEmpty(proxy.EmploymentType)) { crit.Add(Restrictions.Eq("employmentType", new EmploymentType() { ID = (decimal)proxy.EmploymentType })); } //جستجو در بین مدیران و اپراتورها if (proxy.SearchInCategory != PersonCategory.Public && !Utility.Utility.IsEmpty(proxy.SearchInCategory)) { if (proxy.SearchInCategory == PersonCategory.Manager) { IList <Person> personList = new ManagerRepository(false).GetAllManager(); var ids = from person in personList select person.ID; IList <decimal> idList = ids.ToList <decimal>(); crit.Add(Restrictions.In(Utility.Utility.GetPropertyName(() => new Person().ID), idList.ToArray())); } } crit.Add(Expression.Sql(" prs_Id in (select * from fn_GetAccessiblePersons(?,?,?))", new object[] { managerId, userId, (int)searchCat }, new IType[] { NHibernateUtil.Decimal, NHibernateUtil.Decimal, NHibernateUtil.Int32 })); if (!disjunction.ToString().Equals("()")) { crit.Add(disjunction); } if (IRLS == ImperativeRequestLoadState.Applied || IRLS == ImperativeRequestLoadState.NotApplied) { IList <decimal> ImperativeRequestIDsList = this.NHibernateSession.QueryOver <ImperativeRequest>() .Where(impReq => impReq.Precard.ID == imperativeRequest.Precard.ID && impReq.IsLocked && impReq.Year == imperativeRequest.Year && impReq.Month == imperativeRequest.Month) .Select(impReq => impReq.ID) .List <decimal>(); if (imperativeRequest.IsLocked) { crit.Add(Restrictions.In(Utility.Utility.GetPropertyName(() => new Person().ID), ImperativeRequestIDsList.ToArray())); } else { crit.Add(Restrictions.Not(Restrictions.In(Utility.Utility.GetPropertyName(() => new Person().ID), ImperativeRequestIDsList.ToArray()))); } } crit.SetProjection(Projections.Count(Utility.Utility.GetPropertyName(() => new Person().ID))); if (!Utility.Utility.IsEmpty(crit.ToString())) { object count = crit.UniqueResult(); return((int)count); } return(0); } }
public IList <Person> GetAdvancedSearchPersonByImperativeRequest(PersonSearchProxy proxy, ImperativeRequestLoadState IRLS, ImperativeRequest imperativeRequest, decimal userId, decimal managerId, PersonCategory searchCat, int pageIndex, int pageSize) { const string PersonDetailAlias = "prsDtl"; const string WorkGroupAlias = "wg"; const string RuleGroupAlias = "rg"; const string CalculationDateRangeGroupAlias = "cdrg"; const string DepartmentAlias = "dep"; const string OrganizationUnitAlias = "organ"; const string PersonTASpecAlias = "prsTs"; const string ContractAlias = "con"; const string GradeAlias = "grade"; const string EmploymentAlias = "emp"; ICriteria crit = base.NHibernateSession.CreateCriteria(typeof(Person)); Junction disjunction = Restrictions.Disjunction(); crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().IsDeleted), false)); crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonDetailList), PersonDetailAlias); //فعال if (proxy.PersonActivateState != null) { crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().Active), (bool)proxy.PersonActivateState)); } //کد پرسنلی if (!Utility.Utility.IsEmpty(proxy.PersonCode)) { crit.Add(Restrictions.Like(Utility.Utility.GetPropertyName(() => new Person().BarCode), proxy.PersonCode, MatchMode.Anywhere)); } //نام if (!Utility.Utility.IsEmpty(proxy.FirstName)) { crit.Add(Restrictions.Like(Utility.Utility.GetPropertyName(() => new Person().FirstName), proxy.FirstName, MatchMode.Anywhere)); } //نام خانوادگی if (!Utility.Utility.IsEmpty(proxy.LastName)) { crit.Add(Restrictions.Like(Utility.Utility.GetPropertyName(() => new Person().LastName), proxy.LastName, MatchMode.Anywhere)); } //نام پدر if (!Utility.Utility.IsEmpty(proxy.FatherName)) { crit.Add(Restrictions.Like(PersonDetailAlias + "." + Utility.Utility.GetPropertyName(() => new PersonDetail().FatherName), proxy.FatherName, MatchMode.Anywhere)); } //جنسیت ,پیش فرض آن از واسط کاربر -1 است if (!Utility.Utility.IsEmpty(proxy.Sex) && proxy.Sex >= 0) { crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().Sex), proxy.Sex)); } //شماره کارت if (!Utility.Utility.IsEmpty(proxy.CartNumber)) { crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().CardNum), proxy.CartNumber)); } //نظام وضیفه , پیش فرض آن از واسط کاربر 0 است if (!Utility.Utility.IsEmpty(proxy.Military) && proxy.Military > 0) { crit.Add(Restrictions.Eq(PersonDetailAlias + "." + Utility.Utility.GetPropertyName(() => new PersonDetail().MilitaryStatus), proxy.Military)); } //تحصیلات if (!Utility.Utility.IsEmpty(proxy.Education)) { crit.Add(Restrictions.Like(Utility.Utility.GetPropertyName(() => new Person().Education), proxy.Education, MatchMode.Anywhere)); } //تاهل , پیش فرض آن از واسط کاربر 0 است if (!Utility.Utility.IsEmpty(proxy.MaritalStatus) && proxy.MaritalStatus > 0) { crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().MaritalStatus), proxy.MaritalStatus)); } //شروع تاریخ تولد if (!Utility.Utility.IsEmpty(proxy.FromBirthDate)) { crit.Add(Restrictions.Ge(PersonDetailAlias + "." + Utility.Utility.GetPropertyName(() => new PersonDetail().BirthDate), proxy.FromBirthDate)); } //پایان تاریخ تولد if (!Utility.Utility.IsEmpty(proxy.ToBirthDate)) { crit.Add(Restrictions.Le(PersonDetailAlias + "." + Utility.Utility.GetPropertyName(() => new PersonDetail().BirthDate), proxy.ToBirthDate)); } //شروع تاریخ استخدام if (!Utility.Utility.IsEmpty(proxy.FromEmploymentDate)) { crit.Add(Restrictions.Ge(Utility.Utility.GetPropertyName(() => new Person().EmploymentDate), proxy.FromEmploymentDate)); } //پایان تاریخ استخدام if (!Utility.Utility.IsEmpty(proxy.ToEmploymentDate)) { crit.Add(Restrictions.Ge(Utility.Utility.GetPropertyName(() => new Person().EndEmploymentDate), proxy.ToEmploymentDate)); } //بخش //if (!Utility.Utility.IsEmpty(proxy.DepartmentId)) //{ // crit.CreateAlias("department", DepartmentAlias); // if (proxy.IncludeSubDepartments) // { // disjunction.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().Department).ToLower(), new Department() { ID = (decimal)proxy.DepartmentId })); // disjunction.Add(Restrictions.Like(DepartmentAlias + "." + Utility.Utility.GetPropertyName(() => new Department().ParentPath), "," + proxy.DepartmentId.ToString() + ",", MatchMode.Anywhere)); // } // else // { // crit.Add(Restrictions.Eq(Utility.Utility.GetPropertyName(() => new Person().Department).ToLower(), new Department() { ID = (decimal)proxy.DepartmentId })); // } //} if (!Utility.Utility.IsEmpty(proxy.DepartmentListId)) { crit.CreateAlias("department", DepartmentAlias); if (proxy.IncludeSubDepartments) { disjunction.Add(Restrictions.In(DepartmentAlias + "." + Utility.Utility.GetPropertyName(() => new Department().ID), proxy.DepartmentListId.ToArray())); foreach (decimal item in proxy.DepartmentListId) { disjunction.Add(Restrictions.Like(DepartmentAlias + "." + Utility.Utility.GetPropertyName(() => new Department().ParentPath), "," + item.ToString() + ",", MatchMode.Anywhere)); } } else { crit.Add(Restrictions.In(DepartmentAlias + "." + Utility.Utility.GetPropertyName(() => new Department().ID), proxy.DepartmentListId.ToArray())); } } //پست سازمانی if (!Utility.Utility.IsEmpty(proxy.OrganizationUnitId)) { crit.CreateAlias("OrganizationUnitList", OrganizationUnitAlias); crit.Add(Restrictions.Eq(OrganizationUnitAlias + "." + Utility.Utility.GetPropertyName(() => new OrganizationUnit().ID), (decimal)proxy.OrganizationUnitId)); } //گروه کاری if (!Utility.Utility.IsEmpty(proxy.WorkGroupId)) { crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonWorkGroupList), WorkGroupAlias); crit.Add(Restrictions.Eq(WorkGroupAlias + "." + Utility.Utility.GetPropertyName(() => new AssignWorkGroup().WorkGroup), new WorkGroup() { ID = (decimal)proxy.WorkGroupId })); if (!Utility.Utility.IsEmpty(proxy.WorkGroupFromDate)) { crit.Add(Restrictions.Le(WorkGroupAlias + "." + Utility.Utility.GetPropertyName(() => new AssignWorkGroup().FromDate), proxy.WorkGroupFromDate)); } } //رتبه if (!Utility.Utility.IsEmpty(proxy.GradeId)) { crit.CreateAlias("grade", GradeAlias); crit.Add(Restrictions.Eq(GradeAlias + "." + Utility.Utility.GetPropertyName(() => new Grade().ID), (decimal)proxy.GradeId)); } //گروه قوانین if (!Utility.Utility.IsEmpty(proxy.RuleGroupId)) { crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonRuleCatAssignList), RuleGroupAlias); crit.Add(Restrictions.Eq(RuleGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRuleCatAssignment().RuleCategory), new RuleCategory() { ID = (decimal)proxy.RuleGroupId })); if (!Utility.Utility.IsEmpty(proxy.RuleGroupFromDate)) { crit.Add(Restrictions.Le(RuleGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRuleCatAssignment().FromDate), proxy.RuleGroupFromDate)); } if (!Utility.Utility.IsEmpty(proxy.RuleGroupToDate)) { crit.Add(Restrictions.Ge(RuleGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRuleCatAssignment().ToDate), proxy.RuleGroupToDate)); } } //محدوده محاسبات if (!Utility.Utility.IsEmpty(proxy.CalculationDateRangeId)) { crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonRangeAssignList), CalculationDateRangeGroupAlias); crit.Add(Restrictions.Eq(CalculationDateRangeGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRangeAssignment().CalcDateRangeGroup), new CalculationRangeGroup() { ID = (decimal)proxy.CalculationDateRangeId })); if (!Utility.Utility.IsEmpty(proxy.CalculationFromDate)) { crit.Add(Restrictions.Le(CalculationDateRangeGroupAlias + "." + Utility.Utility.GetPropertyName(() => new PersonRangeAssignment().FromDate), proxy.CalculationFromDate)); } } ////ایستگاه کنترل //if (!Utility.Utility.IsEmpty(proxy.ControlStationId)) //{ // crit.Add(Restrictions.Eq("controlStation", new ControlStation() { ID = (decimal)proxy.ControlStationId })); //} if (!Utility.Utility.IsEmpty(proxy.ControlStationListId)) { List <ControlStation> controlStationList = new List <ControlStation>(); foreach (decimal item in proxy.ControlStationListId) { controlStationList.Add(new ControlStation() { ID = item }); } crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonTASpecList), PersonTASpecAlias); crit.Add(Restrictions.In(PersonTASpecAlias + "." + Utility.Utility.GetPropertyName(() => new PersonTASpec().ControlStation), controlStationList)); } //نوع استخدام //if (!Utility.Utility.IsEmpty(proxy.EmploymentType)) //{ // crit.Add(Restrictions.Eq("employmentType", new EmploymentType() { ID = (decimal)proxy.EmploymentType })); //} if (!Utility.Utility.IsEmpty(proxy.EmploymentTypeListId)) { crit.CreateAlias("employmentType", EmploymentAlias); crit.Add(Restrictions.In(EmploymentAlias + "." + Utility.Utility.GetPropertyName(() => new EmploymentType().ID), proxy.EmploymentTypeListId.ToArray())); } // گروه واسط کاربری if (!Utility.Utility.IsEmpty(proxy.UIValidationGroupListId)) { List <UIValidationGroup> uiValidationGroupList = new List <UIValidationGroup>(); foreach (decimal item in proxy.UIValidationGroupListId) { uiValidationGroupList.Add(new UIValidationGroup() { ID = item }); } crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonTASpecList), PersonTASpecAlias); crit.Add(Restrictions.In(PersonTASpecAlias + "." + Utility.Utility.GetPropertyName(() => new PersonTASpec().UIValidationGroup), uiValidationGroupList)); } //قرارداد if (!Utility.Utility.IsEmpty(proxy.ContractId)) { crit.CreateAlias(Utility.Utility.GetPropertyName(() => new Person().PersonContractAssignmentList), ContractAlias); crit.Add(Restrictions.Eq(ContractAlias + "." + Utility.Utility.GetPropertyName(() => new PersonContractAssignment().Contract), new Contract() { ID = (decimal)proxy.ContractId })); crit.Add(Restrictions.Eq(ContractAlias + "." + Utility.Utility.GetPropertyName(() => new PersonContractAssignment().IsDeleted), false)); if (!Utility.Utility.IsEmpty(proxy.ContractFromDate)) { crit.Add(Restrictions.Ge(ContractAlias + "." + Utility.Utility.GetPropertyName(() => new PersonContractAssignment().FromDate), Utility.Utility.ToMildiDateTime(proxy.ContractFromDate))); } if (!Utility.Utility.IsEmpty(proxy.RuleGroupToDate)) { crit.Add(Restrictions.Le(ContractAlias + "." + Utility.Utility.GetPropertyName(() => new PersonContractAssignment().ToDate), Utility.Utility.ToMildiDateTime(proxy.ContractToDate))); } } //جستجو در بین مدیران و اپراتورها if (proxy.SearchInCategory != PersonCategory.Public && !Utility.Utility.IsEmpty(proxy.SearchInCategory)) { if (proxy.SearchInCategory == PersonCategory.Manager) { IList <Person> personList = new ManagerRepository(false).GetAllManager(); var ids = from person in personList select person.ID; IList <decimal> idList = ids.ToList <decimal>(); crit.Add(Restrictions.In(Utility.Utility.GetPropertyName(() => new Person().ID), idList.ToArray())); } } IList <Person> list = new List <Person>(); crit.Add(Expression.Sql(" prs_Id in (select * from fn_GetAccessiblePersons(?,?,?))", new object[] { managerId, userId, (int)searchCat }, new IType[] { NHibernateUtil.Decimal, NHibernateUtil.Decimal, NHibernateUtil.Int32 })); if (!disjunction.ToString().Equals("()")) { crit.Add(disjunction); } if (IRLS == ImperativeRequestLoadState.Applied || IRLS == ImperativeRequestLoadState.NotApplied) { IList <decimal> ImperativeRequestIDsList = this.NHibernateSession.QueryOver <ImperativeRequest>() .Where(impReq => impReq.Precard.ID == imperativeRequest.Precard.ID && impReq.IsLocked && impReq.Year == imperativeRequest.Year && impReq.Month == imperativeRequest.Month) .Select(impReq => impReq.ID) .List <decimal>(); if (imperativeRequest.IsLocked) { crit.Add(Restrictions.In(Utility.Utility.GetPropertyName(() => new Person().ID), ImperativeRequestIDsList.ToArray())); } else { crit.Add(Restrictions.Not(Restrictions.In(Utility.Utility.GetPropertyName(() => new Person().ID), ImperativeRequestIDsList.ToArray()))); } } if (!Utility.Utility.IsEmpty(crit.ToString())) { if (pageIndex == 0 && pageSize == 0) { list = crit .List <Person>(); } else { list = crit .SetFirstResult(pageIndex * pageSize) .SetMaxResults(pageSize) .List <Person>(); } } return(list); }