private void dgPhieuThongKe_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (dgPhieuThongKe.SelectedItem != null)
     {
         thongKeSelect = new ThongKe();
         thongKeSelect = CThongKe.find(dgPhieuThongKe.SelectedValue.ToString());
     }
 }
 public frmQuanLyThongKe()
 {
     InitializeComponent();
     labThang.Content = DateTime.Now.Month;
     //showBangXepHang();
     //showBangXepHangSanPham();
     hienThi(CThongKe.toList());
 }
        private void txtTimKiem_KeyUp(object sender, KeyEventArgs e)
        {
            if (txtTimKiem.Text == "")
            {
                hienThi(CThongKe.toList());
                return;
            }

            // nếu combox tìm kiếm là 0 tức là tìm theo tên nhân viên
            if (cmbTimKiem.SelectedIndex == 0)
            {
                try
                {
                    List <ThongKe> thongKes = new List <ThongKe>();
                    int            thang    = int.Parse(txtTimKiem.Text);
                    thongKes = CThongKe.toList(thang);

                    dgPhieuThongKe.ItemsSource = thongKes.Select(x => new
                    {
                        maThongKe     = x.maThongKe,
                        ngayThongKe   = x.ngayLap.Value.ToString("dd/MM/yyyy"),
                        tongThanhTien = x.tongThanhTien
                    });
                }
                catch (ArgumentNullException)
                {
                    MessageBox.Show("Lỗi Thống kê - tìm kiếm - ArgNull");
                }
                catch (FormatException)
                {
                    MessageBox.Show("Lỗi Thống kê - tìm kiếm - Format");
                }
                catch (OverflowException)
                {
                    MessageBox.Show("Lỗi Thống kê - tìm kiếm - Overflow");
                }
            }
            else
            {
                List <ThongKe> thongKes = new List <ThongKe>();
                thongKes = CThongKe.toList(txtTimKiem.Text);
                if (thongKes.Count() > 0)
                {
                    dgPhieuThongKe.ItemsSource = thongKes;
                }
            }
        }
        private void btnTaoThongKe_Click(object sender, RoutedEventArgs e)
        {
            if (chiTietThongKes.Count() > 0)
            {
                double tongThanTien = 0;
                string maThongKe    = CServices.taoMa <ThongKe>(CThongKe.toList());

                foreach (var item in chiTietThongKes)
                {
                    tongThanTien += item.Item6;
                }

                ThongKe thongKe = new ThongKe();
                thongKe.maThongKe     = maThongKe;
                thongKe.ngayLap       = DateTime.Now;
                thongKe.tongThanhTien = tongThanTien;

                if (!CThongKe.add(thongKe))
                {
                    return;
                }

                foreach (var chiTiet in chiTietThongKes)
                {
                    ChiTietThongKe chiTietThongKe = new ChiTietThongKe();
                    chiTietThongKe.maChiTietThongKe = CServices.taoMa <ChiTietThongKe>(CChiTietThongKe.toList());
                    chiTietThongKe.maThongKe        = maThongKe;
                    chiTietThongKe.maNhanVien       = chiTiet.Item1;
                    chiTietThongKe.soLuongHoaDon    = chiTiet.Item4;
                    chiTietThongKe.soLuongBan       = chiTiet.Item5;
                    chiTietThongKe.ngayLap          = DateTime.Now;
                    chiTietThongKe.thanhTien        = chiTiet.Item6;
                    if (!CChiTietThongKe.add(chiTietThongKe))
                    {
                        return;
                    }
                }
                this.Close();
            }
            else
            {
                MessageBox.Show("Danh sách chi tiết thống kê rỗng, không thể tạo thống kê");
            }
        }
        //private void showBangXepHang()
        //{
        //    List<NhanVien> nhanViens = CNhanVien_BUS.toList();
        //    List<CBangXepHang> bangXepHangs = new List<CBangXepHang>();
        //    if (nhanViens.Count() > 0)
        //    {
        //        int stt = 0;
        //        foreach (var nhanVien in nhanViens)
        //        {
        //            int soLuongHoaDon = CHoaDon_BUS.demSoLuongHoaDon(nhanVien.maNhanVien, DateTime.Now.Month);
        //            //int soLuongBan = CHoaDon_BUS.demSoLuongLyBanDuoc(nhanVien.maNhanVien, DateTime.Now.Month);
        //            double tongThanhTien = CHoaDon_BUS.tongTienBan(nhanVien.maNhanVien, DateTime.Now.Month);
        //            stt++;
        //            bangXepHangs.Add(new CBangXepHang(
        //                stt,
        //                nhanVien.hoNhanVien + " " + nhanVien.tenNhanVien,
        //                nhanVien.LoaiNhanVien.tenLoai,
        //                soLuongHoaDon,
        //                //soLuongBan,
        //                tongThanhTien));
        //        }
        //        dgBangXepHang.ItemsSource = bangXepHangs.Select(x => new
        //        {
        //            stt = x.Stt,
        //            hoTen = x.HoTen,
        //            chucVu = x.ChuVu,
        //            soLuongHoaDon = x.SoLuongHoaDon,
        //            soLuongBan = x.SoLuongBan,
        //            tongTien = String.Format("{0:#,###,0 VND;(#,###,0 VND);0 VND}", x.TongTien)
        //        });
        //    }
        //}

        //private void showBangXepHangSanPham()
        //{
        //    List<SanPham> sanPhams = CSanPham_BUS.toList();
        //    List<CBangXepHangSanPham> bangXepHangs = new List<CBangXepHangSanPham>();
        //    if (sanPhams.Count() > 0)
        //    {
        //        int stt = 0;

        //        foreach (var sanPham in sanPhams)
        //        {
        //            //int soLuongHoaDon = CHoaDon_BUS.demSoLuongHoaDon(nhanVien.maNhanVien, DateTime.Now.Month);
        //            int soLuongBan = CHoaDon_BUS.demSoLuongSanPham(sanPham.maSanPham, DateTime.Now.Month);
        //            double tongThanhTien = CHoaDon_BUS.tongTienBanSanPham_(sanPham.maSanPham, soLuongBan);
        //            stt++;
        //            bangXepHangs.Add(new CBangXepHangSanPham(
        //                stt,
        //                sanPham.tenSanPham,
        //                //soLuongHoaDon,
        //                soLuongBan,
        //                tongThanhTien));
        //        }
        //        dgBangXepHangSanPham.ItemsSource = bangXepHangs.Select(x => new
        //        {
        //            stt = x.Stt,
        //            tenSanPham = x.TenSanPham,
        //            soLuongBan = x.SoLuongBan,
        //            tongTien = String.Format("{0:#,###,0 VND;(#,###,0 VND);0 VND}", x.TongTien)
        //        });
        //    }
        //}

        private void btnRefect_Click(object sender, RoutedEventArgs e)
        {
            hienThi(CThongKe.toList());
        }
        private void hienThi()
        {
            if (dateNgayBatDau.SelectedDate > DateTime.Now || dateNgayKetThuc.SelectedDate > DateTime.Now)
            {
                MessageBox.Show("Ngày bắt đầu và ngày kết thúc không được lớn hơn ngày hiện tại");
                return;
            }
            List <HoaDon>   hoaDons   = new List <HoaDon>();
            List <NhanVien> nhanViens = new List <NhanVien>();

            hoaDons   = CHoaDon_BUS.toList(dateNgayBatDau.SelectedDate.Value, dateNgayKetThuc.SelectedDate.Value);
            nhanViens = CNhanVien_BUS.toList();
            if (hoaDons.Count() > 0)
            {
                txtMaThongKe.Text      = CServices.taoMa <ThongKe>(CThongKe.toList());
                txtNgayLapThongKe.Text = DateTime.Now.ToString("dd/MM/yyyy");
                double tongThanhTien = 0;
                hoaDons.ForEach(x => tongThanhTien += x.tongThanhTien);
                txtTongThanhTien.Text = String.Format("{0:#,###,0 VND;(#,###,0 VND);0 VND}", tongThanhTien);

                chiTietThongKes = new List <Tuple <string, string, string, int, int, double> >();
                //bool flag = false;
                foreach (var nhanVien in nhanViens)
                {
                    int    soLuongHoaDon = 0;
                    int    soLuongBan    = 0;
                    double thanhTien     = 0;
                    foreach (var hoaDon in hoaDons)
                    {
                        if (nhanVien.maNhanVien == hoaDon.maNhanVien)
                        {
                            soLuongBan += hoaDon.ChiTietHoaDons.Count();
                            thanhTien  += hoaDon.tongThanhTien;
                            soLuongHoaDon++;
                            //flag = true;
                        }
                    }
                    //if (flag)
                    //{
                    var chiTietThongKe = new Tuple <string, string, string, int, int, double>(
                        nhanVien.maNhanVien,
                        nhanVien.hoNhanVien,
                        nhanVien.tenNhanVien,
                        soLuongHoaDon,
                        soLuongBan,
                        thanhTien);
                    chiTietThongKes.Add(chiTietThongKe);
                    //}
                    //flag = false;
                }

                dgChiTietThongKe.ItemsSource = chiTietThongKes.Select(x => new
                {
                    maNhanVien    = x.Item1,
                    hoNhanVien    = x.Item2,
                    tenNhanVien   = x.Item3,
                    soLuongHoaDon = x.Item4,
                    soLuongBan    = x.Item5,
                    thanhTien     = x.Item6
                });
            }
            else
            {
                MessageBox.Show("Không có hóa đơn nào được bán");
            }
        }