public Boolean ktmahddvmadvtrung()
 {
     if (CHITIETHOADONDVDAO.KTMaHDVMaSPTrung(dsCTHDDV, cbboxMaHD.SelectedItem.ToString().Trim(), DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim())))
     {
         MessageBox.Show("Dữ liệu này đã tồn tại, không thể lưu");
         return(false);
     }
     return(true);
 }
        private void btnXoaCTHD_Click(object sender, EventArgs e)
        {
            DialogResult dlr = MessageBox.Show("Bạn có chắc muốn xóa dữ liệu chi tiết hóa đơn này?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

            if (dlr == DialogResult.Yes)
            {
                String sql = "delete from ct_hd_dichvu where sohd = '" + cbboxMaHD.SelectedItem.ToString().Trim() + "' and madv = '" + DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim()) + "' exec dbo.tongtienhddv @sohd = '" + cbboxMaHD.SelectedItem.ToString().Trim() + "'";
                cn.themxoasua(sql);
                CHITIETHOADONDVDAO.XoaCTHDDV(dsCTHDDV, cbboxMaHD.SelectedItem.ToString().Trim(), DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim()));
                dgvCTHDDV.Rows.RemoveAt(indexCTHDDV);
                txtTongTien.Text = "" + tongtien();
                MessageBox.Show("Xóa thành công");
            }
        }
        private void cbboxMaHD_SelectedIndexChanged(object sender, EventArgs e)
        {
            dgvCTHDDV.Rows.Clear();
            dgvCTHDDV.Enabled   = true;
            btnThemCTHD.Enabled = true;
            btnIn.Enabled       = true;
            List <CHITIETHOADON> ds = CHITIETHOADONDVDAO.dsCTHDDVTheoMaHD(dsCTHDDV, cbboxMaHD.SelectedItem.ToString().Trim());

            foreach (CHITIETHOADON cthd in ds)
            {
                dgvCTHDDV.Rows.Add(cthd.getMahd(), DICHVUDAO.TenDV(QuanLyDichVu.dsDV, cthd.getMasp()), cthd.getSoluong(), cthd.thanhtien(DICHVUDAO.GiaMaDV(QuanLyDichVu.dsDV, cthd.getMasp())));
            }
            txtTongTien.Text = "" + tongtien();
        }
 private void btnSuaCTHD_Click(object sender, EventArgs e)
 {
     if (kttxtCTHD())
     {
         DialogResult dlr = MessageBox.Show("Bạn có chắc muốn sửa dữ liệu của chi tiết hóa đơn này?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
         if (dlr == DialogResult.Yes)
         {
             String sql = "update ct_hd_dichvu set soluongdv = " + int.Parse(txtSoLuong.Text.Trim()) + " where sohd = '" + cbboxMaHD.SelectedItem.ToString().Trim() + "' and madv = '" + DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim()) + "' exec dbo.thanhtiencthddv @sohd = '" + cbboxMaHD.SelectedItem.ToString().Trim() + "', @madv = '" + DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim()) + "' exec dbo.tongtienhddv @sohd = '" + cbboxMaHD.SelectedItem.ToString().Trim() + "'";
             cn.themxoasua(sql);
             CHITIETHOADONDVDAO.SuaCTHDDV(dsCTHDDV, cbboxMaHD.SelectedItem.ToString().Trim(), DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim()), int.Parse(txtSoLuong.Text.Trim()));
             DataGridViewRow row = dgvCTHDDV.Rows[indexCTHDDV];
             row.Cells[2].Value = int.Parse(txtSoLuong.Text.Trim());
             row.Cells[3].Value = int.Parse(txtSoLuong.Text.Trim()) * DICHVUDAO.GiaMaDV(QuanLyDichVu.dsDV, DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim()));
             txtTongTien.Text   = "" + tongtien();
             MessageBox.Show("Sửa thành công");
         }
     }
 }
 private void btnLuuCTHD_Click(object sender, EventArgs e)
 {
     if (kttxtCTHD() && ktmahddvmadvtrung())
     {
         DialogResult dlr = MessageBox.Show("Bạn có chắc muốn thêm dữ liệu cho chi tiết hóa đơn này?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
         if (dlr == DialogResult.Yes)
         {
             String sql = "insert into ct_hd_dichvu values ('" + cbboxMaHD.SelectedItem.ToString().Trim() + "', '" + DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim()) + "', " + int.Parse(txtSoLuong.Text.Trim()) + ", " + int.Parse(txtSoLuong.Text.Trim()) + " * " + DICHVUDAO.GiaMaDV(QuanLyDichVu.dsDV, DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim())) + ")";
             cn.themxoasua(sql);
             CHITIETHOADONDVDAO.ThemCTHDDV(dsCTHDDV, cbboxMaHD.SelectedItem.ToString().Trim(), DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim()), int.Parse(txtSoLuong.Text.Trim()));
             dgvCTHDDV.Rows.Add(cbboxMaHD.SelectedItem.ToString().Trim(), cbboxTenSP.SelectedItem.ToString().Trim(), int.Parse(txtSoLuong.Text.Trim()), int.Parse(txtSoLuong.Text.Trim()) * DICHVUDAO.GiaMaDV(QuanLyDichVu.dsDV, DICHVUDAO.MaDVTheoTenDV(QuanLyDichVu.dsDV, cbboxTenSP.SelectedItem.ToString().Trim())));
             cbboxTenSP.Enabled  = false;
             txtSoLuong.Enabled  = false;
             txtTongTien.Enabled = false;
             btnThemCTHD.Enabled = true;
             btnLuuCTHD.Enabled  = false;
             txtTongTien.Text    = "" + tongtien();
             MessageBox.Show("Thêm thành công");
         }
     }
 }
        private void btnIn_Click(object sender, EventArgs e)
        {
            List <CHITIETHOADON> ds = CHITIETHOADONDVDAO.dsCTHDDVTheoMaHD(dsCTHDDV, cbboxMaHD.SelectedItem.ToString().Trim());
            string line4            = "";
            string mahd             = "";

            foreach (CHITIETHOADON sp in ds)
            {
                int    lengthten     = DICHVUDAO.TenDV(QuanLyDichVu.dsDV, sp.getMasp()).Length;
                int    lengthsoluong = sp.getSoluong().ToString().Length;
                int    length        = 20 - lengthten;
                int    length2       = 16 - lengthsoluong;
                string khoangcach    = "";
                string khoangcach2   = "";
                for (int i = 0; i < length; i++)
                {
                    khoangcach += " ";
                }
                for (int i = 0; i < length2; i++)
                {
                    khoangcach2 += " ";
                }

                mahd   = sp.getMahd();
                line4 += DICHVUDAO.TenDV(QuanLyDichVu.dsDV, sp.getMasp()) + khoangcach + sp.getSoluong() + khoangcach2 + sp.thanhtien(SANPHAMDAO.GiaMaSP(QuanLyHangHoa.dsSP, sp.getMasp())) + "\n";
            }
            string[] lines = { "                                Hóa Đơn\n", "Tên khách hàng: " + HOADONDVDAO.TenKhachHang(dsHDDV, mahd) + "\n", "Mã hóa đơn: " + mahd + "\n", "Tên Sản Phẩm      Số lượng      Thành tiền", line4, "Tổng tiền: " + txtTongTien.Text };
            // WriteAllText creates a file, writes the specified string to the file,
            // and then closes the file.    You do NOT need to call Flush() or Close().
            System.IO.File.WriteAllLines(@"C:\DevPrograms\DoAnCongNghePhanMem (2)\Phan tich thiet ke HTTT\Phan tich thiet ke HTTT\BanIn\In.txt", lines);

            ProcessStartInfo startInfo = new ProcessStartInfo();

            startInfo.FileName = @"C:\DevPrograms\DoAnCongNghePhanMem (2)\Phan tich thiet ke HTTT\Phan tich thiet ke HTTT\BanIn\In.txt"; // Your absolute PATH

            Process.Start(startInfo);
        }