public IQueryable <AssigngingsDTO> GetActualEmployeesBasedOnAssigningsAsRanksCategories(int OrganizationID) { try { List <int> OrganizationIDsList = new OrganizationsStructuresBLL().GetByOrganizationIDsWithhAllChilds(OrganizationID); // Get actual employees Based On Assignings by date List <vwActualEmployeesBasedOnAssignings> ActualEmployeesBasedOnAssignings = new AssigningsDAL().GetActualEmployeeBasedOnAssignings().Where(x => OrganizationIDsList.Contains(x.OrganizationID.Value)).ToList(); var query = ActualEmployeesBasedOnAssignings.Select(y => new AssigngingsDTO(y.EmployeeCodeNo, y.EmployeeNameAr, y.OrganizationName, y.JobName, y.RankCategoryName, y.RankName, y.Sorting )); return(query.AsQueryable()); } catch (Exception ex) { throw ex; } }
public virtual AssigningsReasonsBLL GetLastAssigningEndReasonsByEmployeeCodeID(int EmployeeCodeID) { try { List <Assignings> AssigningsList = new AssigningsDAL().GetAssigningsByEmployeeCodeID(EmployeeCodeID).ToList(); if (AssigningsList.Count == 0) // thats mean the employee is new ... and the reason of assigning will be (Beacuse of hiring) { return(new AssigningsReasonsBLL().GetByAssigningReasonID((int)AssigningsReasonsEnum.Hiring)); } else { if (AssigningsList.Any(x => x.IsFinished == false)) // thats mean the employee already has active assigning and no Last Assignings End Reasons in this case { return(null); } Assignings LastBrokenAssigning = new AssigningsDAL().GetAssigningsByEmployeeCodeID(EmployeeCodeID).OrderByDescending(x => x.AssigningEndDate) .OrderByDescending(x => x.AssigningID) .FirstOrDefault(x => x.IsFinished == true && x.AssigningTypID == (int)AssigningsTypesEnum.Internal); if (LastBrokenAssigning != null && LastBrokenAssigning.EndAssigningReasonID.HasValue) { return(new AssigningsReasonsBLL().MapAssigningReason(LastBrokenAssigning.EndAssigningsReasonsNav)); } return(null); } } catch (Exception ex) { throw ex; } }
public virtual List <PlacementBLL> GetEmployeesInPlaced() { try { List <PlacementBLL> EmployeesInPlacedBLLList = new List <PlacementBLL>(); List <EmployeesCareersHistory> Employees = new EmployeesCareersHistoryDAL().GetActiveEmployeesCareersHistory(); List <Assignings> Assignings = new AssigningsDAL().GetAssignings(); List <OrganizationsStructures> OrganizationsStructures = new OrganizationsStructuresDAL().GetOrganizationStructure(); int[] EmployeeCareerHistoryIDs = Assignings.Select(c => (int)c.EmployeeCareerHistoryID).ToArray(); int[] ManagerCodeIDs = OrganizationsStructures.Where(p => p.ManagerCodeID.HasValue == true).Select(c => c.ManagerCodeID.Value).ToArray(); //.Select(c => (int)c.ManagerCodeID).ToArray(); Employees.RemoveAll(x => EmployeeCareerHistoryIDs.Contains(x.EmployeeCareerHistoryID)); Employees.RemoveAll(o => ManagerCodeIDs.Contains(o.EmployeeCodeID)); foreach (var item in Employees) { EmployeesInPlacedBLLList.Add(new PlacementBLL() { EmployeeCareerHistory = new EmployeesCareersHistoryBLL().MapEmployeeCareerHistory(item) }); //new OrganizationsStructuresBLL().GetOrganizationNameTillLastParentExceptPresident(((InternalAssigningBLL)AssigningBLL).Organization.OrganizationID); EmployeesInPlacedBLLList.ForEach(x => x.EmployeeCareerHistory.OrganizationJob.OrganizationStructure.FullOrganizationName = new OrganizationsStructuresBLL().GetOrganizationNameTillLastParentExceptPresident(x.EmployeeCareerHistory.OrganizationJob.OrganizationStructure.OrganizationID)); } return(EmployeesInPlacedBLLList); } catch (Exception ex) { throw ex; } }
public static BaseAssigningsBLL GetByAssigningID(int AssigningID) { BaseAssigningsBLL assigningBLL = null; Assignings assigning = new AssigningsDAL().GetByAssigningID(AssigningID); if (assigning != null) { assigningBLL = new BaseAssigningsBLL().MapAssigning(assigning); } return(assigningBLL); }
public virtual List <BaseAssigningsBLL> GetAssigningsAlreadyExpiredNotFinished() { List <BaseAssigningsBLL> AssigningBLLList = new List <BaseAssigningsBLL>(); List <Assignings> Assignings = new AssigningsDAL().GetAssigningsAlreadyExpiredNotFinished(); foreach (var item in Assignings) { AssigningBLLList.Add(new BaseAssigningsBLL().MapAssigning(item)); } return(AssigningBLLList); }
public virtual List <BaseAssigningsBLL> GetAssigningsWillExpire(DateTime FromDate, int MonthPeriod) { List <BaseAssigningsBLL> AssigningBLLList = new List <BaseAssigningsBLL>(); List <Assignings> Assignings = new AssigningsDAL().GetAssigningsWillExpire(FromDate, MonthPeriod); foreach (var item in Assignings) { AssigningBLLList.Add(new BaseAssigningsBLL().MapAssigning(item)); } return(AssigningBLLList); }
public virtual List <BaseAssigningsBLL> GetAssignings() { List <BaseAssigningsBLL> AssigningBLLList = new List <BaseAssigningsBLL>(); List <Assignings> Assignings = new AssigningsDAL().GetAssignings().Take(30).ToList(); foreach (var item in Assignings) { AssigningBLLList.Add(new BaseAssigningsBLL().MapAssigning(item)); } return(AssigningBLLList); }
public List <InternalAssigningBLL> Get() { try { List <Assignings> AssigningsList = new AssigningsDAL().GetAssignings().Where(x => x.AssigningsTypes.AssigningTypID == (int)AssigningsTypesEnum.Internal).ToList(); List <InternalAssigningBLL> InternalAssigningBLLList = new List <InternalAssigningBLL>(); foreach (var item in AssigningsList) { InternalAssigningBLLList.Add((InternalAssigningBLL)MapAssigning(item)); } return(InternalAssigningBLLList); } catch (Exception ex) { throw ex; } }
public List <InternalAssigningBLL> GetActiveEmployeesAssigingByOrganization(int OrganizationID) { try { List <Assignings> AssigningsList = new AssigningsDAL().GetActiveInternalAssigningsByOrganizationID(OrganizationID).ToList(); List <InternalAssigningBLL> InternalAssigningBLLList = new List <InternalAssigningBLL>(); foreach (var item in AssigningsList) { InternalAssigningBLLList.Add((InternalAssigningBLL)MapAssigning(item)); } return(InternalAssigningBLLList); } catch (Exception ex) { throw ex; } }
public List <InternalAssigningBLL> GetEmployeesUnderManagerByOrganization() { try { List <Assignings> AssigningsList = new AssigningsDAL().GetInternalAssigningsByManagerCodeIDOrganizationID(this.Manager.EmployeeCodeID, this.Organization.OrganizationID); List <InternalAssigningBLL> InternalAssigningBLLList = new List <InternalAssigningBLL>(); foreach (var item in AssigningsList) { InternalAssigningBLLList.Add((InternalAssigningBLL)MapAssigning(item)); } return(InternalAssigningBLLList); } catch (Exception ex) { throw ex; } }
public virtual List <BaseAssigningsBLL> GetAssignings(out int totalRecordsOut, out int recFilterOut) { List <BaseAssigningsBLL> AssigningBLLList = new List <BaseAssigningsBLL>(); List <Assignings> Assignings = new AssigningsDAL() { search = Search, order = Order, orderDir = OrderDir, startRec = StartRec, pageSize = PageSize }.GetAssignings(out totalRecordsOut, out recFilterOut); foreach (var item in Assignings) { AssigningBLLList.Add(new BaseAssigningsBLL().MapAssigning(item)); } return(AssigningBLLList); }
public IQueryable <EmployeesDelegationsBasedOnAssigngingsDTO> GetEmployeesDelegationsBasedOnAssigningsAsRanksCategories(int DelegationTypeID, DateTime FromDate, DateTime ToDate, int OrganizationID) { try { List <int> OrganizationIDsList = new OrganizationsStructuresBLL().GetByOrganizationIDsWithhAllChilds(OrganizationID); DateTime FromDateGr = Convert.ToDateTime(Globals.Calendar.UmAlquraToGreg(string.Format("{0}/{1}/{2}", FromDate.Day, FromDate.Month, FromDate.Year)), new CultureInfo("en-US")); DateTime ToDateGr = Convert.ToDateTime(Globals.Calendar.UmAlquraToGreg(string.Format("{0}/{1}/{2}", ToDate.Day, ToDate.Month, ToDate.Year)), new CultureInfo("en-US")); List <vwActualEmployeesBasedOnAssignings> ActualEmployeesHaveDelegations = new List <vwActualEmployeesBasedOnAssignings>(); // Get actual employees Based On Assignings by date List <vwActualEmployeesBasedOnAssignings> ActualEmployeesBasedOnAssignings = new AssigningsDAL().GetActualEmployeeBasedOnAssignings().Where(x => // (FromDateGr.Date >= x.AssigningStartDate.Date && FromDateGr.Date <= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date)) ( (FromDateGr >= x.AssigningStartDate && FromDateGr <= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date)) || (ToDate >= x.AssigningStartDate && ToDate <= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date)) || (FromDateGr >= x.AssigningStartDate && ToDate <= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date)) || (FromDateGr <= x.AssigningStartDate && ToDate >= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date)) ) && OrganizationIDsList.Contains(x.OrganizationID.Value)).ToList(); List <int> EmployeeCareerHistoryIDs = new List <int>(); ActualEmployeesBasedOnAssignings.ForEach(x => EmployeeCareerHistoryIDs.Add(x.EmployeeCareerHistoryID.Value)); List <DelegationsDetails> EmployeesDelegationsOfActualEmployeesList = new DelegationsDetailsDAL().GetEmployeesDelegationsByDate(FromDateGr, DelegationTypeID, EmployeeCareerHistoryIDs); var query = EmployeesDelegationsOfActualEmployeesList.Select(y => new EmployeesDelegationsBasedOnAssigngingsDTO(y.EmployeesCareersHistory.EmployeesCodes.EmployeeCodeNo, ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).EmployeeNameAr, ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).OrganizationName, ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).JobName, ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).RankCategoryName, ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).RankName, y.Delegations.DelegationStartDate, y.Delegations.DelegationEndDate, y.Delegations.DelegationsTypes.DelegationTypeName, ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).Sorting )); return(query.AsQueryable()); } catch { throw; } }
//public List<ChartsAxis> GetQualificationsBasedOnAssigningsAsRanksCategories(int QualificationDegreeID, int QualificationID, int GeneralSpecializationID, int OrganizationID) //{ // try // { // List<int> OrganizationIDsList = new OrganizationsStructuresBLL().GetByOrganizationIDsWithhAllChilds(OrganizationID); // // Get actual employees Based On Assignings by date // List<vwActualEmployeesBasedOnAssignings> ActualEmployeesBasedOnAssignings = new AssigningsDAL().GetActualEmployeeBasedOnAssignings().Where(x => OrganizationIDsList.Contains(x.OrganizationID.Value)).ToList(); // List<int> EmployeesCodesIDs = new List<int>(); // ActualEmployeesBasedOnAssignings.ForEach(x => EmployeesCodesIDs.Add(x.EmployeeCodeID)); // List<EmployeesQualificationsBLL> EmployeesQualificationsList = new EmployeesQualificationsBLL().GetEmployeesQualifications(EmployeesCodesIDs); // List<EmployeesQualificationsBLL> EmployeesQualificationsOfActualEmployeesList = new List<EmployeesQualificationsBLL>(); // ActualEmployeesBasedOnAssignings.ForEach(x => EmployeesQualificationsOfActualEmployeesList.Add(new EmployeesQualificationsBLL().GetLastEmployeeQualification(EmployeesQualificationsList, x.EmployeeCodeID))); // EmployeesQualificationsOfActualEmployeesList = EmployeesQualificationsOfActualEmployeesList.Where(x => x.QualificationDegree.QualificationDegreeID == QualificationDegreeID // && (QualificationID != 0 ? x.Qualification.QualificationID == QualificationID : x.Qualification.QualificationID == x.Qualification.QualificationID) // && (GeneralSpecializationID != 0 ? x.GeneralSpecialization.GeneralSpecializationID == GeneralSpecializationID : x.GeneralSpecialization.GeneralSpecializationID == x.GeneralSpecialization.GeneralSpecializationID)).ToList(); // ActualEmployeesBasedOnAssignings.RemoveAll(x => !EmployeesQualificationsOfActualEmployeesList.Any(y => y.EmployeeCode.EmployeeCodeID == x.EmployeeCodeID)); // var query = ActualEmployeesBasedOnAssignings.GroupBy(x => x.RankCategoryName) // .Select(y => new // { // RankCategoryName = y.Key, // RecordCount = y.Count() // }).ToList(); // List<ChartsAxis> ChartAxisList = new List<ChartsAxis>(); // foreach (var item in query) // ChartAxisList.Add(new ChartsAxis { KeyName = item.RankCategoryName, Value = item.RecordCount }); // return ChartAxisList; // } // catch // { // throw; // } //} public IQueryable <EmployeesQualificationBasedOnAssigngingsDTO> GetQualificationsBasedOnAssigningsAsRanksCategoriesDetails(int QualificationDegreeID, int QualificationID, int GeneralSpecializationID, int OrganizationID) { try { List <int> OrganizationIDsList = new OrganizationsStructuresBLL().GetByOrganizationIDsWithhAllChilds(OrganizationID); // Get actual employees Based On Assignings by date List <vwActualEmployeesBasedOnAssignings> ActualEmployeesBasedOnAssignings = new AssigningsDAL().GetActualEmployeeBasedOnAssignings().Where(x => OrganizationIDsList.Contains(x.OrganizationID.Value)).ToList(); List <int> EmployeesCodesIDs = new List <int>(); ActualEmployeesBasedOnAssignings.ForEach(x => EmployeesCodesIDs.Add(x.EmployeeCodeID)); List <EmployeesQualificationsBLL> EmployeesQualificationsList = new EmployeesQualificationsBLL().GetEmployeesQualifications(EmployeesCodesIDs); List <EmployeesQualificationsBLL> EmployeesQualificationsOfActualEmployeesList = new List <EmployeesQualificationsBLL>(); ActualEmployeesBasedOnAssignings.ForEach(x => EmployeesQualificationsOfActualEmployeesList.Add(new EmployeesQualificationsBLL().GetLastEmployeeQualification(EmployeesQualificationsList, x.EmployeeCodeID))); EmployeesQualificationsOfActualEmployeesList = EmployeesQualificationsOfActualEmployeesList.Where(x => x.QualificationDegree.QualificationDegreeID == QualificationDegreeID && (QualificationID != 0 ? x.Qualification.QualificationID == QualificationID : x.Qualification.QualificationID == x.Qualification.QualificationID) && (GeneralSpecializationID != 0 ? x.GeneralSpecialization.GeneralSpecializationID == GeneralSpecializationID : x.GeneralSpecialization.GeneralSpecializationID == x.GeneralSpecialization.GeneralSpecializationID)).ToList(); ActualEmployeesBasedOnAssignings.RemoveAll(x => !EmployeesQualificationsOfActualEmployeesList.Any(y => y.EmployeeCode.EmployeeCodeID == x.EmployeeCodeID)); var query = ActualEmployeesBasedOnAssignings.Select(y => new EmployeesQualificationBasedOnAssigngingsDTO(y.EmployeeCodeNo, y.EmployeeNameAr, y.OrganizationName, y.JobName, y.RankCategoryName, y.RankName, EmployeesQualificationsOfActualEmployeesList.FirstOrDefault(x => x.EmployeeCode.EmployeeCodeID == y.EmployeeCodeID).QualificationDegree.QualificationDegreeName, EmployeesQualificationsOfActualEmployeesList.FirstOrDefault(x => x.EmployeeCode.EmployeeCodeID == y.EmployeeCodeID).Qualification.QualificationName, EmployeesQualificationsOfActualEmployeesList.FirstOrDefault(x => x.EmployeeCode.EmployeeCodeID == y.EmployeeCodeID).GeneralSpecialization.GeneralSpecializationName, y.Sorting )); return(query.AsQueryable()); } catch { throw; } }
public Result RemoveEmployeeFromManager() { try { Result result = null; #region Validate if the Placement period finished or not result = CommonHelper.IsValidToCompleteEmployeesPlacement(); if (result != null) { return(result); } #endregion Assignings Assigning = new AssigningsDAL().GetByAssigningID(this.AssigningID); new AssigningsDAL().Delete(this.AssigningID, this.LoginIdentity.EmployeeCodeID); if (Assigning != null) { SMSLogsBLL SMSLogBLL = new SMSLogsBLL() { BusinssSubCategory = BusinessSubCategoriesEnum.OrganizationStructure, MobileNo = Assigning.EmployeesCareersHistory.EmployeesCodes.Employees.EmployeeMobileNo, DetailID = 0, Message = string.Format(Globalization.SMSEmployeeAlreadyRemovedFromOrganizationManagerMessageText, Assigning.EmployeesCareersHistory.EmployeesCodes.Employees.FirstNameAr + " " + Assigning.EmployeesCareersHistory.EmployeesCodes.Employees.LastNameAr, new OrganizationsStructuresBLL().GetOrganizationNameTillLastParentExceptPresident(Assigning.OrganizationID.Value)), CreatedBy = this.LoginIdentity, CreatedDate = DateTime.Now, }; new SMSBLL().SendSMS(SMSLogBLL); } result = new Result(); result.EnumType = typeof(AssigningsValidationEnum); result.EnumMember = AssigningsValidationEnum.Done.ToString(); return(result); } catch (Exception ex) { throw ex; } }
//public BaseAssigningsBLL GetActiveAssigningByEmployeeCareerHistoryID(int EmployeeCareerHistoryID) //{ // BaseAssigningsBLL assigningBLL = new BaseAssigningsBLL(); // Assignings assigning = new AssigningsDAL().GetActiveAssigningByEmployeeCareerHistoryID(EmployeeCareerHistoryID); // if (assigning != null) // assigningBLL = new BaseAssigningsBLL().MapAssigning(assigning); // return assigningBLL; //} /// <summary> /// Task # 226 : /// Finish last assigning, based on passing parameters /// this function called by different modules like Promotion, Delegation, or StopWork etc /// Task # 310 : change CareerHistoryID to EmployeeCodeID because of task 310 /// Task 318: Service to Cancel EServicesProxies By System /// </summary> /// <param name="EmployeeCodeID"></param> /// <param name="AssigningEndDate"></param> /// <param name="EndAssigningReason"></param> /// <returns></returns> public Result BreakLastAssigning(int EmployeeCodeID, DateTime AssigningEndDate, AssigningsReasonsEnum EndAssigningReason, string EndAssigningReasonNotes = "") { Result result = new Result(); BaseAssigningsBLL assigningBLL = new BaseAssigningsBLL(); Assignings assigning = new AssigningsDAL().GetActiveAssigningByEmployeeCodeID(EmployeeCodeID); if (assigning != null) { if (assigning.IsFinished) { result.Entity = this; result.EnumType = typeof(AssigningsValidationEnum); result.EnumMember = AssigningsValidationEnum.Done.ToString(); return(result); } if (AssigningEndDate < assigning.AssigningStartDate) { result = new Result(); result.EnumType = typeof(AssigningsValidationEnum); result.EnumMember = AssigningsValidationEnum.RejectedBecauseOfEndDateIsLessThanCreationDate.ToString(); return(result); } assigning.AssigningEndDate = AssigningEndDate; assigning.EndAssigningReasonID = (int)EndAssigningReason; assigning.IsFinished = true; assigning.Notes = EndAssigningReasonNotes; assigning.LastUpdatedBy = this.LoginIdentity.EmployeeCodeID; assigning.LastUpdatedDate = DateTime.Now; this.AssigningID = new AssigningsDAL().BreakAssigning(assigning); if (this.AssigningID != 0) { #region Cancellation of all pending e vacations requests of employee after breaking last assigning of him List <EVacationsRequests> PendingEVacationRequestsList = new EVacationsRequestsDAL().GetByEmployeeCodeID(EmployeeCodeID, (int)EVacationRequestStatusEnum.Pending); foreach (var item in PendingEVacationRequestsList) { result = new EVacationsRequestsBLL().CancelEVacationRequest(item.EVacationRequestID, EVacationRequestStatusEnum.CancelledBySystem, Globalization.EVacationRequestCancelledBySystemBecauseOfBreakingLastAssigningText); } #endregion #region Task 318: Service to Cancel EServicesProxies By System try { result = new EServicesProxiesBLL() { LoginIdentity = this.LoginIdentity } .RevokeEServiceProxyByEmployeeCodeID(EmployeeCodeID, EServicesProxiesStatusEnum.CancelledBySystem, Globalization.EServiceProxyCancelledBySystemBecauseOfBreakingLastAssigningText); } catch (Exception ex) { throw ex; } #endregion result.Entity = this; result.EnumType = typeof(AssigningsValidationEnum); result.EnumMember = AssigningsValidationEnum.Done.ToString(); } } else { result.EnumType = typeof(AssigningsValidationEnum); result.EnumMember = AssigningsValidationEnum.RejectedBecauseAssigningNotFound.ToString(); } return(result); }