Exemplo n.º 1
0
        public string ActionCancelTraineeRegister(List <Guid> selectedIds)
        {
            using (var context = new VnrHrmDataContext())
            {
                var message            = string.Empty;
                var status             = string.Empty;
                var UserLogin          = string.Empty;
                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();
                if (selectedIds.Count > 0)
                {
                    lstTraineeRegister = lstTraineeRegister.Where(s => selectedIds.Contains(s.ID)).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 lstObjTrainee = traineeServices.GetData <Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList();

                foreach (var item in lstTraineeRegister)
                {
                    var entity = lstObjTrainee.Where(s => s.TraineeRegisterID != null && item.ID == s.TraineeRegisterID.Value && item.ProfileID.Value == s.ProfileID && item.ClassID.Value == item.ClassID).FirstOrDefault();
                    if (entity == null)
                    {
                        item.Status = EnumDropDown.TraineeRegisterStatus.E_CANCEL.ToString();
                        message     = Edit(item);
                    }
                }
                return(message);
            }
        }
Exemplo n.º 2
0
        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;

        }
Exemplo n.º 3
0
        public DataTable GetReportTraineeByMonth(DateTime Month, Guid? CourseID, bool IsCreateTemplate, string UserLogin)
        {
            DataTable table = CreateReportTraineeByMonth();
            if (IsCreateTemplate)
            {
                return table;
            }
            string status = string.Empty;

            var classServices = new Tra_ClassServices();
            var traineeServices = new Tra_TraineeServices();
            var objClass = new List<object>();
            objClass.Add(null);
            objClass.Add(null);
            objClass.Add(null);
            objClass.Add(null);
            objClass.Add(null);
            objClass.Add(null);
            objClass.Add(null);
            objClass.Add(null);
            objClass.Add(1);
            objClass.Add(int.MaxValue - 1);
            var lstClass = classServices.GetData<Tra_ClassEntity>(objClass, ConstantSql.hrm_tra_sp_get_Class, UserLogin, ref status).ToList();
            if (lstClass == null || lstClass.Count == 0)
            {
                return table;
            }
            lstClass = lstClass.Where(s => s.StartDate != null && s.StartDate.Value.Month == Month.Month && s.StartDate.Value.Year == Month.Year).ToList();
            if (CourseID != null)
            {
                lstClass = lstClass.Where(s => s.CourseID != null && s.CourseID == CourseID).ToList();
            }
            var lstClassId = lstClass.Select(s => s.ID).ToList();


            var objTrainee = new List<object>();
            objTrainee.AddRange(new object[15]);
            objTrainee[13] = 1;
            objTrainee[14] = int.MaxValue - 1;
            var lsttrainee = classServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList();

            if (lsttrainee == null || lsttrainee.Count == 0)
            {
                return table;
            }

            lsttrainee = lsttrainee.Where(s => lstClassId.Contains(s.ClassID)).ToList();

            if (lsttrainee == null || lsttrainee.Count == 0)
            {
                return table;
            }

            var courseServices = new Tra_CourseServices();
            var objCourse = new List<object>();
            objCourse.AddRange(new object[11]);
            objCourse[9] = 1;
            objCourse[10] = int.MaxValue - 1;
            var lstCourse = courseServices.GetData<Tra_CourseEntity>(objCourse, ConstantSql.hrm_tra_sp_get_Course, UserLogin, ref status).ToList();

            foreach (var trainee in lsttrainee)
            {
                DataRow dr = table.NewRow();
                var classbytrainee = lstClass.Where(s => s.ID == trainee.ClassID).FirstOrDefault();
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.CodeEmp] = trainee.CodeEmp;
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.ProfileName] = trainee.ProfileName;
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_DEPARTMENT] = trainee.E_DEPARTMENT;
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_DIVISION] = trainee.E_DIVISION;
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_SECTION] = trainee.E_SECTION;
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_TEAM] = trainee.E_TEAM;
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.E_UNIT] = trainee.E_UNIT;
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.ClassName] = trainee.ClassName;
                if (classbytrainee != null)
                {
                    var coursebyclass = lstCourse.Where(s => s.ID == classbytrainee.CourseID).FirstOrDefault();
                    dr[Tra_ReportTraineeByMonthEntity.FieldNames.CourseName] = coursebyclass != null ? coursebyclass.CourseName : null;
                }
                if (trainee.StartDate != null)
                {
                    dr[Tra_ReportTraineeByMonthEntity.FieldNames.StartDate] = trainee.StartDate;
                }

                dr[Tra_ReportTraineeByMonthEntity.FieldNames.Month] = Month;
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.WorkPlace] = trainee.WorkPlaceName;
                table.Rows.Add(dr);
            }
            return table;
        }
