private void dgHoaDonTrongNgay_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                if (dgHoaDonTrongNgay.SelectedItem != null)
                {
                    hoaDonSelect = new HoaDon();
                    string maHoaDon = dgHoaDonTrongNgay.SelectedValue.ToString();
                    hoaDonSelect = CHoaDon_BUS.find(maHoaDon);
                    if (hoaDonSelect != null)
                    {
                        HoaDon hoaDon = CHoaDon_BUS.find(hoaDonSelect.maHoaDon);

                        // Lỗi NullReferenceException vẫn chưa bắt được
                        dgChiTietHoaDonTrongNgay.ItemsSource = hoaDon.ChiTietHoaDons.Select(x => new
                        {
                            maHoaDon   = x.maHoaDon,
                            tenSanPham = x.SanPham.tenSanPham,
                            soLuong    = x.soLuong,
                            donGia     = String.Format("{0:#,###,0 VND;(#,###,0 VND);0 VND}", x.SanPham.donGia),
                            thanhTien  = String.Format("{0:#,###,0 VND;(#,###,0 VND);0 VND}", x.thanhTien)
                        });
                    }
                }
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Chưa load được dữ liệu");
            }
        }
예제 #2
0
 private void dgQlhoadon_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (dgQlhoadon.SelectedItem != null)
     {
         hoaDonSelected = CHoaDon_BUS.find(dgQlhoadon.SelectedValue.ToString());
     }
 }
예제 #3
0
        private void showBangXepHang(int month)
        {
            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, month);
                    double tongThanhTien = CHoaDon_BUS.tongTienBan(nhanVien.maNhanVien, month);
                    stt++;
                    bangXepHangs.Add(new CBangXepHang(
                                         nhanVien.maNhanVien,
                                         nhanVien.hoNhanVien + " " + nhanVien.tenNhanVien,
                                         soLuongHoaDon,
                                         tongThanhTien));
                }

                dgBangThongKeNhanVien.ItemsSource = bangXepHangs.Select(x => new
                {
                    maNhanVien    = x.MaNhanVien,
                    tenNhanVien   = x.HoTen,
                    soLuongHoaDon = x.SoLuongHoaDon,
                    tongTienBan   = String.Format("{0:#,###,0 VND;(#,###,0 VND);0 VND}", x.TongTien)
                });
            }
        }
예제 #4
0
 private void dateTimKiem_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
 {
     if (dateTimKiem.SelectedDate == null)
     {
         hienthiHoaDon(CHoaDon_BUS.toList());
     }
     else
     {
         hienthiHoaDon(CHoaDon_BUS.toListNgayLap(dateTimKiem.SelectedDate.Value));
     }
 }
예제 #5
0
        public XemHoaDonTrongNgay()
        {
            InitializeComponent();
            CCa_DTO caLam = CCa_BUS.CaLamViec;

            if (caLam != null)
            {
                hoaDons = CHoaDon_BUS.toList(caLam); // chi lấy danh sách hóa đơn trong ca thực hiện
            }

            if (hoaDons == null || hoaDons.Count == 0)
            {
                hoaDons = new List <HoaDon>();
            }

            hienThi();
        }
예제 #6
0
        private void txtTK_KeyUp(object sender, KeyEventArgs e)
        {
            if (txtTK.Text == "")
            {
                hienthiHoaDon(CHoaDon_BUS.toList());
                return;
            }

            switch (chosse)
            {
            case 0:
                hienthiHoaDon(CHoaDon_BUS.toListMaNhanVien(txtTK.Text));
                break;

            case 2:
                hienthiHoaDon(CHoaDon_BUS.toListMaHoaDon(txtTK.Text));
                break;

            case 3:
                try
                {
                    double tongThanhTien = double.Parse(txtTK.Text);
                    hienthiHoaDon(CHoaDon_BUS.toListTongThanhTien(tongThanhTien));
                }
                catch (ArgumentNullException)
                {
                    MessageBox.Show("Số tiền nhập tìm kiếm rỗng");
                }
                catch (FormatException)
                {
                    MessageBox.Show("Số tiền nhập tìm kiếm phải là số");
                }
                catch (OverflowException)
                {
                    MessageBox.Show("Số tiền nhập tìm kiếm có dộ dài vượt mức");
                }
                break;

            default:
                break;
            }
        }
