private void ConvertDataToXML(out XElement XML)
        {
            List<CTKHuyenMai> lstKhuyenMai = new List<CTKHuyenMai>();

            XML = new XElement(new XElement("Root"));
            for (int i = 0; i < gridSpMua.RowCount; i++)
            {
                CTKHuyenMai temp = new CTKHuyenMai();

                temp.MatHang.MaMatHang = gridSpMua.GetRowCellValue(i, "Mã sản phẩm").ToString();
                temp.SoLuong = Convert.ToInt32(gridSpMua.GetRowCellValue(i, "Số lượng"));
                temp.GiaKhuyenMai = Convert.ToDecimal(gridSpMua.GetRowCellValue(i, "Giá bán"));

                lstKhuyenMai.Add(temp);
            }

            foreach (CTKHuyenMai item in lstKhuyenMai)
            {
                XElement xml = new XElement("XmlData",
                    new XElement("MaCTKhuyenMai", item.MaCTKhuyenMai == null ? "" : item.MaCTKhuyenMai),
                    new XElement("MaMatHang", item.MatHang.MaMatHang == null ? "" : item.MatHang.MaMatHang),
                    new XElement("SoLuong", item.SoLuong == null ? 0 : item.SoLuong),
                    new XElement("GiaKhuyenMai", item.GiaKhuyenMai == 0 ? 0 : item.GiaKhuyenMai)
                    );
                XML.Add(xml);
            }
        }
 public bool CapNhatCTSoLuongKhuyenMai(CTKHuyenMai km)
 {
     try
     {
         return this.khuyenMaiDAL.CapNhatCTSoLuongKhuyenMai(km);
     }
     catch (System.Exception ex)
     {
         Console.WriteLine("Message= {1}", ex.Message);
     }
     return false;
 }
        public bool CapNhatCTSoLuongKhuyenMai(CTKHuyenMai km)
        {
            try
            {
                SqlParameter[] para = new SqlParameter[3];
                para[0] = new SqlParameter("@p_MaKhuyenMai", km.KhuyenMai.MaKhuyenMai == null ? "" : km.KhuyenMai.MaKhuyenMai);
                para[1] = new SqlParameter("@p_MaMatHang", km.MatHang.MaMatHang == null ? "" : km.MatHang.MaMatHang);
                para[2] = new SqlParameter("@p_SoLuong", km.SoLuong == null ? 0 : km.SoLuong);

                int result = this.ExecuteNonQuery("CT_KHUYENMAI_UpdCount", para);
                if (result != 0)
                {
                    return true;
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Message= {1}", ex.Message);
            }

            return false;
        }
        private void groupControl1_Enter(object sender, EventArgs e)
        {
            this.teTenNhanVien.Text = StaticVariables.nhanVien.TenNhanVien;
            this.teMaNhanVien.Text = StaticVariables.nhanVien.MaNhanVien;
            if (StaticVariables.gKhuyenMai != null)
            {

                this.maKM = StaticVariables.gKhuyenMai.MaKhuyenMai;
                this.menoETenChuongTrinhKhuyenMai.Text = StaticVariables.gKhuyenMai.TenChuongTrinh;
                this.dateBatDau.Text = StaticVariables.gKhuyenMai.ThoiGianDB;
                this.dateKetThuc.Text = StaticVariables.gKhuyenMai.ThoiGianKT;
                this.txtSoLuong.Text = "";

                CTKHuyenMai ctKM = new CTKHuyenMai();
                ctKM.KhuyenMai.MaKhuyenMai = StaticVariables.gKhuyenMai.MaKhuyenMai;
                this.gridSanPhamKM.DataSource = (new KhuyenMaiBUS().TimKiemChiTietCTKhuyenMai(ctKM));

                // nếu khuyến mãi này đã kết thúc thì không cho update
                if (DateTime.Compare(this.dateKetThuc.DateTime, DateTime.Now) < 0)
                {
                    this.sbLuu.Enabled = false;
                }
                else
                    this.sbLuu.Enabled = true;
            }
            else
            {
                this.sbLamMoi_Click(null, null);
            }
        }
        private void sbTimKiem_Click(object sender, EventArgs e)
        {
            if (this.rdbDsSanPham.Checked == true)
            {
                MatHang matHang = new MatHang();
                matHang.TenMatHang = this.teTenSanPham.Text;

                DataTable data = new DataTable();
                data = new MatHangBUS().TimKiemMatHangBan(matHang, 0, "",
                    "", 0, 0, 0, 0, "");
                gridViewSp.FocusedRowHandle = 0;
                this.girdSanPham.DataSource = data;
            }
            else
            {
                CTKHuyenMai km = new CTKHuyenMai();
                km.MatHang.TenMatHang = this.teTenSanPham.Text;
                km.KhuyenMai.ThoiGianKT = DateTime.Now.ToString("dd/MM/yyyy");

                DataTable data = new DataTable();
                data = new KhuyenMaiBUS().TimKiemChiTietCTKhuyenMai(km);
                gridViewSp.FocusedRowHandle = 0;
                this.girdSanPham.DataSource = data;
            }
        }
        private void sbLuu_Click_1(object sender, EventArgs e)
        {
            HoaDonBan hd = new HoaDonBan();
            hd.HoaDon.MaHoaDon = this.maHD;

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

            if (!hd.HoaDon.TrangThai.MaTrangThai.Equals("") && hd.HoaDon.TrangThai.MaTrangThai.Contains("Đã Thanh toán"))
                hd.NgayTT = DateTime.Now.ToString("dd/MM/yyyy");
            else
                hd.NgayTT = "";

            hd.KhachHang.TenKhachHang = this.teTenKhachHang.Text;
            hd.HoaDon.NhanVien.TenNhanVien = this.teTenNhanVien.Text;
            hd.HoaDon.NhanVien.MaNhanVien = this.teMaNhanVien.Text;
            hd.HoaDon.TongTien = (this.teTongTien.Text == "" ? Decimal.Zero : Convert.ToDecimal(this.teTongTien.Text));
            hd.HoaDon.TienDaTT = (this.teTienDTT.Text == "" ? Decimal.Zero : Convert.ToDecimal(this.teTienDTT.Text));
            hd.HoaDon.NgayLap = this.deThoiGianLap.DateTime.ToString("dd/MM/yyyy");

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

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

            hd.LePhiGiaoHang.MaKhuVuc = this.lueKhuVu.EditValue == null ? null : this.lueKhuVu.EditValue.ToString();
            hd.NgayGiaoHang = this.dateGiaoHang.DateTime.ToString("dd/MM/yyyy");
            if (hd.NgayGiaoHang.Equals("01-01-0001"))
            {
                hd.NgayGiaoHang = "";
            }
             hd.DiaChiGH = this.txtDiaChiGH.Text;
            if(hd.DiaChiGH.Equals(""))
            {
                MessageBox.Show("Địa chỉ giao hàng không được để trống ", "Thông báo", MessageBoxButtons.OK);
                return;
            }

            if (hd.HoaDon.TongTien < (hd.HoaDon.TienDaTT))
            {
                MessageBox.Show("Số tiền trả không được lớn hơn tổng tiền", "Thông báo", MessageBoxButtons.OK);
                return;
            }
            if (hd.KhachHang.TenKhachHang.Equals(""))
            {
                MessageBox.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.gHoaDonBan == null)
            {
                if (xlmData != null)
                {
                    // Kiểm tra xem sp đó có phải sp khuyến mãi không
                    if (this.rdbDSKhuyenMai.Checked && gridSpMua.RowCount != 0)
                    {

                        //ct.SoLuong =
                        for (int j = 0; j < this.gridSpMua.RowCount; j++)
                        {
                            CTKHuyenMai ct = new CTKHuyenMai();
                            ct.KhuyenMai.MaKhuyenMai = this.maKhuyenMai;
                            ct.MatHang.MaMatHang = gridSpMua.GetRowCellValue(j, "Mã sản phẩm").ToString();
                            ct.SoLuong += Convert.ToInt32(gridSpMua.GetRowCellValue(j, "Số lượng"));
                            bool result = (new KhuyenMaiBUS()).CapNhatCTSoLuongKhuyenMai(ct);
                        }

                    }
                    if (new HoaDonBanBUS().ThemhoaDon(hd, xlmData))
                    {
                        MessageBox.Show("Thêm hóa đơn thành công", "Thông báo", MessageBoxButtons.OK);
                        this.LoadData();
                    }
                    else
                    {
                        MessageBox.Show("Thêm hóa đơn thất bại", "Thông báo", MessageBoxButtons.OK);
                    }
                }
            }
            else
            {
                if (xlmData != null)
                {
                    if (new HoaDonBanBUS().CapNhathoaDon(hd, xlmData))
                    {
                        MessageBox.Show("Cập nhật hóa đơn thành công", "Thông báo", MessageBoxButtons.OK);
                        this.LoadData();
                    }
                    else
                    {
                        MessageBox.Show("Cập nhật đơn thất bại", "Thông báo", MessageBoxButtons.OK);
                    }
                }
            }
        }
        private void rdbDsSanPham_CheckedChanged(object sender, EventArgs e)
        {
            if (this.rdbDsSanPham.Checked == true)
            {
                this.girdSanPham.DataSource = (new MatHangBUS().LayDanhSachMatHangBan());
            }
            else
            {
                CTKHuyenMai ctKhuyenMai = new CTKHuyenMai();
                ctKhuyenMai.KhuyenMai.ThoiGianKT = DateTime.Now.ToString("dd/MM/yyyy");
                this.girdSanPham.DataSource = (new KhuyenMaiBUS().TimKiemChiTietCTKhuyenMai(ctKhuyenMai));

                DataTable dtx = this.girdSanPham.DataSource as DataTable;
                if (dtx.Rows.Count != 0)
                {
                    int indexRowForcus = 0;
                    this.maKhuyenMai = dtx.Rows[indexRowForcus].Field<String>("Mã Khuyến mãi");
                }
            }
            if (this.gridViewSp.RowCount != 0)
            {
                this.maSP = gridViewSp.GetRowCellValue(gridViewSp.FocusedRowHandle, "Mã sản phẩm").ToString();
                this.tenSP = gridViewSp.GetRowCellValue(gridViewSp.FocusedRowHandle, "Tên sản phẩm").ToString();
                this.soLuong = Convert.ToInt32(gridViewSp.GetRowCellValue(gridViewSp.FocusedRowHandle, "Số lượng"));
                this.tienSP = Convert.ToDecimal(gridViewSp.GetRowCellValue(gridViewSp.FocusedRowHandle, "Giá bán"));
            }
        }
        private void LoadData()
        {
            //load danh sách san phẩm
            if(rdbDSKhuyenMai.Checked)
            {
                CTKHuyenMai ctKhuyenMai = new CTKHuyenMai();
                ctKhuyenMai.KhuyenMai.ThoiGianKT = DateTime.Now.ToString("dd/MM/yyyy");
                this.girdSanPham.DataSource = (new KhuyenMaiBUS().TimKiemChiTietCTKhuyenMai(ctKhuyenMai));

                DataTable dtx = this.girdSanPham.DataSource as DataTable;
                int indexRowForcus = gridViewSp.FocusedRowHandle;
                this.maKhuyenMai = dtx.Rows[indexRowForcus].Field<String>("Mã Khuyến mãi");
            }
            else
                this.girdSanPham.DataSource = (new MatHangBUS().LayDanhSachMatHangBan());

            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("Mã sản phẩm"));
            dt.Columns.Add(new DataColumn("Tên sản phẩm"));
            dt.Columns.Add(new DataColumn("Số lượng"));
            dt.Columns.Add(new DataColumn("Giá bán"));

            this.gridSanPhamMua.DataSource = (dt);

            this.teTenNhanVien.Text = StaticVariables.nhanVien.TenNhanVien;
            this.teMaNhanVien.Text = StaticVariables.nhanVien.MaNhanVien;
            this.deThoiGianLap.DateTime = DateTime.Now;
            this.dateGiaoHang.DateTime = DateTime.Now;
        }
 public DataTable TimKiemChiTietCTKhuyenMai(CTKHuyenMai km)
 {
     try
     {
         return this.khuyenMaiDAL.TimKiemChiTietKhuyenMai(km);
     }
     catch (System.Exception ex)
     {
         Console.WriteLine("Message= {1}", ex.Message);
     }
     return null;
 }
        public DataTable TimKiemChiTietKhuyenMai(CTKHuyenMai km)
        {
            try
            {
                SqlParameter[] para = new SqlParameter[7];
                para[0] = new SqlParameter("@p_MaKhuyenMai", km.KhuyenMai.MaKhuyenMai == null ? "" : km.KhuyenMai.MaKhuyenMai);
                para[1] = new SqlParameter("@p_MaMatHang", km.MatHang.MaMatHang == null ? "" : km.MatHang.MaMatHang);
                para[2] = new SqlParameter("@p_TenMatHang", km.MatHang.TenMatHang == null ? "" : km.MatHang.TenMatHang);
                para[3] = new SqlParameter("@p_GiaKhuyenMai", km.GiaKhuyenMai == null ? 0 : km.GiaKhuyenMai);
                para[4] = new SqlParameter("@p_SoLuong", km.SoLuong == null ? 0 : km.SoLuong);
                para[5] = new SqlParameter("@p_ThoiGianKT", km.KhuyenMai.ThoiGianKT == null ? "" : km.KhuyenMai.ThoiGianKT);
                para[6] = new SqlParameter("@p_TOP", 100);
                DataTable lstCTKhuyenMai = LoadDataTable("CT_KHUYENMAI_Search", para);

                return lstCTKhuyenMai;
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Message= {1}", ex.Message);
            }
            return null;
        }