Exemplo n.º 4
0
        public string ImportChangeClass(List <Tra_TraineeChangeClassEntity> lstTraineeChangeClass, string UserLogin)
        {
            string message        = string.Empty;
            var    lstTraineeData = new List <Tra_TraineeChangeClassEntity>();

            using (var context = new VnrHrmDataContext())
            {
                string status          = string.Empty;
                var    unitOfWork      = (IUnitOfWork)(new UnitOfWork(context));
                var    repoTrainee     = new CustomBaseRepository <Tra_Trainee>(unitOfWork);
                var    lstClassOldCode = lstTraineeChangeClass.Select(m => m.ClassOldCode).Distinct().ToList();
                var    lstClassNewCode = lstTraineeChangeClass.Select(m => m.ClassNewCode).Distinct().ToList();
                var    lstCodeEmp      = lstTraineeChangeClass.Select(m => m.CodeEmp).Distinct().ToList();

                var traineeServices = new Tra_TraineeServices();


                var lstClassOld = unitOfWork.CreateQueryable <Tra_Class>(m => lstClassOldCode.Contains(m.Code)).Select(m => new { m.ID, m.CourseID, m.Code }).ToList();
                var lstClassNew = unitOfWork.CreateQueryable <Tra_Class>(m => lstClassNewCode.Contains(m.Code)).Select(m => new { m.ID, m.CourseID, m.Code }).ToList();

                var objTrainee = new List <object>();
                objTrainee.AddRange(new object[15]);
                objTrainee[13] = 1;
                objTrainee[14] = int.MaxValue - 1;

                var lstTraineeInDb = GetData <Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).Where(s => lstClassOldCode.Contains(s.ClassCode) && lstCodeEmp.Contains(s.CodeEmp)).ToList();

                //var lstTraineeInDb = unitOfWork.CreateQueryable<Tra_Trainee>(m => lstClassOldCode.Contains(m.Tra_Class1.Code) && lstCodeEmp.Contains(m.Hre_Profile.CodeEmp)).ToList();
                //var lstTraineeInDb = repoTrainee.GetAll().Where(s => s.IsDelete != null && lstClassOldCode.Contains(s.Tra_Class1.Code) && lstCodeEmp.Contains(s.CodeEmp)).ToList();


                foreach (var item in lstTraineeChangeClass)
                {
                    //  var traineeEntity = new Tra_TraineeEntity();
                    string ClassOldID = item.ClassOldCode;
                    string ClassNewID = item.ClassNewCode;

                    Guid CourseOldID    = lstClassOld.Where(m => m.Code == ClassOldID).Select(m => m.CourseID).FirstOrDefault();
                    Guid CourseNewID    = lstClassNew.Where(m => m.Code == ClassNewID).Select(m => m.CourseID).FirstOrDefault();
                    var  ClassNewEntity = lstClassNew.Where(m => m.Code == ClassNewID).FirstOrDefault();
                    if (CourseOldID != CourseNewID)
                    {
                        continue;
                    }
                    var traineeInDB = lstTraineeInDb.Where(m => m.CodeEmp == item.CodeEmp && m.ClassCode == ClassOldID).FirstOrDefault();
                    if (traineeInDB != null)
                    {
                        traineeInDB.ClassID = ClassNewEntity != null ? ClassNewEntity.ID:Guid.Empty;
                        //   traineeEntity = traineeInDB.CopyData<Tra_TraineeEntity>();
                    }
                    message = traineeServices.Edit(traineeInDB);
                    //Tra_TraineeChangeClassEntity trainee = new Tra_TraineeChangeClassEntity();
                    //trainee.CodeEmp = item.CodeEmp;
                    //trainee.ClassOldCode = item.ClassOldCode;
                    //trainee.ClassNewCode = item.ClassNewCode;
                    //lstTraineeData.Add(trainee);
                    //message = ConstantMessages.Succeed.ToString();
                }
                //    unitOfWork.SaveChanges();
                return(message);
            }
        }