예제 #7
0
        private List <CBangXepHangSanPham> getDSSanPham(int month)
        {
            List <CBangXepHangSanPham> dsSanPham = new List <CBangXepHangSanPham>();
            List <SanPham>             sanPhams  = CSanPham_BUS.toList();

            if (sanPhams.Count() > 0)
            {
                foreach (var sanPham in sanPhams)
                {
                    int soLuongBan = CHoaDon_BUS.demSoLuongSanPham(sanPham.maSanPham, month);

                    dsSanPham.Add(new CBangXepHangSanPham(
                                      sanPham.maSanPham,
                                      sanPham.tenSanPham.ToString(),
                                      soLuongBan,
                                      sanPham.donGia.Value));
                }
            }
            return(dsSanPham);
        }
예제 #8
0
 private void dangXuat_Click(object sender, RoutedEventArgs e)
 {
     if (CCa_BUS.CaLamViec == null)
     // chưa tạo ca thì có thể đăng xuất
     {
         CCa_BUS.isDaKetCa = false;
         CCa_BUS.CaLamViec = null;
         new frmDangNhap().Show();
         this.Close();
     }
     else
     {
         hoaDons = CHoaDon_BUS.DsHoaDon(CCa_BUS.CaLamViec.GioBatDau, DateTime.Now);
         if (hoaDons.Count > 0)
         {
             if (CCa_BUS.isDaKetCa)
             // đã kết ca rồi thì mới có thể đăng xuất
             {
                 CCa_BUS.isDaKetCa = false;
                 CCa_BUS.CaLamViec = null;
                 frmDangNhap f = new frmDangNhap();
                 f.Show();
                 this.Close();
             }
             else
             {
                 MessageBox.Show("Phải kết ca mới có thể đăng xuất");
                 return;
             }
         }
         else
         {
             CCa_BUS.isDaKetCa = false;
             CCa_BUS.CaLamViec = null;
             new frmDangNhap().Show();
             this.Close();
         }
     }
 }
예제 #9
0
        public frmKetCa(NhanVien nv = null)
        {
            InitializeComponent();

            nhanVien = nv;
            if (nhanVien == null)
            {
                nhanVien = new NhanVien();
            }

            ketCa = new KetCa();
            DateTime gioKetThuc = DateTime.Now;

            ketCa.maKetCa                = CServices.taoMa <KetCa>(CCa_BUS.toList());
            ketCa.maNhanVien             = nhanVien.maNhanVien;
            ketCa.gioBatDau              = CCa_BUS.CaLamViec.GioBatDau;
            ketCa.gioKetThuc             = gioKetThuc;
            ketCa.ngayLap                = gioKetThuc;
            CCa_BUS.CaLamViec.GioKetThuc = DateTime.Now;

            List <HoaDon> hoaDons = new List <HoaDon>();

            hoaDons = CHoaDon_BUS.toList(CCa_BUS.CaLamViec);
            foreach (HoaDon hoaDon in hoaDons)
            {
                hoaDon.maKetCa = ketCa.maKetCa;
            }

            ketCa.soLuong = hoaDons.Count();
            double tongTienBan = CHoaDon_BUS.tongTienBan(hoaDons);

            ketCa.tongTienBan  = tongTienBan;
            ketCa.tienDauCa    = 0;
            ketCa.tongDoanhThu = tongTienBan;
            ketCa.HoaDons      = hoaDons;

            hienThiThongTin(ketCa);
        }
