public void themct(DTOChiTietDH dtoCTDH)
 {
     DAO_Entity dao = new DAO_Entity();
     dao.ThemChiTietDH(dtoCTDH);
 }
        protected void btnLuu_Click(object sender, EventArgs e)
        {
            if (Session["dsThanhPhamTra"] != null)
            {
                dsThanhPhamTra = (List<DTOChiTietDH>)Session["dsThanhPhamTra"];
                int dem = 0;
                string maDH = lbMaDH.Text;
                foreach (DTOChiTietDH dtoCTDH in dsThanhPhamTra)
                {
                    DTOXLSC_HDBH dtoct = new DTOXLSC_HDBH();
                    dtoct.MaDH = lbMaDH.Text;
                    dtoct.MaSP = dtoCTDH.dtoSP.MaSP;
                    dtoct.Soluong = dtoCTDH.SoLuong;
                    dtoct.ThanhTien = dtoCTDH.ThanhTien;
                    if (daoEntities.ThemXuLyTraHang(dtoct))
                    {
                        DTOChiTietDH dtoChiTietDHTra = new DTOChiTietDH();
                        DTOChiTietDH dtoChiTietDonHangDat = daoEntities.LayChiTietDonHangTheoMaDHMaSP(maDH, dtoCTDH.dtoSP.MaSP);
                        dtoChiTietDHTra.MaDH = lbMaDH.Text;
                        dtoChiTietDHTra.MaSP = dtoCTDH.dtoSP.MaSP;
                        dtoChiTietDHTra.SoLuong = dtoChiTietDonHangDat.SoLuong - dtoCTDH.SoLuong;
                        dtoChiTietDHTra.ThanhTien = dtoChiTietDonHangDat.ThanhTien - dtoCTDH.ThanhTien;

                        if (daoEntities.CapNhatChiTietDH(dtoChiTietDHTra))
                            dem++;
                    }
                }

                if(dem == dsThanhPhamTra.Count)
                {
                    DTODonDatHang dtoDonHang = daoEntities.LayDHTheoMa(maDH);
                    int tongTienTra = int.Parse(lbTongTien.Text),
                        tongTienDaDat = dtoDonHang.TongTien,
                        congnoCu = dtoDonHang.CongNoDH,
                        tongTienPhaiTra = 0, congnoConLai = 0;
                    tongTienPhaiTra = tongTienDaDat - tongTienTra;
                    congnoConLai = congnoCu - tongTienTra;
                    daoEntities.CapNhatDonHang(maDH, tongTienPhaiTra, congnoConLai);
                }

                Response.Redirect(Request.RawUrl);
            }
        }
        protected void gridDSCanTra_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "them")
            {
                GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
                int rowindex = row.RowIndex;
                TextBox txtSoluong = (TextBox)row.FindControl("txtSoluong");
                Label lbTenTP = (Label)row.FindControl("lbTenSP");
                Label lbGia = (Label)row.FindControl("lbGia");

                int maThanhPham = int.Parse(e.CommandArgument.ToString());
                int soluong = 0;
                int.TryParse(txtSoluong.Text, out soluong);
                int gia = int.Parse(lbGia.Text);
                string tenTP = lbTenTP.Text;

                

                if (Session["dsThanhPhamTra"] == null)
                {
                    dsThanhPhamTra = new List<DTOChiTietDH>();
                    Session["dsThanhPhamTra"] = dsThanhPhamTra;
                }
                else
                {
                    dsThanhPhamTra = (List<DTOChiTietDH>)Session["dsThanhPhamTra"];
                }

                bool trangthai = false;
                foreach (DTOChiTietDH t in dsThanhPhamTra)
                {
                    if (t.dtoSP.MaSP == maThanhPham)
                    {
                        t.SoLuong += soluong;
                        trangthai = true;
                        break;
                    }
                }
                if (trangthai == false)
                {
                    DTOChiTietDH tp = new DTOChiTietDH();
                    DTOSanPham dtoSP = daoEntities.TimTheoMaSP(maThanhPham);
                    tp.dtoSP = dtoSP;
                    tp.SoLuong = soluong;
                    tp.ThanhTien = gia * soluong;
                    dsThanhPhamTra.Add(tp);
                }

                hienThanhPhamChon();
                TongTien();
            }
        }
        //lay danh sach chi tiet don hang
        public List<DTOChiTietDH> LayDSChiTietDH(string ma)
        {
            List<DTOChiTietDH> ds = new List<DTOChiTietDH>();

            string lenh = "Select * from ChiTietDH ct, DonDH dh, KhachHang kh, SanPham sp, LoaiSP lsp, LoaiKH l where ct.MaDH = @madh and kh.MaLKH=l.MaLKH and kh.MaKH=dh.MaKH and ct.MaDH=dh.MaDH and ct.MaSP=sp.MaSP and sp.MaLoai = lsp.MaLoai";
            //string lenh = "Select * from ChiTietDonDatHang ct,SanPham sp,LoaiSP lsp where MaDH = " + ma + " and ct.MaSP=sp.MaSP and lsp.MaLoai=lsp.MaLoai";
            //string lenh = "Select * from ChiTietDonDatHang where MaDH=" + ma + "";
            ketnoi.TaoKetNoi();
            DataTable bang = new DataTable();
            try
            {
                ketnoi.LenhKetNoi = new SqlCommand(lenh, ketnoi.KetNoi);
                ketnoi.LenhKetNoi.Parameters.Add("@madh", SqlDbType.VarChar);
                ketnoi.LenhKetNoi.Parameters["@madh"].Value = ma;
                //dong bo lenh ket noi voi du lieu trong database
                ketnoi.TichHopCSDL = new SqlDataAdapter(ketnoi.LenhKetNoi);
                
                ketnoi.TichHopCSDL.Fill(bang);
                foreach (DataRow dongDL in bang.Rows)
                {
                    DTOChiTietDH dtoct = new DTOChiTietDH(dongDL);
                    ds.Add(dtoct);
                }
            }
            catch
            {
                throw;
            }
            finally
            {
                ketnoi.DongKetNoi();
            }
            return ds;
        }
        //lay chi tiet don hang theo ma don hang va ma san pham
        public DTOChiTietDH LayChiTietDonHangTheoMaDHMaSP(string ma, int masp)
        {
            DTOChiTietDH ctDH = new DTOChiTietDH();

            string lenh = "Select * from ChiTietDH ct, DonDH dh, KhachHang kh, SanPham sp, LoaiSP lsp, LoaiKH l where ct.MaDH = @madh and ct.maSP = @masp and kh.MaLKH=l.MaLKH and kh.MaKH=dh.MaKH and ct.MaDH=dh.MaDH and ct.MaSP=sp.MaSP and sp.MaLoai = lsp.MaLoai";
            //string lenh = "Select * from ChiTietDonDatHang ct,SanPham sp,LoaiSP lsp where MaDH = " + ma + " and ct.MaSP=sp.MaSP and lsp.MaLoai=lsp.MaLoai";
            //string lenh = "Select * from ChiTietDonDatHang where MaDH=" + ma + "";
            ketnoi.TaoKetNoi();
            DataTable bang = new DataTable();
            try
            {
                ketnoi.LenhKetNoi = new SqlCommand(lenh, ketnoi.KetNoi);
                ketnoi.LenhKetNoi.Parameters.Add("@madh", SqlDbType.VarChar);
                ketnoi.LenhKetNoi.Parameters["@madh"].Value = ma;
                ketnoi.LenhKetNoi.Parameters.Add("@masp", SqlDbType.Int);
                ketnoi.LenhKetNoi.Parameters["@masp"].Value = masp;
                //dong bo lenh ket noi voi du lieu trong database
                ketnoi.TichHopCSDL = new SqlDataAdapter(ketnoi.LenhKetNoi);

                ketnoi.TichHopCSDL.Fill(bang);
                if(bang.Rows.Count > 0)
                    ctDH = new DTOChiTietDH(bang.Rows[0]);
            }
            catch
            {
                throw;
            }
            finally
            {
                ketnoi.DongKetNoi();
            }
            return ctDH;
        }
        //cap nhat chi tiet don hang
        public bool CapNhatChiTietDH(DTOChiTietDH dtoCtDH)
        {
            bool ketqua = false;
            ketnoi.TaoKetNoi();
            try
            {
                string lenh = "update ChiTietDH set SoLuong=@sl, ThanhTien=@tt where MaDH=@madh and MaSP=@masp";
                ketnoi.LenhKetNoi = new SqlCommand(lenh, ketnoi.KetNoi);

                ketnoi.LenhKetNoi.Parameters.Add("@madh", SqlDbType.VarChar);
                ketnoi.LenhKetNoi.Parameters.Add("@masp", SqlDbType.Int);
                ketnoi.LenhKetNoi.Parameters.Add("@sl", SqlDbType.Int);
                ketnoi.LenhKetNoi.Parameters.Add("@tt", SqlDbType.Int);

                ketnoi.LenhKetNoi.Parameters["@madh"].Value = dtoCtDH.MaDH;
                ketnoi.LenhKetNoi.Parameters["@masp"].Value = dtoCtDH.MaSP;
                ketnoi.LenhKetNoi.Parameters["@sl"].Value = dtoCtDH.SoLuong;
                ketnoi.LenhKetNoi.Parameters["@tt"].Value = dtoCtDH.ThanhTien;


                if (ketnoi.LenhKetNoi.ExecuteNonQuery() != 0)
                    ketqua = true;
            }
            catch (Exception)
            {
                throw;

            }
            finally
            {
                ketnoi.DongKetNoi();
            }
            return ketqua;
        }
        //DAOThemCTDonHang

        public bool ThemChiTietDH(DTOChiTietDH dtoCtDH)
        {
            bool ketqua = false;
            ketnoi.TaoKetNoi();
            try
            {
                string lenh = "insert into ChiTietDH(MaDH, MaSP, SoLuong, ThanhTien) values (@madh, @masp, @sl, @tt)";
                ketnoi.LenhKetNoi = new SqlCommand(lenh, ketnoi.KetNoi);

                ketnoi.LenhKetNoi.Parameters.Add("@madh", SqlDbType.VarChar);
                ketnoi.LenhKetNoi.Parameters.Add("@masp", SqlDbType.Int);
                ketnoi.LenhKetNoi.Parameters.Add("@sl", SqlDbType.Int);
                ketnoi.LenhKetNoi.Parameters.Add("@tt", SqlDbType.Int);

                ketnoi.LenhKetNoi.Parameters["@madh"].Value = dtoCtDH.MaDH;
                ketnoi.LenhKetNoi.Parameters["@masp"].Value = dtoCtDH.dtoSP.MaSP;
                ketnoi.LenhKetNoi.Parameters["@sl"].Value = dtoCtDH.SoLuong;
                ketnoi.LenhKetNoi.Parameters["@tt"].Value = dtoCtDH.ThanhTien;


                if (ketnoi.LenhKetNoi.ExecuteNonQuery() != 0)
                    ketqua = true;
            }
            catch (Exception)
            {
                throw;

            }
            finally
            {
                ketnoi.DongKetNoi();
            }
            return ketqua;
        }
        public bool CapNhatSLChiTietDH(DTOChiTietDH dto)
        {
            bool ketqua = false;
            ketnoi.TaoKetNoi();
            try
            {
                string lenh = "update ChiTietDH set SoLuong = @sl where MaSP=@ma";
                ketnoi.LenhKetNoi = new SqlCommand(lenh, ketnoi.KetNoi);

                ketnoi.LenhKetNoi.Parameters.Add("@ma", SqlDbType.Int);
                ketnoi.LenhKetNoi.Parameters.Add("@sl", SqlDbType.Int);

                ketnoi.LenhKetNoi.Parameters["@ma"].Value = dto.MaSP;
                ketnoi.LenhKetNoi.Parameters["@sl"].Value = dto.SoLuong;

                if (ketnoi.LenhKetNoi.ExecuteNonQuery() != 0)
                    ketqua = true;
            }
            catch (Exception)
            {

            }
            finally
            {
                ketnoi.DongKetNoi();
            }
            return ketqua;
        }