Exemplo n.º 5
0
        public JsonResult ImportTrainee([DataSourceRequest] DataSourceRequest request, CatImportModel model)
        {
            var services = new Tra_TraineeServices();
            List<Tra_TraineeScoreImport> lstTraineeScore = new List<Tra_TraineeScoreImport>();
            List<Tra_TraineeScoreImport> DataError = new List<Tra_TraineeScoreImport>();
            List<ImportTraineeEntity> lstTrainee = new List<ImportTraineeEntity>();
            List<ImportTraineeEntity> lstTraineeTranslate = new List<ImportTraineeEntity>();

            var _fileName = Common.GetPath(Common.TemplateURL) + model.TemplateFile;
            _fileName = _fileName.Replace("/", "\\");
            ImportService = new ImportService
            {
                //FileName = Common.GetPath(model.TemplateFile),
                FileName = _fileName,
                DateTimeFormat = model.FormatDate,
                ImportTemplateID = model.ID,

            };

            try
            {

                var table = ImportService.ImportNew(_fileName, model.TemplateFile, model.ID);

                lstTrainee = table.Translate<ImportTraineeEntity>();

                foreach (var item in lstTrainee)
                {
                    var entity = new ImportTraineeEntity
                    {
                        CodeEmp = item.Column2,
                        ClassCode = item.Column3,
                        RequirementCode = item.Column4,
                        Status = item.Column5
                    };
                    lstTraineeTranslate.Add(entity);
                }

                var lstEntity = services.GetListTrainee(lstTraineeTranslate,UserLogin);
                if (lstEntity.Count > 0)
                {
                    return Json(lstEntity.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
                }
            }
            catch (Exception ex)
            {
                model.Description = ex.Message;
            }
            return Json(DataError.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
        }
Exemplo n.º 6
0
        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;
            }
            
        }
Exemplo n.º 7
0
        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;
        }
Exemplo n.º 8
0
        /// <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;
        }
Exemplo n.º 9
0
        public DataTable GetTraineeByClassID(List<Tra_TraineeEntity> lstTrainee, bool IsCreateTemplate)
        {
            DataTable table = CreateTraineeByClassID();
            List<Guid> lstTraineeID = lstTrainee.Select(x => x.ID).ToList();
            List<Tra_TraineeScoreEntity> lstTra_TraineeScoreEntity = new List<Tra_TraineeScoreEntity>();
            using (var context = new VnrHrmDataContext())
            {
                var services = new Tra_TraineeServices();
                var unitOfWork = (IUnitOfWork)(new UnitOfWork(context));
                //unitOfWork.CreateQueryable<Tra_TraineeScore>(d => d.Tra_TraineeTopic.TraineeID == Guid.Empty).ToList().Translate<Tra_TraineeScoreEntity>();

                lstTra_TraineeScoreEntity = unitOfWork.CreateQueryable<Tra_TraineeScore>(d => lstTraineeID.Contains(d.Tra_TraineeTopic.TraineeID.Value)).Select(d => new Tra_TraineeScoreEntity
                {
                    TraineeID = d.Tra_TraineeTopic.TraineeID,
                    TraineeTopicID = d.TraineeTopicID,
                    TraineeTopicName = d.Tra_TraineeTopic.Cat_Topic.TopicName,
                    ScoreTypeID = d.ScoreTypeID,
                    ScoreTypeName = d.Tra_ScoreType.ScoreTypeName,
                    Score = d.Score,
                    NumOrder = d.Tra_ScoreType.NumOrder
                }).ToList();
            }
            foreach (var item in lstTrainee)
            {
                DataRow row = table.NewRow();
                row[Tra_ReportTraineeResultEntity.FieldNames.ID] = item.ID;
                row[Tra_ReportTraineeResultEntity.FieldNames.ClassID] = item.ClassID;

                if (item.TraineeCertificateID.HasValue)
                    row[Tra_ReportTraineeResultEntity.FieldNames.TraineeCertificateID] = item.TraineeCertificateID;
                row[Tra_ReportTraineeResultEntity.FieldNames.CodeEmp] = item.CodeEmp;
                row[Tra_ReportTraineeResultEntity.FieldNames.ProfileName] = item.ProfileName;
                if (!string.IsNullOrEmpty(item.E_UNIT))
                    row[Tra_ReportTraineeResultEntity.FieldNames.E_UNIT] = item.E_UNIT;
                if (!string.IsNullOrEmpty(item.E_DIVISION))
                    row[Tra_ReportTraineeResultEntity.FieldNames.E_DIVISION] = item.E_DIVISION;
                if (!string.IsNullOrEmpty(item.E_DEPARTMENT))
                    row[Tra_ReportTraineeResultEntity.FieldNames.E_DEPARTMENT] = item.E_DEPARTMENT;
                if (!string.IsNullOrEmpty(item.E_SECTION))
                    row[Tra_ReportTraineeResultEntity.FieldNames.E_SECTION] = item.E_SECTION;
                if (!string.IsNullOrEmpty(item.E_TEAM))
                    row[Tra_ReportTraineeResultEntity.FieldNames.E_TEAM] = item.E_TEAM;
                if (item.JobTitleName != null)
                    row[Tra_ReportTraineeResultEntity.FieldNames.JobTitleName] = item.JobTitleName;
                if (item.DateCertificate.HasValue)
                    row[Tra_ReportTraineeResultEntity.FieldNames.DateCertificate] = item.DateCertificate;
                if (item.DateExpireCertificate.HasValue)
                    row[Tra_ReportTraineeResultEntity.FieldNames.DateExpireCertificate] = item.DateExpireCertificate;
                if (!string.IsNullOrEmpty(item.Status))
                    row[Tra_ReportTraineeResultEntity.FieldNames.Status] = item.Status;
                if (!string.IsNullOrEmpty(item.StatusView))
                    row[Tra_ReportTraineeResultEntity.FieldNames.StatusView] = item.StatusView;
                if (!string.IsNullOrEmpty(item.RankingName))
                    row[Tra_ReportTraineeResultEntity.FieldNames.RankingName] = item.RankingName;
                List<Tra_TraineeScoreEntity> lstTraineeScore = lstTra_TraineeScoreEntity.Where(d => d.TraineeID == item.ID).ToList();
                if (lstTraineeScore.Count > 0)
                {
                    foreach (var traineeScore in lstTraineeScore)
                    {
                        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 (item.Result.HasValue)
                    row[Tra_ReportTraineeResultEntity.FieldNames.Result] = item.Result;
                table.Rows.Add(row);
            }
            return table;
        }
Exemplo n.º 10
0
        public string TransferTraineeForClass(List<Guid> lstTraineeIDs, Guid classID, Guid tranferClassID,string UserLogin)
        {
            using (var context = new VnrHrmDataContext())
            {
                string status = string.Empty;
                var unitOfWork = (IUnitOfWork)(new UnitOfWork(context));
                string message = string.Empty;
                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 (lstTraineeIDs != null)
                {
                    lstTrainee = lstTrainee.Where(s => lstTraineeIDs.Contains(s.ID) && s.ClassID == classID).ToList();
                }

                foreach (var item in lstTrainee)
                {
                    item.ClassOldID = classID;
                    item.ClassID = tranferClassID;
                    message =  traineeServices.Edit(item);
                }
                
                return message;
            }
        }
Exemplo n.º 11
0
        // 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;
            }
        }