예제 #10
0
        private void btnTinhtien_Click(object sender, RoutedEventArgs e)
        {
            if (chiTietHoaDons.Count() == 0)
            {
                MessageBox.Show("Hóa Đơn chưa có chi tiết hóa đơn");
                return;
            }

            string maHoaDon = CServices.taoMa <HoaDon>(CHoaDon_BUS.toList());

            if (CHoaDon_BUS.find(maHoaDon) == null)
            {
                try
                {
                    HoaDon hoaDon = new HoaDon();
                    hoaDon.maHoaDon      = maHoaDon;
                    hoaDon.maNhanVien    = nhanVienSelect.maNhanVien;
                    hoaDon.ngayLap       = DateTime.Now;
                    hoaDon.tongThanhTien = tongThanhTien;

                    if (txtTienKhachDua.Text == "" || txtTienKhachDua.Text == null)
                    {
                        MessageBox.Show("Vui lòng nhập tiền khách đưa");
                        return;
                    }
                    else
                    {
                        hoaDon.tienKhachDua = double.Parse(txtTienKhachDua.Text);
                    }

                    if (txtTienThoiLai.Text == "" || txtTienThoiLai.Text == null)
                    {
                        MessageBox.Show("Vui lòng nhập tiền khách đưa để tính tiền thối lại");
                        return;
                    }
                    else
                    {
                        double tienThua = hoaDon.tienKhachDua.Value - hoaDon.tongThanhTien;
                        if (tienThua < 0)
                        {
                            MessageBox.Show("Tiền khách đưa không thể nhỏ hơn tổng thành tiền");
                            return;
                        }
                        else if (tienThua >= 500000)
                        {
                            txtTienThoiLai.Text = "";
                            MessageBox.Show("Xem lại tiền khách đưa");
                            return;
                        }

                        else
                        {
                            hoaDon.tienThua = tienThua;
                        }
                    }

                    hoaDon.trangThai = 0;

                    foreach (var item in chiTietHoaDons)
                    {
                        ChiTietHoaDon a = new ChiTietHoaDon();
                        a.maHoaDon  = hoaDon.maHoaDon;
                        a.maSanPham = item.maSanPham;
                        a.soLuong   = item.soLuong;
                        a.thanhTien = CChiTietHoaDon_BUS.tinhThanhTien(item);
                        hoaDon.ChiTietHoaDons.Add(a);
                    }

                    if (CHoaDon_BUS.add(hoaDon))
                    {
                        MessageBox.Show("Xuất hóa đơn thành công");
                    }
                    else
                    {
                        return;
                    }

                    chiTietHoaDons.Clear();
                    hienThiDSChiTietHD(chiTietHoaDons);

                    tongThanhTien        = 0;
                    txtTongTien.Text     = "";
                    txtTienKhachDua.Text = "";
                    txtTienThoiLai.Text  = "";
                }
                catch (ArgumentNullException)
                {
                    MessageBox.Show("Không được để rỗng đơn giá, tiền khách đưa, tiền thừa");
                }
                catch (FormatException)
                {
                    MessageBox.Show("Đơn giá, tiền khách đưa, tiền thừa, phải là số");
                }
                catch (OverflowException)
                {
                    MessageBox.Show("Đơn giá, tiền khách đưa, tiền thừa, vượt quá giới hạn lưu trữ");
                }
            }
            else
            {
                MessageBox.Show("Mã hóa đơn đã tồn tại");
            }
        }
예제 #11
0
 public frmQuanLyHoaDon()
 {
     InitializeComponent();
     hienthiHoaDon(CHoaDon_BUS.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");
            }
        }
