public Tra_TraineeModel Post([Bind]Tra_TraineeModel model) { #region Validate string message = string.Empty; var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData<Tra_TraineeModel>(model, "Tra_Trainee", ref message); if (!checkValidate) { model.ActionStatus = message; return model; } #endregion var traineeServices = new Tra_TraineeServices(); ActionService service = new ActionService(UserLogin); var isTraineeInRequireDetail = traineeServices.IsAddTraineeDependOnRequirementDetail(); var traineeTopicServices = new Tra_TraineeTopicServices(); var planServices = new Tra_PlanServices(); var status = string.Empty; var lstObjPlan = new List<object>(); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(1); lstObjPlan.Add(int.MaxValue - 1); var lstPlan = planServices.GetData<Tra_PlanEntity>(lstObjPlan, ConstantSql.hrm_tra_sp_get_Plan, UserLogin, ref status).ToList(); var planDetailServices = new Tra_PlanDetailServices(); var lstObjPlanDetail = new List<object>(); lstObjPlanDetail.Add(null); lstObjPlanDetail.Add(1); lstObjPlanDetail.Add(int.MaxValue - 1); var lstPlanDetail = planDetailServices.GetData<Tra_PlanDetailEntity>(lstObjPlanDetail, ConstantSql.hrm_tra_sp_get_PlanDetail, UserLogin, ref status).ToList(); var classServices = new Tra_ClassServices(); var lstObjClass = new List<object>(); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(1); lstObjClass.Add(int.MaxValue - 1); var lstClass = classServices.GetData<Tra_ClassEntity>(lstObjClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status).ToList(); var lstObjTraineeInClass = new List<object>(); lstObjTraineeInClass.Add(model.ClassID); var lstTraineeInClass = classServices.GetData<Tra_ClassEntity>(lstObjTraineeInClass, ConstantSql.hrm_cat_sp_get_TraineeByClassID, UserLogin, ref status).ToList(); var courseTopicServices = new Tra_TraineeTopicServices(); var objCourseTopic = new List<object>(); objCourseTopic.Add(1); objCourseTopic.Add(int.MaxValue - 1); var lstCourseTopic = courseTopicServices.GetData<Tra_CourseTopicEntity>(objCourseTopic, ConstantSql.hrm_tra_sp_get_CourseTopic, UserLogin, ref status); var classEntity = lstClass.Where(s => s.ID == model.ClassID).FirstOrDefault(); var profileServices = new Hre_ProfileServices(); var profileEntity = profileServices.GetData<Hre_ProfileEntity>(model.ProfileID, ConstantSql.hrm_hr_sp_get_ProfileById, UserLogin, ref status).FirstOrDefault(); var requirementServices = new Tra_RequirementTrainServices(); var objRequirement = new List<object>(); objRequirement.AddRange(new object[7]); objRequirement[5] = 1; objRequirement[6] = int.MaxValue - 1; var lstRequirement = requirementServices.GetData<Tra_RequirementTrainEntity>(objRequirement, ConstantSql.hrm_tra_sp_get_RequirementTrain, UserLogin, ref status).ToList(); var requirementDetailServices = new Tra_RequirementTrainDetailServices(); var objRequirementDetail = new List<object>(); objRequirementDetail.Add(null); objRequirementDetail.Add(1); objRequirementDetail.Add(int.MaxValue - 1); var lstRequirementDetail = requirementDetailServices.GetData<Tra_RequirementTrainDetailEntity>(objRequirementDetail, ConstantSql.hrm_tra_sp_get_RequirementDetail, UserLogin, ref status).ToList(); var objTrainee = new List<object>(); objTrainee.AddRange(new object[15]); objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; var lstObjTrainee = traineeServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList(); var traineeEntity = lstObjTrainee.Where(s => s.ClassID == model.ClassID && model.ProfileID == s.ProfileID).ToList(); #region Check Học Viên if(model.ID == Guid.Empty) { if (isTraineeInRequireDetail) { if (traineeEntity.Count > 0) { model.ActionStatus = ConstantMessages.WarningProfileHaveClass.ToString().TranslateString(); return model; } if (classEntity != null) { if (classEntity.PlanID != null) { var lstRequirementByPlanID = lstRequirement.Where(s => s.PlanID != null && s.PlanID.Value == classEntity.PlanID).ToList(); foreach (var item in lstRequirementByPlanID) { var requirementDetailEntity = lstRequirementDetail.Where(s => item.ID == s.RequirementTrainID && s.CourseID == classEntity.CourseID && s.ProfileID == model.ProfileID).FirstOrDefault(); if (requirementDetailEntity != null) { model = service.UpdateOrCreate<Tra_TraineeEntity, Tra_TraineeModel>(model); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = model.ID; message = traineeTopicServices.Add(traineeTopicEntity); } // edit classID trong RequirementDetail requirementDetailEntity.ClassID = model.ClassID; message = requirementDetailServices.Edit(requirementDetailEntity); } else { model.ActionStatus = ConstantMessages.WarningProfileNotInRequirement.ToString().TranslateString(); } } } else { model.ActionStatus = ConstantMessages.WarningProfileNotInRequirement.ToString().TranslateString(); } model.ActionStatus = ConstantMessages.WarningProfileNotInRequirement.ToString().TranslateString(); } if (message == NotificationType.Success.ToString()) { model.ActionStatus = message; } return model; //if (classEntity != null) //{ // if (classEntity.PlanID != null) // { // var planEntity = lstPlan.Where(s => s.ID == classEntity.PlanID.Value).FirstOrDefault(); // if (planEntity != null) // { // var lstPlanDetailByPlanID = lstPlanDetail.Where(s => s.PlanID == planEntity.ID).ToList(); // foreach (var item in lstPlanDetailByPlanID) // { // var lstTraineeInClassForOrg = lstTraineeInClass.Where(s => s.OrgStructureID.Value == item.OrgStructureID.Value).ToList(); // //Kiểm tra số lượng của plan detail với sumQuantity của plan // if (planEntity.SumQuantity == lstPlanDetailByPlanID.Sum(s => s.Quantity)) // { // if (lstTraineeInClass.Count < lstPlanDetailByPlanID.Sum(s => s.Quantity)) // { // // Xử Lý kiểm tra nv có thuộc phòng ban trong plan detail ko // if (profileEntity != null) // { // if (lstTraineeInClassForOrg.Count < item.Quantity) // { // if (profileEntity.OrgStructureID.Value == item.OrgStructureID.Value) // { // var traineeEntity = new Tra_TraineeEntity(); // model.OrgStructureID = profileEntity.OrgStructureID != null ? profileEntity.OrgStructureID.Value : profileEntity.OrgStructureID; // model = service.UpdateOrCreate<Tra_TraineeEntity, Tra_TraineeModel>(model); // var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); // foreach (var courseTopic in lstCourseTopicByCourseID) // { // var traineeTopicEntity = new Tra_TraineeTopicEntity(); // traineeTopicEntity.TopicID = courseTopic.TopicID; // traineeTopicEntity.TraineeID = model.ID; // message = traineeTopicServices.Add(traineeTopicEntity); // } // return model; // } // model.ActionStatus = ConstantMessages.WarningProfileNotDependantOrgStructure.TranslateString(); // } // else // { // model.ActionStatus = ConstantMessages.WarningTraineeOverLimit.TranslateString(); // } // } // } // else // { // model.ActionStatus = ConstantMessages.WarningTraineeOverLimit.TranslateString(); // } // } // if (planEntity.SumQuantity > lstPlanDetailByPlanID.Sum(s => s.Quantity)) // { // model = service.UpdateOrCreate<Tra_TraineeEntity, Tra_TraineeModel>(model); // var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); // foreach (var courseTopic in lstCourseTopicByCourseID) // { // var traineeTopicEntity = new Tra_TraineeTopicEntity(); // traineeTopicEntity.TopicID = courseTopic.TopicID; // traineeTopicEntity.TraineeID = model.ID; // message = traineeTopicServices.Add(traineeTopicEntity); // } // return model; // } // } // return model; // } // } //} } if (classEntity != null) { if (traineeEntity.Count > 0) { model.ActionStatus = ConstantMessages.WarningProfileHaveClass.ToString().TranslateString(); return model; } model = service.UpdateOrCreate<Tra_TraineeEntity, Tra_TraineeModel>(model); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); if (lstCourseTopicByCourseID.Count == 0) { return model; } foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = model.ID; model.ActionStatus = traineeTopicServices.Add(traineeTopicEntity); } return model; } } return service.UpdateOrCreate<Tra_TraineeEntity, Tra_TraineeModel>(model); #endregion }
public string ApprovedTraineeRegister (List<Guid> selectedIds , Guid UserId) { using (var context = new VnrHrmDataContext()) { var message = string.Empty; var status = string.Empty; var UserLogin = string.Empty; var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var firstApproved = EnumDropDown.TraineeRegisterStatus.E_SUBMIT.ToString(); var approved = EnumDropDown.TraineeRegisterStatus.E_APPROVED.ToString(); var objTraineeRegister = new List<object>(); objTraineeRegister.AddRange(new object[12]); objTraineeRegister[10] = 1; objTraineeRegister[11] = int.MaxValue - 1; var lstTraineeRegister = GetData<Tra_TraineeRegisterEntity>(objTraineeRegister, ConstantSql.hrm_tra_sp_get_TraineeRegister,UserLogin, ref status).ToList(); var repo_UserApproved = new CustomBaseRepository<Sys_UserApprove>(unitOfWork); var lstUserApproved = repo_UserApproved.GetAll().Where(s => s.IsDelete == null).ToList(); if (selectedIds.Count > 0) { lstTraineeRegister = lstTraineeRegister.Where(s => selectedIds.Contains(s.ID)).ToList(); } var traineeServices = new Tra_TraineeServices(); var isTraineeInRequireDetail = traineeServices.IsAddTraineeDependOnRequirementDetail(); var traineeTopicServices = new Tra_TraineeTopicServices(); var planServices = new Tra_PlanServices(); var lstObjPlan = new List<object>(); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(1); lstObjPlan.Add(int.MaxValue - 1); var lstPlan = planServices.GetData<Tra_PlanEntity>(lstObjPlan, ConstantSql.hrm_tra_sp_get_Plan,UserLogin, ref status).ToList(); var planDetailServices = new Tra_PlanDetailServices(); var lstObjPlanDetail = new List<object>(); lstObjPlanDetail.Add(null); lstObjPlanDetail.Add(1); lstObjPlanDetail.Add(int.MaxValue - 1); var lstPlanDetail = planDetailServices.GetData<Tra_PlanDetailEntity>(lstObjPlanDetail, ConstantSql.hrm_tra_sp_get_PlanDetail, UserLogin, ref status).ToList(); var classServices = new Tra_ClassServices(); var lstObjClass = new List<object>(); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(1); lstObjClass.Add(int.MaxValue - 1); var lstClass = classServices.GetData<Tra_ClassEntity>(lstObjClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status).ToList(); //var lstObjTraineeInClass = new List<object>(); //lstObjTraineeInClass.Add(model.ClassID); //var lstTraineeInClass = classServices.GetData<Tra_ClassEntity>(lstObjTraineeInClass, ConstantSql.hrm_cat_sp_get_TraineeByClassID, ref status).ToList(); var courseTopicServices = new Tra_TraineeTopicServices(); var objCourseTopic = new List<object>(); objCourseTopic.Add(1); objCourseTopic.Add(int.MaxValue - 1); var lstCourseTopic = courseTopicServices.GetData<Tra_CourseTopicEntity>(objCourseTopic, ConstantSql.hrm_tra_sp_get_CourseTopic, UserLogin, ref status); //var classEntity = lstClass.Where(s => s.ID == model.ClassID).FirstOrDefault(); var profileServices = new Hre_ProfileServices(); var requirementServices = new Tra_RequirementTrainServices(); var objRequirement = new List<object>(); objRequirement.AddRange(new object[7]); objRequirement[5] = 1; objRequirement[6] = int.MaxValue - 1; var lstRequirement = requirementServices.GetData<Tra_RequirementTrainEntity>(objRequirement, ConstantSql.hrm_tra_sp_get_RequirementTrain, UserLogin, ref status).ToList(); var requirementDetailServices = new Tra_RequirementTrainDetailServices(); var objRequirementDetail = new List<object>(); objRequirementDetail.Add(null); objRequirementDetail.Add(1); objRequirementDetail.Add(int.MaxValue - 1); var lstRequirementDetail = requirementDetailServices.GetData<Tra_RequirementTrainDetailEntity>(objRequirementDetail, ConstantSql.hrm_tra_sp_get_RequirementDetail, UserLogin, ref status).ToList(); var objTrainee = new List<object>(); objTrainee.AddRange(new object[15]); objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; var lstObjTrainee = traineeServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList(); foreach (var registerEntity in lstTraineeRegister) { var classEntity = lstClass.Where(s => s.ID == registerEntity.ClassID).FirstOrDefault(); var traineeEntityInClass = lstObjTrainee.Where(s => s.ClassID == registerEntity.ClassID && registerEntity.ProfileID == s.ProfileID).ToList(); #region người duyệt đầu if (registerEntity.UserApproveID1 != null && registerEntity.UserApproveID1.Value == UserId) { var userApprovedEntity = lstUserApproved.Where(s => registerEntity.UserApproveID1.Value == s.UserApproveID && s.Type == ApproveType.E_TRA_TRAINEEREGISTER.ToString()).FirstOrDefault(); if (userApprovedEntity != null) { if (userApprovedEntity.IsMasterApprove == null || userApprovedEntity.IsMasterApprove.Value == false) { registerEntity.Status = firstApproved; message = Edit(registerEntity); } } } #endregion #region người duyệt cuối if (registerEntity.UserApproveID2 != null && registerEntity.UserApproveID2.Value == UserId) { var userApprovedEntity = lstUserApproved.Where(s => registerEntity.UserApproveID2.Value == s.UserApproveID && s.Type == ApproveType.E_TRA_TRAINEEREGISTER.ToString()).FirstOrDefault(); if (userApprovedEntity != null) { if (userApprovedEntity.IsMasterApprove != null && userApprovedEntity.IsMasterApprove.Value) { #region Cập Nhập Status lại vào bảng Tra_TraineeRegister registerEntity.Status = approved; message = Edit(registerEntity); #endregion #region Tạo hv vào bảng Tra_Trainee if (isTraineeInRequireDetail) { if (traineeEntityInClass.Count > 0) { message = ConstantMessages.WarningProfileHaveClass.ToString().TranslateString(); return message; } if (registerEntity.ClassID != null) { if (classEntity != null && classEntity.PlanID != null) { var lstRequirementByPlanID = lstRequirement.Where(s => s.PlanID != null && s.PlanID.Value == classEntity.PlanID).ToList(); foreach (var item in lstRequirementByPlanID) { var requirementDetailEntity = lstRequirementDetail.Where(s => item.ID == s.RequirementTrainID && s.CourseID == classEntity.CourseID && s.ProfileID == item.ProfileID).FirstOrDefault(); if (requirementDetailEntity != null) { var traineeEntity = new Tra_TraineeEntity(); traineeEntity.ProfileID = registerEntity.ProfileID.Value; traineeEntity.ClassID = registerEntity.ClassID.Value; traineeEntity.TraineeRegisterID = (Guid?)registerEntity.ID; traineeServices.Add(traineeEntity); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = traineeEntity.ID; message = traineeTopicServices.Add(traineeTopicEntity); } } else { message = ConstantMessages.WarningProfileNotInRequirement.ToString().TranslateString(); } } } } } if (classEntity != null) { if (traineeEntityInClass.Count > 0) { message = ConstantMessages.WarningProfileHaveClass.ToString().TranslateString(); return message; } var traineeEntity = new Tra_TraineeEntity(); traineeEntity.ProfileID = registerEntity.ProfileID.Value; traineeEntity.ClassID = registerEntity.ClassID.Value; traineeEntity.TraineeRegisterID = (Guid?)registerEntity.ID; traineeServices.Add(traineeEntity); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = traineeEntity.ID; message = traineeTopicServices.Add(traineeTopicEntity); } } #endregion } } } #endregion } return message; } }
/// <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 GetReportTraineeResult(List<Tra_TraineeEntity> lstTrainee, bool IsCreateTemplate, string _ScoreTypeID, string UserLogin) { using (var context = new VnrHrmDataContext()) { string status = string.Empty; var ScoreTypeServices = new Tra_ScoreTypeServices(); Tra_ScoreTypeEntity objScoreTypeentity = new Tra_ScoreTypeEntity(); if (_ScoreTypeID != null) { _ScoreTypeID = Common.DotNetToOracle(_ScoreTypeID); objScoreTypeentity = ScoreTypeServices.GetData<Tra_ScoreTypeEntity>(_ScoreTypeID, ConstantSql.hrm_tra_sp_get_ScoreTypeByIds, UserLogin, ref status).FirstOrDefault(); } var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); DataTable table = CreateReportTraineeResult(); if (IsCreateTemplate) { return table; } if (lstTrainee == null) { return table; } List<Guid> lstTraineeIDs = lstTrainee.Select(s => s.ID).ToList(); 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(); List<Guid> lstTraineeTopicIDs = null; List<Guid> lstTopicIDs = null; if (lstTraineeTopic.Count > 0) { lstTraineeTopic = lstTraineeTopic.Where(s => s.TraineeID != null && lstTraineeIDs.Contains(s.TraineeID.Value)).ToList(); if (lstTraineeTopic.Count > 0) { lstTraineeTopicIDs = lstTraineeTopic.Select(s => s.ID).ToList(); lstTopicIDs = lstTraineeTopic.Select(s => s.TopicID.Value).Distinct().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(); if (lstScoreTopic.Count > 0 && lstTopicIDs != null) { lstScoreTopic = lstScoreTopic.Where(s => s.TopicID != null && lstTopicIDs.Contains(s.TopicID.Value)).ToList(); } 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 (lstTraineeScore.Count > 0 && lstTraineeTopicIDs != null) { lstTraineeScore = lstTraineeScore.Where(s => s.TraineeTopicID != null && lstTraineeTopicIDs.Contains(s.TraineeTopicID.Value)).ToList(); } //var traineeScoreTypeServices = new Tra_ScoreTypeServices(); //var objTraineeScoreType = new List<object>(); //objTraineeScoreType.AddRange(new object[4]); //objTraineeScoreType[2] = 1; //objTraineeScoreType[3] = int.MaxValue - 1; //var lstTraineeScoreType = traineeScoreTypeServices.GetData<Tra_ScoreTypeEntity>(objTraineeScoreType, ConstantSql.hrm_tra_sp_get_ScoreType, ref status).ToList(); foreach (var item in lstTrainee) { DataRow row = table.NewRow(); var flag = false; //diem if (lstTraineeTopic.Count > 0) { var objTraineeTopicByTrainId = lstTraineeTopic.Where(s => s.TraineeID == item.ID).ToList(); foreach (var traineeTopic in objTraineeTopicByTrainId) { var lstScoreTopicByTopicID = lstScoreTopic.Where(s => s.TopicID == traineeTopic.TopicID).Select(s => s.ScoreTypeID).ToList(); var lstTraineeScoreByTypeID = lstTraineeScore.Where(s => s.ScoreTypeID != null && lstScoreTopicByTopicID.Contains(s.ScoreTypeID) && s.Score != null && s.TraineeTopicID.Value == traineeTopic.ID).ToList(); if (lstTraineeScoreByTypeID.Count > 0) { var lstTraineeScoreByScore = lstTraineeScoreByTypeID.Where(s => s.Score != null).ToList(); if (lstTraineeScoreByScore.Count > 0) { if (objScoreTypeentity != null && objScoreTypeentity.NumOrder != null && lstTraineeScoreByTypeID.Count > 0) { var objTraineeScoreByNumOder = lstTraineeScoreByTypeID.Where(s => s.NumOrder.Value == objScoreTypeentity.NumOrder.Value + 1).FirstOrDefault(); if (objTraineeScoreByNumOder != null) break; } flag = true; if (item.CodeEmp != null) row[Tra_ReportTraineeResultEntity.FieldNames.CodeEmp] = item.CodeEmp; if (item.ProfileName != null) row[Tra_ReportTraineeResultEntity.FieldNames.ProfileName] = item.ProfileName; if (item.E_DEPARTMENT != null) row[Tra_ReportTraineeResultEntity.FieldNames.E_DEPARTMENT] = item.E_DEPARTMENT; if (item.E_DIVISION != null) row[Tra_ReportTraineeResultEntity.FieldNames.E_DIVISION] = item.E_DIVISION; if (item.E_SECTION != null) row[Tra_ReportTraineeResultEntity.FieldNames.E_SECTION] = item.E_SECTION; if (item.E_TEAM != null) row[Tra_ReportTraineeResultEntity.FieldNames.E_TEAM] = item.E_TEAM; if (item.E_UNIT != null) row[Tra_ReportTraineeResultEntity.FieldNames.E_UNIT] = item.E_UNIT; if (item.CourseCode != null) row[Tra_ReportTraineeResultEntity.FieldNames.CourseCode] = item.CourseCode; if (item.CourseName != null) row[Tra_ReportTraineeResultEntity.FieldNames.CourseName] = item.CourseName; if (item.ClassCode != null) row[Tra_ReportTraineeResultEntity.FieldNames.ClassCode] = item.ClassCode; if (item.ClassName != null) row[Tra_ReportTraineeResultEntity.FieldNames.ClassName] = item.ClassName; if (item.StartDate != null) row[Tra_ReportTraineeResultEntity.FieldNames.StartDate] = item.StartDate; if (item.StatusView != null) row[Tra_ReportTraineeResultEntity.FieldNames.StatusView] = item.StatusView; if (item.EndDate != null) row[Tra_ReportTraineeResultEntity.FieldNames.EndDate] = item.EndDate; if (item.Result != null) row[Tra_ReportTraineeResultEntity.FieldNames.Result] = item.Result; if (item.TrainLevelName != null) row[Tra_ReportTraineeResultEntity.FieldNames.TrainLevelName] = item.TrainLevelName; } foreach (var traineeScore in lstTraineeScoreByTypeID) { if (traineeScore.Score != null) { if (traineeScore.NumOrder == 1) { row[Tra_ReportTraineeResultEntity.FieldNames.Score1] = traineeScore.Score; } if (traineeScore.NumOrder == 2) { row[Tra_ReportTraineeResultEntity.FieldNames.Score2] = traineeScore.Score; } if (traineeScore.NumOrder == 3) { row[Tra_ReportTraineeResultEntity.FieldNames.Score3] = traineeScore.Score; } } } } } } if (flag) { table.Rows.Add(row); } } return table.ConfigTable(true); } }
public string ApprovedTraineeRegister(List <Guid> selectedIds, Guid UserId) { using (var context = new VnrHrmDataContext()) { var message = string.Empty; var status = string.Empty; var UserLogin = string.Empty; var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var firstApproved = EnumDropDown.TraineeRegisterStatus.E_SUBMIT.ToString(); var approved = EnumDropDown.TraineeRegisterStatus.E_APPROVED.ToString(); var objTraineeRegister = new List <object>(); objTraineeRegister.AddRange(new object[12]); objTraineeRegister[10] = 1; objTraineeRegister[11] = int.MaxValue - 1; var lstTraineeRegister = GetData <Tra_TraineeRegisterEntity>(objTraineeRegister, ConstantSql.hrm_tra_sp_get_TraineeRegister, UserLogin, ref status).ToList(); var repo_UserApproved = new CustomBaseRepository <Sys_UserApprove>(unitOfWork); var lstUserApproved = repo_UserApproved.GetAll().Where(s => s.IsDelete == null).ToList(); if (selectedIds.Count > 0) { lstTraineeRegister = lstTraineeRegister.Where(s => selectedIds.Contains(s.ID)).ToList(); } var traineeServices = new Tra_TraineeServices(); var isTraineeInRequireDetail = traineeServices.IsAddTraineeDependOnRequirementDetail(); var traineeTopicServices = new Tra_TraineeTopicServices(); var planServices = new Tra_PlanServices(); var lstObjPlan = new List <object>(); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(1); lstObjPlan.Add(int.MaxValue - 1); var lstPlan = planServices.GetData <Tra_PlanEntity>(lstObjPlan, ConstantSql.hrm_tra_sp_get_Plan, UserLogin, ref status).ToList(); var planDetailServices = new Tra_PlanDetailServices(); var lstObjPlanDetail = new List <object>(); lstObjPlanDetail.Add(null); lstObjPlanDetail.Add(1); lstObjPlanDetail.Add(int.MaxValue - 1); var lstPlanDetail = planDetailServices.GetData <Tra_PlanDetailEntity>(lstObjPlanDetail, ConstantSql.hrm_tra_sp_get_PlanDetail, UserLogin, ref status).ToList(); var classServices = new Tra_ClassServices(); var lstObjClass = new List <object>(); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(1); lstObjClass.Add(int.MaxValue - 1); var lstClass = classServices.GetData <Tra_ClassEntity>(lstObjClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status).ToList(); //var lstObjTraineeInClass = new List<object>(); //lstObjTraineeInClass.Add(model.ClassID); //var lstTraineeInClass = classServices.GetData<Tra_ClassEntity>(lstObjTraineeInClass, ConstantSql.hrm_cat_sp_get_TraineeByClassID, ref status).ToList(); var courseTopicServices = new Tra_TraineeTopicServices(); var objCourseTopic = new List <object>(); objCourseTopic.Add(1); objCourseTopic.Add(int.MaxValue - 1); var lstCourseTopic = courseTopicServices.GetData <Tra_CourseTopicEntity>(objCourseTopic, ConstantSql.hrm_tra_sp_get_CourseTopic, UserLogin, ref status); //var classEntity = lstClass.Where(s => s.ID == model.ClassID).FirstOrDefault(); var profileServices = new Hre_ProfileServices(); var requirementServices = new Tra_RequirementTrainServices(); var objRequirement = new List <object>(); objRequirement.AddRange(new object[7]); objRequirement[5] = 1; objRequirement[6] = int.MaxValue - 1; var lstRequirement = requirementServices.GetData <Tra_RequirementTrainEntity>(objRequirement, ConstantSql.hrm_tra_sp_get_RequirementTrain, UserLogin, ref status).ToList(); var requirementDetailServices = new Tra_RequirementTrainDetailServices(); var objRequirementDetail = new List <object>(); objRequirementDetail.Add(null); objRequirementDetail.Add(1); objRequirementDetail.Add(int.MaxValue - 1); var lstRequirementDetail = requirementDetailServices.GetData <Tra_RequirementTrainDetailEntity>(objRequirementDetail, ConstantSql.hrm_tra_sp_get_RequirementDetail, UserLogin, ref status).ToList(); var objTrainee = new List <object>(); objTrainee.AddRange(new object[15]); objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; var lstObjTrainee = traineeServices.GetData <Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList(); foreach (var registerEntity in lstTraineeRegister) { var classEntity = lstClass.Where(s => s.ID == registerEntity.ClassID).FirstOrDefault(); var traineeEntityInClass = lstObjTrainee.Where(s => s.ClassID == registerEntity.ClassID && registerEntity.ProfileID == s.ProfileID).ToList(); #region người duyệt đầu if (registerEntity.UserApproveID1 != null && registerEntity.UserApproveID1.Value == UserId) { var userApprovedEntity = lstUserApproved.Where(s => registerEntity.UserApproveID1.Value == s.UserApproveID && s.Type == ApproveType.E_TRA_TRAINEEREGISTER.ToString()).FirstOrDefault(); if (userApprovedEntity != null) { if (userApprovedEntity.IsMasterApprove == null || userApprovedEntity.IsMasterApprove.Value == false) { registerEntity.Status = firstApproved; message = Edit(registerEntity); } } } #endregion #region người duyệt cuối if (registerEntity.UserApproveID2 != null && registerEntity.UserApproveID2.Value == UserId) { var userApprovedEntity = lstUserApproved.Where(s => registerEntity.UserApproveID2.Value == s.UserApproveID && s.Type == ApproveType.E_TRA_TRAINEEREGISTER.ToString()).FirstOrDefault(); if (userApprovedEntity != null) { if (userApprovedEntity.IsMasterApprove != null && userApprovedEntity.IsMasterApprove.Value) { #region Cập Nhập Status lại vào bảng Tra_TraineeRegister registerEntity.Status = approved; message = Edit(registerEntity); #endregion #region Tạo hv vào bảng Tra_Trainee if (isTraineeInRequireDetail) { if (traineeEntityInClass.Count > 0) { message = ConstantMessages.WarningProfileHaveClass.ToString().TranslateString(); return(message); } if (registerEntity.ClassID != null) { if (classEntity != null && classEntity.PlanID != null) { var lstRequirementByPlanID = lstRequirement.Where(s => s.PlanID != null && s.PlanID.Value == classEntity.PlanID).ToList(); foreach (var item in lstRequirementByPlanID) { var requirementDetailEntity = lstRequirementDetail.Where(s => item.ID == s.RequirementTrainID && s.CourseID == classEntity.CourseID && s.ProfileID == item.ProfileID).FirstOrDefault(); if (requirementDetailEntity != null) { var traineeEntity = new Tra_TraineeEntity(); traineeEntity.ProfileID = registerEntity.ProfileID.Value; traineeEntity.ClassID = registerEntity.ClassID.Value; traineeEntity.TraineeRegisterID = (Guid?)registerEntity.ID; traineeServices.Add(traineeEntity); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = traineeEntity.ID; message = traineeTopicServices.Add(traineeTopicEntity); } } else { message = ConstantMessages.WarningProfileNotInRequirement.ToString().TranslateString(); } } } } } if (classEntity != null) { if (traineeEntityInClass.Count > 0) { message = ConstantMessages.WarningProfileHaveClass.ToString().TranslateString(); return(message); } var traineeEntity = new Tra_TraineeEntity(); traineeEntity.ProfileID = registerEntity.ProfileID.Value; traineeEntity.ClassID = registerEntity.ClassID.Value; traineeEntity.TraineeRegisterID = (Guid?)registerEntity.ID; traineeServices.Add(traineeEntity); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = traineeEntity.ID; message = traineeTopicServices.Add(traineeTopicEntity); } } #endregion } } } #endregion } return(message); } }
public DataTable GetReportTraineeUnAttend(string codeEmp, string profileName, string orgStructureID, Guid[] courseID, Guid[] classID, DateTime? _StartDate, DateTime? _EndDate, bool IsCreateTemplate, Guid[] RequirementTrainIDs, string UserLogin) { string status = string.Empty; DataTable table = CreateReportTraineeUnAttendSchema(); if (IsCreateTemplate) { return table; } var traineeServices = new Tra_TraineeServices(); var objTrainee = new List<object>(); objTrainee.AddRange(new object[15]); objTrainee[9] = profileName; objTrainee[1] = codeEmp; objTrainee[8] = orgStructureID; objTrainee[3] = DateTime.Now; objTrainee[4] = DateTime.MaxValue; objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; var lstTrainee = traineeServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList(); if (lstTrainee.Count > 0) lstTrainee = lstTrainee.Where(s => s.EndDate != null && s.EndDate.Value > DateTime.Now).ToList(); if (_StartDate != null) lstTrainee = lstTrainee.Where(s => s.StartDate != null && s.StartDate.Value <= _StartDate.Value).ToList(); if (_EndDate != null) lstTrainee = lstTrainee.Where(s => s.EndDate != null && s.EndDate.Value >= _EndDate.Value).ToList(); if (courseID != null) { lstTrainee = lstTrainee.Where(s => courseID.Contains(s.CourseID)).ToList(); } if (classID != null) { lstTrainee = lstTrainee.Where(s => classID.Contains(s.ClassID)).ToList(); } var lisRequirementDetailByprofileID = new List<Guid>(); 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(); var lstClassIDByTrainee = lstTrainee.Select(s => s.ClassID).ToList(); var lstCourseId = lstTrainee.Select(s => s.CourseID).ToList(); if (RequirementTrainIDs != null) { lstRequirementDetail = lstRequirementDetail.Where(s => s.RequirementTrainID != null && RequirementTrainIDs.Contains(s.RequirementTrainID.Value)).ToList(); // lstRequirementDetail = lstRequirementDetail.Where(s => s.CourseID != null && s.ClassID != null && s.ProfileID != null && lisRequirementDetailByprofileID.Contains(s.ProfileID.Value) && lstClassIDByTrainee.Contains(s.ClassID.Value) && lstCourseId.Contains(s.CourseID.Value)).ToList(); if (lstRequirementDetail.Count > 0) { lisRequirementDetailByprofileID = lstRequirementDetail.Where(s => s.ProfileID != null).Select(s => (Guid)s.ProfileID).ToList(); } } if(lisRequirementDetailByprofileID.Count > 0) { // lstTrainee = lstTrainee.Where(s => lisRequirementDetailByprofileID.Contains(s.ProfileID)).ToList(); lisRequirementDetailByprofileID = lstRequirementDetail.Where(s => s.CourseID != null && s.ClassID != null && s.ProfileID != null && lisRequirementDetailByprofileID.Contains(s.ProfileID.Value) && lstClassIDByTrainee.Contains(s.ClassID.Value) && lstCourseId.Contains(s.CourseID.Value)).Select(s => (Guid)s.ProfileID).ToList(); } var lstTraineeID = lstTrainee.Select(s => s.ID).ToList(); 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(); lstTraineeTopic = lstTraineeTopic.Where(s => s.TraineeID != null && lstTraineeID.Contains(s.TraineeID.Value)).ToList(); var lstTraineeTopicID = lstTraineeTopic.Select(s => s.ID).ToList(); var traineeScoreService = new Tra_TraineeScoreServices(); var objTraineeScore = new List<object>(); objTraineeScore.Add(1); objTraineeScore.Add(int.MaxValue); var lstTraineeScore = traineeScoreService.GetData<Tra_TraineeScoreEntity>(objTraineeScore, ConstantSql.hrm_tra_sp_get_TraineeScore, UserLogin, ref status).ToList(); lstTraineeScore = lstTraineeScore.Where(s => s.TraineeTopicID != null && lstTraineeTopicID.Contains(s.TraineeTopicID.Value) && s.TraineeID != null && s.Score != null).ToList(); foreach (var item in lstTrainee) { DataRow dr = table.NewRow(); var lstTraineeScoreByTraineeID = lstTraineeScore.Where(s => item.ID == s.TraineeID.Value).ToList(); if (lstTraineeScoreByTraineeID.Count == 0) { dr[Tra_ReportTraineeUnAttendEntity.FieldNames.CodeEmp] = item.CodeEmp; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.ProfileName] = item.ProfileName; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.E_DEPARTMENT] = item.E_DEPARTMENT; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.E_DIVISION] = item.E_DIVISION; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.E_SECTION] = item.E_SECTION; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.E_TEAM] = item.E_TEAM; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.E_UNIT] = item.E_UNIT; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.ClassName] = item.ClassName; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.CourseName] = item.CourseName; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.WorkPlace] = item.WorkPlaceName; dr[Tra_ReportTraineeUnAttendEntity.FieldNames.RequirementTrainName] = item.RequirementTrainName; 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 Tra_TraineeModel Post([Bind] Tra_TraineeModel model) { #region Validate string message = string.Empty; var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData <Tra_TraineeModel>(model, "Tra_Trainee", ref message); if (!checkValidate) { model.ActionStatus = message; return(model); } #endregion var traineeServices = new Tra_TraineeServices(); ActionService service = new ActionService(UserLogin); var isTraineeInRequireDetail = traineeServices.IsAddTraineeDependOnRequirementDetail(); var traineeTopicServices = new Tra_TraineeTopicServices(); var planServices = new Tra_PlanServices(); var status = string.Empty; var lstObjPlan = new List <object>(); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(1); lstObjPlan.Add(int.MaxValue - 1); var lstPlan = planServices.GetData <Tra_PlanEntity>(lstObjPlan, ConstantSql.hrm_tra_sp_get_Plan, UserLogin, ref status).ToList(); var planDetailServices = new Tra_PlanDetailServices(); var lstObjPlanDetail = new List <object>(); lstObjPlanDetail.Add(null); lstObjPlanDetail.Add(1); lstObjPlanDetail.Add(int.MaxValue - 1); var lstPlanDetail = planDetailServices.GetData <Tra_PlanDetailEntity>(lstObjPlanDetail, ConstantSql.hrm_tra_sp_get_PlanDetail, UserLogin, ref status).ToList(); var classServices = new Tra_ClassServices(); var lstObjClass = new List <object>(); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(null); lstObjClass.Add(1); lstObjClass.Add(int.MaxValue - 1); var lstClass = classServices.GetData <Tra_ClassEntity>(lstObjClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status).ToList(); var lstObjTraineeInClass = new List <object>(); lstObjTraineeInClass.Add(model.ClassID); var lstTraineeInClass = classServices.GetData <Tra_ClassEntity>(lstObjTraineeInClass, ConstantSql.hrm_cat_sp_get_TraineeByClassID, UserLogin, ref status).ToList(); var courseTopicServices = new Tra_TraineeTopicServices(); var objCourseTopic = new List <object>(); objCourseTopic.Add(1); objCourseTopic.Add(int.MaxValue - 1); var lstCourseTopic = courseTopicServices.GetData <Tra_CourseTopicEntity>(objCourseTopic, ConstantSql.hrm_tra_sp_get_CourseTopic, UserLogin, ref status); var classEntity = lstClass.Where(s => s.ID == model.ClassID).FirstOrDefault(); var profileServices = new Hre_ProfileServices(); var profileEntity = profileServices.GetData <Hre_ProfileEntity>(model.ProfileID, ConstantSql.hrm_hr_sp_get_ProfileById, UserLogin, ref status).FirstOrDefault(); var requirementServices = new Tra_RequirementTrainServices(); var objRequirement = new List <object>(); objRequirement.AddRange(new object[7]); objRequirement[5] = 1; objRequirement[6] = int.MaxValue - 1; var lstRequirement = requirementServices.GetData <Tra_RequirementTrainEntity>(objRequirement, ConstantSql.hrm_tra_sp_get_RequirementTrain, UserLogin, ref status).ToList(); var requirementDetailServices = new Tra_RequirementTrainDetailServices(); var objRequirementDetail = new List <object>(); objRequirementDetail.Add(null); objRequirementDetail.Add(1); objRequirementDetail.Add(int.MaxValue - 1); var lstRequirementDetail = requirementDetailServices.GetData <Tra_RequirementTrainDetailEntity>(objRequirementDetail, ConstantSql.hrm_tra_sp_get_RequirementDetail, UserLogin, ref status).ToList(); var objTrainee = new List <object>(); objTrainee.AddRange(new object[15]); objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; var lstObjTrainee = traineeServices.GetData <Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList(); var traineeEntity = lstObjTrainee.Where(s => s.ClassID == model.ClassID && model.ProfileID == s.ProfileID).ToList(); #region Check Học Viên if (model.ID == Guid.Empty) { if (isTraineeInRequireDetail) { if (traineeEntity.Count > 0) { model.ActionStatus = ConstantMessages.WarningProfileHaveClass.ToString().TranslateString(); return(model); } if (classEntity != null) { if (classEntity.PlanID != null) { var lstRequirementByPlanID = lstRequirement.Where(s => s.PlanID != null && s.PlanID.Value == classEntity.PlanID).ToList(); foreach (var item in lstRequirementByPlanID) { var requirementDetailEntity = lstRequirementDetail.Where(s => item.ID == s.RequirementTrainID && s.CourseID == classEntity.CourseID && s.ProfileID == model.ProfileID).FirstOrDefault(); if (requirementDetailEntity != null) { model = service.UpdateOrCreate <Tra_TraineeEntity, Tra_TraineeModel>(model); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = model.ID; message = traineeTopicServices.Add(traineeTopicEntity); } // edit classID trong RequirementDetail requirementDetailEntity.ClassID = model.ClassID; message = requirementDetailServices.Edit(requirementDetailEntity); } else { model.ActionStatus = ConstantMessages.WarningProfileNotInRequirement.ToString().TranslateString(); } } } else { model.ActionStatus = ConstantMessages.WarningProfileNotInRequirement.ToString().TranslateString(); } model.ActionStatus = ConstantMessages.WarningProfileNotInRequirement.ToString().TranslateString(); } if (message == NotificationType.Success.ToString()) { model.ActionStatus = message; } return(model); //if (classEntity != null) //{ // if (classEntity.PlanID != null) // { // var planEntity = lstPlan.Where(s => s.ID == classEntity.PlanID.Value).FirstOrDefault(); // if (planEntity != null) // { // var lstPlanDetailByPlanID = lstPlanDetail.Where(s => s.PlanID == planEntity.ID).ToList(); // foreach (var item in lstPlanDetailByPlanID) // { // var lstTraineeInClassForOrg = lstTraineeInClass.Where(s => s.OrgStructureID.Value == item.OrgStructureID.Value).ToList(); // //Kiểm tra số lượng của plan detail với sumQuantity của plan // if (planEntity.SumQuantity == lstPlanDetailByPlanID.Sum(s => s.Quantity)) // { // if (lstTraineeInClass.Count < lstPlanDetailByPlanID.Sum(s => s.Quantity)) // { // // Xử Lý kiểm tra nv có thuộc phòng ban trong plan detail ko // if (profileEntity != null) // { // if (lstTraineeInClassForOrg.Count < item.Quantity) // { // if (profileEntity.OrgStructureID.Value == item.OrgStructureID.Value) // { // var traineeEntity = new Tra_TraineeEntity(); // model.OrgStructureID = profileEntity.OrgStructureID != null ? profileEntity.OrgStructureID.Value : profileEntity.OrgStructureID; // model = service.UpdateOrCreate<Tra_TraineeEntity, Tra_TraineeModel>(model); // var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); // foreach (var courseTopic in lstCourseTopicByCourseID) // { // var traineeTopicEntity = new Tra_TraineeTopicEntity(); // traineeTopicEntity.TopicID = courseTopic.TopicID; // traineeTopicEntity.TraineeID = model.ID; // message = traineeTopicServices.Add(traineeTopicEntity); // } // return model; // } // model.ActionStatus = ConstantMessages.WarningProfileNotDependantOrgStructure.TranslateString(); // } // else // { // model.ActionStatus = ConstantMessages.WarningTraineeOverLimit.TranslateString(); // } // } // } // else // { // model.ActionStatus = ConstantMessages.WarningTraineeOverLimit.TranslateString(); // } // } // if (planEntity.SumQuantity > lstPlanDetailByPlanID.Sum(s => s.Quantity)) // { // model = service.UpdateOrCreate<Tra_TraineeEntity, Tra_TraineeModel>(model); // var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); // foreach (var courseTopic in lstCourseTopicByCourseID) // { // var traineeTopicEntity = new Tra_TraineeTopicEntity(); // traineeTopicEntity.TopicID = courseTopic.TopicID; // traineeTopicEntity.TraineeID = model.ID; // message = traineeTopicServices.Add(traineeTopicEntity); // } // return model; // } // } // return model; // } // } //} } if (classEntity != null) { if (traineeEntity.Count > 0) { model.ActionStatus = ConstantMessages.WarningProfileHaveClass.ToString().TranslateString(); return(model); } model = service.UpdateOrCreate <Tra_TraineeEntity, Tra_TraineeModel>(model); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); if (lstCourseTopicByCourseID.Count == 0) { return(model); } foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = model.ID; model.ActionStatus = traineeTopicServices.Add(traineeTopicEntity); } return(model); } } return(service.UpdateOrCreate <Tra_TraineeEntity, Tra_TraineeModel>(model)); #endregion }
// Son.Vo - Thêm học viên vào lớp học public string AddTraineeToClass(List<Guid> lstTraineeIDs, Guid classID, string UserLogin) { using (var context = new VnrHrmDataContext()) { string status = string.Empty; var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); string message = string.Empty; var planServices = new Tra_PlanServices(); #region Tin.Nguyen var lstObjPlan = new List<object>(); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(null); lstObjPlan.Add(1); lstObjPlan.Add(int.MaxValue - 1); var lstPlan = planServices.GetData<Tra_PlanEntity>(lstObjPlan, ConstantSql.hrm_tra_sp_get_Plan, UserLogin, ref status).ToList(); var planDetailServices = new Tra_PlanDetailServices(); var lstObjPlanDetail = new List<object>(); lstObjPlanDetail.Add(null); lstObjPlanDetail.Add(1); lstObjPlanDetail.Add(int.MaxValue - 1); var lstPlanDetail = planDetailServices.GetData<Tra_PlanDetailEntity>(lstObjPlanDetail, ConstantSql.hrm_tra_sp_get_PlanDetail, 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 lstObjTraineeInClass = new List<object>(); lstObjTraineeInClass.Add(classID); var lstTraineeInClass = classServices.GetData<Tra_ClassEntity>(lstObjTraineeInClass, ConstantSql.hrm_cat_sp_get_TraineeByClassID, UserLogin, ref status).ToList(); var traineeTopicServices = new Tra_TraineeTopicServices(); var courseTopicServices = new Tra_TraineeTopicServices(); var objCourseTopic = new List<object>(); objCourseTopic.Add(1); objCourseTopic.Add(int.MaxValue - 1); var lstCourseTopic = courseTopicServices.GetData<Tra_CourseTopicEntity>(objCourseTopic, ConstantSql.hrm_tra_sp_get_CourseTopic, UserLogin, ref status); var classEntity = lstClass.Where(s => s.ID == classID).FirstOrDefault(); var profileServices = new Hre_ProfileServices(); var objProfile = new List<object>(); objProfile.AddRange(new object[18]); objProfile[16] = 1; objProfile[17] = int.MaxValue - 1; var lstProfileSelected = profileServices.GetData<Hre_ProfileEntity>(objProfile, ConstantSql.hrm_hr_sp_get_Profile, UserLogin, ref status).ToList(); if(lstTraineeIDs != null) { lstProfileSelected = lstProfileSelected.Where(s => lstTraineeIDs.Contains(s.ID)).ToList(); } var traineeServices = new Tra_TraineeServices(); var requirementServices = new Tra_RequirementTrainServices(); var objRequirement = new List<object>(); objRequirement.AddRange(new object[7]); objRequirement[5] = 1; objRequirement[6] = int.MaxValue - 1; var lstRequirement = requirementServices.GetData<Tra_RequirementTrainEntity>(objRequirement, ConstantSql.hrm_tra_sp_get_RequirementTrain, UserLogin, ref status).ToList(); var requirementDetailServices = new Tra_RequirementTrainDetailServices(); var objRequirementDetail = new List<object>(); objRequirementDetail.Add(null); objRequirementDetail.Add(1); objRequirementDetail.Add(int.MaxValue - 1); var lstRequirementDetail = requirementDetailServices.GetData<Tra_RequirementTrainDetailEntity>(objRequirementDetail, ConstantSql.hrm_tra_sp_get_RequirementDetail, UserLogin, ref status).ToList(); foreach (var profileEntity in lstProfileSelected) { if (classEntity != null) { if (classEntity.PlanID != null) { var planEntity = lstPlan.Where(s => s.ID == classEntity.PlanID.Value).FirstOrDefault(); if (planEntity != null) { var lstPlanDetailByPlanID = lstPlanDetail.Where(s => s.PlanID == planEntity.ID).ToList(); foreach (var item in lstPlanDetailByPlanID) { var lstTraineeInClassForOrg = lstTraineeInClass.Where(s => s.OrgStructureID.Value == item.OrgStructureID.Value).ToList(); //Kiểm tra số lượng của plan detail với sumQuantity của plan if (planEntity.SumQuantity == lstPlanDetailByPlanID.Sum(s => s.Quantity)) { if (lstTraineeInClass.Count < lstPlanDetailByPlanID.Sum(s => s.Quantity)) { // Xử Lý kiểm tra nv có thuộc phòng ban trong plan detail ko if (profileEntity != null) { if (lstTraineeInClassForOrg.Count < item.Quantity) { if (profileEntity.OrgStructureID.Value == item.OrgStructureID.Value) { var traineeEntity = new Tra_TraineeEntity(); traineeEntity.ProfileID = profileEntity.ID; traineeEntity.ClassID = classID; traineeEntity.OrgStructureID = profileEntity.OrgStructureID != null ? profileEntity.OrgStructureID.Value : profileEntity.OrgStructureID; message = traineeServices.Add(traineeEntity); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = traineeEntity.ID; message = traineeTopicServices.Add(traineeTopicEntity); } return message; } message = ConstantMessages.WarningProfileNotDependantOrgStructure.TranslateString(); } else { message = ConstantMessages.WarningTraineeOverLimit.TranslateString(); } } } else { message = ConstantMessages.WarningTraineeOverLimit.TranslateString(); } } if (planEntity.SumQuantity > lstPlanDetailByPlanID.Sum(s => s.Quantity)) { var traineeEntity = new Tra_TraineeEntity(); traineeEntity.ProfileID = profileEntity.ID; traineeEntity.ClassID = classID; traineeEntity.OrgStructureID = profileEntity.OrgStructureID != null ? profileEntity.OrgStructureID.Value : profileEntity.OrgStructureID; message = traineeServices.Add(traineeEntity); var lstCourseTopicByCourseID = lstCourseTopic.Where(s => s.CourseID == classEntity.CourseID).ToList(); foreach (var courseTopic in lstCourseTopicByCourseID) { var traineeTopicEntity = new Tra_TraineeTopicEntity(); traineeTopicEntity.TopicID = courseTopic.TopicID; traineeTopicEntity.TraineeID = traineeEntity.ID; message = traineeTopicServices.Add(traineeTopicEntity); } return message; } } return message; } } } } #endregion return message; } }
public ActionResult UpdateScoreInTraineeTopic(Dictionary<string, object> model) { string status = string.Empty; string message = string.Empty; var DictraineeID = model.ElementAt(0); string[] traineeID = (string[])DictraineeID.Value; // var entity = new Tra_TraineeTopicEntity(); var lstEntity = new List<Tra_TraineeTopicEntity>(); var topicServices = new ActionService(UserLogin); var objTopic = new List<object>(); objTopic.Add(null); objTopic.Add(null); objTopic.Add(null); objTopic.Add(null); objTopic.Add(1); objTopic.Add(int.MaxValue - 1); var lstTopic = topicServices.GetData<Cat_TopicEntity>(objTopic, ConstantSql.hrm_cat_sp_get_Topic, ref status).ToList(); var traineeScoreServices = new Tra_TraineeScoreServices(); var objTraineeScore = new List<object>(); objTraineeScore.Add(1); objTraineeScore.Add(int.MaxValue - 1); var lstTraineeScore = topicServices.GetData<Tra_TraineeScoreEntity>(objTraineeScore, ConstantSql.hrm_tra_sp_get_TraineeScore, ref status).ToList(); var scoreTopicServices = new ActionService(UserLogin); 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, ref status).ToList(); var traineeTopicServices = new Tra_TraineeTopicServices(); var objTraineeTopic = new List<object>(); objTraineeTopic.Add(1); objTraineeTopic.Add(int.MaxValue - 1); var lstTraineeTopic = topicServices.GetData<Tra_TraineeTopicEntity>(objTraineeTopic, ConstantSql.hrm_tra_sp_get_TraineeTopic, ref status).ToList(); if (model.Count > 0) { for (int i = 3; i < model.Count; i++) { var entity = new Tra_TraineeTopicEntity(); var item = model.ElementAt(i); var strTitle = item.Key.Split('_'); string[] score = (string[])item.Value; var topicEnity = lstTopic.Where(s => item.Key.Contains(s.Code)).FirstOrDefault(); if (topicEnity != null) { var scoreTopicEntity = lstScoreTopic.Where(s => topicEnity.ID == s.TopicID && strTitle[1] == s.Code).FirstOrDefault(); var traineeTopicEntity = lstTraineeTopic.Where(s => s.TraineeID != null && topicEnity.ID == s.TopicID && Guid.Parse(traineeID[0]) == s.TraineeID.Value).FirstOrDefault(); if (traineeTopicEntity != null) { //Edit cột score trong bảng traineeTopic if (!string.IsNullOrEmpty(score[0])) { traineeTopicEntity.Score = double.Parse(score[0]); } else { traineeTopicEntity.Score = null; } message = traineeTopicServices.Edit(traineeTopicEntity); //Kiểm tra trong bảng TraineeScoree. Nếu chưa có record thì tạo mới nguoc lai thì edit record var traineeScoreEntity = lstTraineeScore.Where(s => s.TraineeTopicID == traineeTopicEntity.ID && scoreTopicEntity.ScoreTypeID == s.ScoreTypeID).FirstOrDefault(); if (traineeScoreEntity == null) { Tra_TraineeScoreEntity newTraineeScoreEntity = new Tra_TraineeScoreEntity(); newTraineeScoreEntity.ScoreTypeID = scoreTopicEntity.ScoreTypeID; newTraineeScoreEntity.TraineeTopicID = traineeTopicEntity.ID; newTraineeScoreEntity.Score = traineeTopicEntity.Score; message = traineeScoreServices.Add(newTraineeScoreEntity); } else { traineeScoreEntity.Score = traineeTopicEntity.Score; message = traineeScoreServices.Edit(traineeScoreEntity); } // lstEntity.Add(traineeTopicEntity); } } } //message = traineeTopicServices.Edit(lstEntity); } return null; }