/// <summary> /// </summary> /// <param name="id"></param> /// <returns></returns> public Tra_AddPointModel GetById(string id) { Tra_AddPointModel result = new Tra_AddPointModel(); List <Guid> SelectedIds = new List <Guid>(); if (!string.IsNullOrEmpty(id)) { SelectedIds = id.Split(',').Select(s => Guid.Parse(s)).ToList(); } if (SelectedIds != null && SelectedIds.Count > 0) { //Guid[] traineeID = null; var message = string.Empty; string status = string.Empty; List <Guid> lstClassID = new List <Guid>(); List <Guid> lstTraineeID = new List <Guid>(); #region load data var traineeServices = new Tra_TraineeServices(); var objTrainee = new List <object>(); objTrainee.AddRange(new object[15]); objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; List <Tra_TraineeEntity> lstTrainee = traineeServices.GetData <Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status); var courseSevices = new Tra_CourseServices(); var objCoures = new List <object>(); objCoures.AddRange(new object[11]); objCoures[9] = 1; objCoures[10] = int.MaxValue - 1; List <Tra_CourseEntity> lstCourse = courseSevices.GetData <Tra_CourseEntity>(objCoures, ConstantSql.hrm_tra_sp_get_Course, UserLogin, ref status); var classServices = new Tra_ClassServices(); var objClass = new List <object>(); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(1); objClass.Add(int.MaxValue - 1); List <Tra_ClassEntity> lstClass = classServices.GetData <Tra_ClassEntity>(objClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status); var traineeTopicServices = new Tra_TraineeTopicServices(); var objTraineeTopic = new List <object>(); objTraineeTopic.Add(1); objTraineeTopic.Add(int.MaxValue - 1); var lstTraineeTopic = traineeTopicServices.GetData <Tra_TraineeTopicEntity>(objTraineeTopic, ConstantSql.hrm_tra_sp_get_TraineeTopic, UserLogin, ref status).ToList(); var scoreTopicServices = new Tra_ScoreTopicServices(); var objScoreTopic = new List <object>(); objScoreTopic.Add(1); objScoreTopic.Add(int.MaxValue - 1); var lstScoreTopic = scoreTopicServices.GetData <Tra_ScoreTopicEntity>(objScoreTopic, ConstantSql.hrm_tra_sp_get_ScoreTopic, UserLogin, ref status).ToList(); var courseTopicServices = new Tra_TraineeTopicServices(); var objCourseTopic = new List <object>(); objCourseTopic.Add(1); objCourseTopic.Add(int.MaxValue - 1); List <Tra_CourseTopicEntity> lstCourseTopic = courseTopicServices.GetData <Tra_CourseTopicEntity>(objCourseTopic, ConstantSql.hrm_tra_sp_get_CourseTopic, UserLogin, ref status); var traineeScoreServices = new Tra_TraineeScoreServices(); var objTraineeScore = new List <object>(); objTraineeScore.Add(1); objTraineeScore.Add(int.MaxValue - 1); var lstTraineeScore = traineeScoreServices.GetData <Tra_TraineeScoreEntity>(objTraineeScore, ConstantSql.hrm_tra_sp_get_TraineeScore, UserLogin, ref status).ToList(); if (SelectedIds != null) { lstTrainee = lstTrainee.Where(s => SelectedIds.Contains(s.ID)).ToList(); lstTraineeID = lstTrainee.Select(s => s.ID).ToList(); lstClassID = lstTrainee.Select(s => s.ClassID).Distinct().ToList(); } if (lstClassID.Count > 1) { DataTable tb = new DataTable(); result.ActionStatus = ConstantMessages.PlsChooseTraineeSameClass.ToString(); result.Ids = id; result.Table = tb; return(result); } DataTable table = new DataTable(); table.Columns.Add(Tra_TraineeScoreEntity.FieldNames.ID); table.Columns.Add(Tra_TraineeScoreEntity.FieldNames.CodeEmp); table.Columns.Add(Tra_TraineeScoreEntity.FieldNames.ProfileName); if (lstClassID.Count == 1) { var isSimple = false; Guid firstClass = lstClassID[0]; var courseEntity = lstClass.Where(s => s.ID == firstClass).Select(s => new { s.CourseID, s.IsComplex }).FirstOrDefault(); if (courseEntity != null) { var lstCourseTopicByCourseID = lstCourseTopic.Where(s => courseEntity.CourseID == s.CourseID).ToList(); if (courseEntity.IsComplex == null || courseEntity.IsComplex == false) { isSimple = true; } if (lstCourseTopicByCourseID.Count == 0) { DataTable tb = new DataTable(); result.ActionStatus = ConstantMessages.CourseNoHaveTopic.ToString(); result.Ids = id; result.Table = tb; return(result); } if (isSimple == false) { foreach (var trainee in lstTrainee) { DataRow dr = table.NewRow(); dr[Tra_TraineeScoreEntity.FieldNames.ID] = trainee.ID != null ? trainee.ID : Guid.Empty; dr[Tra_TraineeScoreEntity.FieldNames.CodeEmp] = trainee.CodeEmp != null ? trainee.CodeEmp : string.Empty; dr[Tra_TraineeScoreEntity.FieldNames.ProfileName] = trainee.ProfileName != null ? trainee.ProfileName : string.Empty; var lstTopicbyCourseID = lstCourseTopic.Where(s => s.CourseID == courseEntity.CourseID).Select(s => new { s.CourseID, s.TopicID, s.IsComplex, s.Code }).ToList(); foreach (var item in lstTopicbyCourseID) { var traineeTopicEnity = lstTraineeTopic.Where(s => s.TraineeID == trainee.ID && item.TopicID == s.TopicID).FirstOrDefault(); var lstTraineeScoreByTraineeTopicID = lstTraineeScore.Where(s => traineeTopicEnity != null && s.TraineeTopicID == traineeTopicEnity.ID).ToList(); var classeEntity = lstClass.Where(s => s.ID == trainee.ClassID).FirstOrDefault(); Double value = 0; if (item.IsComplex == null || item.IsComplex == true) { isSimple = true; if (classeEntity != null) { var courseEntityByCourseID = lstCourse.Where(s => s.ID == classeEntity.CourseID).FirstOrDefault(); if (courseEntityByCourseID != null) { var lstScoreTopicByTopicID = lstScoreTopic.Where(s => item.TopicID == s.TopicID).OrderBy(s => s.DateCreate).ToList(); foreach (var scoreTopic in lstScoreTopicByTopicID) { var traineeScoreEntity = lstTraineeScore.Where(s => traineeTopicEnity != null && s.ScoreTypeID == scoreTopic.ScoreTypeID && traineeTopicEnity.ID == s.TraineeTopicID).FirstOrDefault(); if (!table.Columns.Contains(item.Code + "_" + scoreTopic.Code)) { table.Columns.Add(item.Code + "_" + scoreTopic.Code); } if (table.Columns.Contains(item.Code + "_" + scoreTopic.Code)) { if (traineeScoreEntity != null && traineeScoreEntity.Score != null) { dr[item.Code + "_" + scoreTopic.Code] = traineeScoreEntity != null ? traineeScoreEntity.Score.Value : 0; } else { dr[item.Code + "_" + scoreTopic.Code] = null; } } } } } } else { isSimple = false; break; } } table.Rows.Add(dr); } // var a = table; } } } result.Table = table; return(result); #endregion } return(null); }
public DataTable GetReportTraineeByMonth(DateTime Month, Guid? CourseID, bool IsCreateTemplate, string UserLogin) { DataTable table = CreateReportTraineeByMonth(); if (IsCreateTemplate) { return table; } string status = string.Empty; var classServices = new Tra_ClassServices(); var traineeServices = new Tra_TraineeServices(); var objClass = new List<object>(); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(1); objClass.Add(int.MaxValue - 1); var lstClass = classServices.GetData<Tra_ClassEntity>(objClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status).ToList(); if (lstClass == null || lstClass.Count == 0) { return table; } lstClass = lstClass.Where(s => s.StartDate != null && s.StartDate.Value.Month == Month.Month && s.StartDate.Value.Year == Month.Year).ToList(); if (CourseID != null) { lstClass = lstClass.Where(s => s.CourseID != null && s.CourseID == CourseID).ToList(); } var lstClassId = lstClass.Select(s => s.ID).ToList(); var objTrainee = new List<object>(); objTrainee.AddRange(new object[15]); objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; var lsttrainee = classServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList(); if (lsttrainee == null || lsttrainee.Count == 0) { return table; } lsttrainee = lsttrainee.Where(s => lstClassId.Contains(s.ClassID)).ToList(); if (lsttrainee == null || lsttrainee.Count == 0) { return table; } var courseServices = new Tra_CourseServices(); var objCourse = new List<object>(); objCourse.AddRange(new object[11]); objCourse[9] = 1; objCourse[10] = int.MaxValue - 1; var lstCourse = courseServices.GetData<Tra_CourseEntity>(objCourse, ConstantSql.hrm_tra_sp_get_Course, UserLogin, ref status).ToList(); foreach (var trainee in lsttrainee) { DataRow dr = table.NewRow(); var classbytrainee = lstClass.Where(s => s.ID == trainee.ClassID).FirstOrDefault(); dr[Tra_ReportTraineeByMonthEntity.FieldNames.CodeEmp] = trainee.CodeEmp; dr[Tra_ReportTraineeByMonthEntity.FieldNames.ProfileName] = trainee.ProfileName; dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_DEPARTMENT] = trainee.E_DEPARTMENT; dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_DIVISION] = trainee.E_DIVISION; dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_SECTION] = trainee.E_SECTION; dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_TEAM] = trainee.E_TEAM; dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_UNIT] = trainee.E_UNIT; dr[Tra_ReportTraineeByMonthEntity.FieldNames.ClassName] = trainee.ClassName; if (classbytrainee != null) { var coursebyclass = lstCourse.Where(s => s.ID == classbytrainee.CourseID).FirstOrDefault(); dr[Tra_ReportTraineeByMonthEntity.FieldNames.CourseName] = coursebyclass != null ? coursebyclass.CourseName : null; } if (trainee.StartDate != null) { dr[Tra_ReportTraineeByMonthEntity.FieldNames.StartDate] = trainee.StartDate; } dr[Tra_ReportTraineeByMonthEntity.FieldNames.Month] = Month; dr[Tra_ReportTraineeByMonthEntity.FieldNames.WorkPlace] = trainee.WorkPlaceName; table.Rows.Add(dr); } return table; }
/// <summary> /// </summary> /// <param name="id"></param> /// <returns></returns> public Tra_AddPointModel GetById(string id) { Tra_AddPointModel result = new Tra_AddPointModel(); List<Guid> SelectedIds = new List<Guid>(); if (!string.IsNullOrEmpty(id)) { SelectedIds = id.Split(',').Select(s => Guid.Parse(s)).ToList(); } if (SelectedIds != null && SelectedIds.Count > 0) { //Guid[] traineeID = null; var message = string.Empty; string status = string.Empty; List<Guid> lstClassID = new List<Guid>(); List<Guid> lstTraineeID = new List<Guid>(); #region load data var traineeServices = new Tra_TraineeServices(); var objTrainee = new List<object>(); objTrainee.AddRange(new object[15]); objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; List<Tra_TraineeEntity> lstTrainee = traineeServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status); var courseSevices = new Tra_CourseServices(); var objCoures = new List<object>(); objCoures.AddRange(new object[11]); objCoures[9] = 1; objCoures[10] = int.MaxValue - 1; List<Tra_CourseEntity> lstCourse = courseSevices.GetData<Tra_CourseEntity>(objCoures, ConstantSql.hrm_tra_sp_get_Course, UserLogin, ref status); var classServices = new Tra_ClassServices(); var objClass = new List<object>(); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(1); objClass.Add(int.MaxValue - 1); List<Tra_ClassEntity> lstClass = classServices.GetData<Tra_ClassEntity>(objClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status); var traineeTopicServices = new Tra_TraineeTopicServices(); var objTraineeTopic = new List<object>(); objTraineeTopic.Add(1); objTraineeTopic.Add(int.MaxValue -1); var lstTraineeTopic = traineeTopicServices.GetData<Tra_TraineeTopicEntity>(objTraineeTopic, ConstantSql.hrm_tra_sp_get_TraineeTopic, UserLogin, ref status).ToList(); var scoreTopicServices = new Tra_ScoreTopicServices(); var objScoreTopic = new List<object>(); objScoreTopic.Add(1); objScoreTopic.Add(int.MaxValue - 1); var lstScoreTopic = scoreTopicServices.GetData<Tra_ScoreTopicEntity>(objScoreTopic, ConstantSql.hrm_tra_sp_get_ScoreTopic, UserLogin, ref status).ToList(); var courseTopicServices = new Tra_TraineeTopicServices(); var objCourseTopic = new List<object>(); objCourseTopic.Add(1); objCourseTopic.Add(int.MaxValue - 1); List<Tra_CourseTopicEntity> lstCourseTopic = courseTopicServices.GetData<Tra_CourseTopicEntity>(objCourseTopic, ConstantSql.hrm_tra_sp_get_CourseTopic, UserLogin, ref status); var traineeScoreServices = new Tra_TraineeScoreServices(); var objTraineeScore = new List<object>(); objTraineeScore.Add(1); objTraineeScore.Add(int.MaxValue - 1); var lstTraineeScore = traineeScoreServices.GetData<Tra_TraineeScoreEntity>(objTraineeScore, ConstantSql.hrm_tra_sp_get_TraineeScore, UserLogin, ref status).ToList(); if (SelectedIds != null) { lstTrainee = lstTrainee.Where(s => SelectedIds.Contains(s.ID)).ToList(); lstTraineeID = lstTrainee.Select(s => s.ID).ToList(); lstClassID = lstTrainee.Select(s => s.ClassID).Distinct().ToList(); } if (lstClassID.Count > 1) { DataTable tb = new DataTable(); result.ActionStatus = ConstantMessages.PlsChooseTraineeSameClass.ToString(); result.Ids = id; result.Table = tb; return result; } DataTable table = new DataTable(); table.Columns.Add(Tra_TraineeScoreEntity.FieldNames.ID); table.Columns.Add(Tra_TraineeScoreEntity.FieldNames.CodeEmp); table.Columns.Add(Tra_TraineeScoreEntity.FieldNames.ProfileName); if (lstClassID.Count == 1) { var isSimple = false; Guid firstClass = lstClassID[0]; var courseEntity = lstClass.Where(s => s.ID == firstClass).Select(s => new { s.CourseID, s.IsComplex }).FirstOrDefault(); if (courseEntity != null) { var lstCourseTopicByCourseID = lstCourseTopic.Where(s => courseEntity.CourseID == s.CourseID).ToList(); if (courseEntity.IsComplex == null || courseEntity.IsComplex == false) { isSimple = true; } if (lstCourseTopicByCourseID.Count == 0) { DataTable tb = new DataTable(); result.ActionStatus = ConstantMessages.CourseNoHaveTopic.ToString(); result.Ids = id; result.Table = tb; return result; } if (isSimple == false) { foreach (var trainee in lstTrainee) { DataRow dr = table.NewRow(); dr[Tra_TraineeScoreEntity.FieldNames.ID] = trainee.ID != null ? trainee.ID : Guid.Empty; dr[Tra_TraineeScoreEntity.FieldNames.CodeEmp] = trainee.CodeEmp != null ? trainee.CodeEmp : string.Empty; dr[Tra_TraineeScoreEntity.FieldNames.ProfileName] = trainee.ProfileName != null ? trainee.ProfileName : string.Empty; var lstTopicbyCourseID = lstCourseTopic.Where(s => s.CourseID == courseEntity.CourseID).Select(s => new { s.CourseID, s.TopicID, s.IsComplex, s.Code }).ToList(); foreach (var item in lstTopicbyCourseID) { var traineeTopicEnity = lstTraineeTopic.Where(s => s.TraineeID == trainee.ID && item.TopicID == s.TopicID).FirstOrDefault(); var lstTraineeScoreByTraineeTopicID = lstTraineeScore.Where(s => traineeTopicEnity != null && s.TraineeTopicID == traineeTopicEnity.ID).ToList(); var classeEntity = lstClass.Where(s => s.ID == trainee.ClassID).FirstOrDefault(); Double value = 0; if (item.IsComplex == null || item.IsComplex == true) { isSimple = true; if (classeEntity != null) { var courseEntityByCourseID = lstCourse.Where(s => s.ID == classeEntity.CourseID).FirstOrDefault(); if (courseEntityByCourseID != null) { var lstScoreTopicByTopicID = lstScoreTopic.Where(s => item.TopicID == s.TopicID).OrderBy(s => s.DateCreate).ToList(); foreach (var scoreTopic in lstScoreTopicByTopicID) { var traineeScoreEntity = lstTraineeScore.Where(s => traineeTopicEnity != null && s.ScoreTypeID == scoreTopic.ScoreTypeID && traineeTopicEnity.ID == s.TraineeTopicID).FirstOrDefault(); if (!table.Columns.Contains(item.Code + "_" + scoreTopic.Code)) { table.Columns.Add(item.Code + "_" + scoreTopic.Code); } if (table.Columns.Contains(item.Code + "_" + scoreTopic.Code)) { if (traineeScoreEntity != null && traineeScoreEntity.Score != null) { dr[item.Code + "_" + scoreTopic.Code] = traineeScoreEntity != null ? traineeScoreEntity.Score.Value : 0; } else { dr[item.Code + "_" + scoreTopic.Code] = null; } } } } } } else { isSimple = false; break; } } table.Rows.Add(dr); } // var a = table; } } } result.Table = table; return result; #endregion } return null; }
public DataTable GetReportTraineeJoinCourse(Guid[] rankIds, string[] courseIds, string orderNumber, bool IsCreateTemplate, DateTime? dateSeniory, string UserLogin) { DataTable table = CreateReportTraineeJoinCourseSchema(); if (IsCreateTemplate) { return table; } using (var context = new VnrHrmDataContext()) { string status = string.Empty; var dateCheck = DateTime.Now; //var dateSeniotyConfig = "31/03/N"; // var strDateSeniorty = dateSeniotyConfig.Split('/'); var dateCheckConfig = DateTime.Now; //if (dateCheckConfig.Day <= int.Parse(strDateSeniorty[0]) && dateCheckConfig.Month <= int.Parse(strDateSeniorty[1])) //{ // dateCheckConfig = new DateTime(dateCheckConfig.Year - 1, dateCheckConfig.Month, dateCheckConfig.Day); //} if (dateSeniory != null) { dateCheckConfig = dateSeniory.Value; } var profileServices = new Hre_ProfileServices(); var objProfile = new List<object>(); objProfile.AddRange(new object[17]); objProfile[2] = orderNumber; objProfile[15] = 1; objProfile[16] = int.MaxValue - 1; //objProfile.Add(orderNumber); //objProfile.Add(null); //objProfile.Add(null); var lstProfile = profileServices.GetData<Hre_ProfileEntity>(objProfile, ConstantSql.hrm_hr_sp_get_ProfileAll, UserLogin, ref status).Where(s => s.DateQuit == null).ToList(); //var lstProfile = profileServices.GetData<Hre_ProfileEntity>(objProfile, ConstantSql.hrm_hr_sp_get_ProfileIdsByOrg, ref status).ToList(); var lstProfileID = lstProfile.Select(s => s.ID).ToList(); var orgsService = new Cat_OrgStructureServices(); var objOrg = new List<object>(); objOrg.AddRange(new object[5]); objOrg[3] = 1; objOrg[4] = int.MaxValue - 1; var lstallorgs = orgsService.GetData<Cat_OrgStructureEntity>(objOrg, ConstantSql.hrm_cat_sp_get_OrgStructure, UserLogin, ref status).ToList(); var courseServices = new Tra_CourseServices(); var objCourse = new List<object>(); objCourse.AddRange(new object[11]); objCourse[9] = 1; objCourse[10] = int.MaxValue - 1; var lstCourse = courseServices.GetData<Tra_CourseEntity>(objCourse, ConstantSql.hrm_tra_sp_get_Course, UserLogin, ref status).ToList(); if (courseIds != null) { lstCourse = lstCourse.Where(s => courseIds.Contains(s.Code)).ToList(); } var jobTitleServices = new Cat_JobTitleServices(); var objJobtitle = new List<object>(); objJobtitle.Add(null); objJobtitle.Add(null); objJobtitle.Add(null); objJobtitle.Add(1); objJobtitle.Add(int.MaxValue - 1); var lstJobtitle = jobTitleServices.GetData<Cat_JobTitleEntity>(objJobtitle, ConstantSql.hrm_cat_sp_get_JobTitle, UserLogin, ref status).ToList(); var classServices = new Tra_ClassServices(); var objClass = new List<object>(); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(null); objClass.Add(1); objClass.Add(int.MaxValue - 1); var lstClass = classServices.GetData<Tra_ClassEntity>(objClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status).ToList(); var salaryClassServices = new Cat_SalaryClassServices(); var objSalaryClass = new List<object>(); objSalaryClass.Add(null); objSalaryClass.Add(1); objSalaryClass.Add(int.MaxValue - 1); var lstSalaryClass = salaryClassServices.GetData<Cat_SalaryClassEntity>(objSalaryClass, ConstantSql.hrm_cat_sp_get_SalaryClass, UserLogin, ref status).ToList(); if (rankIds != null) { lstSalaryClass = lstSalaryClass.Where(s => rankIds.Contains(s.ID)).ToList(); } var rankServices = new Cat_SalaryRankServices(); var objRank = new List<object>(); objRank.Add(null); objRank.Add(null); objRank.Add(1); objRank.Add(int.MaxValue - 1); var lstRank = rankServices.GetData<Cat_SalaryRankEntity>(objRank, ConstantSql.hrm_cat_sp_get_SalaryRank, UserLogin, ref status).ToList(); var traineeServices = new Tra_TraineeServices(); var objTrainee = new List<object>(); objTrainee.AddRange(new object[15]); objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; var lstTrainee = rankServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList(); var workingHistoryServices = new Hre_WorkHistoryServices(); var objWorking = new List<object>(); objWorking.AddRange(new object[17]); objWorking[15] = 1; objWorking[16] = int.MaxValue - 1; var lstWorking = workingHistoryServices.GetData<Hre_WorkHistoryEntity>(objWorking, ConstantSql.hrm_hr_sp_get_WorkHistory, UserLogin, ref status).ToList(); var stopWorkingServices = new Hre_StopWorkingServices(); var objStopWorking = new List<object>(); objStopWorking.AddRange(new object[17]); objStopWorking[15] = 1; objStopWorking[16] = int.MaxValue - 1; var lstStopWorking = stopWorkingServices.GetData<Hre_StopWorkingEntity>(objStopWorking, ConstantSql.hrm_hr_sp_get_StopWorking, UserLogin, ref status).ToList(); var traineeCertificateServices = new Tra_TraineeCertificateServices(); var objTraineeCertificate = new List<object>(); objTraineeCertificate.Add(1); objTraineeCertificate.Add(int.MaxValue - 1); var lstTraineeCertificate = traineeCertificateServices.GetData<Tra_TraineeCertificateEntity>(objTraineeCertificate, ConstantSql.hrm_tra_sp_get_TraineeCertificate, UserLogin, ref status).ToList(); var lstTraineeIDFromTraineeCertificate = lstTraineeCertificate.Select(s => s.TraineeID).ToList(); var requirmentDetailServices = new Tra_RequirementTrainDetailServices(); var objRequirementDetail = new List<object>(); objRequirementDetail.Add(null); objRequirementDetail.Add(1); objRequirementDetail.Add(int.MaxValue - 1); var lstRequirementDetail = requirmentDetailServices.GetData<Tra_RequirementTrainDetailEntity>(objRequirementDetail, ConstantSql.hrm_tra_sp_get_RequirementDetail, UserLogin, ref status).ToList(); //if(lstTrainee != null) //{ // lstTrainee = lstTrainee.Where(s => lstProfileID.Contains(s.ProfileID)).ToList(); //} if (lstTraineeCertificate != null) { lstTrainee = lstTrainee.Where(s => !lstTraineeIDFromTraineeCertificate.Contains(s.ID)).ToList(); } foreach (var item in lstCourse) { string[] arrCourse = new string[1]; if (!string.IsNullOrEmpty(item.CourseListID)) { arrCourse = item.CourseListID.Split(',').ToArray(); } string[] arrJobtitle = new string[1]; int[] arrOrg = new int[1]; if (!string.IsNullOrEmpty(item.JobTitleListCode1)) { arrJobtitle = item.JobTitleListCode1.Split(',').ToArray(); } if (!string.IsNullOrEmpty(item.OrgListCode1)) { arrOrg = item.OrgListCode1.Split(',').Select(s => int.Parse(s)).ToArray(); } var lstJobtitleByJobtitleCode = lstJobtitle.Where(s => arrJobtitle.Contains(s.Code)).Select(s => s.ID).ToList(); var lstOrgByOrderNumber = lstallorgs.Where(s => arrOrg.Contains(s.OrderNumber)).Select(s => s.ID).ToList(); string[] _ranklistID = new string[1]; if (!string.IsNullOrEmpty(item.RankListID)) { _ranklistID = item.RankListID.Split(',').ToArray(); } // var lstClassByCourseID = lstClass.Where(s => s.CourseID == item.ID && arrCourse.Contains(s.CourseID)).ToList(); var salaryClassEntity = lstSalaryClass.Where(s => _ranklistID.Contains(s.Code)).ToList(); var lstSalaryClassID = salaryClassEntity.Select(s => s.ID).ToList(); var lstTraineePassedCourse = new List<Tra_TraineeEntity>(); // var lstTraineeForProfile = lstProfile.Where(s => s.CodeEmp == "M26423"); if (arrCourse[0] != null) { lstTraineePassedCourse = lstTrainee.Where(s => arrCourse.Contains(s.CourseCode) && s.Status == EnumDropDown.TraineeStatus.E_PASSED.ToString()).ToList(); int soLuongKhoaTienQUyet = arrCourse.Count(); var lstCheckTraineePassedCourse = lstTraineePassedCourse.GroupBy(m => m.ProfileID).Where(m => m.Count() >= soLuongKhoaTienQUyet).ToList(); var lstProfileIDPassedCourse = lstCheckTraineePassedCourse.Select(s => s.Key).Distinct().ToList(); lstProfile = lstProfile.Where(s => lstProfileIDPassedCourse.Contains(s.ID)).ToList(); } foreach (var profileEntity in lstProfile) { var traineePassCourse = lstTrainee.Where(s => s.CourseID == item.ID && profileEntity.ID == s.ProfileID && s.Status == EnumDropDown.TraineeStatus.E_PASSED.ToString()).FirstOrDefault(); if (traineePassCourse != null) { continue; } Guid? orgId = profileEntity.OrgStructureID; // var org = lstOrg.FirstOrDefault(s => s.ID == profileEntity.OrgStructureID); // var orgOrg = LibraryService.GetNearestParentEntity(orgId, OrgUnit.E_DEPARTMENT, lstOrg, lstOrgType); DataRow dr = table.NewRow(); bool flag = false; var lstTraineeByProfileID = lstTrainee.Where(s => s.ProfileID == profileEntity.ID && arrCourse.Contains(s.CourseCode)).ToList(); dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.ID] = profileEntity.ID != null ? profileEntity.ID : Guid.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.CodeEmp] = profileEntity.CodeEmp != null ? profileEntity.CodeEmp : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.TraineeName] = profileEntity.ProfileName != null ? profileEntity.ProfileName : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.IDNo] = profileEntity.IDNo != null ? profileEntity.IDNo : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.OrgStructureName] = profileEntity.OrgStructureName != null ? profileEntity.OrgStructureName : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_UNIT] = profileEntity.E_UNIT != null ? profileEntity.E_UNIT : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_DIVISION] = profileEntity.E_DIVISION != null ? profileEntity.E_DIVISION : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_DEPARTMENT] = profileEntity.E_DEPARTMENT != null ? profileEntity.E_DEPARTMENT : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_SECTION] = profileEntity.E_SECTION != null ? profileEntity.E_SECTION : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_TEAM] = profileEntity.E_TEAM != null ? profileEntity.E_TEAM : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.JobTitleName] = profileEntity.JobTitleName != null ? profileEntity.JobTitleName : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.PositionName] = profileEntity.PositionName != null ? profileEntity.PositionName : string.Empty; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.CourseName] = item.CourseName != null ? item.CourseName : string.Empty; //var profileEntity = lstProfile.Where(s => s.ID == trainee.ProfileID && s.SalaryClassID != null).FirstOrDefault(); var stopWorkingEntity = lstStopWorking.Where(s => s.ProfileID.Value == profileEntity.ID).OrderByDescending(s => s.DateUpdate).FirstOrDefault(); //var workingEntity = new Hre_WorkHistoryEntity(); var lstWorkingByProfileID = lstWorking.Where(s => s.ProfileID == profileEntity.ID && lstSalaryClassID.Contains(s.SalaryClassID == null ? Guid.Empty : s.SalaryClassID.Value)).ToList(); if (lstJobtitleByJobtitleCode.Count > 0) { lstWorkingByProfileID = lstWorkingByProfileID.Where(s => lstJobtitleByJobtitleCode.Contains(s.JobTitleID != null ? s.JobTitleID.Value : Guid.Empty)).ToList(); } if (lstOrgByOrderNumber.Count > 0) { lstWorkingByProfileID = lstWorkingByProfileID.Where(s => lstOrgByOrderNumber.Contains(s.OrganizationStructureID != null ? s.OrganizationStructureID.Value : Guid.Empty)).ToList(); } var workingEntity = lstWorkingByProfileID.OrderByDescending(s => s.DateUpdate).FirstOrDefault(); var dateSuspend = new TimeSpan(); var dateSeniority = new TimeSpan(); double dateResult = 0; double monthSeniority = 0; if (profileEntity.DateHire == null) { continue; } dateSeniority = dateCheckConfig.Subtract(profileEntity.DateHire.Value); if (stopWorkingEntity != null && stopWorkingEntity.DateStop != null && stopWorkingEntity.DateComeBack != null) { dateSuspend = stopWorkingEntity.DateComeBack.Value.Subtract(stopWorkingEntity.DateStop.Value); dateResult = dateSeniority.Subtract(dateSuspend).TotalDays / 30; monthSeniority = Math.Floor(dateResult); } dateSeniority = dateCheckConfig.Subtract(profileEntity.DateHire.Value); monthSeniority = Math.Floor(dateSeniority.TotalDays / 30); dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.Seniority] = monthSeniority; #region KT điều kiện seniority và maxSeniority != null if (item.Seniority != null && item.MaxSeniority != null) { if (monthSeniority >= item.Seniority && item.MaxSeniority >= monthSeniority) { if (salaryClassEntity != null) { if (workingEntity != null) { // if (profileEntity.SalaryClassID != workingEntity.SalaryClassID) // { var dateCheckRank = dateCheck.Subtract(workingEntity.DateEffective).TotalDays / 30; var monthRank = Math.Floor(dateCheckRank); if (item.TimeOnCurrentRank != null) { if (monthRank < item.TimeOnCurrentRank) { flag = true; // table.Rows.Add(dr); } } //} } } } else { flag = true; } } #endregion #region KT điều kiện seniority != null && maxSeniority == null if (item.Seniority != null && item.MaxSeniority == null) { if (monthSeniority >= item.Seniority) { if (salaryClassEntity != null) { if (workingEntity != null) { // if (profileEntity.SalaryClassID != workingEntity.SalaryClassID) // { var dateCheckRank = dateCheck.Subtract(workingEntity.DateEffective).TotalDays / 30; var monthRank = Math.Floor(dateCheckRank); if (item.TimeOnCurrentRank != null) { if (monthRank < item.TimeOnCurrentRank) { flag = true; // table.Rows.Add(dr); } } // } } } } else { flag = true; } } #endregion #region KT điều kiện seniority == && maxSeniority != null if (item.MaxSeniority != null && item.Seniority == null) { if (monthSeniority <= item.MaxSeniority) { if (salaryClassEntity != null) { if (workingEntity != null) { // if (profileEntity.SalaryClassID != workingEntity.SalaryClassID) // { var dateCheckRank = dateCheck.Subtract(workingEntity.DateEffective).TotalDays / 30; var monthRank = Math.Floor(dateCheckRank); if (item.TimeOnCurrentRank != null) { if (item.TimeOnCurrentRank != null) { if (monthRank < item.TimeOnCurrentRank) { flag = true; // table.Rows.Add(dr); } } } //} } } } else { flag = true; } } #endregion //#region kiem tra dk Seniority == null và MaxSeniority == null //if (item.Seniority == null && item.MaxSeniority == null) //{ // if (salaryClassEntity != null) // { // if (workingEntity != null) // { // // if (profileEntity.SalaryClassID != workingEntity.SalaryClassID) // // { // var dateCheckRank = dateCheck.Subtract(workingEntity.DateEffective).TotalDays / 30; // var monthRank = Math.Floor(dateCheckRank); // if (item.TimeOnCurrentRank != null) // { // if (item.TimeOnCurrentRank != null) // { // if (monthRank < item.TimeOnCurrentRank) // { // flag = true; // // table.Rows.Add(dr); // } // } // } // //} // } // } //} //#endregion if (lstTraineeByProfileID.Count > 0) { foreach (var traineeEntity in lstTraineeByProfileID) { // dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.Note] = traineeEntity.TeacherComment != null ? traineeEntity.TeacherComment : string.Empty; double monthCourse = Math.Floor(dateCheck.Subtract(traineeEntity.EndDate.Value).TotalDays / 30); var traineeInRequirementDetail = lstRequirementDetail.Where(s => s.CourseID == traineeEntity.ID && traineeEntity.ID == s.ProfileID && s.YearAnalyze != null && s.YearAnalyze.Value.Year == dateCheckConfig.Year).ToList(); if (traineeInRequirementDetail.Count >= 1) { flag = true; continue; } if (traineeEntity.EndDate == null) { flag = true; continue; } if (item.DurationMinCourse != null) { if (monthCourse < item.DurationMinCourse) { flag = true; continue; } } } } else { var traineeInRequirementDetail = lstRequirementDetail.Where(s => s.CourseID == item.ID && profileEntity.ID == s.ProfileID && s.YearAnalyze != null && s.YearAnalyze.Value.Year == dateCheckConfig.Year).ToList(); if (traineeInRequirementDetail.Count >= 1) { flag = true; continue; } } if (flag == false) { if (salaryClassEntity != null) { if (workingEntity != null) { // if (profileEntity.SalaryClassID != workingEntity.SalaryClassID) // { var dateCheckRank = dateCheck.Subtract(workingEntity.DateEffective).TotalDays / 30; var monthRank = Math.Floor(dateCheckRank); if (item.TimeOnCurrentRank != null) { if (item.TimeOnCurrentRank != null) { if (monthRank >= item.TimeOnCurrentRank) { flag = true; table.Rows.Add(dr); } } } else { table.Rows.Add(dr); } // } } } } } } } return table; }
public ActionResult AddTopicToCourse(Guid CourseID, Guid TopicID) { var model = new Tra_CourseTopicModel(); string status = string.Empty; if (CourseID != Guid.Empty && TopicID != Guid.Empty) { model.CourseID = CourseID; model.TopicID = TopicID; } #region Validate string message = string.Empty; var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData<Tra_CourseTopicModel>(model, "Tra_CourseTopic", ref message); if (!checkValidate) { model.ActionStatus = ConstantMessages.TopicIsExistedInCourse.ToString(); return Json(model.ActionStatus, JsonRequestBehavior.AllowGet); } #endregion var courseServices = new Tra_CourseServices(); var courseTopicServices = new Tra_CourseTopicServices(); var entity = new Tra_CourseTopicEntity(); if (model != null) { entity = model.CopyData<Tra_CourseTopicEntity>(); message = courseTopicServices.Add(entity); return Json(message, JsonRequestBehavior.AllowGet); } return null; }