Exemplo n.º 12
0
        public ActionResult GetClassList([DataSourceRequest] DataSourceRequest request, Tra_ClassSearchModel model)
        {
            var services = new ActionService(UserLogin);
            var traineeServices = new Tra_TraineeServices();
            var objTrainee = new List<object>();
            string status = string.Empty;
            var service = new ActionService(UserLogin);
            Guid[] _RequirementTrainIDs=null;
            if (!string.IsNullOrEmpty(model.RequirementTrainID))
            {
                _RequirementTrainIDs = model.RequirementTrainID.Split(',').Select(s => Guid.Parse(s)).ToArray();
            }
            ListQueryModel lstModel = new ListQueryModel
            {
                PageIndex = request.Page,
                PageSize = request.PageSize,
                Filters = ExtractFilterAttributes(request),
                Sorts = ExtractSortAttributes(request),
                AdvanceFilters = ExtractAdvanceFilterAttributes(model)
            };
            //List<object> paraprofile = new List<object>();
            //paraprofile.AddRange(new object[17]);
            //paraprofile[15] = 1;
            //paraprofile[16] = int.MaxValue - 1;
            //var lstProfile = service.GetData<Hre_ProfileEntity>(paraprofile, ConstantSql.hrm_hr_sp_get_ProfileAll, ref status);

            var hreServiceProfile = new Hre_ProfileServices();
            var lstProfile = hreServiceProfile.GetProfileNameAll();

            var listEntity = service.GetData<Tra_ClassEntity>(lstModel, ConstantSql.hrm_tra_sp_get_Class, ref status);
            
            
            if (_RequirementTrainIDs != null)
            {
                List<object> paraprofile = new List<object>();
                paraprofile.AddRange(new object[7]);
                paraprofile[5] = 1;
                paraprofile[6] = int.MaxValue - 1;
                var ListRequirementTrain = service.GetData<Tra_RequirementTrainEntity>(paraprofile, ConstantSql.hrm_tra_sp_get_RequirementTrain, ref status);
               // var _lstRequirementTrainByPlanID = new List<Guid>();
              //  _lstRequirementTrainByPlanID = ListRequirementTrain.Where(s => s.ID != null && _RequirementTrainIDs.Contains(s.ID)).Select(s => (Guid)s.PlanID).ToList();
                var result = services.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, ref status);
                List<Guid> _RequirementTrainIDs1 = model.RequirementTrainID.Split(',').Select(s => Guid.Parse(s)).ToList();
                result = traineeServices.GetListTrainees(result, _RequirementTrainIDs1);
                //if (listEntity != null)
                //{
                //    listEntity = listEntity.Where(s => s.PlanID != null && _lstRequirementTrainByPlanID.Contains((Guid)s.PlanID)).ToList();
                //}
                return Json(result.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
               
            }
            var listModel = new List<Tra_ClassModel>();
            if (listEntity != null)
            {
                request.Page = 1;
                foreach (var item in listEntity)
                {
                    if (item.TrainerOtherList != null)
                    {
                        string _strTrainerOtherList = item.TrainerOtherList.Replace(" ", "");
                        string[] lstitem = _strTrainerOtherList.Split(',').ToArray();
                        if(lstProfile !=null && lstitem!=null)
                        {
                            List<Hre_ProfileEntity> lstitemprofile = lstProfile.Where(s => lstitem.Contains(s.CodeEmp)).ToList();
                            string Stringresult = string.Empty;
                            foreach (var itemstring in lstitemprofile)
                            {
                                Stringresult += itemstring.ProfileName + ", ";
                            }
                            if (!string.IsNullOrEmpty(Stringresult))
                            {
                                Stringresult = Stringresult.Substring(0, Stringresult.Length - 2);
                            }
                           
                            item.TeacherName = Stringresult;
                        }
                    }
                    var newModle = (Tra_ClassModel)typeof(Tra_ClassModel).CreateInstance();
                    foreach (var property in item.GetType().GetProperties())
                    {
                        newModle.SetPropertyValue(property.Name, item.GetPropertyValue(property.Name));
                    }
                    listModel.Add(newModle);
                }
                var dataSourceResult = listModel.ToDataSourceResult(request);
                if (listModel.FirstOrDefault().GetPropertyValue("TotalRow") != null)
                {
                    dataSourceResult.Total = listModel.Count() <= 0 ? 0 : (int)listModel.FirstOrDefault().GetPropertyValue("TotalRow");
                }
                return Json(dataSourceResult, JsonRequestBehavior.AllowGet);
            }
            var listModelNull = new List<Tra_ClassModel>();
            ModelState.AddModelError("Id", status);
            return Json(listModelNull.ToDataSourceResult(request, ModelState));

            //return GetListDataAndReturn<Tra_ClassModel, Tra_ClassEntity, Tra_ClassSearchModel>(request, model, ConstantSql.hrm_tra_sp_get_Class);
        }
