internal static List<ThongKeSanPhamModel> ThongKeMuaVaoBanRa(DateTime start, DateTime end, int maPhong = -1,
            NhanVien nhanVienHienTai = null, bool isNhap = false)
        {
            List<ThongKeSanPhamModel> li = new List<ThongKeSanPhamModel>();
            using (var db = DBContext.GetContext())
            {

                var chiTietHoaDonTrongKhoang = db.ChiTietHoaDon.Include(c => c.HoaDon)
                    .Include(c => c.HoaDon.NhanVien)
                    .Include(c=>c.HoaDon.NhanVien.PhongTap).Include(c=>c.SanPham)
                    .Where(c=>c.HoaDon.NgayLap >= start && c.HoaDon.NgayLap <= end)
                    ;
                if (maPhong != -1)
                {
                    chiTietHoaDonTrongKhoang = chiTietHoaDonTrongKhoang
                        .Where(c => c.HoaDon.NhanVien.PhongTap.MaPhongTap == maPhong);
                }

                var tatCaHang = db.SanPham.ToList();
                var tatCaNhanVien = new List<NhanVien>();
                if (nhanVienHienTai != null && nhanVienHienTai.MaNhanVien != -1)
                {
                    tatCaNhanVien.Add(nhanVienHienTai);
                    chiTietHoaDonTrongKhoang = chiTietHoaDonTrongKhoang
                        .Where(c=>c.HoaDon.NhanVien.MaNhanVien == nhanVienHienTai.MaNhanVien);
                }
                else
                  tatCaNhanVien =  db.NhanVien.ToList();
                if (!isNhap)
                {
                    #region banHang
                    foreach (var sp in tatCaHang)
                    {
                        foreach (var nv in tatCaNhanVien)
                        {
                            ThongKeSanPhamModel tk = new ThongKeSanPhamModel()
                            {
                                SanPham = sp,
                                NhanVien = nv,
                                PhongTap = nv.PhongTap
                            };

                            tk.SoLuong = chiTietHoaDonTrongKhoang.ToList().Where(c => c.SanPham.MaSanPham == sp.MaSanPham
                                && c.HoaDon.NhanVien.MaNhanVien == nv.MaNhanVien).ToList().Sum(c => c.SoLuong);
                            tk.TongTien = chiTietHoaDonTrongKhoang.ToList()
                                .Where(c => c.SanPham.MaSanPham == sp.MaSanPham
                                && c.HoaDon.NhanVien.MaNhanVien == nv.MaNhanVien
                                ).ToList().Sum(c => c.SoLuong * c.Gia);
                            if (tk.SoLuong > 0)
                            {
                                li.Add(tk);
                            }
                        }
                    }
                    #endregion banHang
                }
                else
                {
                    #region nhapHang
                    foreach (var ct in chiTietHoaDonTrongKhoang) {
                        ThongKeSanPhamModel model = new ThongKeSanPhamModel() {
                            NhanVien = ct.HoaDon.NhanVien,
                            PhongTap = ct.HoaDon.NhanVien.PhongTap,
                            SanPham = ct.SanPham,
                            SoLuong = ct.SoLuong,
                            TongTien = ct.ThanhTien,
                            NgayNhap = ct.HoaDon.NgayLap
                        };
                        li.Add(model);
                    }

                    #endregion nhapHang

                }

                return li.OrderBy(l=>l.NhanVien.MaNhanVien).ToList();
            }
        }
        internal static List<ThongKeSanPhamModel> ThongKeBanRa(DateTime start, DateTime end, int maPhong = -1, NhanVien nhanVienHienTai = null)
        {
            List<ThongKeSanPhamModel> li = new List<ThongKeSanPhamModel>();
            using (var db = DBContext.GetContext())
            {
                var hoaDonTrongKhoang = db.HoaDon.Include(h=>h.NhanVien.PhongTap).Where(h=>h.NgayLap >= start && h.NgayLap <=end).SelectMany(h=>h.DanhSachChiTiet);
                if (maPhong != -1) {
                    hoaDonTrongKhoang = hoaDonTrongKhoang.Where(c => c.HoaDon.NhanVien.PhongTap.MaPhongTap == maPhong);
                }
                if (nhanVienHienTai != null) {
                    hoaDonTrongKhoang = hoaDonTrongKhoang.Where(c => c.HoaDon.NhanVien.MaNhanVien == nhanVienHienTai.MaNhanVien);
                }
                var hh = db.SanPham.ToList();
                foreach(var sp in hh){
                    ThongKeSanPhamModel tk = new ThongKeSanPhamModel() {
                    SanPham = sp
                    };

                    tk.SoLuong = hoaDonTrongKhoang.ToList().Where(c=>c.SanPham.MaSanPham == sp.MaSanPham).Sum(c => c.SoLuong);
                    tk.TongTien = hoaDonTrongKhoang.ToList().Where(c => c.SanPham.MaSanPham == sp.MaSanPham).Sum(c => c.SoLuong * c.Gia);
                    if (tk.SoLuong > 0)
                    {
                        li.Add(tk);
                    }
                }
                return li;
            }
        }