示例#1
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);
        }
示例#2
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;
        }
示例#3
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;
        }
示例#4
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;
        }
示例#5
0
        public ActionResult AddTopicToCourse(Guid CourseID, Guid TopicID)
        {
            var model = new Tra_CourseTopicModel();
            string status = string.Empty;
            if (CourseID != Guid.Empty && TopicID != Guid.Empty)
            {
                model.CourseID = CourseID;
                model.TopicID = TopicID;
            }
            #region Validate
            string message = string.Empty;

            var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData<Tra_CourseTopicModel>(model, "Tra_CourseTopic", ref message);
            if (!checkValidate)
            {

                model.ActionStatus = ConstantMessages.TopicIsExistedInCourse.ToString();
                return Json(model.ActionStatus, JsonRequestBehavior.AllowGet);
            }
            #endregion

            var courseServices = new Tra_CourseServices();
            var courseTopicServices = new Tra_CourseTopicServices();
            var entity = new Tra_CourseTopicEntity();
            if (model != null)
            {
            
                entity = model.CopyData<Tra_CourseTopicEntity>();
                message = courseTopicServices.Add(entity);
                return Json(message, JsonRequestBehavior.AllowGet);
            }

            return null;
        }