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