/// <summary>
        /// Thêm đơn đặt hàng
        /// ngọc hà :28/5/2011
        /// </summary>
        /// <param name="ddh">đơn đặt hàng</param>
        /// <returns></returns>   
        public static int ThemDonDatHang(DonDatHang ddh)
        {
            int res = 0;

            try
            {
                int MaDonDatHang = 0;
                List<SqlParameter> lstParams = new List<SqlParameter>();
                lstParams.Add(new SqlParameter("@ngaydat", ddh.ngayDat));
                lstParams.Add(new SqlParameter("@soluongdat", ddh.soLuongDat));
                lstParams.Add(new SqlParameter("@trangthai",ddh.trangThai));
                lstParams.Add(new SqlParameter("@makhachhang", ddh.maKhachHang));
                lstParams.Add(new SqlParameter("@masanpham", ddh.maSanPham));
                lstParams.Add(new SqlParameter("@madaily", ddh.maDaiLy));
                lstParams.Add(new SqlParameter("@thanhtien", ddh.thanhTien));
                lstParams.Add(new SqlParameter("@ngaynhanhang", ddh.ngayNhanHang));
                SqlParameter param = new SqlParameter("@maddh", MaDonDatHang);
                param.Direction = ParameterDirection.Output;
                lstParams.Add(param);

                if (SqlDataAccessHelper.ExecuteNoneQuery("spThemDonDatHang", lstParams) > 0)
                {
                    ddh.MaDDH = int.Parse(param.Value.ToString());
                    res = 1;
                }

            }
            catch (Exception e)
            {
                res = 0;
                throw e;
            }
            return res;
        }
        /// <summary>
        /// Lấy đơn đặt hàng theo mã ddh
        /// Ngọc Hà :28/5/2011
        /// Thu Ha
        /// 1/6/2011
        /// </summary>
        /// <param name="maddh">mã đơn đặt hàng</param>
        /// <returns></returns>
        public static DonDatHang LayDonDatHangTheoMaDDH(int maddh)
        {
            DonDatHang donDatHang = new DonDatHang();
            try
            {
                List<SqlParameter> lstParams = new List<SqlParameter>();
                lstParams.Add(new SqlParameter("@maddh", maddh));

                DataTable dtDonDatHang = new DataTable();
                dtDonDatHang = SqlDataAccessHelper.ExecuteQuery("spLayDonDatHangTheoMaDDH", lstParams);

                if (dtDonDatHang.Rows.Count>0)
                {
                    DataRow dtRow = dtDonDatHang.Rows[0];

                    donDatHang.MaDDH = int.Parse(dtRow["MaDDH"].ToString());
                    donDatHang.NgayDat = DateTime.Parse(dtRow["NgayDat"].ToString());
                    donDatHang.SoLuongDat = int.Parse(dtRow["SoLuongDat"].ToString());
                    donDatHang.TrangThai = int.Parse(dtRow["TrangThai"].ToString());
                    // thu ha
                    donDatHang.TenTrangThai = BUS.TrangThai.LayTrangThaiTheoMa(donDatHang.TrangThai).TenTrangThai;

                    donDatHang.MaKhachHang = int.Parse(dtRow["MaKhachHang"].ToString());
                    donDatHang.MaSanPham = int.Parse(dtRow["MaSanPham"].ToString());
                    donDatHang.TenSanPham = BUS.SanPham.LaySanPhamTheoMa(donDatHang.MaSanPham).TenSanPham;
                    donDatHang.MaDaiLy = int.Parse(dtRow["MaDaiLy"].ToString());
                    donDatHang.TenDaiLy = BUS.DaiLy.LayThongTinDaiLyTheoMa(donDatHang.MaDaiLy).TenDaiLy;
                    donDatHang.NhanHangTuNgay = BUS.SanPham.LaySanPhamTheoMa(donDatHang.MaSanPham).ThoiGianBD_NhanHang;
                    donDatHang.NhanHangDenNgay = BUS.SanPham.LaySanPhamTheoMa(donDatHang.MaSanPham).ThoiGianKT_NhanHang;

                    try
                    {
                        donDatHang.NgayNhanHang = DateTime.Parse(dtRow["NgayNhanHang"].ToString());
                    }
                    catch
                    {
                        donDatHang.NgayNhanHang = DateTime.Parse("1/1/1900");
                    }
                    donDatHang.ThanhTien = float.Parse(dtRow["ThanhTien"].ToString());

                }
            }
            catch (Exception e)
            {
                donDatHang = new DonDatHang();
                throw e;
            }
            return donDatHang;
        }
        /// <summary>
        /// Lấy đơn đặt hàng theo mã ddh
        /// Ngọc Hà :28/5/2011
        /// </summary>
        /// <param name="ngayBatDau"></param>
        /// <param name="ngayKetThuc"></param>
        /// <returns></returns>
        public static List<DonDatHang> LayDSDonDatHangTheoNgayDat(DateTime ngayBatDau, DateTime ngayKetThuc)
        {
            List<DonDatHang> lstDonDatHang = new List<DonDatHang>();
            try
            {
                List<SqlParameter> lstParams = new List<SqlParameter>();
                lstParams.Add(new SqlParameter("@ngaybatdau", ngayBatDau));
                lstParams.Add(new SqlParameter("@ngayketthuc", ngayKetThuc));
                DataTable dtDonDatHang = new DataTable();
                dtDonDatHang = SqlDataAccessHelper.ExecuteQuery("spLayDSDonDatHangTheoNgayDat", lstParams);

                foreach (DataRow dtRow in dtDonDatHang.Rows)
                {
                    DonDatHang donDatHang = new DonDatHang();
                    donDatHang.MaDDH = int.Parse(dtRow["MaDDH"].ToString());
                    donDatHang.NgayDat = DateTime.Parse(dtRow["NgayDat"].ToString());
                    donDatHang.SoLuongDat = int.Parse(dtRow["SoLuongDat"].ToString());
                    donDatHang.TrangThai = int.Parse(dtRow["TrangThai"].ToString());
                    donDatHang.TenTrangThai = BUS.TrangThai.LayTrangThaiTheoMa(donDatHang.TrangThai).TenTrangThai;
                    donDatHang.MaKhachHang = int.Parse(dtRow["MaKhachHang"].ToString());
                    donDatHang.MaSanPham = int.Parse(dtRow["MaSanPham"].ToString());
                    donDatHang.TenSanPham = BUS.SanPham.LaySanPhamTheoMa(donDatHang.MaSanPham).TenSanPham;
                    donDatHang.MaDaiLy = int.Parse(dtRow["MaDaiLy"].ToString());
                    donDatHang.TenDaiLy = BUS.DaiLy.LayThongTinDaiLyTheoMa(donDatHang.MaDaiLy).TenDaiLy;
                    donDatHang.NhanHangTuNgay = BUS.SanPham.LaySanPhamTheoMa(donDatHang.MaSanPham).ThoiGianBD_NhanHang;
                    donDatHang.NhanHangDenNgay = BUS.SanPham.LaySanPhamTheoMa(donDatHang.MaSanPham).ThoiGianKT_NhanHang;

                    try
                    {
                        donDatHang.NgayNhanHang = DateTime.Parse(dtRow["NgayNhanHang"].ToString());
                    }
                    catch
                    {
                        donDatHang.NgayNhanHang = DateTime.Parse("1/1/1900");
                    }
                    donDatHang.ThanhTien = float.Parse(dtRow["ThanhTien"].ToString());

                    lstDonDatHang.Add(donDatHang);
                }

            }
            catch (Exception e)
            {

                throw e;
            }
            return lstDonDatHang;
        }
        protected void imgButtonThanhToan_Click(object sender, ImageClickEventArgs e)
        {
            // kiểm tra tặng phẩm
            lblLoiChonTP.Text = "";
            List<ChiTietDonDatHang> lstChiTietDDH = new List<ChiTietDonDatHang>();
            int tongDiemThuongYC = 0;
            int tongDiemThuong = int.Parse(lblTongDiemThuong.Text);
            for (int i = 0; i < dlDanhSachTangPham.Items.Count; i++)
            {
                TextBox txtSoLuongTP = dlDanhSachTangPham.Items[i].FindControl("txtSoLuongTP") as TextBox;
                int soluongTP = 0;
                if (!int.TryParse(txtSoLuongTP.Text, out soluongTP))
                {
                    lblLoiChonTP.Text = "Số lượng tặng phẩm phải là số.";
                    txtSoLuongMuaSP.Focus();
                    return;
                }
                if (soluongTP == 0)
                {
                    continue;
                }

                HiddenField hidField = dlDanhSachTangPham.Items[i].FindControl("hidMaTangPham") as HiddenField;
                TangPham tangPham = new TangPham();
                tangPham = TangPham.LayTangPhamTheoMa(int.Parse(hidField.Value));

                // kiểm tra số lượng tối đa
                if (soluongTP > tangPham.SoLuongToiDa)
                {
                    lblLoiChonTP.Text = "Số lượng tặng phẩm " + tangPham.TenTangPham + " phải nhỏ hơn hoặc bằng số lượng tối đa.";
                    txtSoLuongTP.Focus();
                    return;
                }
                // kiểm tra số lượng còn lại
                if (soluongTP > tangPham.SoLuongConLai)
                {
                    lblLoiChonTP.Text = "Số lượng tặng phẩm " + tangPham.TenTangPham + " phải nhỏ hơn hoặc bằng số lượng tồn.";
                    txtSoLuongTP.Focus();
                    return;
                }

                ChiTietDonDatHang ctDDH = new ChiTietDonDatHang();
                ctDDH.MaTangPham = tangPham.MaTangPham;
                ctDDH.SoLuong = soluongTP;

                tongDiemThuongYC += tangPham.DiemThuongYC * ctDDH.SoLuong;
                // kiểm tra tổng điểm yêu cầu so với điểm thưởng người mua có
                if (tongDiemThuongYC > tongDiemThuong)
                {
                    lblLoiChonTP.Text = "Số điểm thưởng không đủ để chọn.";
                    txtSoLuongTP.Focus();
                    return;
                }

                lstChiTietDDH.Add(ctDDH);
            }

            // insert đơn đặt hàng
            DonDatHang donDatHang = new DonDatHang();
            donDatHang.NgayDat = DateTime.Now;
            donDatHang.SoLuongDat = int.Parse(txtSoLuongMuaSP.Text);
            donDatHang.TrangThai = 1;
            donDatHang.MaKhachHang = (Int32)Session["Id"];
            donDatHang.MaSanPham = g_SanPham.MaSanPham;
            donDatHang.MaDaiLy = int.Parse(dropListDaiLy.SelectedItem.Value);
            donDatHang.ThanhTien = donDatHang.SoLuongDat * g_SanPham.DonGia;
            donDatHang.NgayNhanHang = g_SanPham.ThoiGianBD_NhanHang;
            if (DonDatHang.ThemDonDatHang(donDatHang) > 0)
            {
                panelDatHang.Visible = false;
                string mess = String.Empty;
                // insert chi tiết tặng phẩm
                foreach (ChiTietDonDatHang ctddh in lstChiTietDDH)
                {
                    ctddh.MaDDH = donDatHang.MaDDH;
                    if (ChiTietDonDatHang.ThemChiTietDonDatHang(ctddh, tongDiemThuong) == 0)
                    {
                        mess += TangPham.LayTangPhamTheoMa(ctddh.MaTangPham).TenTangPham + " - ";
                        continue;
                    }
                }
                //kiểm tra xem thêm chi tiết tặng phẩm có bị lỗi hay hông
                if (mess.Length > 0)
                {
                    pnlKetQuaDatHang.Visible = true;
                    lblKetQuaDatHang.Text = "Không thể chọn các tặng phẩm " + mess + " , bạn có thể cập nhật tặng phẩm.";

                }
                else
                {
                    pnlKetQuaDatHang.Visible = true;
                    lblKetQuaDatHang.Text = "Đơn hàng của bạn đã thêm thành công. <br> Ngày nhận sản phẩm của bạn là từ ngày " +
                                    String.Format("{0:D}",g_SanPham.ThoiGianBD_NhanHang) + " đến ngày " + String.Format("{0:D}", g_SanPham.ThoiGianKT_NhanHang);

                }
            }
            else
            {
                pnlKetQuaDatHang.Visible = true;
                lblKetQuaDatHang.Text = "Đơn đặt hàng của bạn bị lỗi, bạn hãy thử lại.";
            }
        }