예제 #13
0
        private void cmbLocSanPham_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (cmbLocSanPham.SelectedItem != null)
            {
                string tenSanPham = cmbLocSanPham.SelectedItem.ToString();
                if (tenSanPham != null && tenSanPham != "")
                {
                    // Hiển thị bảng thống kê sản phẩm
                    SanPham sanPham = CSanPham_BUS.findSPbyTen(tenSanPham);
                    if (sanPham.tenSanPham != null)
                    {
                        List <CBangXepHangSanPham> list = new List <CBangXepHangSanPham>();
                        int soLuongBan = CHoaDon_BUS.demSoLuongSanPham(sanPham.maSanPham, monthSelect);
                        list.Add(new CBangXepHangSanPham(
                                     sanPham.maSanPham,
                                     sanPham.tenSanPham.ToString(),
                                     soLuongBan,
                                     sanPham.donGia.Value));

                        showListSanPham(list);
                    }

                    // Hiển thị bảng thống kê phiếu nhập nguyên liệu
                    List <CBangXepHangNguyenLieuNhap> dsNguyenLieuNhap     = new List <CBangXepHangNguyenLieuNhap>();
                    List <PhieuNhapNguyenLieu>        phieuNhapNguyenLieus = new List <PhieuNhapNguyenLieu>();

                    phieuNhapNguyenLieus = CPhieuNhapNguyenLieu_BUS.toListInMonth(monthSelect);
                    if (phieuNhapNguyenLieus.Count() > 0)
                    {
                        foreach (ThanhPhan thanhPhan in sanPham.ThanhPhans.Where(x => x.trangThai == 0).ToList())
                        {
                            foreach (PhieuNhapNguyenLieu phieuNhap in phieuNhapNguyenLieus)
                            {
                                foreach (ChiTietPhieuNhap chiTiet in phieuNhap.ChiTietPhieuNhaps.ToList())
                                {
                                    if (chiTiet.ChiTietNguyenLieu.maNguyenLieu == thanhPhan.maNguyenLieu)
                                    {
                                        int    soLuong = chiTiet.soLuong.Value;
                                        double donGia  = chiTiet.donGia.Value;
                                        dsNguyenLieuNhap.Add(new CBangXepHangNguyenLieuNhap(
                                                                 thanhPhan.maNguyenLieu,
                                                                 thanhPhan.NguyenLieu.tenNguyenLieu,
                                                                 soLuong,
                                                                 donGia));
                                    }
                                }
                            }
                        }
                        showListNguyenLieuNhap(dsNguyenLieuNhap);
                    }

                    // Hiển thị bảng thống kê phiếu xuất nguyên liệu
                    List <CBangXepHangNguyenLieuNhap> dsNguyenLieuXuat     = new List <CBangXepHangNguyenLieuNhap>();
                    List <PhieuXuatNguyenLieu>        phieuXuatNguyenLieus = new List <PhieuXuatNguyenLieu>();

                    phieuXuatNguyenLieus = CPhieuXuatNguyenLieu_BUS.toListInMonth(monthSelect);
                    if (phieuXuatNguyenLieus.Count() > 0)
                    {
                        foreach (ThanhPhan thanhPhan in sanPham.ThanhPhans.Where(x => x.trangThai == 0).ToList())
                        {
                            foreach (PhieuXuatNguyenLieu phieuXuat in phieuXuatNguyenLieus)
                            {
                                foreach (ChiTietPhieuXuat chiTiet in phieuXuat.ChiTietPhieuXuats.ToList())
                                {
                                    if (chiTiet.ChiTietNguyenLieu.maNguyenLieu == thanhPhan.maNguyenLieu)
                                    {
                                        int    soLuong = chiTiet.soLuong.Value;
                                        double donGia  = chiTiet.donGia.Value;

                                        dsNguyenLieuXuat.Add(new CBangXepHangNguyenLieuNhap(
                                                                 thanhPhan.maNguyenLieu,
                                                                 thanhPhan.NguyenLieu.tenNguyenLieu,
                                                                 soLuong,
                                                                 donGia));
                                    }
                                }
                            }
                        }
                        showListNguyenLieuXuat(dsNguyenLieuXuat);
                    }
                }
                else
                {
                    MessageBox.Show("Không lấy được nguyên liệu đã chọn");
                    return;
                }
            }
        }