public ActionResult PassingRecDetail(string selectedIds) { var service = new Rec_InterviewCampaignDetailServices(); var message = service.ActionPassing(selectedIds, UserLogin); return Json(message); }
public ActionResult ExportAllInterviewDetailListNew([DataSourceRequest] DataSourceRequest request, Rec_InterviewCampaignDetailSearchModel model) { string status = string.Empty; var baseService = new BaseService(); ActionService service = new ActionService(UserLogin); List<object> objs = new List<object>(); List<object> objshis = new List<object>(); List<Rec_InterviewCampaignDetailModel> resultInterviewCampaignDetail = new List<Rec_InterviewCampaignDetailModel>(); var InterviewServices = new Rec_InterviewCampaignDetailServices(); ListQueryModel lstModel = new ListQueryModel { PageSize = int.MaxValue - 1, PageIndex = 1, Filters = ExtractFilterAttributes(request), Sorts = ExtractSortAttributes(request), AdvanceFilters = ExtractAdvanceFilterAttributes(model) }; var result = baseService.GetData<Rec_InterviewCampaignDetailModel>(lstModel, ConstantSql.hrm_rec_sp_get_InterviewCampaignDetail, UserLogin, ref status); if (result != null) { var InTerCamDetaiServices = new Rec_InterviewCampaignDetailServices(); var HistoryServices = new Rec_RecruitmentHistoryServices(); var lstCandidateIDS = result.Select(s => s.CandidateID).Distinct().ToList(); //string temp = string.Empty; //foreach (Guid item in lstCandidateIDS) //{ // temp += item; // temp += ","; //} //if (temp.Length > 0) //{ // temp = temp.Substring(0, temp.Length - 1); //} // var lstCandidateHistory = HistoryServices.GetData<Rec_RecruitmentHistoryEntity>(Common.DotNetToOracle(temp), ConstantSql.hrm_rec_sp_get_RecHisByListCandidateID, UserLogin, ref status).ToList(); var lstCandidateHistory = new List<Rec_RecruitmentHistoryEntity>(); int _total = lstCandidateIDS.Count; int _totalPage = _total / 100 + 1; int _pageSize = 100; for (int _page = 1; _page <= _totalPage; _page++) { int _skip = _pageSize * (_page - 1); var _listCurrenPage = lstCandidateIDS.Skip(_skip).Take(_pageSize).ToList(); string _strselectedIDs = Common.DotNetToOracle(string.Join(",", _listCurrenPage)); var lstRecruitmentHistory = baseService.GetData<Rec_RecruitmentHistoryEntity>(_strselectedIDs, ConstantSql.hrm_rec_sp_get_RecHisByListCandidateID, UserLogin, ref status).ToList(); if (lstRecruitmentHistory != null && lstRecruitmentHistory.Count > 0) { lstCandidateHistory.AddRange(lstRecruitmentHistory); } } foreach (var item in result) { //var IlInterviewcampaugnDetail = result.Where(s => s.CandidateID == item.CandidateID).ToList(); var ObjHisCandidate = lstCandidateHistory.Where(s => s.ID == item.RecruitmentHistoryID).FirstOrDefault(); if (ObjHisCandidate == null) { continue; } Rec_JobVacancyEntity entityJobVacancy = null; if (ObjHisCandidate != null && ObjHisCandidate.JobVacancyID != Guid.Empty && ObjHisCandidate.JobVacancyID != null) { entityJobVacancy = service.GetByIdUseStore<Rec_JobVacancyEntity>(ObjHisCandidate.JobVacancyID.Value, ConstantSql.hrm_rec_sp_get_JobVacancyId, ref status); } if (entityJobVacancy != null) { if (item.LevelInterview != null && item.LevelInterview == entityJobVacancy.NoLevelInterview) { continue; } } if (item.LevelInterview == null && (ObjHisCandidate.Status != HRM.Infrastructure.Utilities.EnumDropDown.CandidateStatus.E_PASS.ToString() && ObjHisCandidate.Status != HRM.Infrastructure.Utilities.EnumDropDown.CandidateStatus.E_FAIL.ToString() )) { if (ObjHisCandidate != null) { if (ObjHisCandidate.LevelInterview == null) { item.LevelInterview = 1; resultInterviewCampaignDetail.Add(item); } else { item.LevelInterview = ObjHisCandidate.LevelInterview + 1; resultInterviewCampaignDetail.Add(item); } } } } } resultInterviewCampaignDetail = resultInterviewCampaignDetail.Distinct().ToList(); if (status == NotificationType.Success.ToString()) { status = ExportService.Export(resultInterviewCampaignDetail, model.GetPropertyValue("ValueFields").TryGetValue<string>().Split(',')); } return Json(status); }
public Rec_InterviewModel Post([Bind]Rec_InterviewModel model) { #region Validate string message = string.Empty; var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData<Rec_InterviewModel>(model, "Rec_Interview", ref message); if (!checkValidate) { model.ActionStatus = message; return model; } #endregion ActionService service = new ActionService(UserLogin); var result = service.UpdateOrCreate<Rec_InterviewEntity, Rec_InterviewModel>(model); var RecruitmentHisService = new Rec_RecruitmentHistoryServices(); var candService = new Rec_CandidateServices(); var InTerCamDetaiServices = new Rec_InterviewCampaignDetailServices(); Rec_RecruitmentHistoryEntity ObjRecruitmentHistory = null; Rec_RecruitmentHistoryServices RecruitmentHistoryServices = new Rec_RecruitmentHistoryServices(); Rec_CandidateEntity ObjCandidate = null; Rec_CandidateServices CandidateServices = new Rec_CandidateServices(); Rec_InterviewCampaignDetailEntity ObjInterviewCampaignDetail = null; Rec_InterviewCampaignDetailServices InterviewCampaignDetailServices = new Rec_InterviewCampaignDetailServices(); string status = string.Empty; #region xử lý cap nhat lich su ung vien, cap nhat ung vien if (result != null) { ObjRecruitmentHistory = new Rec_RecruitmentHistoryEntity(); ObjCandidate = new Rec_CandidateEntity(); ObjInterviewCampaignDetail = new Rec_InterviewCampaignDetailEntity(); var IlRecruitmentHistory = RecruitmentHisService.GetData<Rec_RecruitmentHistoryEntity>(result.CandidateID, ConstantSql.hrm_rec_sp_get_RecruitmentHistoryIdByCandidateId,UserLogin, ref status).OrderByDescending(s => s.DateApply).FirstOrDefault(); var IlCandate = candService.GetData<Rec_CandidateEntity>(result.CandidateID, ConstantSql.hrm_rec_sp_get_CandidateById, UserLogin, ref status).FirstOrDefault(); var IlInterviewcampaugnDetail = InTerCamDetaiServices.GetData<Rec_InterviewCampaignDetailEntity>(result.CandidateID, ConstantSql.hrm_rec_sp_get_InterviewCampaignDetailByCddId, UserLogin ,ref status).ToList(); ObjCandidate = IlCandate; ObjRecruitmentHistory = IlRecruitmentHistory; if (IlCandate != null) { string[] strCondition = model.ConditionTemp.Split('|').ToArray(); foreach (var Objitem in strCondition) { string[] item = Objitem.Split(',').ToArray(); if(item[0].ToString() == EnumDropDown.JobCondition.E_HEIGHT.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.Height = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_WEIGHT.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.Weight = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_LEVELEYES.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.LevelEye = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_LEVERIGHTLEYES.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.LevelEyeRight = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_MUSCULOSKELETAL.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.Musculoskeletal = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_BLOODPRESSURE.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.BloodPressure = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_HEARTBEAT.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.HeartBeat = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_GENARALHEALTH.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.GenaralHealth = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_DISEASELISTIDS.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.DiseaseListIDs = item[1].ToString(); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_WRITETEST.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.WriteTest = double.Parse(item[1].ToString()); } } else if (item[0].ToString() == EnumDropDown.JobCondition.E_INTERVIEW.ToString()) { if (item[1] != null && item[1] != "") { ObjCandidate.Interview = double.Parse(item[1].ToString()); } } } ObjCandidate.LevelInterview = result.LevelInterview; if (result.ResultInterview.Equals(HRM.Infrastructure.Utilities.Interview.E_FAIL.ToString())) { ObjCandidate.Status = HRM.Infrastructure.Utilities.Interview.E_FAIL.ToString(); ObjCandidate.DateUpdate = DateTime.Now; } // Nếu có nhập điểm thì gán ngày đánh giá = ngày phỏng vấn if (model != null && (model.Score1 != null || model.Score2 != null)) { ObjCandidate.DateExam = model.DateInterview; ObjCandidate.DateUpdate = DateTime.Now; } if(ObjCandidate.JobVacancyID != null) { var entityJobVacancy = service.GetData<Rec_JobVacancyEntity>(Common.DotNetToOracle(ObjCandidate.JobVacancyID.ToString()), ConstantSql.hrm_rec_sp_get_JobVacancyId, ref status).FirstOrDefault(); if (entityJobVacancy.NoLevelInterview == result.LevelInterview && result.ResultInterview.Equals(HRM.Infrastructure.Utilities.Interview.E_PASS.ToString())) { if (IlCandate != null) { ObjCandidate.Status = HRM.Infrastructure.Utilities.EnumDropDown.CandidateStatus.E_PASS.ToString(); ObjCandidate.DateUpdate = DateTime.Now; } if (IlRecruitmentHistory != null) { ObjRecruitmentHistory.Status = HRM.Infrastructure.Utilities.Interview.E_PASS.ToString(); ObjRecruitmentHistory.DateUpdate = DateTime.Now; } } } } if (IlRecruitmentHistory != null) { // Nếu có nhập điểm thì gán ngày đánh giá = ngày phỏng vấn if (model != null && (model.Score1 != null || model.Score2 != null)) { IlRecruitmentHistory.DateExam = model.DateInterview; } ObjRecruitmentHistory = IlRecruitmentHistory; ObjRecruitmentHistory.LevelInterview = result.LevelInterview; if (result.ResultInterview.Equals(HRM.Infrastructure.Utilities.Interview.E_FAIL.ToString())) { //cap nhat status cho lich su ung vien ObjRecruitmentHistory.Status = HRM.Infrastructure.Utilities.Interview.E_FAIL.ToString(); } } //Cập nhật level cho intercampaigndetail if (IlInterviewcampaugnDetail != null) { var ObjTemp = IlInterviewcampaugnDetail.Where(s => s.CandidateID == result.CandidateID && s.LevelInterview == null).FirstOrDefault(); if (ObjTemp != null) { ObjInterviewCampaignDetail = ObjTemp; ObjInterviewCampaignDetail.LevelInterview = result.LevelInterview; } } message = InterviewCampaignDetailServices.Edit(ObjInterviewCampaignDetail); message = RecruitmentHistoryServices.Edit(ObjRecruitmentHistory); message = CandidateServices.Edit(ObjCandidate); } #endregion return result; }
public ActionResult GetIntervieCampaignDetailList([DataSourceRequest] DataSourceRequest request, Rec_InterviewCampaignDetailSearchModel model) { List<Rec_InterviewCampaignDetailModel> resultInterviewCampaignDetail = new List<Rec_InterviewCampaignDetailModel>(); string status = string.Empty; var baseService = new BaseService(); var actionService = new ActionService(UserLogin); List<object> objs = new List<object>(); List<object> objshis = new List<object>(); var InterviewServices = new Rec_InterviewCampaignDetailServices(); ListQueryModel lstModel = new ListQueryModel { PageSize = int.MaxValue - 1, PageIndex = 1, Filters = ExtractFilterAttributes(request), Sorts = ExtractSortAttributes(request), AdvanceFilters = ExtractAdvanceFilterAttributes(model) }; int? level = (model != null && model.LevelInterview != 0) ? model.LevelInterview : null; List<object> lstModels = new List<object>(); lstModels.AddRange(new object[16]); lstModels[0] = model.CandidateName; lstModels[1] = model.DateFrom; lstModels[2] = model.DateTo; lstModels[3] = model.CodeCandidate; lstModels[4] = model.RankID; lstModels[5] = model.OrgStructureID; lstModels[6] = model.JobVacancyID; lstModels[7] = model.PositionID; lstModels[8] = level; lstModels[13] = model.WorkPlaceID; lstModels[14] = 1; lstModels[15] = Int32.MaxValue - 1; var result = actionService.GetData<Rec_InterviewCampaignDetailModel>(lstModels, ConstantSql.hrm_rec_sp_get_InterviewCampaignDetail, ref status); #region Load Chi tiet ke hoach chua phong van if (result != null) { var InTerCamDetaiServices = new Rec_InterviewCampaignDetailServices(); var HistoryServices = new Rec_RecruitmentHistoryServices(); var lstCandidateIDS = result.Select(s => s.CandidateID).Distinct().ToList(); var lstCandidateHistory = new List<Rec_RecruitmentHistoryEntity>(); int _total = lstCandidateIDS.Count; int _totalPage = _total / 100 + 1; int _pageSize = 100; for (int _page = 1; _page <= _totalPage; _page++) { int _skip = _pageSize * (_page - 1); var _listCurrenPage = lstCandidateIDS.Skip(_skip).Take(_pageSize).ToList(); string _strselectedIDs = Common.DotNetToOracle(string.Join(",", _listCurrenPage)); var lstRecruitmentHistory = baseService.GetData<Rec_RecruitmentHistoryEntity>(_strselectedIDs, ConstantSql.hrm_rec_sp_get_RecHisByListCandidateID, UserLogin, ref status).ToList(); if (lstRecruitmentHistory != null && lstRecruitmentHistory.Count > 0) { lstCandidateHistory.AddRange(lstRecruitmentHistory); } } foreach (var item in result) { bool IsAdd = false; //var IlInterviewcampaugnDetail = result.Where(s => s.CandidateID == item.CandidateID).ToList(); var ObjHisCandidate = lstCandidateHistory.Where(s => s.ID == item.RecruitmentHistoryID).FirstOrDefault(); if (ObjHisCandidate == null) { continue; } if (item.LevelInterview == null) { IsAdd = true; } Rec_JobVacancyEntity entityJobVacancy = null; if (ObjHisCandidate != null && ObjHisCandidate.JobVacancyID != Guid.Empty && ObjHisCandidate.JobVacancyID != null) { entityJobVacancy = actionService.GetByIdUseStore<Rec_JobVacancyEntity>(ObjHisCandidate.JobVacancyID.Value, ConstantSql.hrm_rec_sp_get_JobVacancyId, ref status); } if (entityJobVacancy != null) { if (item.LevelInterview != null && item.LevelInterview == entityJobVacancy.NoLevelInterview) { continue; } } if (item.LevelInterview == null && (ObjHisCandidate.Status != HRM.Infrastructure.Utilities.EnumDropDown.CandidateStatus.E_PASS.ToString() && ObjHisCandidate.Status != HRM.Infrastructure.Utilities.EnumDropDown.CandidateStatus.E_FAIL.ToString() )) { if (ObjHisCandidate != null) { if (ObjHisCandidate.LevelInterview == null) { item.LevelInterview = 1; } else { item.LevelInterview = ObjHisCandidate.LevelInterview + 1; } if (IsAdd == true) { resultInterviewCampaignDetail.Add(item); } } } } } resultInterviewCampaignDetail = resultInterviewCampaignDetail.Distinct().ToList(); #endregion var isDataTable = false; object obj = new Rec_InterviewCampaignDetailModel(); HeaderInfo headerInfo1 = new HeaderInfo() { Name = "DateFrom", Value = model.DateFrom }; HeaderInfo headerInfo2 = new HeaderInfo() { Name = "DateTo", Value = model.DateTo }; List<HeaderInfo> listHeaderInfo = new List<HeaderInfo>() { headerInfo1, headerInfo2 }; if (model.IsCreateTemplateForDynamicGrid) { obj = resultInterviewCampaignDetail; isDataTable = false; } if (model != null && model.IsCreateTemplate) { var path = Common.GetPath("Templates"); ExportService exportService = new ExportService(); ConfigExport cfgExport = new ConfigExport() { Object = obj, FileName = "Rec_InterviewCampaignDetailModel", OutPutPath = path, HeaderInfo = listHeaderInfo, DownloadPath = Hrm_Main_Web + "Templates", IsDataTable = isDataTable }; var str = exportService.CreateTemplate(cfgExport); return Json(str); } var objInterview = new List<object>(); objInterview.AddRange(new object[2]); objInterview[0] = 1; objInterview[1] = int.MaxValue - 1; var lstInterView = baseService.GetData<Rec_InterviewModel>(objInterview, ConstantSql.hrm_rec_sp_get_InterviewDataReport, UserLogin, ref status).ToList(); if (model.ExportId != Guid.Empty) { foreach (var item in resultInterviewCampaignDetail) { var dataLevel1 = lstInterView.Where(s => s.CandidateID == item.ID && s.LevelInterview == 1).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); var dataLevel2 = lstInterView.Where(s => s.CandidateID == item.ID && s.LevelInterview == 2).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); var dataLevel3 = lstInterView.Where(s => s.CandidateID == item.ID && s.LevelInterview == 3).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); var dataLevel4 = lstInterView.Where(s => s.CandidateID == item.ID && s.LevelInterview == 4).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); var dataLevel5 = lstInterView.Where(s => s.CandidateID == item.ID && s.LevelInterview == 5).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); if (dataLevel1 != null) { item.Score1_1 = dataLevel1.Score1; item.Score1_2 = dataLevel1.Score2; item.Score1_3 = dataLevel1.Score3; item.KQ1 = dataLevel1.ResultInterviewView; item.LanguageCode1 = dataLevel1.LanguageCode; item.DateInterview1 = dataLevel1.DateInterview; } if (dataLevel2 != null) { item.Score2_1 = dataLevel2.Score1; item.Score2_2 = dataLevel2.Score2; item.Score2_3 = dataLevel2.Score3; item.KQ2 = dataLevel2.ResultInterviewView; item.LanguageCode2 = dataLevel2.LanguageCode; item.DateInterview2 = dataLevel2.DateInterview; } if (dataLevel3 != null) { item.Score3_1 = dataLevel3.Score1; item.Score3_2 = dataLevel3.Score2; item.Score3_3 = dataLevel3.Score3; item.KQ3 = dataLevel3.ResultInterviewView; item.LanguageCode3 = dataLevel3.LanguageCode; item.DateInterview3 = dataLevel3.DateInterview; } if (dataLevel4 != null) { item.Score4_1 = dataLevel4.Score1; item.Score4_2 = dataLevel4.Score2; item.Score4_3 = dataLevel4.Score3; item.KQ4 = dataLevel4.ResultInterviewView; item.LanguageCode4 = dataLevel4.LanguageCode; item.DateInterview4 = dataLevel4.DateInterview; } if (dataLevel5 != null) { item.Score5_1 = dataLevel5.Score1; item.Score5_2 = dataLevel5.Score2; item.Score5_3 = dataLevel5.Score3; item.KQ5 = dataLevel5.ResultInterviewView; item.LanguageCode5 = dataLevel5.LanguageCode; item.DateInterview5 = dataLevel5.DateInterview; } } var fullPath = ExportService.Export(model.ExportId, resultInterviewCampaignDetail, listHeaderInfo, model.ExportType); return Json(fullPath); } // return Json(resultInterviewCampaignDetail.ToDataSourceResult(request)); return Json(resultInterviewCampaignDetail.ToDataSourceResult(request), JsonRequestBehavior.AllowGet); //var result = GetListDataAndReturn<Rec_InterviewCampaignDetailModel, Rec_InterviewCampaignDetailEntity, Rec_InterviewCampaignDetailSearchModel>(request, model, ConstantSql.hrm_rec_sp_get_InterviewCampaignDetail); //return result; }
public ActionResult ExportIntervieCampaignDetaiByTemplate([DataSourceRequest] DataSourceRequest request, Rec_InterviewCampaignDetailSearchModel model) { string status = string.Empty; var baseService = new BaseService(); ActionService service = new ActionService(UserLogin); List<object> objs = new List<object>(); List<object> objshis = new List<object>(); List<Rec_InterviewCampaignDetailModel> resultInterviewCampaignDetail = new List<Rec_InterviewCampaignDetailModel>(); var InterviewServices = new Rec_InterviewCampaignDetailServices(); ListQueryModel lstModel = new ListQueryModel { PageSize = int.MaxValue - 1, PageIndex = 1, Filters = ExtractFilterAttributes(request), Sorts = ExtractSortAttributes(request), AdvanceFilters = ExtractAdvanceFilterAttributes(model) }; var result = baseService.GetData<Rec_InterviewCampaignDetailModel>(lstModel, ConstantSql.hrm_rec_sp_get_InterviewCampaignDetail, UserLogin, ref status); #region Load Chi tiet ke hoach chua phong van if (result != null) { var InTerCamDetaiServices = new Rec_InterviewCampaignDetailServices(); var HistoryServices = new Rec_RecruitmentHistoryServices(); var lstCandidateIDS = result.Select(s => s.CandidateID).Distinct().ToList(); string temp = string.Empty; foreach (Guid item in lstCandidateIDS) { temp += item; temp += ","; } if (temp.Length > 0) { temp = temp.Substring(0, temp.Length - 1); } var lstCandidateHistory = HistoryServices.GetData<Rec_RecruitmentHistoryEntity>(Common.DotNetToOracle(temp), ConstantSql.hrm_rec_sp_get_RecHisByListCandidateID, UserLogin, ref status).ToList(); foreach (var item in result) { //var IlInterviewcampaugnDetail = result.Where(s => s.CandidateID == item.CandidateID).ToList(); var ObjHisCandidate = lstCandidateHistory.Where(s => s.ID == item.RecruitmentHistoryID).FirstOrDefault(); if (ObjHisCandidate == null) { continue; } Rec_JobVacancyEntity entityJobVacancy = null; if (ObjHisCandidate != null && ObjHisCandidate.JobVacancyID != Guid.Empty && ObjHisCandidate.JobVacancyID != null) { entityJobVacancy = service.GetByIdUseStore<Rec_JobVacancyEntity>(ObjHisCandidate.JobVacancyID.Value, ConstantSql.hrm_rec_sp_get_JobVacancyId, ref status); } if (entityJobVacancy != null) { if (item.LevelInterview != null && item.LevelInterview == entityJobVacancy.NoLevelInterview) { continue; } } if (item.LevelInterview == null && (ObjHisCandidate.Status != HRM.Infrastructure.Utilities.EnumDropDown.CandidateStatus.E_PASS.ToString() && ObjHisCandidate.Status != HRM.Infrastructure.Utilities.EnumDropDown.CandidateStatus.E_FAIL.ToString() )) { if (ObjHisCandidate != null) { if (ObjHisCandidate.LevelInterview == null) { item.LevelInterview = 1; resultInterviewCampaignDetail.Add(item); } else { item.LevelInterview = ObjHisCandidate.LevelInterview + 1; resultInterviewCampaignDetail.Add(item); } } } } } resultInterviewCampaignDetail = resultInterviewCampaignDetail.Distinct().ToList(); #endregion var isDataTable = false; object obj = new Rec_InterviewCampaignDetailModel(); HeaderInfo headerInfo1 = new HeaderInfo() { Name = "DateFrom", Value = model.DateFrom }; HeaderInfo headerInfo2 = new HeaderInfo() { Name = "DateTo", Value = model.DateTo }; List<HeaderInfo> listHeaderInfo = new List<HeaderInfo>() { headerInfo1, headerInfo2 }; if (model.IsCreateTemplateForDynamicGrid) { obj = resultInterviewCampaignDetail; isDataTable = false; } if (model != null && model.IsCreateTemplate) { var path = Common.GetPath("Templates"); ExportService exportService = new ExportService(); ConfigExport cfgExport = new ConfigExport() { Object = obj, FileName = "Rec_InterviewCampaignDetailModel", OutPutPath = path, HeaderInfo = listHeaderInfo, DownloadPath = Hrm_Main_Web + "Templates", IsDataTable = isDataTable }; var str = exportService.CreateTemplate(cfgExport); return Json(str); } if (model.ExportId != Guid.Empty) { var fullPath = ExportService.Export(model.ExportId, resultInterviewCampaignDetail, listHeaderInfo, model.ExportType); return Json(fullPath); } return Json(resultInterviewCampaignDetail.ToDataSourceResult(request)); }
public string ActionPassing(string selectedIds, string userLogin) { using (var context = new VnrHrmDataContext()) { BaseService service = new BaseService(); Rec_InterviewServices services = new Rec_InterviewServices(); Rec_InterviewCampaignDetailServices InterviewCampaignDetailServices = new Rec_InterviewCampaignDetailServices(); Rec_RecruitmentHistoryServices RecruitmentHistoryServices = new Rec_RecruitmentHistoryServices(); Rec_CandidateServices CandidateServices = new Rec_CandidateServices(); string status = string.Empty; string message = string.Empty; var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new Rec_InterviewCampaignDetailRepository(unitOfWork); var InterviewRepository = new Rec_InterviewRepository(unitOfWork); var InterviewCampaignDetailRepository = new Rec_InterviewCampaignDetailRepository(unitOfWork); List<Guid> lstIds = selectedIds.Split(',').Select(x => Guid.Parse(x)).ToList(); var lstInterviewCampaignDetail = repo.FindBy(m => m.ID != null && lstIds.Contains(m.ID)).ToList(); var lstcandidateid = lstInterviewCampaignDetail.Select(s => s.CandidateID).ToList(); var objs = new List<object>(); string strIDs = string.Empty; foreach (var item in lstcandidateid) { strIDs += Common.DotNetToOracle(item.ToString()) + ","; } if (strIDs.IndexOf(",") > 0) strIDs = strIDs.Substring(0, strIDs.Length - 1); objs.Add(strIDs); var lstcandidate = service.GetData<Rec_CandidateEntity>(strIDs, ConstantSql.hrm_rec_sp_get_CandidateByIds, userLogin, ref status).ToList(); var lstrecruimenthistory = service.GetData<Rec_RecruitmentHistoryEntity>(strIDs, ConstantSql.hrm_hr_sp_get_RecHisByCandidateIds, userLogin, ref status).ToList(); var lstinterviewbycandidateids = service.GetData<Rec_InterviewEntity>(strIDs, ConstantSql.hrm_hr_sp_get_InterViewByCandidateIds, userLogin, ref status).ToList(); List<Rec_InterviewEntity> lstinterview = new List<Rec_InterviewEntity>(); List<Rec_InterviewCampaignDetail> lstAllInterviewCampaignDetail = new List<Rec_InterviewCampaignDetail>(); var lstJobVaCancyIDs = lstcandidate.Select(s => s.JobVacancyID).ToList(); string strJobVacancyIds = string.Empty; foreach (Guid item in lstJobVaCancyIDs) { strJobVacancyIds += item; strJobVacancyIds += ","; } if (strJobVacancyIds.Length > 0) { strJobVacancyIds = strJobVacancyIds.Substring(0, strJobVacancyIds.Length - 1); } var lstJobVacancy = service.GetData<Rec_JobVacancyEntity>(Common.DotNetToOracle(strJobVacancyIds), ConstantSql.hrm_rec_sp_get_JobVacancyByIds, userLogin, ref status).ToList(); Rec_InterviewCampaignDetail ObjRecInterviewDt = null; foreach (var candidate in lstcandidate) { ObjRecInterviewDt = new Rec_InterviewCampaignDetail(); Rec_InterviewEntity Interview = new Rec_InterviewEntity(); var hisbycandidate = lstrecruimenthistory.Where(s => s.CandidateID == candidate.ID).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); Interview.CandidateID = candidate.ID; Interview.RecruitmentHistoryID = hisbycandidate.ID; var interviewbycan = lstinterviewbycandidateids.Where(s => s.RecruitmentHistoryID == hisbycandidate.ID).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); int? level = 0; if (interviewbycan != null && interviewbycan.LevelInterview != null) { level = interviewbycan.LevelInterview + 1; } else { level = 1; } var InterviewCampaignDetail = lstInterviewCampaignDetail.Where(s => s.RecruitmentHistoryID == hisbycandidate.ID && s.LevelInterview == null).FirstOrDefault(); if (InterviewCampaignDetail == null) { continue; } ObjRecInterviewDt = InterviewCampaignDetail; ObjRecInterviewDt.LevelInterview = level; var jobVacancybyCandidate = lstJobVacancy.Where(s => s.ID == candidate.JobVacancyID).FirstOrDefault(); var rechisbycandidate = lstrecruimenthistory.Where(s => s.CandidateID == candidate.ID).OrderByDescending(s => s.DateApply).FirstOrDefault(); // nếu là vòng phỏng vấn cuối cùng thì cập nhật lại trạng thái. if (jobVacancybyCandidate != null && jobVacancybyCandidate.NoLevelInterview == level) { rechisbycandidate.Status = "E_PASS"; candidate.Status = "E_PASS"; } candidate.LevelInterview = level; rechisbycandidate.LevelInterview = level; rechisbycandidate.CandidateID = candidate.ID; Interview.Status = "E_PASS"; Interview.ResultInterview = "E_PASS"; Interview.LevelInterview = level; lstinterview.Add(Interview); lstAllInterviewCampaignDetail.Add(ObjRecInterviewDt); RecruitmentHistoryServices.Edit(rechisbycandidate); CandidateServices.Edit(candidate); } services.Add(lstinterview); InterviewCampaignDetailServices.Edit(lstAllInterviewCampaignDetail); InterviewRepository.SaveChanges(); InterviewCampaignDetailRepository.SaveChanges(); message = NotificationType.Success.ToString(); return message; } }
public Rec_InterviewCampaignModel Post([Bind]Rec_InterviewCampaignModel model) { #region Validate string message = string.Empty; var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData<Rec_InterviewCampaignModel>(model, "Rec_InterviewCampaign", ref message); if (!checkValidate) { model.ActionStatus = message; return model; } #endregion ActionService service = new ActionService(UserLogin); var result = service.UpdateOrCreate<Rec_InterviewCampaignEntity, Rec_InterviewCampaignModel>(model); if (model.listCandidateGuidIds != null) { List<Guid> listId = model.listCandidateGuidIds; Rec_InterviewCampaignDetailEntity OjbInterviewDetail = null; Rec_InterviewCampaignDetailServices InterviewCampaignDetailService = new Rec_InterviewCampaignDetailServices(); string status = string.Empty; foreach (Guid item in listId) { var RecruitmentHisService = new Rec_RecruitmentHistoryServices(); var ilistRecruitmentHistory = RecruitmentHisService.GetData<Rec_RecruitmentHistoryEntity>(item, ConstantSql.hrm_rec_sp_get_RecruitmentHistoryIdByCandidateId, UserLogin,ref status).ToList(); Guid? RecruitmentHistoryId = ilistRecruitmentHistory.Where(s => s.Status != HRM.Infrastructure.Utilities.Interview.E_FAIL.ToString() && s.Status != HRM.Infrastructure.Utilities.Interview.E_PASS.ToString() && s.Status != null).Select(s => s.ID).FirstOrDefault(); OjbInterviewDetail = new Rec_InterviewCampaignDetailEntity(); OjbInterviewDetail.InterviewCampaignID = result.ID; OjbInterviewDetail.CandidateID = item; OjbInterviewDetail.DateInterview = model.DateInterviewFrom; OjbInterviewDetail.RecruitmentHistoryID = RecruitmentHistoryId; OjbInterviewDetail.LevelInterview = model.LevelInterview; InterviewCampaignDetailService.Add(OjbInterviewDetail); } } return result; }
public string ActionPassing(string selectedIds, string userLogin) { using (var context = new VnrHrmDataContext()) { BaseService service = new BaseService(); Rec_InterviewServices services = new Rec_InterviewServices(); Rec_InterviewCampaignDetailServices InterviewCampaignDetailServices = new Rec_InterviewCampaignDetailServices(); Rec_RecruitmentHistoryServices RecruitmentHistoryServices = new Rec_RecruitmentHistoryServices(); Rec_CandidateServices CandidateServices = new Rec_CandidateServices(); string status = string.Empty; string message = string.Empty; var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repo = new Rec_InterviewCampaignDetailRepository(unitOfWork); var InterviewRepository = new Rec_InterviewRepository(unitOfWork); var InterviewCampaignDetailRepository = new Rec_InterviewCampaignDetailRepository(unitOfWork); List <Guid> lstIds = selectedIds.Split(',').Select(x => Guid.Parse(x)).ToList(); var lstInterviewCampaignDetail = repo.FindBy(m => m.ID != null && lstIds.Contains(m.ID)).ToList(); var lstcandidateid = lstInterviewCampaignDetail.Select(s => s.CandidateID).ToList(); var objs = new List <object>(); string strIDs = string.Empty; foreach (var item in lstcandidateid) { strIDs += Common.DotNetToOracle(item.ToString()) + ","; } if (strIDs.IndexOf(",") > 0) { strIDs = strIDs.Substring(0, strIDs.Length - 1); } objs.Add(strIDs); var lstcandidate = service.GetData <Rec_CandidateEntity>(strIDs, ConstantSql.hrm_rec_sp_get_CandidateByIds, userLogin, ref status).ToList(); var lstrecruimenthistory = service.GetData <Rec_RecruitmentHistoryEntity>(strIDs, ConstantSql.hrm_hr_sp_get_RecHisByCandidateIds, userLogin, ref status).ToList(); var lstinterviewbycandidateids = service.GetData <Rec_InterviewEntity>(strIDs, ConstantSql.hrm_hr_sp_get_InterViewByCandidateIds, userLogin, ref status).ToList(); List <Rec_InterviewEntity> lstinterview = new List <Rec_InterviewEntity>(); List <Rec_InterviewCampaignDetail> lstAllInterviewCampaignDetail = new List <Rec_InterviewCampaignDetail>(); var lstJobVaCancyIDs = lstcandidate.Select(s => s.JobVacancyID).ToList(); string strJobVacancyIds = string.Empty; foreach (Guid item in lstJobVaCancyIDs) { strJobVacancyIds += item; strJobVacancyIds += ","; } if (strJobVacancyIds.Length > 0) { strJobVacancyIds = strJobVacancyIds.Substring(0, strJobVacancyIds.Length - 1); } var lstJobVacancy = service.GetData <Rec_JobVacancyEntity>(Common.DotNetToOracle(strJobVacancyIds), ConstantSql.hrm_rec_sp_get_JobVacancyByIds, userLogin, ref status).ToList(); Rec_InterviewCampaignDetail ObjRecInterviewDt = null; foreach (var candidate in lstcandidate) { ObjRecInterviewDt = new Rec_InterviewCampaignDetail(); Rec_InterviewEntity Interview = new Rec_InterviewEntity(); var hisbycandidate = lstrecruimenthistory.Where(s => s.CandidateID == candidate.ID).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); Interview.CandidateID = candidate.ID; Interview.RecruitmentHistoryID = hisbycandidate.ID; var interviewbycan = lstinterviewbycandidateids.Where(s => s.RecruitmentHistoryID == hisbycandidate.ID).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); int?level = 0; if (interviewbycan != null && interviewbycan.LevelInterview != null) { level = interviewbycan.LevelInterview + 1; } else { level = 1; } var InterviewCampaignDetail = lstInterviewCampaignDetail.Where(s => s.RecruitmentHistoryID == hisbycandidate.ID && s.LevelInterview == null).FirstOrDefault(); if (InterviewCampaignDetail == null) { continue; } ObjRecInterviewDt = InterviewCampaignDetail; ObjRecInterviewDt.LevelInterview = level; var jobVacancybyCandidate = lstJobVacancy.Where(s => s.ID == candidate.JobVacancyID).FirstOrDefault(); var rechisbycandidate = lstrecruimenthistory.Where(s => s.CandidateID == candidate.ID).OrderByDescending(s => s.DateApply).FirstOrDefault(); // nếu là vòng phỏng vấn cuối cùng thì cập nhật lại trạng thái. if (jobVacancybyCandidate != null && jobVacancybyCandidate.NoLevelInterview == level) { rechisbycandidate.Status = "E_PASS"; candidate.Status = "E_PASS"; } candidate.LevelInterview = level; rechisbycandidate.LevelInterview = level; rechisbycandidate.CandidateID = candidate.ID; Interview.Status = "E_PASS"; Interview.ResultInterview = "E_PASS"; Interview.LevelInterview = level; lstinterview.Add(Interview); lstAllInterviewCampaignDetail.Add(ObjRecInterviewDt); RecruitmentHistoryServices.Edit(rechisbycandidate); CandidateServices.Edit(candidate); } services.Add(lstinterview); InterviewCampaignDetailServices.Edit(lstAllInterviewCampaignDetail); InterviewRepository.SaveChanges(); InterviewCampaignDetailRepository.SaveChanges(); message = NotificationType.Success.ToString(); return(message); } }