public bool CapNhatHoaDonBaoHanh(HoaDonBaoHanh hd, XElement xml)
        {
            try
            {
                SqlParameter[] para = new SqlParameter[8];
                para[0] = new SqlParameter("@p_MaHoaDon", hd.HoaDon.MaHoaDon == null ? "" : hd.HoaDon.MaHoaDon);
                para[1] = new SqlParameter("@p_MaNhanVien", hd.HoaDon.NhanVien.MaNhanVien == null ? "" : hd.HoaDon.NhanVien.MaNhanVien);
                para[2] = new SqlParameter("@p_MaTrangThai", hd.HoaDon.TrangThai.MaTrangThai == null ? "" : hd.HoaDon.TrangThai.MaTrangThai);
                para[3] = new SqlParameter("@p_NgayLap", hd.HoaDon.NgayLap == null ? "" : hd.HoaDon.NgayLap);
                para[4] = new SqlParameter("@p_GhiChu", hd.HoaDon.GhiChu == null ? "" : hd.HoaDon.GhiChu);
                para[5] = new SqlParameter("@p_MaKhachHang", hd.KhachHang.MaKhachHang == null ? "" : hd.KhachHang.MaKhachHang);
                para[6] = new SqlParameter("@p_MaHoaDonBan", hd.HoaDonBan.HoaDon.MaHoaDon == null ? "" : hd.HoaDonBan.HoaDon.MaHoaDon);

                para[7] = new SqlParameter();
                para[7].ParameterName = "@p_XML_TEMP";
                para[7].DbType = DbType.Xml;
                para[7].Direction = ParameterDirection.Input;
                para[7].Value = xml.ToString();
                int result = this.ExecuteNonQuery("HOADONBAOHANH_Upd", para);
                if (result != 0)
                {
                    return true;
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Message = {1}", ex.Message);
            }
            return false;
        }
        private void ConvertDataToXML(out XElement XML)
        {
            List<HoaDonBaoHanh> lstHoaDonBaoHanh = new List<HoaDonBaoHanh>();

            XML = new XElement(new XElement("Root"));
            for (int i = 0; i < gridSpBH.RowCount; i++)
            {
                HoaDonBaoHanh temp = new HoaDonBaoHanh();
                temp.CtHoaDonBH.MatHang.MaMatHang = gridSpBH.GetRowCellValue(i, "Mã sản phẩm").ToString();
                temp.CtHoaDonBH.MatHang.TenMatHang = gridSpBH.GetRowCellValue(i, "Tên sản phẩm").ToString();
                temp.CtHoaDonBH.SoLuong = Convert.ToInt32(gridSpBH.GetRowCellValue(i, "Số lượng"));

                lstHoaDonBaoHanh.Add(temp);
            }

            foreach (HoaDonBaoHanh item in lstHoaDonBaoHanh)
            {
                XElement xml = new XElement("XmlData",
                    new XElement("MaCTHoaDonBaoHanh", item.CtHoaDonBH.MaCTHoaDonBaoHanh == null ? "" : item.CtHoaDonBH.MaCTHoaDonBaoHanh),
                    new XElement("MaMatHang", item.CtHoaDonBH.MatHang.MaMatHang == null ? "" : item.CtHoaDonBH.MatHang.MaMatHang),
                    new XElement("TenMatHang", item.CtHoaDonBH.MatHang.TenMatHang == null ? "" : item.CtHoaDonBH.MatHang.TenMatHang),
                    new XElement("SoLuong", item.CtHoaDonBH.SoLuong == null ? Decimal.Zero : item.CtHoaDonBH.SoLuong)
                    );
                XML.Add(xml);
            }
        }
 public bool ThemHoaDonBaoHanh(HoaDonBaoHanh hdbh, XElement xml)
 {
     try
     {
         return this.hdbhDAL.ThemHoaDonBaoHanh(hdbh,xml);
     }
     catch (System.Exception ex)
     {
         Console.WriteLine("Message = {1}", ex.Message);
     }
     return false;
 }
 public DataTable TimKiemCTHoaDonBaoHanh(HoaDonBaoHanh hdbh)
 {
     try
     {
         return this.hdbhDAL.TimKiemCTHoaDonBaoHanh(hdbh);
     }
     catch (System.Exception ex)
     {
         Console.WriteLine("Message = {1}", ex.Message);
     }
     return null;
 }
        public DataTable TimKiemHoaDonBaoHanh(HoaDonBaoHanh hd)
        {
            try
            {
                SqlParameter[] para = new SqlParameter[6];
                para[0] = new SqlParameter("@p_NgayLap", hd.HoaDon.NgayLap == null ? "" : hd.HoaDon.NgayLap);
                para[1] = new SqlParameter("@p_MaHoaDonBaoHanh", hd.MaHoaDonBaoHanh == null ? "" : hd.MaHoaDonBaoHanh);
                para[2] = new SqlParameter("@p_TenKhachHang", hd.KhachHang.TenKhachHang == null ? "" : hd.KhachHang.TenKhachHang);
                para[3] = new SqlParameter("@p_MaKhachHang", hd.KhachHang.MaKhachHang == null ? "" : hd.KhachHang.MaKhachHang);
                para[4] = new SqlParameter("@p_MaHoaDonBan", hd.HoaDonBan.HoaDon.MaHoaDon == null ? "" : hd.HoaDonBan.HoaDon.MaHoaDon);
                para[5] = new SqlParameter("@p_TOP", 100);

                return this.LoadDataTable("HOADONBAOHANH_Search", para);
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Message = {1}", ex.Message);
            }
            return null;
        }
        public DataTable TimKiemCTHoaDonBaoHanh(HoaDonBaoHanh hdbh)
        {
            try
            {
                SqlParameter[] para = new SqlParameter[5];
                para[0] = new SqlParameter("@p_MaCTHoaDonBaoHanh", hdbh.CtHoaDonBH.MaCTHoaDonBaoHanh == null ? "" : hdbh.CtHoaDonBH.MaCTHoaDonBaoHanh);
                para[1] = new SqlParameter("@p_MaHoaDonBaoHanh", hdbh.HoaDon.MaHoaDon == null ? "" : hdbh.HoaDon.MaHoaDon);
                para[2] = new SqlParameter("@p_MaMatHang", hdbh.CtHoaDonBH.MatHang == null ? "" : hdbh.CtHoaDonBH.MatHang.MaMatHang);
                para[3] = new SqlParameter("@p_SoLuong", hdbh.CtHoaDonBH.SoLuong == null ? 0 : hdbh.CtHoaDonBH.SoLuong);
                para[4] = new SqlParameter("@p_TOP", 100);

                DataTable lstCTHoaDon = this.LoadDataTable("CT_HOADONBAOHANH_Search", para);
                return lstCTHoaDon;
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Message= {1}", ex.Message);
            }
            return null;
        }
        private void sbLuu_Click(object sender, EventArgs e)
        {
            HoaDonBaoHanh hd = new HoaDonBaoHanh();
            hd.HoaDon.MaHoaDon = this.maHD;
            hd.HoaDonBan.HoaDon.MaHoaDon = this.teMaHoaDon.Text;

            hd.KhachHang.MaKhachHang = this.teMaKhachHang.EditValue == null ? "" : this.teMaKhachHang.EditValue.ToString();
            hd.HoaDon.TrangThai.MaTrangThai = this.leTrangThai.EditValue == null ? "" : this.leTrangThai.EditValue.ToString();

            hd.KhachHang.TenKhachHang = this.teTenKhachHang.Text;
            hd.HoaDon.NhanVien.TenNhanVien = this.teTenNhanVien.Text;
            hd.HoaDon.NhanVien.MaNhanVien = this.teMaNhanVien.Text;
            hd.HoaDon.NgayLap = this.deThoiGianLap.DateTime.ToString("dd/MM/yyyy");
            hd.HoaDon.GhiChu = this.meGhiChu.Text;

            if (hd.KhachHang.TenKhachHang.Equals(""))
            {
                XtraMessageBox.Show("Tên Khách hàng không được bỏ trống. ", "Thông báo", MessageBoxButtons.OK);
                return;
            }

            if (this.gridSpBH.RowCount == 0)
            {
                XtraMessageBox.Show("Danh sách sản phẩm bảo hành không được để trống. ", "Thông báo", MessageBoxButtons.OK);
                return;
            }

            if (hd.KhachHang.TenKhachHang.Equals(""))
            {
                XtraMessageBox.Show("Yêu cầu nhập tên khách hàng", "Thông báo", MessageBoxButtons.OK);
                return;
            }

            XElement xlmData;
            this.ConvertDataToXML(out xlmData);
            if (StaticVariables.gHoaDonBaoHanh == null)
            {
                if (xlmData != null)
                {
                    if (new HoaDonBaoHanhBUS().ThemHoaDonBaoHanh(hd, xlmData))
                    {
                        XtraMessageBox.Show("Thêm phiếu bảo hành thành công", "Thông báo", MessageBoxButtons.OK);
                        this.LoadData();
                    }
                    else
                    {
                        XtraMessageBox.Show("Thêm phiếu bảo hành thất bại", "Thông báo", MessageBoxButtons.OK);
                    }
                }
            }
            else
            {
                if (xlmData != null)
                {
                    if (new HoaDonBaoHanhBUS().CapNhatHoaDonBaoHanh(hd, xlmData))
                    {
                        XtraMessageBox.Show("Cập nhật phiếu hoá đơn thành công", "Thông báo", MessageBoxButtons.OK);
                    }
                    else
                    {
                        XtraMessageBox.Show("Cập nhật phiếu bảo hành thất bại", "Thông báo", MessageBoxButtons.OK);
                    }
                }
            }
        }
        private void sbTimKiemHoaDon_Click(object sender, EventArgs e)
        {
            HoaDonBaoHanh hdbh = new HoaDonBaoHanh();
            hdbh.HoaDon.NgayLap = this.deThoiGianLap.DateTime.ToString("dd/MM/yyyy");
            if (hdbh.HoaDon.NgayLap.Equals("01/01/0001"))
            {
                hdbh.HoaDon.NgayLap = "";
            }
            hdbh.MaHoaDonBaoHanh = this.teMaHoaDon.Text;
            hdbh.KhachHang.TenKhachHang = this.teTenKhachHang.Text;
            hdbh.KhachHang.MaKhachHang = this.teMaKhachHang.Text;

            this.gcKetQua.DataSource = this.hdbhBUS.TimKiemHoaDonBaoHanh(hdbh);
            int a = 0;
        }