private void btnRefresh_Click(object sender, RoutedEventArgs e) { Bieu_do_tron_thu.Refresh(); Bieu_do_duong_doanh_thu.Refresh(); Bieu_do_duong_doanh_xuat.Refresh(); }
private void btnThongKe_Click(object sender, RoutedEventArgs e) { if (ThongKeTheoThoiDiem == true) {// Thời điểm // refresh lstDoanhThu.Clear(); lstDoanhXuat.Clear(); if (cmbType.SelectedIndex == 0) // Thống kê theo ngày { // --------------------------------------------- Bieu_do_thu.Title = $"Biểu đồ thống kế doanh thu sản phẩm trong ngày {dayStatistic.Text}"; // Chỉ cập nhật những sản phẩm có bán được trong ngày hôm đó thôi, để tránh gây rối // Bán hàng trực tiếp // Lưu tên các sản phẩm var lstTemp = Data_handle.Data_interface.database.HOADONs.Where(x => x.NgayLapHD == ngayTK) .GroupBy(x => x.MaSP).ToList(); if (lstTemp.Count() > 0) { foreach (var c in lstTemp) { string _TenSP = Data_handle.Data_interface.database.SANPHAMs.Where(x => x.MaSP == c.Key).Select(x => x.TenSP).SingleOrDefault(); lstDoanhThu.Add(new DoanhThuSanPham() { tenSP = _TenSP, maSP = c.Key, doanhThu = 0 }); } // Cập nhật số lượng bán được trong một ngày ở cả "BanHang" foreach (var t in lstDoanhThu) { double tienThu = 0; tienThu = Data_handle.Data_interface.database.HOADONs.Where(x => x.MaSP == t.maSP && x.NgayLapHD == ngayTK) .Sum(x => x.TienThu).Value; t.doanhThu = tienThu; } } // --------------------------------------------- var lstTemp_1 = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.NgayNhap == ngayTK) .GroupBy(x => x.MaSP).ToList(); if (lstTemp_1.Count() > 0) { foreach (var c in lstTemp_1) { var _SP = Data_handle.Data_interface.database.SANPHAMs.Where(x => x.MaSP == c.Key).SingleOrDefault(); lstDoanhXuat.Add(new DoanhThuSanPham() { tenSP = _SP.TenSP, maSP = c.Key, maLoai = _SP.MaLoai, soLuong = 0, doanhThu = 0 }); } // Cập nhật hàng hoa nhập foreach (var t in lstDoanhXuat) { double tienTra = 0; int soluong = 0; tienTra = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.MaSP == t.maSP && x.NgayNhap == ngayTK) .Sum(x => x.TienTra).Value; soluong = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.MaSP == t.maSP && x.NgayNhap == ngayTK) .Sum(x => x.SoLuong).Value; t.soLuong = soluong; t.doanhThu = tienTra; } } } else if (cmbType.SelectedIndex == 1) // Thống kê theo tháng { // --------------------------------------------- Bieu_do_thu.Title = $"Biểu đồ thống kế doanh thu sản phẩm trong tháng {cmbTypeValue.SelectedIndex + 1}"; // Chỉ cập nhật những sản phẩm có bán được trong ngày hôm đó thôi, để tránh gây rối // Bán hàng trực tiếp // Lưu tên các sản phẩm var lstTemp = Data_handle.Data_interface.database.HOADONs.Where(x => x.NgayLapHD.Value.Month == cmbTypeValue.SelectedIndex + 1) .GroupBy(x => x.MaSP).ToList(); if (lstTemp.Count() > 0) { foreach (var c in lstTemp) { string _TenSP = Data_handle.Data_interface.database.SANPHAMs.Where(x => x.MaSP == c.Key).Select(x => x.TenSP).SingleOrDefault(); lstDoanhThu.Add(new DoanhThuSanPham() { tenSP = _TenSP, maSP = c.Key, doanhThu = 0 }); } // Cập nhật số lượng bán được trong một ngày ở cả "BanHang" foreach (var t in lstDoanhThu) { double tienThu = 0; tienThu = Data_handle.Data_interface.database.HOADONs.Where(x => x.MaSP == t.maSP && x.NgayLapHD.Value.Month == cmbTypeValue.SelectedIndex + 1) .Sum(x => x.TienThu).Value; t.doanhThu = tienThu; } } // --------------------------------------------- var lstTemp_1 = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.NgayNhap.Value.Month == cmbTypeValue.SelectedIndex + 1) .GroupBy(x => x.MaSP).ToList(); if (lstTemp_1.Count() > 0) { foreach (var c in lstTemp_1) { var _SP = Data_handle.Data_interface.database.SANPHAMs.Where(x => x.MaSP == c.Key).SingleOrDefault(); lstDoanhXuat.Add(new DoanhThuSanPham() { tenSP = _SP.TenSP, maSP = c.Key, maLoai = _SP.MaLoai, soLuong = 0, doanhThu = 0 }); } // Cập nhật hàng hoa nhập foreach (var t in lstDoanhXuat) { double tienTra = 0; int soluong = 0; tienTra = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.MaSP == t.maSP && x.NgayNhap.Value.Month == cmbTypeValue.SelectedIndex + 1) .Sum(x => x.TienTra).Value; soluong = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.MaSP == t.maSP && x.NgayNhap.Value.Month == cmbTypeValue.SelectedIndex + 1) .Sum(x => x.SoLuong).Value; t.soLuong = soluong; t.doanhThu = tienTra; } } } else if (cmbType.SelectedIndex == 2) // Thống kê theo năm { // --------------------------------------------- Bieu_do_thu.Title = $"Biểu đồ thống kế doanh thu sản phẩm trong năm {cmbTypeValue.SelectedIndex + 2000}"; // Chỉ cập nhật những sản phẩm có bán được trong ngày hôm đó thôi, để tránh gây rối // Bán hàng trực tiếp // Lưu tên các sản phẩm var lstTemp = Data_handle.Data_interface.database.HOADONs.Where(x => x.NgayLapHD.Value.Year == cmbTypeValue.SelectedIndex + 2000) .GroupBy(x => x.MaSP).ToList(); if (lstTemp.Count() > 0) { foreach (var c in lstTemp) { string _TenSP = Data_handle.Data_interface.database.SANPHAMs.Where(x => x.MaSP == c.Key).Select(x => x.TenSP).SingleOrDefault(); lstDoanhThu.Add(new DoanhThuSanPham() { tenSP = _TenSP, maSP = c.Key, doanhThu = 0 }); } // Cập nhật số lượng bán được trong một ngày ở cả "BanHang" foreach (var t in lstDoanhThu) { double tienThu = 0; tienThu = Data_handle.Data_interface.database.HOADONs.Where(x => x.MaSP == t.maSP && x.NgayLapHD.Value.Year == cmbTypeValue.SelectedIndex + 2000) .Sum(x => x.TienThu).Value; t.doanhThu = tienThu; } } // --------------------------------------------- var lstTemp_1 = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.NgayNhap.Value.Year == cmbTypeValue.SelectedIndex + 2000) .GroupBy(x => x.MaSP).ToList(); if (lstTemp_1.Count() > 0) { foreach (var c in lstTemp_1) { var _SP = Data_handle.Data_interface.database.SANPHAMs.Where(x => x.MaSP == c.Key).SingleOrDefault(); lstDoanhXuat.Add(new DoanhThuSanPham() { tenSP = _SP.TenSP, maSP = c.Key, maLoai = _SP.MaLoai, soLuong = 0, doanhThu = 0 }); } // Cập nhật hàng hoa nhập foreach (var t in lstDoanhXuat) { double tienTra = 0; int soluong = 0; tienTra = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.MaSP == t.maSP && x.NgayNhap.Value.Year == cmbTypeValue.SelectedIndex + 2000) .Sum(x => x.TienTra).Value; soluong = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.MaSP == t.maSP && x.NgayNhap.Value.Year == cmbTypeValue.SelectedIndex + 2000) .Sum(x => x.SoLuong).Value; t.soLuong = soluong; t.doanhThu = tienTra; } } } else // Thống kê theo quý { // --------------------------------------------- Bieu_do_thu.Title = $"Biểu đồ thống kế doanh thu sản phẩm trong quý {cmbTypeValue.SelectedIndex + 1}"; // Chỉ cập nhật những sản phẩm có bán được trong ngày hôm đó thôi, để tránh gây rối // Bán hàng trực tiếp // Lưu tên các sản phẩm var lstTemp = Data_handle.Data_interface.database.HOADONs.Where(x => (x.NgayLapHD.Value.Month - 1) / 4 == cmbTypeValue.SelectedIndex) .GroupBy(x => x.MaSP).ToList(); if (lstTemp.Count() > 0) { foreach (var c in lstTemp) { string _TenSP = Data_handle.Data_interface.database.SANPHAMs.Where(x => x.MaSP == c.Key).Select(x => x.TenSP).SingleOrDefault(); lstDoanhThu.Add(new DoanhThuSanPham() { tenSP = _TenSP, maSP = c.Key, doanhThu = 0 }); } // Cập nhật số lượng bán được trong một ngày ở cả "BanHang" foreach (var t in lstDoanhThu) { double tienThu = 0; tienThu = Data_handle.Data_interface.database.HOADONs.Where(x => x.MaSP == t.maSP && (x.NgayLapHD.Value.Month - 1) / 4 == cmbTypeValue.SelectedIndex) .Sum(x => x.TienThu).Value; t.doanhThu = tienThu; } } // --------------------------------------------- var lstTemp_1 = Data_handle.Data_interface.database.NHAPHANGs.Where(x => (x.NgayNhap.Value.Month - 1) / 4 == cmbTypeValue.SelectedIndex) .GroupBy(x => x.MaSP).ToList(); if (lstTemp_1.Count() > 0) { foreach (var c in lstTemp_1) { var _SP = Data_handle.Data_interface.database.SANPHAMs.Where(x => x.MaSP == c.Key).SingleOrDefault(); lstDoanhXuat.Add(new DoanhThuSanPham() { tenSP = _SP.TenSP, maSP = c.Key, maLoai = _SP.MaLoai, soLuong = 0, doanhThu = 0 }); } // Cập nhật hàng hoa nhập foreach (var t in lstDoanhXuat) { double tienTra = 0; int soluong = 0; tienTra = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.MaSP == t.maSP && (x.NgayNhap.Value.Month - 1) / 4 == cmbTypeValue.SelectedIndex) .Sum(x => x.TienTra).Value; soluong = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.MaSP == t.maSP && (x.NgayNhap.Value.Month - 1) / 4 == cmbTypeValue.SelectedIndex) .Sum(x => x.SoLuong).Value; t.soLuong = soluong; t.doanhThu = tienTra; } } } // Vẽ biểu đồ Bieu_do_tron_thu.ItemsSource = lstDoanhThu; Bieu_do_tron_thu.Refresh(); // Datagrid dataGridImport.ItemsSource = lstDoanhXuat; dataGridImport.Items.Refresh(); // Tổng thu Double tongThu = 0; foreach (var t in lstDoanhThu) { tongThu += t.doanhThu; } txtBlckTongThu.Text = tongThu.ToString(); // Tổng xuất Double tongXuat = 0; foreach (var t in lstDoanhXuat) { tongXuat += t.doanhThu; } txtBlckTongXuat.Text = tongXuat.ToString(); } else {// Khoảng thời gian // Kiểm tra khoảng thời gian nhập if (ngayBDTK > ngayKTTK) { MessageBox.Show("Khoảng thời gian nhập vào không hợp Lý", "Thông báo"); return; } else { double tienThu = 0, tienXuat = 0; for (var day = ngayBDTK; day <= ngayKTTK; day = day.AddDays(1)) { // Thu if (Data_handle.Data_interface.database.HOADONs.Where(x => x.NgayLapHD == day).ToList().Count() == 0) { tienThu = 0; } else { tienThu = Data_handle.Data_interface.database.HOADONs.Where(x => x.NgayLapHD == day) .Sum(x => x.TienThu).Value; } lstThuNgay.Add(new KeyValuePair <DateTime, Double>(day, tienThu)); // Xuất if (Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.NgayNhap == day).ToList().Count() == 0) { tienXuat = 0; } else { tienXuat = Data_handle.Data_interface.database.NHAPHANGs.Where(x => x.NgayNhap == day) .Sum(x => x.TienTra).Value; } lstXuatNgay.Add(new KeyValuePair <DateTime, Double>(day, tienXuat)); } Bieu_do_duong_doanh_thu.ItemsSource = lstThuNgay.ToArray(); Bieu_do_duong_doanh_thu.Refresh(); Bieu_do_duong_doanh_xuat.ItemsSource = lstXuatNgay.ToArray(); Bieu_do_duong_doanh_xuat.Refresh(); } } }