public string ImportTrainee(List <ImportTraineeEntity> lstImport, string UserLogin) { int NumTrainee = 0; var message = string.Empty; using (var context = new VnrHrmDataContext()) { string status = string.Empty; var services = new Tra_TraineeServices(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoTra_Class = new CustomBaseRepository <Tra_Class>(unitOfWork); var repoTra_CourseTopic = new CustomBaseRepository <Tra_CourseTopic>(unitOfWork); var repoTra_Trainee = new CustomBaseRepository <Tra_Trainee>(unitOfWork); var repoTra_TraineeTopic = new CustomBaseRepository <Tra_TraineeTopic>(unitOfWork); var repoHre_Profile = new CustomBaseRepository <Hre_Profile>(unitOfWork); var lstTraineeAdd = new List <Tra_TraineeEntity>(); var lstTraineeTopicAdd = new List <Tra_TraineeTopicEntity>(); var entity = new List <Tra_Trainee>(); var lstClassCode = lstImport.Select(m => m.ClassCode).Distinct().ToList(); var lstClass = repoTra_Class.FindBy(m => m.IsDelete == null && (lstClassCode.Contains(m.Code))) .Select(m => new { m.ID, m.CourseID, m.Code }).ToList(); var lstCourseID = lstClass.Select(m => m.CourseID).Distinct().ToList(); var lstCourseTopic = repoTra_CourseTopic.FindBy(m => m.IsDelete == null && (lstCourseID.Contains(m.CourseID))).Select(m => new { m.ID, m.CourseID, m.TopicID }).ToList(); var lstProfileCode = lstImport.Select(m => m.CodeEmp).Distinct().ToList(); var lstProfile = repoHre_Profile.FindBy(m => m.IsDelete == null && lstProfileCode.Contains(m.CodeEmp)).Select(m => new { m.ID, m.CodeEmp }).ToList(); 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(); List <Tra_Trainee> lstTrainee = new List <Tra_Trainee>(); List <Tra_TraineeTopic> lstTraineeTopic = new List <Tra_TraineeTopic>(); foreach (var item in lstImport) { var traClass = lstClass.Where(m => m.Code == item.ClassCode).FirstOrDefault(); if (traClass == null) { continue; } var requirementEntity = lstRequirement.Where(s => s.Code == item.RequirementCode).FirstOrDefault(); if (requirementEntity == null) { continue; } var requirementDetailEntity = lstRequirementDetail.Where(s => s.CourseID != null && lstCourseID.Contains(s.CourseID.Value) && s.ProfileID != null && !string.IsNullOrEmpty(s.CodeEmp) && item.CodeEmp == s.CodeEmp).FirstOrDefault(); if (requirementDetailEntity == null) { continue; } var profile = lstProfile.Where(m => m.CodeEmp == item.CodeEmp).FirstOrDefault(); if (profile == null) { continue; } Tra_Trainee trainee = new Tra_Trainee(); trainee.ID = Guid.NewGuid(); trainee.ClassID = traClass.ID; trainee.ProfileID = profile.ID; trainee.Status = item.Status; lstTrainee.Add(trainee); if (traClass.CourseID != null) { List <Guid> lstTopicIDs = lstCourseTopic.Where(m => m.CourseID == traClass.CourseID).Select(m => m.TopicID).ToList(); foreach (var topic in lstTopicIDs) { Tra_TraineeTopic traineeTopic = new Tra_TraineeTopic(); traineeTopic.ID = Guid.NewGuid(); traineeTopic.Tra_Trainee = trainee; traineeTopic.TraineeID = (Guid?)trainee.ID; traineeTopic.TopicID = topic; lstTraineeTopic.Add(traineeTopic); } } if (requirementDetailEntity != null && traClass != null) { requirementDetailEntity.ClassID = (Guid?)traClass.ID; message = Edit(requirementDetailEntity); } } lstTraineeAdd = lstTrainee.Translate <Tra_TraineeEntity>(); lstTraineeTopicAdd = lstTraineeTopic.Translate <Tra_TraineeTopicEntity>(); NumTrainee = lstTrainee.Count; message = Add(lstTraineeAdd); message = Add(lstTraineeTopicAdd); } return(message); }
public Tra_RequirementTrainModel Post([Bind]Tra_RequirementTrainModel model) { #region Validate if(model.isAnalysis==true) { string message = string.Empty; var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData<Tra_RequirementTrainModel>(model,"Tra_RequirementTrain_Tab", "Tra_RequirementTrain", ref message); if (!checkValidate) { model.ActionStatus = message; return model; } } #endregion var requirementDetailServices = new Tra_RequirementTrainDetailServices(); var profileServices = new Hre_ProfileServices(); string[] arrCodeEmp = new string[1]; if (!string.IsNullOrEmpty(model.lstCodeEmp) && model.lstCodeEmp.IndexOf(',') > 1) { arrCodeEmp = model.lstCodeEmp.Split(',').ToArray(); } else { arrCodeEmp[0] = model.lstCodeEmp; } ActionService service = new ActionService(UserLogin); string status = string.Empty; //var objProfile = new List<object>(); //objProfile.AddRange(new object[17]); //objProfile[15] = 1; //objProfile[16] = int.MaxValue - 1; //var lstProfile = profileServices.GetData<Hre_ProfileEntity>(objProfile, ConstantSql.hrm_hr_sp_get_ProfileAll, UserLogin, ref status).ToList().Translate<Hre_ProfileModel>(); //if (arrCodeEmp != null) //{ // lstProfile = lstProfile.Where(s => arrCodeEmp.Contains(s.CodeEmp)).ToList(); //} var lstProfile = profileServices.GetData<Hre_ProfileEntity>(model.lstCodeEmp, ConstantSql.hrm_hr_sp_get_ProfileAllByCodeEmps, UserLogin, ref status).ToList().Translate<Hre_ProfileModel>(); model = service.UpdateOrCreate<Tra_RequirementTrainEntity, Tra_RequirementTrainModel>(model); 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 item in lstProfile) { var entity = lstRequirementDetail.Where(s => s.ProfileID == item.ID && s.RequirementTrainID == model.ID && s.CourseID == model.CourseID).FirstOrDefault(); var requirementDetailEntity = new Tra_RequirementTrainDetailEntity(); requirementDetailEntity.ProfileID = item.ID; requirementDetailEntity.RequirementTrainID = model.ID; requirementDetailEntity.CourseID = model.CourseID; requirementDetailEntity.YearAnalyze = model.DateSeniority; if (item.DateHire != null && model.DateSeniority != null) { requirementDetailEntity.Seniority = Math.Floor(model.DateSeniority.Value.Subtract(item.DateHire.Value).TotalDays/30); } if (entity == null) { model.ActionStatus = requirementDetailServices.Add(requirementDetailEntity); } } return model; //return service.UpdateOrCreate<Tra_RequirementTrainEntity, Tra_RequirementTrainModel>(model); }
public string ImportTrainee(List<ImportTraineeEntity> lstImport,string UserLogin) { int NumTrainee = 0; var message = string.Empty; using (var context = new VnrHrmDataContext()) { string status = string.Empty; var services = new Tra_TraineeServices(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoTra_Class = new CustomBaseRepository<Tra_Class>(unitOfWork); var repoTra_CourseTopic = new CustomBaseRepository<Tra_CourseTopic>(unitOfWork); var repoTra_Trainee = new CustomBaseRepository<Tra_Trainee>(unitOfWork); var repoTra_TraineeTopic = new CustomBaseRepository<Tra_TraineeTopic>(unitOfWork); var repoHre_Profile = new CustomBaseRepository<Hre_Profile>(unitOfWork); var lstTraineeAdd = new List<Tra_TraineeEntity>(); var lstTraineeTopicAdd = new List<Tra_TraineeTopicEntity>(); var entity = new List<Tra_Trainee>(); var lstClassCode = lstImport.Select(m => m.ClassCode).Distinct().ToList(); var lstClass = repoTra_Class.FindBy(m => m.IsDelete == null && (lstClassCode.Contains(m.Code))) .Select(m => new { m.ID, m.CourseID, m.Code }).ToList(); var lstCourseID = lstClass.Select(m => m.CourseID).Distinct().ToList(); var lstCourseTopic = repoTra_CourseTopic.FindBy(m => m.IsDelete == null && (lstCourseID.Contains(m.CourseID))).Select(m => new { m.ID, m.CourseID, m.TopicID }).ToList(); var lstProfileCode = lstImport.Select(m => m.CodeEmp).Distinct().ToList(); var lstProfile = repoHre_Profile.FindBy(m => m.IsDelete == null && lstProfileCode.Contains(m.CodeEmp)).Select(m => new { m.ID, m.CodeEmp }).ToList(); 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(); List<Tra_Trainee> lstTrainee = new List<Tra_Trainee>(); List<Tra_TraineeTopic> lstTraineeTopic = new List<Tra_TraineeTopic>(); foreach (var item in lstImport) { var traClass = lstClass.Where(m => m.Code == item.ClassCode).FirstOrDefault(); if (traClass == null) { continue; } var requirementEntity = lstRequirement.Where(s => s.Code == item.RequirementCode).FirstOrDefault(); if (requirementEntity == null) { continue; } var requirementDetailEntity = lstRequirementDetail.Where(s => s.CourseID != null && lstCourseID.Contains(s.CourseID.Value) && s.ProfileID != null && !string.IsNullOrEmpty(s.CodeEmp) && item.CodeEmp == s.CodeEmp).FirstOrDefault(); if (requirementDetailEntity == null) { continue; } var profile = lstProfile.Where(m => m.CodeEmp == item.CodeEmp).FirstOrDefault(); if (profile == null) { continue; } Tra_Trainee trainee = new Tra_Trainee(); trainee.ID = Guid.NewGuid(); trainee.ClassID = traClass.ID; trainee.ProfileID = profile.ID; trainee.Status = item.Status; lstTrainee.Add(trainee); if (traClass.CourseID != null) { List<Guid> lstTopicIDs = lstCourseTopic.Where(m => m.CourseID == traClass.CourseID).Select(m => m.TopicID).ToList(); foreach (var topic in lstTopicIDs) { Tra_TraineeTopic traineeTopic = new Tra_TraineeTopic(); traineeTopic.ID = Guid.NewGuid(); traineeTopic.Tra_Trainee = trainee; traineeTopic.TraineeID = (Guid?)trainee.ID; traineeTopic.TopicID = topic; lstTraineeTopic.Add(traineeTopic); } } if (requirementDetailEntity != null && traClass != null) { requirementDetailEntity.ClassID = (Guid?)traClass.ID; message = Edit(requirementDetailEntity); } } lstTraineeAdd = lstTrainee.Translate<Tra_TraineeEntity>(); lstTraineeTopicAdd = lstTraineeTopic.Translate<Tra_TraineeTopicEntity>(); NumTrainee = lstTrainee.Count; message = Add(lstTraineeAdd); message = Add(lstTraineeTopicAdd); } return message; }
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); } }
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 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 DataTable GetReportTraineeJoinCoursePass(Guid[] courseIds, string orderNumber, bool IsCreateTemplate, Guid[] RequirementTrainIDs, string UserLogin) { DataTable table = CreateReportTraineeJoinCoursePassSchema(); if (IsCreateTemplate) { return table; } using (var context = new VnrHrmDataContext()) { string status = string.Empty; var profileServices = new Hre_ProfileServices(); var objProfile = new List<object>(); objProfile.Add(orderNumber); objProfile.Add(null); objProfile.Add(null); //var lstProfile = profileServices.GetData<Hre_ProfileEntity>(objProfile, ConstantSql.hrm_hr_sp_get_ProfileIdsByOrg, ref status).ToList(); var lstProfile = profileServices.GetData<Hre_ProfileEntity>(objProfile, ConstantSql.hrm_hr_sp_get_ProfileIdsByOrgN, UserLogin, 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, 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, ref status).ToList(); //if (courseIds != null) //{ // lstCourse = lstCourse.Where(s => courseIds.Contains(s.ID)).ToList(); //} //if (RequirementTrainIDs != null) //{ // lstCourse = lstCourse.Where(s => s.RequirementTrainID != null && RequirementTrainIDs.Contains((Guid)s.RequirementTrainID)).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 (RequirementTrainIDs != null) { lstRequirementDetail = lstRequirementDetail.Where(s => s.RequirementTrainID != null && RequirementTrainIDs.Contains(s.RequirementTrainID.Value)).ToList(); } if(courseIds != null) { lstRequirementDetail = lstRequirementDetail.Where(s => s.CourseID != null && courseIds.Contains(s.CourseID.Value)).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 = traineeServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList(); if (courseIds != null) { lstTrainee = lstTrainee.Where(s => courseIds.Contains(s.CourseID)).ToList(); } lstTrainee = lstTrainee.Where(s => lstProfileID.Contains(s.ProfileID)).ToList(); var lstClassIDByTrainee = lstTrainee.Select(s => s.ClassID).ToList(); var lstTraineeByProfileID = lstTrainee.Select(s => s.ProfileID).ToList(); var lstCourseId = lstTrainee.Select(s => s.CourseID).ToList(); if (lstTraineeByProfileID.Count > 0) { lstRequirementDetail = lstRequirementDetail.Where(s => s.CourseID != null && s.ClassID != null && s.ProfileID != null && lstTraineeByProfileID.Contains(s.ProfileID.Value) && lstClassIDByTrainee.Contains(s.ClassID.Value) && lstCourseId.Contains(s.CourseID.Value)).ToList(); } foreach (var item in lstRequirementDetail) { DataRow dr = table.NewRow(); dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.CodeEmp] = item.CodeEmp; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.TraineeName] = item.ProfileName; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.CourseName] = item.CourseName; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_DEPARTMENT] = item.E_DEPARTMENT; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_DIVISION] = item.E_DIVISION; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_SECTION] = item.E_SECTION; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_TEAM] = item.E_TEAM; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.E_UNIT] = item.E_UNIT; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.JobTitleName] = item.JobTitleName; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.PositionName] = item.PositionName; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.Note] = item.Comment; dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.RequirementTrainName] = item.RequirementTrainName; if (item.Seniority != null) dr[Tra_ReportTraineeJoinCourseEntity.FieldNames.Seniority] = item.Seniority; table.Rows.Add(dr); } } return table; }
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; }
public DataTable GetReportTraineeNotInRequirementDetail(DateTime? Month, string OrderNumber, Guid[] classID, bool IsCreateTemplate, Guid[] courseID, string UserLogin) { DataTable table = CreateTraineeNotInRequirementDetailSchema(); if (IsCreateTemplate) { return table; } using (var context = new VnrHrmDataContext()) { string status = string.Empty; var profileServices = new Hre_ProfileServices(); //var objProfile = new List<object>(); //objProfile.Add(OrderNumber); //objProfile.Add(null); //objProfile.Add(null); //var lstProfile = profileServices.GetData<Hre_ProfileEntity>(objProfile, ConstantSql.hrm_hr_sp_get_ProfileIdsByOrg, ref status).ToList(); var service = new BaseService(); List<object> lstObj = new List<object>(); lstObj.Add(OrderNumber); lstObj.Add(null); lstObj.Add(null); var lstProfileidEntity = service.GetData<Hre_ProfileIdEntity>(lstObj, ConstantSql.hrm_hr_sp_get_ProfileIdsByOrgN, UserLogin, ref status); List<Guid> lstProfileID = null; if (lstProfileidEntity != null) { lstProfileID = lstProfileidEntity.Select(s => s.ID).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 = new List<Tra_ClassEntity>(); if (Month != null) { lstClass = classServices.GetData<Tra_ClassEntity>(objClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status).Where(s => s.StartDate != null && s.StartDate.Value.Month == Month.Value.Month && s.StartDate.Value.Year == Month.Value.Year).ToList(); } else { lstClass = classServices.GetData<Tra_ClassEntity>(objClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status).ToList(); } if (classID != null) { lstClass = lstClass.Where(s => classID.Contains(s.ID)).ToList(); } if (courseID != null) { lstClass = lstClass.Where(s => courseID.Contains(s.CourseID)).ToList(); } //if (RequirementTrainIDs != null) //{ // lstClass = lstClass.Where(s => s.RequirementTrainID!=null && courseID.Contains((Guid)s.RequirementTrainID)).ToList(); //} var lstClassIDs = lstClass.Select(s => s.ID).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 traineeServices = new Tra_TraineeServices(); var objTrainee = new List<object>(); objTrainee.AddRange(new object[15]); objTrainee[13] = 1; objTrainee[14] = int.MaxValue - 1; var lstTraniee = traineeServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList(); if (lstProfileID != null) { lstTraniee = lstTraniee.Where(s => lstProfileID.Contains(s.ProfileID)).ToList(); } if (lstClassIDs != null) { lstTraniee = lstTraniee.Where(s => lstClassIDs.Contains(s.ClassID)).ToList(); } var lstTraineeID = lstTraniee.Select(s => s.ProfileID).ToList(); var stt = 1; #region lấy Org và OrgType //var orgServices = new Cat_OrgStructureServices(); //var lstObjOrg = new List<object>(); //lstObjOrg.Add(null); //lstObjOrg.Add(null); //lstObjOrg.Add(null); //lstObjOrg.Add(1); //lstObjOrg.Add(int.MaxValue - 1); //var lstOrg = orgServices.GetData<Cat_OrgStructureEntity>(lstObjOrg, ConstantSql.hrm_cat_sp_get_OrgStructure, ref status).ToList(); //var orgTypeService = new Cat_OrgStructureTypeServices(); //var lstObjOrgType = new List<object>(); //lstObjOrgType.Add(null); //lstObjOrgType.Add(null); //lstObjOrgType.Add(1); //lstObjOrgType.Add(int.MaxValue - 1); //var lstOrgType = orgTypeService.GetData<Cat_OrgStructureTypeEntity>(lstObjOrgType, ConstantSql.hrm_cat_sp_get_OrgStructureType, ref status).ToList(); #endregion foreach (var item in lstTraniee) { DataRow dr = table.NewRow(); var traineeNotInRequirementEntity = lstRequirementDetail.Where(s => item.ProfileID == s.ProfileID.Value).FirstOrDefault(); //var _objProfile = lstProfile.Where(s => s.ID == item.ProfileID).FirstOrDefault(); //Guid? orgId = item.OrgStructureID; //var org = lstOrg.FirstOrDefault(s => s.ID == item.OrgStructureID); //var E_DEPARTMENT = LibraryService.GetNearestParentEntity(orgId, OrgUnit.E_DEPARTMENT, lstOrg, lstOrgType); if (traineeNotInRequirementEntity == null) { dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.STT] = stt++; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.CodeEmp] = item.CodeEmp; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.ProfileName] = item.ProfileName; //dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.SectionName] = E_DEPARTMENT != null ? E_DEPARTMENT.OrgStructureName : null; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.E_DEPARTMENT] = item.E_DEPARTMENT; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.E_DIVISION] = item.E_DIVISION; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.E_SECTION] = item.E_SECTION; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.E_TEAM] = item.E_TEAM; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.E_UNIT] = item.E_UNIT; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.ClassName] = item.ClassName; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.CourseName] = item.CourseName; dr[Tra_ReportTraineeNotInRequirementDetailEntity.FieldNames.Notes] = traineeNotInRequirementEntity == null ? string.Empty : traineeNotInRequirementEntity.Comment; table.Rows.Add(dr); } } return table; } }
public Tra_RequirementTrainModel Post([Bind] Tra_RequirementTrainModel model) { #region Validate if (model.isAnalysis == true) { string message = string.Empty; var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData <Tra_RequirementTrainModel>(model, "Tra_RequirementTrain_Tab", "Tra_RequirementTrain", ref message); if (!checkValidate) { model.ActionStatus = message; return(model); } } #endregion var requirementDetailServices = new Tra_RequirementTrainDetailServices(); var profileServices = new Hre_ProfileServices(); string[] arrCodeEmp = new string[1]; if (!string.IsNullOrEmpty(model.lstCodeEmp) && model.lstCodeEmp.IndexOf(',') > 1) { arrCodeEmp = model.lstCodeEmp.Split(',').ToArray(); } else { arrCodeEmp[0] = model.lstCodeEmp; } ActionService service = new ActionService(UserLogin); string status = string.Empty; //var objProfile = new List<object>(); //objProfile.AddRange(new object[17]); //objProfile[15] = 1; //objProfile[16] = int.MaxValue - 1; //var lstProfile = profileServices.GetData<Hre_ProfileEntity>(objProfile, ConstantSql.hrm_hr_sp_get_ProfileAll, UserLogin, ref status).ToList().Translate<Hre_ProfileModel>(); //if (arrCodeEmp != null) //{ // lstProfile = lstProfile.Where(s => arrCodeEmp.Contains(s.CodeEmp)).ToList(); //} var lstProfile = profileServices.GetData <Hre_ProfileEntity>(model.lstCodeEmp, ConstantSql.hrm_hr_sp_get_ProfileAllByCodeEmps, UserLogin, ref status).ToList().Translate <Hre_ProfileModel>(); model = service.UpdateOrCreate <Tra_RequirementTrainEntity, Tra_RequirementTrainModel>(model); 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 item in lstProfile) { var entity = lstRequirementDetail.Where(s => s.ProfileID == item.ID && s.RequirementTrainID == model.ID && s.CourseID == model.CourseID).FirstOrDefault(); var requirementDetailEntity = new Tra_RequirementTrainDetailEntity(); requirementDetailEntity.ProfileID = item.ID; requirementDetailEntity.RequirementTrainID = model.ID; requirementDetailEntity.CourseID = model.CourseID; requirementDetailEntity.YearAnalyze = model.DateSeniority; if (item.DateHire != null && model.DateSeniority != null) { requirementDetailEntity.Seniority = Math.Floor(model.DateSeniority.Value.Subtract(item.DateHire.Value).TotalDays / 30); } if (entity == null) { model.ActionStatus = requirementDetailServices.Add(requirementDetailEntity); } } return(model); //return service.UpdateOrCreate<Tra_RequirementTrainEntity, Tra_RequirementTrainModel>(model); }
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; } }