Exemplo n.º 13
0
         public ActionResult GetTraineeList([DataSourceRequest] DataSourceRequest request, Tra_TraineeSearchModel1 model)
         {
             var services = new ActionService(UserLogin);
             var traineeServices = new Tra_TraineeServices();
             string status = string.Empty;
             var objTrainee = new List<object>();
             objTrainee.AddRange(new object[15]);
             objTrainee[0] = model.ClassID;
             objTrainee[1] = model.CodeEmp;
             objTrainee[2] = model.CourseID;
             objTrainee[3] = model.DateFrom;
             objTrainee[4] = model.DateTo;
             objTrainee[8] = model.OrgStructureID;
             objTrainee[9] = model.ProfileName;
             objTrainee[10] = model.Status;
             objTrainee[11] = model.RequirementTrainName;
             objTrainee[12] = null;
             objTrainee[13] = 1;
             objTrainee[14] = int.MaxValue - 1;
             var result = services.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, ref status);
             
             if (model.RequirementTrainID != null)
             {
                List<Guid> _RequirementTrainIDs = model.RequirementTrainID.Split(',').Select(s => Guid.Parse(s)).ToList();
                result = traineeServices.GetListTrainees(result, _RequirementTrainIDs);
             }

             return Json(result.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
         }
Exemplo n.º 14
0
        public JsonResult SaveChangeClass([DataSourceRequest] DataSourceRequest request, CatImportModel model)
        {
            var services = new Tra_TraineeServices();
            List<ImportTraineeEntity> lstTrainee = new List<ImportTraineeEntity>();
            List<Tra_TraineeChangeClassEntity> lstTraineeTranslate = new List<Tra_TraineeChangeClassEntity>();
            List<Tra_TraineeScoreImport> DataError = new List<Tra_TraineeScoreImport>();
            var _fileName = Common.GetPath(Common.TemplateURL) + model.TemplateFile;
            _fileName = _fileName.Replace("/", "\\");
            ImportService = new ImportService
            {
                FileName = _fileName,
                DateTimeFormat = model.FormatDate,
                ImportTemplateID = model.ID,
            };
            try
            {

                var table = ImportService.ImportNew(_fileName, model.TemplateFile, model.ID);

                lstTrainee = table.Translate<ImportTraineeEntity>();
                foreach (var item in lstTrainee)
                {
                    var entity = new Tra_TraineeChangeClassEntity
                    {
                        CodeEmp = item.Column2,
                        ClassOldCode = item.Column3,
                        ClassNewCode = item.Column4
                    };
                    lstTraineeTranslate.Add(entity);
                }
                var message = services.ImportChangeClass(lstTraineeTranslate,UserLogin);
                if (message == NotificationType.Success.ToString())
                {
                    return Json(message, JsonRequestBehavior.AllowGet);
                }
            }
            catch (Exception ex)
            {
                model.Description = ex.Message;
            }
            return Json(DataError.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
        }
Exemplo n.º 15
0
        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);
            }
        }
