private void cbomnv_TextChanged(object sender, EventArgs e)
        {
            string str;

            if (cbomnv.Text == "")
            {
                txttnv.Text = "";
            }
            // Khi kich chon Ma nhan vien thi ten nhan vien se tu dong hien ra
            str         = "Select TenNV from NhanVien where MaNV =N'" + cbomnv.SelectedValue + "'";
            txttnv.Text = DAO.GetFieldValues(str);
        }
        private void DelUpdateTongtien(string Mahoadon, double Thanhtien)
        {
            Double Tong, Tongmoi;
            string sql;

            sql     = "SELECT TongTien FROM HoaDonBan WHERE SoHDB = N'" + Mahoadon + "'";
            Tong    = Convert.ToDouble(DAO.GetFieldValues(sql));
            Tongmoi = Tong - Thanhtien;
            sql     = "UPDATE HoaDonBan SET TongTien =" + Tongmoi + " WHERE SoHDB = N'" + Mahoadon + "'";
            DAO.RunSql(sql);
            txttongtien.Text = Tongmoi.ToString();
            txtchu.Text      = DAO.ChuyenSoSangChu(Tongmoi.ToString());
        }
        private void Load_ThongtinHD()
        {
            string str;

            str              = "SELECT NgayBan FROM HoaDonBan WHERE SoHDB = N'" + txtMHB.Text + "'";
            txtnb.Text       = DAO.ConvertDateTime(DAO.GetFieldValues(str));
            str              = "SELECT MaNV FROM HoaDonBan WHERE SoHDB = N'" + txtMHB.Text + "'";
            cbomnv.Text      = DAO.GetFieldValues(str);
            str              = "SELECT MaKhach FROM HoaDonBan WHERE SoHDB = N'" + txtMHB.Text + "'";
            cbomkh.Text      = DAO.GetFieldValues(str);
            str              = "SELECT TongTien FROM HoaDonBan WHERE SoHDB = N'" + txtMHB.Text + "'";
            txttongtien.Text = DAO.GetFieldValues(str);
            txtchu.Text      = "Bằng chữ: " + DAO.ChuyenSoSangChu(txttongtien.Text);
        }
        private void Load_ThongtinHD()
        {
            string str;

            str              = "SELECT NgayNhap FROM HoaDonNhap WHERE SoHDN = N'" + txtmhdn.Text + "'";
            txtnn.Text       = DAO.ConvertDateTime(DAO.GetFieldValues(str));
            str              = "SELECT MaNV FROM HoaDonNhap WHERE SoHDN = N'" + txtmhdn.Text + "'";
            cbomnv.Text      = DAO.GetFieldValues(str);
            str              = "SELECT MaNhaCC FROM HoaDonNhap WHERE SoHDN = N'" + txtmhdn.Text + "'";
            cbomncc.Text     = DAO.GetFieldValues(str);
            str              = "SELECT TongTien FROM HoaDonNhap WHERE SoHDN = N'" + txtmhdn.Text + "'";
            txttongtien.Text = DAO.GetFieldValues(str);
            txtbc.Text       = DAO.ChuyenSoSangChu(txttongtien.Text);
        }
        private void cboms_TextChanged(object sender, EventArgs e)
        {
            string str;

            if (cboms.Text == "")
            {
                txtts.Text = "";
                txtdg.Text = "";
            }
            // Khi kich chon Ma hang thi ten hang va gia ban se tu dong hien ra
            str        = "SELECT TenSach FROM KhoSach WHERE MaSach =N'" + cboms.SelectedValue + "'";
            txtts.Text = DAO.GetFieldValues(str);
            str        = "SELECT DonGiaBan FROM KhoSach WHERE MaSach =N'" + cboms.SelectedValue + "'";
            txtdg.Text = DAO.GetFieldValues(str);
        }
        private void DelHang(string Mahoadon, string MaSach)
        {
            Double s, sl;
            double SLCon;
            string sql;

            sql = "SELECT SoLuong FROM ChiTietHDB WHERE SoHDB = N'" + Mahoadon + "' AND MaSach = N'" + MaSach + "'";
            s   = Convert.ToDouble(DAO.GetFieldValues(sql));
            sql = "DELETE ChiTietHDB WHERE SoHDB=N'" + Mahoadon + "' AND MaSach = N'" + MaSach + "'";
            DAO.RunSqlDel(sql);
            // Cập nhật lại số lượng cho các mặt hàng
            sql   = "SELECT Soluong FROM KhoSach WHERE MaSach = N'" + MaSach + "'";
            sl    = Convert.ToDouble(DAO.GetFieldValues(sql));
            SLCon = sl + s;
            sql   = "UPDATE KhoSach SET SoLuong =" + SLCon + " WHERE MaSach= N'" + MaSach + "'";
            DAO.RunSql(sql);
        }
        private void cbomkh_TextChanged(object sender, EventArgs e)
        {
            string str;

            if (cbomkh.Text == "")
            {
                txttkh.Text = "";
                txtdc.Text  = "";
                txtdt.Text  = "";
            }
            //Khi kich chon Ma khach thi ten khach, dia chi, dien thoai se tu dong hien ra
            str         = "Select TenKhach from KhachHang where MaKhach = N'" + cbomkh.SelectedValue + "'";
            txttkh.Text = DAO.GetFieldValues(str);
            str         = "Select DiaChi from KhachHang where MaKhach = N'" + cbomkh.SelectedValue + "'";
            txtdc.Text  = DAO.GetFieldValues(str);
            str         = "Select DienThoai from KhachHang where MaKhach= N'" + cbomkh.SelectedValue + "'";
            txtdt.Text  = DAO.GetFieldValues(str);
        }
        private void cbomncc_TextChanged(object sender, EventArgs e)
        {
            string str;

            if (cbomncc.Text == "")
            {
                txttncc.Text = "";
                txtdc.Text   = "";
                txtdt.Text   = "";
            }
            //Khi kich chon Ma khach thi ten NCC, dia chi, dien thoai se tu dong hien ra
            str          = "Select TenNhaCC from NhaCungCap where MaNhaCC = N'" + cbomncc.SelectedValue + "'";
            txttncc.Text = DAO.GetFieldValues(str);
            str          = "Select DiaChi from NhaCungCap where MaNhaCC = N'" + cbomncc.SelectedValue + "'";
            txtdc.Text   = DAO.GetFieldValues(str);
            str          = "Select DienThoai from NhaCungCap where MaNhaCC= N'" + cbomncc.SelectedValue + "'";
            txtdt.Text   = DAO.GetFieldValues(str);
        }
        private void btnLuu_Click(object sender, EventArgs e)
        {
            string sql;
            double sl, SLcon, tong, Tongmoi;

            sql = "SELECT SoHDB FROM HoaDonBan WHERE SoHDB=N'" + txtMHB.Text + "'";
            if (!DAO.checkKeyExit(sql))
            {
                // Mã hóa đơn chưa có, tiến hành lưu các thông tin chung
                // Mã HDBan được sinh tự động do đó không có trường hợp trùng khóa
                if (txtnb.Text.Length == 0)
                {
                    MessageBox.Show("Bạn phải nhập ngày bán", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txtnb.Focus();
                    return;
                }
                if (cbomnv.Text.Length == 0)
                {
                    MessageBox.Show("Bạn phải nhập nhân viên", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    cbomnv.Focus();
                    return;
                }
                if (cbomkh.Text.Length == 0)
                {
                    MessageBox.Show("Bạn phải nhập khách hàng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    cbomkh.Focus();
                    return;
                }
                sql = "INSERT INTO HoaDonBan(SoHDB,MaNV,NgayBan,MaKhach,TongTien) VALUES(N'" + txtMHB.Text.Trim() + "',N'" + cbomnv.SelectedValue + "', '" +
                      DAO.ConvertDateTime(txtnb.Text.Trim()) + "',N'" + cbomkh.SelectedValue + "'," + txttongtien.Text + ")";
                DAO.RunSql(sql);
            }
            // Lưu thông tin của các mặt hàng
            if (cboms.Text.Trim().Length == 0)
            {
                MessageBox.Show("Bạn phải nhập sách", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cboms.Focus();
                return;
            }
            if ((txtsl.Text.Trim().Length == 0) || (txtsl.Text == "0"))
            {
                MessageBox.Show("Bạn phải nhập số lượng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtsl.Text = "";
                txtsl.Focus();
                return;
            }
            if (txtgg.Text.Trim().Length == 0)
            {
                MessageBox.Show("Bạn phải nhập giảm giá", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtgg.Focus();
                return;
            }
            sql = "SELECT MaSach FROM ChiTietHDB WHERE MaSach=N'" + cboms.SelectedValue + "' AND SoHDB = N'" + txtMHB.Text.Trim() + "'";
            if (DAO.checkKeyExit(sql))
            {
                MessageBox.Show("Mã hàng này đã có, bạn phải nhập mã khác", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                ResetValuesHang();
                cboms.Focus();
                return;
            }
            // Kiểm tra xem số lượng hàng trong kho còn đủ để cung cấp không?
            sl = Convert.ToDouble(DAO.GetFieldValues("SELECT SoLuong FROM KhoSach WHERE MaSach = N'" + cboms.SelectedValue + "'"));
            if (Convert.ToDouble(txtsl.Text) > sl)
            {
                MessageBox.Show("Số lượng mặt hàng này chỉ còn " + sl, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtsl.Text = "";
                txtsl.Focus();
                return;
            }
            sql = "INSERT INTO ChiTietHDB(SoHDB,MaSach,SoLuong,KhuyenMai, ThanhTien) VALUES(N'" + txtMHB.Text.Trim() + "', N'" + cboms.SelectedValue +
                  "'," + txtsl.Text + "," + txtgg.Text + "," + txtthanhtien.Text + ")";
            DAO.RunSql(sql);
            Load_DataGridViewChitiet();
            // Cập nhật lại số lượng của mặt hàng vào bảng tblHang
            SLcon = sl - Convert.ToDouble(txtsl.Text);
            sql   = "UPDATE KhoSach SET SoLuong =" + SLcon + " WHERE MaSach= N'" + cboms.SelectedValue + "'";
            DAO.RunSql(sql);
            // Cập nhật lại tổng tiền cho hóa đơn bán
            tong    = Convert.ToDouble(DAO.GetFieldValues("SELECT TongTien FROM HoaDonBan WHERE SoHDB = N'" + txtMHB.Text + "'"));
            Tongmoi = tong + Convert.ToDouble(txtthanhtien.Text);
            sql     = "UPDATE HoaDonBan SET TongTien =" + Tongmoi + " WHERE SoHDB = N'" + txtMHB.Text + "'";
            DAO.RunSql(sql);
            txttongtien.Text = Tongmoi.ToString();
            txtchu.Text      = "Bằng chữ: " + DAO.ChuyenSoSangChu(Tongmoi.ToString());
            ResetValuesHang();
            btnXoa.Enabled  = true;
            btnThem.Enabled = true;
            btnIn.Enabled   = true;
        }
        private void btnLuu_Click(object sender, EventArgs e)
        {
            string sql;
            double sl, SLcon, tong, Tongmoi, tx;

            sql = "SELECT SoHDN FROM HoaDonNhap WHERE SoHDN=N'" + txtmhdn.Text + "'";
            if (!DAO.checkKeyExit(sql))
            {
                // Mã hóa đơn chưa có, tiến hành lưu các thông tin chung

                if (txtnn.Text.Length == 0)
                {
                    MessageBox.Show("Bạn phải nhập ngày bán", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txtnn.Focus();
                    return;
                }
                if (cbomnv.Text.Length == 0)
                {
                    MessageBox.Show("Bạn phải nhập nhân viên", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    cbomnv.Focus();
                    return;
                }
                if (cbomncc.Text.Length == 0)
                {
                    MessageBox.Show("Bạn phải nhập khách hàng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    cbomncc.Focus();
                    return;
                }
                sql = "INSERT INTO HoaDonNhap(SoHDN, NgayNhap, MaNhaCC,MaNV, TongTien) VALUES(N'" + txtmhdn.Text.Trim() + "','" + DAO.ConvertDateTime(txtnn.Text.Trim()) + "',N'" + cbomncc.SelectedValue + "', N'" + cbomnv.SelectedValue + "'," + txttongtien.Text + ")";
                DAO.RunSql(sql);
            }
            // Lưu thông tin của các mặt hàng
            if (cboms.Text.Trim().Length == 0)
            {
                MessageBox.Show("Bạn phải nhập sách", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cboms.Focus();
                return;
            }
            if ((txtsl.Text.Trim().Length == 0) || (txtsl.Text == "0"))
            {
                MessageBox.Show("Bạn phải nhập số lượng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtsl.Text = "";
                txtsl.Focus();
                return;
            }
            if (txtgg.Text.Trim().Length == 0)
            {
                MessageBox.Show("Bạn phải nhập giảm giá", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtgg.Focus();
                return;
            }
            sql = "SELECT MaSach FROM ChiTietHDN WHERE MaSach=N'" + cboms.SelectedValue + "' AND SoHDN = N'" + txtmhdn.Text.Trim() + "'";
            if (DAO.checkKeyExit(sql))
            {
                MessageBox.Show("Mã hàng này đã có, bạn phải nhập mã khác", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                ResetValuesHang();
                cboms.Focus();
                return;
            }

            sl = Convert.ToDouble(DAO.GetFieldValues("SELECT SoLuong FROM KhoSach WHERE MaSach = N'" + cboms.SelectedValue + "'"));

            sql = "INSERT INTO ChiTietHDN(SoHDN,MaSach,SoLuongNhap,KhuyenMai, ThanhTien) VALUES(N'" + txtmhdn.Text.Trim() + "', N'" + cboms.SelectedValue + "'," + txtsl.Text + "," + txtgg.Text + "," + txtthanhtien.Text + ")";
            DAO.RunSql(sql);

            // Cập nhật lại số lượng của mặt hàng vào bảng tblSach
            SLcon = sl + Convert.ToDouble(txtsl.Text);
            sql   = "UPDATE KhoSach SET SoLuong =" + SLcon + " WHERE MaSach= N'" + cboms.SelectedValue + "'";
            DAO.RunSql(sql);
            sql = "UPDATE KhoSach SET DonGiaNhap =" + txtdg.Text + " WHERE MaSach= N'" + cboms.SelectedValue + "'";
            DAO.RunSql(sql);
            tx  = Convert.ToDouble(txtdg.Text) * 110 / 100;
            sql = "UPDATE KhoSach SET DonGiaBan = '" + tx + "' WHERE MaSach = '" + cboms.Text + "'";
            DAO.RunSql(sql);
            // Cập nhật lại tổng tiền cho hóa đơn nhap
            tong    = Convert.ToDouble(DAO.GetFieldValues("SELECT TongTien FROM HoaDonNhap WHERE SoHDN = N'" + txtmhdn.Text + "'"));
            Tongmoi = tong + Convert.ToDouble(txtthanhtien.Text);
            sql     = "UPDATE HoaDonNhap SET TongTien =" + Tongmoi + " WHERE SoHDN = N'" + txtmhdn.Text + "'";
            DAO.RunSql(sql);
            txttongtien.Text    = Tongmoi.ToString();
            txtbc.Text          = DAO.ChuyenSoSangChu(Tongmoi.ToString());
            txttongtien.Enabled = false;
            txtbc.Enabled       = false;
            ResetValuesHang();
            Load_DataGridViewChitiet();
            btnXoa.Enabled  = true;
            btnThem.Enabled = true;
            btnIn.Enabled   = true;
        }