void LoadData()
        {
            var nhanVien = cbbChonNhanVien.SelectedItem as NhanVien;
            if (nhanVien == null) return;

            string maNhanVien = nhanVien.MaNhanVien;
            string tungay = dteTuNgay.Value.ToString("MM/dd/yyyy");
            string denngay = dteDenNgay.Value.ToString("MM/dd/yyyy");

            #region lấy dữ liệu hóa đơn bán hàng
            //Lấy danh sách hàng hóa được bán trong khoảng thời gian này, bởi nhân viên này
            const string sql = "select HDBanHang.MaHDBanHang, HDBanHang.NgayBan, HDBanHang.MaKho, HDBanHang.MaNhanVien, "
                               + "ChiTietHDBanHang.MaHangHoa, ChiTietHDBanHang.TenHangHoa, ChiTietHDBanHang.SoLuong, ChiTietHDBanHang.DonGia, ChiTietHDBanHang.Thue, ChiTietHDBanHang.PhanTramChietKhau "
                               + "from HDBanHang INNER JOIN ChiTietHDBanHang on HDBanHang.MaHDBanHang = ChiTietHDBanHang.MaHDBanHang "
                               + "where HDBanHang.MaNhanVien = '{0}' and HDBanHang.NgayBan between Convert(Datetime,'{1}',101) and Convert(Datetime,'{2}',101)  and HDBanHang.Deleted = 0";
            string input = string.Format(sql, maNhanVien, tungay, denngay);
            object output;
            bool kq = Utils.GetDataFromServer("RunSql", input, out output);
            if (!kq) return;
            List<BcThongKeMatHangBanRaTheoNhanVien> bcThongKeMatHangBanRaTheoNhanViens = Utils.ConvertToList<BcThongKeMatHangBanRaTheoNhanVien>((DataTable)output);
            #endregion

            #region lấy dữ liệu khách hàng trả lại
            //lấy danh sách hàng hóa được trả lại trong khoảng thời gian này
            const string sqlKhtl = "select KhachHangTraLai.MaKhachHangTraLai, KhachHangTraLai.MaHoaDonMuaHang, KhachHangTraLai.NgayNhap, KhachHangTraLai.MaKho, "
                               + "ChiTietKhachHangTraLai.MaHangHoa, ChiTietKhachHangTraLai.TenHangHoa, ChiTietKhachHangTraLai.SoLuong, ChiTietKhachHangTraLai.DonGia, ChiTietKhachHangTraLai.Thue, ChiTietKhachHangTraLai.PhanTramChietKhau "
                               + "from KhachHangTraLai INNER JOIN ChiTietKhachHangTraLai on KhachHangTraLai.MaKhachHangTraLai = ChiTietKhachHangTraLai.MaKhachHangTraLai "
                               + "where KhachHangTraLai.NgayNhap between Convert(Datetime,'{0}',101) and Convert(Datetime,'{1}',101)  and KhachHangTraLai.Deleted = 0";
            string inputKhtl = string.Format(sqlKhtl, tungay, denngay);
            object outputKhtl;
            bool kqKhtl = Utils.GetDataFromServer("RunSql", inputKhtl, out outputKhtl);
            if (!kqKhtl) return;
            List<BcThongKeMatHangBanRaTheoNhanVienKhtl> bcThongKeMatHangBanRaTheoNhanVienKhtls = Utils.ConvertToList<BcThongKeMatHangBanRaTheoNhanVienKhtl>((DataTable)outputKhtl);
            #endregion

            //danh sách hóa đơn cần xét liệu có hàng trả lại hay không?
            List<string> dshoadon = bcThongKeMatHangBanRaTheoNhanViens.Select(k => k.MaHDBanHang).Distinct().ToList();
            //lọc các hàng hóa trả lại sao cho thuộc tập hóa đơn trên
            List<BcThongKeMatHangBanRaTheoNhanVienKhtl> bcThongKeMatHangBanRaTheoNhanVienKhtlsStand =
                bcThongKeMatHangBanRaTheoNhanVienKhtls.Where(k => dshoadon.Contains(k.MaHoaDonMuaHang)).ToList();
            //convert dữ liệu sang List<BcThongKeMatHangBanRaTheoNhanVien> với giá trị âm của số lượng và giá trị
            List<BcThongKeMatHangBanRaTheoNhanVien> bcThongKeMatHangBanRaTheoNhanViensStand =
                bcThongKeMatHangBanRaTheoNhanVienKhtlsStand.Select(k => new BcThongKeMatHangBanRaTheoNhanVien
                                {
                                    MaHDBanHang = k.MaHoaDonMuaHang,
                                    NgayBan = k.NgayNhap,
                                    MaKho = k.MaKho,
                                    MaNhanVien = string.Empty,
                                    TenNhanVien = string.Empty,

                                    MaHangHoa = k.MaHangHoa,
                                    TenHangHoa = k.TenHangHoa,
                                    SoLuong = -k.SoLuong,
                                    DonGia = k.DonGia
                                }).ToList();
            //gộp 2 list
            _bcThongKeMatHangBanRaTheoNhanViens.Clear();
            _bcThongKeMatHangBanRaTheoNhanViens.AddRange(bcThongKeMatHangBanRaTheoNhanViens);
            _bcThongKeMatHangBanRaTheoNhanViens.AddRange(bcThongKeMatHangBanRaTheoNhanViensStand);

            _bcThongKeMatHangBanRaTheoNhanViensGroup = (from k in _bcThongKeMatHangBanRaTheoNhanViens
                                                        group k by k.MaHangHoa into kk
                                                        select new BcThongKeMatHangBanRaTheoNhanVien
                                                                   {
                                                                       MaHangHoa = kk.Key,
                                                                       TenHangHoa = kk.FirstOrDefault().TenHangHoa,
                                                                       SoLuong = kk.Sum(kkk => kkk.SoLuong),
                                                                       DonGia = kk.Sum(kkk => kkk.SoLuong * kkk.DonGia * 0.01 * (100 + kkk.Thue))
                                                                   }).ToList();
            List<BcThongKeMatHangBanRaTheoNhanVien> hienthi = new List<BcThongKeMatHangBanRaTheoNhanVien>();
            if (_bcThongKeMatHangBanRaTheoNhanViensGroup.Count > 0)
            {
                //hiển thị tiền
                foreach (var item in _bcThongKeMatHangBanRaTheoNhanViensGroup)
                {
                    item.SoLuongView = item.SoLuong.ToString();
                    item.DonGiaView = new Common.Utilities().FormatMoney(item.DonGia);
                }
                hienthi.AddRange(_bcThongKeMatHangBanRaTheoNhanViensGroup);
                //thêm dòng tổng
                hienthi.Add(new BcThongKeMatHangBanRaTheoNhanVien
                {
                    TenHangHoa = "Tổng cộng:",
                    SoLuongView = _bcThongKeMatHangBanRaTheoNhanViensGroup.Sum(k => k.SoLuong).ToString(),
                    DonGiaView = new Common.Utilities().FormatMoney(_bcThongKeMatHangBanRaTheoNhanViensGroup.Sum(k => k.DonGia))
                });
            }
            uGrid.DataSource = hienthi;
        }
        private void TxttimkiemTextChanged(object sender, EventArgs e)
        {
            string filter = txttimkiem.Text.ToLower();
            List<BcThongKeMatHangBanRaTheoNhanVien> qr = new List<BcThongKeMatHangBanRaTheoNhanVien>();
            //Tìm kiếm tương đối theo mã và tên
            if (rdoSearchMa.Checked)
            {//tìm kiếm theo mã
                qr = _bcThongKeMatHangBanRaTheoNhanViensGroup.Where(k => k.MaHangHoa.ToLower().Contains(filter)).ToList();
            }
            else if (rdoSearchTen.Checked)
            {//tìm kiếm theo tên
                qr = _bcThongKeMatHangBanRaTheoNhanViensGroup.Where(k => k.TenHangHoa.ToLower().Contains(filter)).ToList();
            }
            else if (rdoSearchTatCa.Checked)
            {//tìm kiếm tất cả
                qr = _bcThongKeMatHangBanRaTheoNhanViensGroup.Where(k => k.MaHangHoa.ToLower().Contains(filter) || k.TenHangHoa.ToLower().Contains(filter)).ToList();
            }

            if (qr.Count > 0)
            {
                //thêm dòng tổng
                qr.Add(new BcThongKeMatHangBanRaTheoNhanVien
                {
                    TenHangHoa = "Tổng cộng:",
                    SoLuongView = qr.Sum(k => k.SoLuong).ToString(),
                    DonGiaView = new Common.Utilities().FormatMoney(qr.Sum(k => k.DonGia))
                });
            }
            uGrid.DataSource = qr;
        }
        protected void RenderSubTotalForOneDay(List<ISystemParlayTicket> dataInDate)
        {
            var subTotalBlock = new SystemParlayDetail_SubTotalContents_Block();
            var subTotalPlayerCommission = _ticketHelper.ShowSystemParlayPlayerComm ? dataInDate.Sum(d => d.PlayerComm) : 0;
            var subTotal = dataInDate.Sum(d => d.WinLost) + subTotalPlayerCommission;

            subTotalBlock.TotalWinloss = Formatter.HighlightNegativeNumber(subTotal);
            _template.Contents.Append(subTotalBlock);
        }