Exemplo n.º 16
0
        public DataTable GetReportTransferTrainee(string codeEmp, string profileName, string orgStructureID, Guid? courseID, Guid? classID, Guid? classOldID, bool IsCreateTemplate, string UserLogin)
        {
            DataTable table = CreateReportTransferTrainee();
            if (IsCreateTemplate)
            {
                return table;
            }
            string status = string.Empty;

            var classServices = new Tra_ClassServices();
            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[13] = 1;
            objTrainee[14] = int.MaxValue - 1;

            var lstTrainee = traineeServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).Where(s => s.ClassOldID != null).ToList();

            if (courseID != null)
            {
                lstTrainee = lstTrainee.Where(s => s.CourseID != null && s.CourseID == courseID).ToList();
            }

            if (classID != null)
            {
                lstTrainee = lstTrainee.Where(s => s.ClassID != null && s.ClassID == classID).ToList();
            }

            if (classOldID != null)
            {
                lstTrainee = lstTrainee.Where(s => s.ClassOldID != null && s.ClassOldID == classOldID).ToList();
            }

            if (lstTrainee == null || lstTrainee.Count == 0)
            {
                return table;
            }

            foreach (var trainee in lstTrainee)
            {
                DataRow dr = table.NewRow();
                dr[Tra_ReportTransferTraineeEntity.FieldNames.CodeEmp] = trainee.CodeEmp;
                dr[Tra_ReportTransferTraineeEntity.FieldNames.ProfileName] = trainee.ProfileName;
                dr[Tra_ReportTransferTraineeEntity.FieldNames.E_DEPARTMENT] = trainee.E_DEPARTMENT;
                dr[Tra_ReportTransferTraineeEntity.FieldNames.E_DIVISION] = trainee.E_DIVISION;
                dr[Tra_ReportTransferTraineeEntity.FieldNames.E_SECTION] = trainee.E_SECTION;
                dr[Tra_ReportTransferTraineeEntity.FieldNames.E_TEAM] = trainee.E_TEAM;
                dr[Tra_ReportTransferTraineeEntity.FieldNames.E_UNIT] = trainee.E_UNIT;
                dr[Tra_ReportTransferTraineeEntity.FieldNames.ClassName] = trainee.ClassName;
                dr[Tra_ReportTransferTraineeEntity.FieldNames.ClassNameOld] = trainee.ClassNameOld;
                dr[Tra_ReportTransferTraineeEntity.FieldNames.CourseName] = trainee.CourseName;
                dr[Tra_ReportTraineeByMonthEntity.FieldNames.WorkPlace] = trainee.WorkPlaceName;
                table.Rows.Add(dr);
            }

            return table;
        }
Exemplo n.º 17
0
        public string ActionCancelTraineeRegister(List<Guid> selectedIds)
        {
            using (var context = new VnrHrmDataContext())
            {
                var message = string.Empty;
                var status = string.Empty;
                var UserLogin = string.Empty;
                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();
                if (selectedIds.Count > 0)
                {
                    lstTraineeRegister = lstTraineeRegister.Where(s => selectedIds.Contains(s.ID)).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 lstObjTrainee = traineeServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).ToList();

                foreach (var item in lstTraineeRegister)
                {
                    var entity = lstObjTrainee.Where(s => s.TraineeRegisterID != null && item.ID == s.TraineeRegisterID.Value && item.ProfileID.Value == s.ProfileID && item.ClassID.Value == item.ClassID).FirstOrDefault();
                    if (entity == null)
                    {
                        item.Status = EnumDropDown.TraineeRegisterStatus.E_CANCEL.ToString();
                        message = Edit(item);
                    }
                }
                return message;
            }
        }
Exemplo n.º 18
0
        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;
            }
        }
