Ejemplo n.º 1
0
        public List <ReportEvaluateModel> GetReport(int userId, DateTime from, DateTime to)
        {
            using (var db = new QMSSystemEntities())
            {
                List <ReportEvaluateModel> report = new List <ReportEvaluateModel>();
                ReportEvaluateModel        obj;
                var ycDanhGia = db.Q_EvaluateDetail.
                                Where(x => !x.IsDeleted && !x.Q_Evaluate.IsDeleted).
                                OrderBy(x => x.Index).
                                Select(x => new ModelSelectItem()
                {
                    Code = x.EvaluateId + "_" + x.Id, Name = x.Name, Id = 0, Data = 0
                }).
                                ToList();
                if (userId != 0)
                {
                    obj      = new ReportEvaluateModel();
                    obj.Name = db.Q_User.FirstOrDefault(x => x.Id == userId).Name;
                    var danhgia = db.Q_UserEvaluate.Where(x => (x.Q_DailyRequire_Detail.EndProcessTime.Value.Day >= from.Day && x.Q_DailyRequire_Detail.EndProcessTime.Value.Month == from.Month && x.Q_DailyRequire_Detail.EndProcessTime.Value.Year == from.Year) && (x.Q_DailyRequire_Detail.EndProcessTime.Value.Day <= to.Day && x.Q_DailyRequire_Detail.EndProcessTime.Value.Month == to.Month && x.Q_DailyRequire_Detail.EndProcessTime.Value.Year == to.Year) && x.UserId == userId).ToList();
                    if (danhgia.Count > 0)
                    {
                        obj.Details.AddRange(ycDanhGia);
                        foreach (var yc in obj.Details)
                        {
                            yc.Id = danhgia.Where(x => x.Score == yc.Code).Count();
                        }
                    }
                    report.Add(obj);
                }
                else
                {
                    var danhgia = db.Q_UserEvaluate.Where(x => (x.Q_DailyRequire_Detail.EndProcessTime.Value.Day >= from.Day && x.Q_DailyRequire_Detail.EndProcessTime.Value.Month == from.Month && x.Q_DailyRequire_Detail.EndProcessTime.Value.Year == from.Year) && (x.Q_DailyRequire_Detail.EndProcessTime.Value.Day <= to.Day && x.Q_DailyRequire_Detail.EndProcessTime.Value.Month == to.Month && x.Q_DailyRequire_Detail.EndProcessTime.Value.Year == to.Year)).ToList();
                    report.AddRange(db.Q_User.Select(x => new ReportEvaluateModel()
                    {
                        UserId = x.Id, Name = x.Name
                    }));

                    if (danhgia.Count > 0)
                    {
                        foreach (var item in report)
                        {
                            var objs = danhgia.Where(x => x.UserId == item.UserId).ToList();
                            if (objs.Count > 0)
                            {
                                foreach (var yc in item.Details)
                                {
                                    var a = new ModelSelectItem();
                                    Parse.CopyObject(yc, ref a);
                                    a.Id = danhgia.Where(x => x.Score == yc.Code).Count();
                                    item.Details.Add(a);
                                }
                            }
                        }
                    }
                }
                return(report);
            }
        }
Ejemplo n.º 2
0
        public List <ReportEvaluateModel> GetReport_NotUseQMS(int userId, DateTime from, DateTime to)
        {
            using (var db = new QMSSystemEntities())
            {
                List <ReportEvaluateModel> report = new List <ReportEvaluateModel>();
                var ycDanhGia = db.Q_EvaluateDetail.
                                Where(x => !x.IsDeleted && !x.Q_Evaluate.IsDeleted).
                                OrderBy(x => x.Index).
                                Select(x => new ModelSelectItem()
                {
                    Code = x.EvaluateId + "_" + x.Id, Name = x.Name, Id = 0, Data = 0
                }).
                                ToList();
                ReportEvaluateModel obj;
                if (userId != 0)
                {
                    obj      = new ReportEvaluateModel();
                    obj.Name = db.Q_User.FirstOrDefault(x => x.Id == userId).Name;
                    obj.Details.AddRange(ycDanhGia);
                    var danhgia_HN = db.Q_UserEvaluate.Where(x => x.CreatedDate >= from && x.CreatedDate <= to && x.UserId == userId).ToList();
                    //  var danhgia_LS = db.Q_HisUserEvaluate.Where(x => (x.Q_HisDailyRequire_De.ProcessTime.Value.Day >= from.Day && x.Q_HisDailyRequire_De.ProcessTime.Value.Month == from.Month && x.Q_HisDailyRequire_De.ProcessTime.Value.Year == from.Year) && (x.Q_HisDailyRequire_De.ProcessTime.Value.Day <= to.Day && x.Q_HisDailyRequire_De.ProcessTime.Value.Month == to.Month && x.Q_HisDailyRequire_De.ProcessTime.Value.Year == to.Year) && x.UserId == userId).ToList();
                    var danhgia_LS = db.Q_HisUserEvaluate.Where(x =>
                                                                x.Q_HisDailyRequire_De.ProcessTime.HasValue &&
                                                                x.Q_HisDailyRequire_De.ProcessTime.Value >= from &&
                                                                x.Q_HisDailyRequire_De.ProcessTime.Value <= to && x.UserId == userId)
                                     .ToList();
                    foreach (var yc in ycDanhGia)
                    {
                        var child = new ModelSelectItem();
                        Parse.CopyObject(yc, ref child);
                        child.Id += danhgia_HN.Where(x => x.Score == yc.Code).Count();
                        child.Id += danhgia_LS.Where(x => x.Score == yc.Code).Count();
                        obj.Details.Add(child);
                    }
                    report.Add(obj);
                }
                else
                {
                    var danhgiaHomnay = db.Q_UserEvaluate.Where(x => x.CreatedDate >= from && x.CreatedDate <= to).ToList();
                    var danhgia_LS    = db.Q_HisUserEvaluate.Where(x => x.Q_HisDailyRequire_De.ProcessTime.HasValue &&
                                                                   x.Q_HisDailyRequire_De.ProcessTime.Value >= from &&
                                                                   x.Q_HisDailyRequire_De.ProcessTime <= to).ToList();

                    report.AddRange(db.Q_User.Select(x => new ReportEvaluateModel()
                    {
                        UserId = x.Id, Name = x.Name
                    }));
                    foreach (var item in report)
                    {
                        //  item.Details.AddRange(ycDanhGia);
                        var objs_HN = danhgiaHomnay.Where(x => x.UserId == item.UserId).ToList();
                        var objs_LS = danhgia_LS.Where(x => x.UserId == item.UserId).ToList();

                        foreach (var yc in ycDanhGia)
                        {
                            var child = new ModelSelectItem();
                            Parse.CopyObject(yc, ref child);
                            child.Id += objs_HN.Where(x => x.Score == yc.Code).Count();
                            child.Id += objs_LS.Where(x => x.Score == yc.Code).Count();
                            item.Details.Add(child);
                        }
                    }
                }
                return(report);
            }
        }