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; } }