예제 #1
0
 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();
 }
예제 #2
0
        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();
                }
            }
        }