Exemplo n.º 19
0
        public string ImportChangeClass(List<Tra_TraineeChangeClassEntity> lstTraineeChangeClass,string UserLogin)
        {
            string message = string.Empty;
            var lstTraineeData = new List<Tra_TraineeChangeClassEntity>();
            using (var context = new VnrHrmDataContext())
            {
                string status = string.Empty;
                var unitOfWork = (IUnitOfWork)(new UnitOfWork(context));
                var repoTrainee = new CustomBaseRepository<Tra_Trainee>(unitOfWork);
                var lstClassOldCode = lstTraineeChangeClass.Select(m => m.ClassOldCode).Distinct().ToList();
                var lstClassNewCode = lstTraineeChangeClass.Select(m => m.ClassNewCode).Distinct().ToList();
                var lstCodeEmp = lstTraineeChangeClass.Select(m => m.CodeEmp).Distinct().ToList();

                var traineeServices = new Tra_TraineeServices();


                var lstClassOld = unitOfWork.CreateQueryable<Tra_Class>(m => lstClassOldCode.Contains(m.Code)).Select(m => new { m.ID, m.CourseID, m.Code }).ToList();
                var lstClassNew = unitOfWork.CreateQueryable<Tra_Class>(m => lstClassNewCode.Contains(m.Code)).Select(m => new { m.ID, m.CourseID, m.Code }).ToList();

                var objTrainee = new List<object>();
                objTrainee.AddRange(new object[15]);
                objTrainee[13] = 1;
                objTrainee[14] = int.MaxValue - 1;

                var lstTraineeInDb = GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, UserLogin, ref status).Where(s => lstClassOldCode.Contains(s.ClassCode) && lstCodeEmp.Contains(s.CodeEmp)).ToList();
                
                //var lstTraineeInDb = unitOfWork.CreateQueryable<Tra_Trainee>(m => lstClassOldCode.Contains(m.Tra_Class1.Code) && lstCodeEmp.Contains(m.Hre_Profile.CodeEmp)).ToList();
                //var lstTraineeInDb = repoTrainee.GetAll().Where(s => s.IsDelete != null && lstClassOldCode.Contains(s.Tra_Class1.Code) && lstCodeEmp.Contains(s.CodeEmp)).ToList();


                foreach (var item in lstTraineeChangeClass)
                {
                  //  var traineeEntity = new Tra_TraineeEntity();
                    string ClassOldID = item.ClassOldCode;
                    string ClassNewID = item.ClassNewCode;

                    Guid CourseOldID = lstClassOld.Where(m => m.Code == ClassOldID).Select(m => m.CourseID).FirstOrDefault();
                    Guid CourseNewID = lstClassNew.Where(m => m.Code == ClassNewID).Select(m => m.CourseID).FirstOrDefault();
                    var ClassNewEntity = lstClassNew.Where(m => m.Code == ClassNewID).FirstOrDefault();
                    if (CourseOldID != CourseNewID)
                        continue;
                    var traineeInDB = lstTraineeInDb.Where(m => m.CodeEmp == item.CodeEmp && m.ClassCode == ClassOldID).FirstOrDefault();
                    if (traineeInDB != null)
                    {
                        traineeInDB.ClassID = ClassNewEntity != null ? ClassNewEntity.ID:Guid.Empty;
                     //   traineeEntity = traineeInDB.CopyData<Tra_TraineeEntity>();
                    }
                    message = traineeServices.Edit(traineeInDB);
                    //Tra_TraineeChangeClassEntity trainee = new Tra_TraineeChangeClassEntity();
                    //trainee.CodeEmp = item.CodeEmp;
                    //trainee.ClassOldCode = item.ClassOldCode;
                    //trainee.ClassNewCode = item.ClassNewCode;
                    //lstTraineeData.Add(trainee);
                    //message = ConstantMessages.Succeed.ToString();

                }
            //    unitOfWork.SaveChanges();
                return message;
            }
        }
Exemplo n.º 20
0
        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;
        }
Exemplo n.º 21
0
        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
        }
