/// <summary>
        /// hàm thực hiện lưu tổng tiền từ bảng ctHoaDonTam vào session
        /// </summary>
        /// <param name="maBan"></param>
        /// <param name="db"></param>
        /// <returns></returns>
        private void luuTongTienVaoSession(hoaDonTam hdTam)
        {
            cartHoaDonTam tongTien = (cartHoaDonTam)Session["hoaDonTam"];

            tongTien.tongTienDtb = (long)hdTam.tongTien;
            Session["hoaDonTam"] = tongTien;
        }
 void Session_Start(object sender, EventArgs e)
 {
     //--Tạo session object chứa chi tiết công thức pha chế
     Session["congThuc"] = new cartCongThuc();
     //--Tạo session object chứa thông tin chi tiết phiếu nhập kho
     Session["ctNhapKho"] = new cartNhapKho();
     //--Tạo session object chứa thông tin chi tiết của hóa đơn tạm
     Session["hoaDonTam"] = new cartHoaDonTam();
     //--Tạo session lưu đường dẫn và request
     Session["urlAction"] = "";
     //--Tạo session object chứa thông tin chi tiết phiếu xuất kho
     Session["ctXuatKho"] = new cartXuatKho();
     //--Tạo session object chứa thông tin nguyên liệu cần kiểm kho
     Session["truocKiemKho"] = new cartKiemKho();
     //--Tạo session object chứa thông tin nguyên liệu đã kiểm
     Session["sauKiemKho"] = new cartKiemKho();
     //--Tạo session chứa danh sách các trang được phép truy cập
     Session["quyenHan"] = new cartQuyenHan();
     //--Tạo session chứa thông tin chi tiết điều phối
     Session["dieuPhoi"] = new cartDieuPhoi();
     //--Tạo session chứa object các mục tiêu chưa đánh giá
     Session["chuaDanhGia"] = new cartMucTieu();
     //--Tạo session chứa object các mục tiêu đã đánh giá
     Session["daDanhGia"] = new cartDanhGia();
     //--Tạo session object chứa thông tin người dùng đăng nhập hệ thống
     Session["login"] = new taiKhoan();
     //--Tạo session object chứa các bàn đã đặt
     Session["datBan"] = new cartDatBan();
 }
        //--------------DELETE----------------------
        /// <summary>
        /// Hàm thực hiện xóa 1 sản phẩm khỏi giỏ
        /// </summary>
        /// <param name="param">Mã sản phẩm cần xóa</param>
        /// <returns>Chuỗi html danh sách sản phẩm còn lại trong giỏ</returns>
        public string AjaxXoaMotSanPhamKhoiGio(int param)
        {
            string html = "";

            if (xulyChung.duocCapNhat(idOfPage, "7"))
            {
                try
                {
                    cartHoaDonTam cart = (cartHoaDonTam)Session["hoaDonTam"];
                    //------Kiểm tra xem sản phẩm có trong cart chưa
                    ctHoaDonTam ct = cart.getItem(param);
                    if (ct != null)
                    {
                        long donGia = ct.donGia;
                        //----Thực hiện xóa khỏi cart
                        cart.removeItem(ct);
                        //-----Cập nhật lại Session
                        Session["hoaDonTam"] = cart;
                    }
                    html += this.taoBangChiTietTuSession(cart.getList(), cart.tongTienDtb + cart.getTotalAmount());
                }
                catch (Exception ex)
                {
                    xulyFile.ghiLoi("Class: NghiepVuBanController - Fucntion: AjaxThemSanPhamVaoGio", ex.Message);
                }
            }
            return(html);
        }
        //-----------------UPDATE----------------
        /// <summary>
        /// Hàm thực hiện cập nhật lại số lượng chọn sản phẩm trong session
        /// </summary>
        /// <param name="param">Tham số có dạng: maSP|soLuong</param>
        /// <returns>Chuỗi html danh sách sản phẩm và đơn giá của sản phẩm cập nhật</returns>
        public string AjaxUpdateSoLuongSanPhamTrongGio(string param)
        {
            cartHoaDonTam cart = (cartHoaDonTam)Session["hoaDonTam"];

            if (xulyChung.duocCapNhat(idOfPage, "7"))
            {
                try
                {
                    int         maSP    = xulyDuLieu.doiChuoiSangInteger(param.Split('|')[0]);
                    int         soLuong = xulyDuLieu.doiChuoiSangInteger(param.Split('|')[1]);
                    ctHoaDonTam ct      = cart.getItem(maSP);
                    if (ct != null)
                    {
                        ct.soLuong = soLuong;
                        cart.updateItem(ct);
                        Session["hoaDonTam"] = cart;
                    }
                }
                catch (Exception ex)
                {
                    xulyFile.ghiLoi("Class: NghiepVuBanController - Fucntion: AjaxUpdateSoLuongSanPhamTrongGio", ex.Message);
                }
            }
            return(this.taoBangChiTietTuSession(cart.getList(), cart.getTotalAmount() + cart.tongTienDtb));
        }
        /// <summary>
        /// Hàm tạo bảng dữ liệu từ table ctHoaDonTam trong database theo mã bàn hóa đơn
        /// </summary>
        /// <param name="list"></param>
        /// <returns>Trả về chuỗi html tạo nên bảng và số tổng tiền </returns>
        private string taoBangChiTietTuDatabase(hoaDonTam hoaDon)
        {
            string html = "";

            try
            {
                html += this.taoBangDanhSachSanPhamDaOrder(hoaDon.ctHoaDonTams.ToList(), "txtSoLuong", "btnUpdateDtb", "btnRemoveDtb");
                //--------Lấy tổng tiền trong bảng hoaDonTam có trong session
                cartHoaDonTam tongTien = (cartHoaDonTam)Session["hoaDonTam"];
                //--------Hiện tổng số tiền của hóa đơn
                html += "<div class=\"col-md-9\" id=\"divTongTien\" style=\"display:block\"><p class=\"font-16 font-bold col-pink\">Tạm tính: <i>" + xulyDuLieu.doiVND(tongTien.tongTienDtb) + " </p></div>";
            }
            catch (Exception ex)
            {
                xulyFile.ghiLoi("Class: NghiepVuBanController - Fucntion: taoBangChiTietTuDatabase", ex.Message);
            }
            return(html);
        }
        //------------------CREATE----------

        /// <summary>
        /// Hàm thêm sản phẩm vào cart hoaDonTam trong session
        /// </summary>
        /// <param name="param">Mã sản phẩm cần add</param>
        /// <returns>Trả về danh sách sản phẩm có trong sesion</returns>
        public string AjaxThemSanPhamVaoGio(int param)
        {
            string htmlListOrder = "";

            if (xulyChung.duocCapNhat(idOfPage, "7"))
            {
                try
                {
                    cartHoaDonTam cart = (cartHoaDonTam)Session["hoaDonTam"];
                    //------Lấy thông tin sản phẩm để thêm vào chi tiết
                    sanPham sp = new qlCaPheEntities().sanPhams.SingleOrDefault(s => s.maSanPham == param);
                    //------Kiểm tra xem sản phẩm có trong cart chưa
                    ctHoaDonTam ct = cart.getItem(param);
                    if (ct == null)
                    {                               //-----TẠO MỚI
                        ct                 = new ctHoaDonTam();
                        ct.maCtTam         = param; //----Lấy mã sản phẩm làm key trong trường hợp nếu có sản phẩm trùng thì tăng số lượng
                        ct.maSP            = param;
                        ct.donGia          = sp.donGia; ct.soLuong = 1;
                        ct.trangThaiPhaChe = 0;//Thiết lập trạng thái vừa tiếp nhận
                        ct.sanPham         = sp;
                        cart.addCart(ct);
                    }
                    else //------Nếu như đã có sản phẩm trong cart. TĂNG SỐ LƯỢNG
                    {
                        ct.soLuong++;
                        cart.updateItem(ct);
                    }
                    Session["hoaDonTam"] = cart;
                    htmlListOrder        = this.taoBangChiTietTuSession(cart.getList(), cart.tongTienDtb + cart.getTotalAmount());
                }
                catch (Exception ex)
                {
                    xulyFile.ghiLoi("Class: NghiepVuBanController - Fucntion: AjaxThemSanPhamVaoGio", ex.Message);
                    Response.Redirect("http://localhost:54272/Home/h_AccessDenied");
                }
            }
            return(htmlListOrder);
        }
 //------------------Cập nhật trạng thái sang 1----------------
 /// <summary>
 /// Hám thực hiện thêm dữ liệu vào bảng chi tiết hóa đơn trong database <para/>
 /// Khi hoàn tất order
 /// </summary>
 /// <param name="param">Chuỗi chứa mã bàn cần cập nhật và ghi chú <para/> VD: 12|GhiChu</param>
 /// <returns></returns>
 public void AjaxThemChiTietHoaDon(string param)
 {
     if (xulyChung.duocCapNhat(idOfPage, "7"))
     {
         try
         {
             cartHoaDonTam cart = (cartHoaDonTam)Session["hoaDonTam"];
             if (cart.Item.Count > 0)//Kiểm tra xem có sản phẩm trên session. Nếu có mới cho thêm
             {
                 int          kqLuu     = 0;
                 int          maBan     = xulyDuLieu.doiChuoiSangInteger(param.Split('|')[0]);
                 bNghiepVuBan bNghiepVu = new bNghiepVuBan();
                 //--------cập nhật trạng thái hóa đơn tạm sang đã order
                 long tongTien = cart.tongTienDtb + cart.getTotalAmount();
                 kqLuu = bNghiepVu.capNhatDaOrder(maBan, tongTien, xulyDuLieu.xulyKyTuHTML(param.Split('|')[1]));
                 if (kqLuu > -1) //----Nhận order thành công
                 {
                     int soLuongItem = cart.getList().Count;
                     foreach (ctHoaDonTam ctSession in cart.getList())
                     {
                         //---KqLuu tăng lên sau mỗi lần cập nhật thành công
                         kqLuu += bNghiepVu.themChiTietHoaDonTam(maBan, ctSession.maSP, ctSession.donGia, ctSession.soLuong, ctSession.trangThaiPhaChe);
                     }
                     //----Nếu kqLuu lớn hơn số lần thêm chi tiết thành công và số lần cập nhật trạng thái
                     if (kqLuu > soLuongItem)
                     {
                         this.resetData();//Xóa tất cả dữ liệu trong session
                         xulyChung.ghiNhatKyDtb(2, "Nhận đặt hàng tại bàn");
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             xulyFile.ghiLoi("Class: NghiepVuBanController - Function: AjaxThemChiTietHoaDon", ex.Message);
         }
     }
 }