Exemplo n.º 22
0
        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;
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
0
        public ActionResult ComputePoint(List<string> selectedIds)
        {
            string status = string.Empty;
            string message = string.Empty;

            var traineeIds = new List<Guid>();
            var classIds = new List<Guid>();
            foreach (var item in selectedIds)
            {
                var str = item.Split(',');
                traineeIds.Add(Common.ConvertToGuid(str[0]));
                classIds.Add(Common.ConvertToGuid(str[1]));
            }
            var courseServices = new ActionService(UserLogin);

            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 = courseServices.GetData<Tra_TraineeEntity>(objTrainee, ConstantSql.hrm_tra_sp_get_Trainee, ref status).ToList();

         
            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();

            var classServices = new ActionService(UserLogin);
            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, ref status).ToList();

            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 traineeTopicServices = new ActionService(UserLogin);
            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, ref status).ToList();

            var courseTopicServices = new ActionService(UserLogin);
            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, ref status).ToList();

            var scoreTypeService = new ActionService(UserLogin);
            var objScoreType = new List<object>();
            objScoreType.Add(null);
            objScoreType.Add(null);
            objScoreType.Add(1);
            objScoreType.Add(int.MaxValue - 1);
            var lstScoreType = scoreTypeService.GetData<Tra_ScoreTypeEntity>(objScoreType, ConstantSql.hrm_tra_sp_get_ScoreType, 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 traineeScoreServices = new ActionService(UserLogin);
            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, ref status).ToList();


            var lstClassIds = new List<Guid>();
            if (classIds != null)
            {
                lstClassIds = classIds.Distinct().ToList();
                lstClass = lstClass.Where(s => classIds.Contains(s.ID)).ToList();
            }



            foreach (var item in lstClass)
            {
                if (item.StandardScoreToPass == null)
                {
                    continue;
                }
                var courseEntity = lstCourse.Where(s => item.CourseID == s.ID).FirstOrDefault();
                var topicByCourseID = lstCourseTopic.Where(s => item.CourseID == s.CourseID).Select(s => s.TopicID).ToList();

                if (courseEntity != null)
                {
                    lstTrainee = lstTrainee.Where(s => traineeIds.Contains(s.ID) && item.ID == s.ClassID).ToList();
                    foreach (var trainee in lstTrainee)
                    {
                        var lstTraineeByTopicIDAndTraineeID = lstTraineeTopic.Where(s => topicByCourseID.Contains(s.TopicID.Value) && trainee.ID == s.TraineeID).ToList();
                        var lstTraineeTopicByTraineeID = lstTraineeTopic.Where(s => s.TraineeID == trainee.ID).ToList();

                        var lstTopicForTrainee = lstTopic.Where(s => topicByCourseID.Contains(s.ID)).ToList();

                        if (!string.IsNullOrEmpty(courseEntity.Formula))
                        {
                            double traineeScore = -1;

                            #region HienNguyen
                            if (lstTopicForTrainee.Count > 0)
                            {
                                List<ElementFormula> listElementFormula = new List<ElementFormula>();
                                foreach (var topicItem in lstTopicForTrainee)
                                {
                                    Tra_TraineeTopicEntity TraineeTopicItem = lstTraineeByTopicIDAndTraineeID.Where(m => m.TopicID == topicItem.ID).FirstOrDefault();
                                    var lstScoreTopicByTopicID = lstScoreTopic.Where(s => s.TopicID == topicItem.ID).Select(s => s.ScoreTypeID).ToList();
                                    var lstScoreForTrainee = lstTraineeScore.Where(s => s.ScoreTypeID != null && s.TraineeTopicID != null && s.TraineeTopicID.Value == TraineeTopicItem.ID && lstScoreTopicByTopicID.Contains(s.ScoreTypeID.Value)).ToList();
                                    var score = lstScoreForTrainee.Where(s => s.Score!=null).OrderByDescending(s => s.DateUpdate).FirstOrDefault();

                                    if (score != null)
                                    {
                                        var ElementFormulaItem = new ElementFormula(topicItem.Code.ReplaceSpace(), score != null ? score.Score != null ? score.Score : 0 : 0, 0);
                                        listElementFormula.Add(ElementFormulaItem);
                                        HRM.Infrastructure.Utilities.Helper.FormulaHelper.FormulaHelperModel ElementResult = FormulaHelper.ParseFormula(courseEntity.Formula.Replace("[", "").Replace("]", ""), listElementFormula);
                                        if (ElementResult.ErrorMessage != null || ElementResult.ErrorMessage == string.Empty)
                                        {
                                            traineeScore = (double)ElementResult.Value;
                                        }
                                    }
                                    
                                }
                                
                            }
                            #endregion

                            #region Update score cho hv
                            if (traineeScore == -1)
                            {
                                trainee.Status = EnumDropDown.TraineeStatus.E_FAILED.ToString();
                                trainee.Result = null;
                                message = traineeServices.Edit(trainee);
                            }
                            else {
                                if (item.StandardScoreToPass != null && traineeScore >= item.StandardScoreToPass)
                                {
                                    trainee.Status = EnumDropDown.TraineeStatus.E_PASSED.ToString();
                                    trainee.Result = traineeScore;
                                }
                                else
                                {
                                    trainee.Status = EnumDropDown.TraineeStatus.E_FAILED.ToString();
                                    trainee.Result = traineeScore;
                                }
                                message = traineeServices.Edit(trainee);
                            }
                           
                            #endregion

                         
                        }
                    }
                }
            }

            return Json(message, JsonRequestBehavior.AllowGet);



        }