/// <summary> /// Hàm thực hiện Thêm mới 1 bàn vào giỏ đặt bàn /// </summary> /// <param name="param">Tham số chứa mã bàn cần dặt</param> /// <returns>Chuỗi chứa số lượng bàn</returns> public string AjaxDatBan(string param) { int soLuongBanDat = 0; cartDatBan cart = (cartDatBan)Session["datBan"]; try { int maBan = xulyDuLieu.doiChuoiSangInteger(param); qlCaPheEntities db = new qlCaPheEntities(); BanChoNgoi banDat = db.BanChoNgois.SingleOrDefault(b => b.maBan == maBan); if (banDat != null) { //------Thêm bàn cần đặt vào giỏ ctDatBan ctAdd = new ctDatBan(); ctAdd.maBan = banDat.maBan; ctAdd.ghiChu = ""; ctAdd.BanChoNgoi = banDat; cart.addCart(ctAdd); Session["datBan"] = cart; } soLuongBanDat = cart.Info.Count; } catch (Exception ex) { xulyFile.ghiLoi("Class: PublicPageController - Function: AjaxDatBan", ex.Message); Response.Redirect(xulyChung.layTenMien() + "Home/ServerError"); } return("Đã đặt: " + soLuongBanDat.ToString() + " bàn"); }
public ActionResult b_TaoMoiBan(FormCollection f, BanChoNgoi ban) { if (xulyChung.duocCapNhat(idOfPage, "7")) { string ndThongBao = ""; int kqLuu = 0; qlCaPheEntities db = new qlCaPheEntities(); try { this.layDuLieuTuView(f, ban); kiemTraTenBanTrung(db, ban.tenBan); ban.trangThai = 1; //Thiết lập trạng thái bàn đang sử dụng db.BanChoNgois.Add(ban); kqLuu = db.SaveChanges(); if (kqLuu > 0) { ndThongBao = createHTML.taoNoiDungThongBao("Bàn", xulyDuLieu.traVeKyTuGoc(ban.tenBan), "b_TableBan"); this.resetDuLieu(); this.taoDuLieuChoCbb(db); xulyChung.ghiNhatKyDtb(2, "Bàn \" " + xulyDuLieu.traVeKyTuGoc(ban.tenBan) + " \""); } } catch (Exception ex) { //Tạo nội dung thông báo ndThongBao = ex.Message; xulyFile.ghiLoi("Class BanController - Function: b_TaoMoiBan", ex.Message); this.resetDuLieu(); //----Hiện lại dữ liệu khi thông báo lỗi this.doDuLieuLenView(ban, db); } ViewBag.ThongBao = createHTML.taoThongBaoLuu(ndThongBao); } return(View()); }
/// <summary> /// Hàm thực hiện đổ dữ liệu bàn lên view để chỉnh sửa /// </summary> private void doDuLieuLenView(BanChoNgoi ban, qlCaPheEntities db) { if (ban != null) { ViewBag.txtMaBan = ban.maBan.ToString(); //Hiển thị combobox khu vực string htmlCbb = ""; foreach (khuVuc kv in db.khuVucs.ToList().OrderBy(m => m.tenKhuVuc)) { if (kv.maKhuVuc == ban.maKhuVuc) //Nếu bàn thuộc khu vực đang duyệt thì combobox sẽ chọn là cbbKhu vực { htmlCbb += "<option selected value=\"" + kv.maKhuVuc.ToString() + "\">" + xulyDuLieu.traVeKyTuGoc(kv.tenKhuVuc) + "</option>"; } else { htmlCbb += "<option value=\"" + kv.maKhuVuc.ToString() + "\">" + xulyDuLieu.traVeKyTuGoc(kv.tenKhuVuc) + "</option>"; } } ViewBag.cbbKhuVuc = htmlCbb; ViewBag.txtTenBan = xulyDuLieu.traVeKyTuGoc(ban.tenBan); ViewBag.txtGioiThieu = xulyDuLieu.traVeKyTuGoc(ban.gioiThieu); ViewBag.txtSucChua = ban.sucChua.ToString(); ViewBag.txtGhiChu = xulyDuLieu.traVeKyTuGoc(ban.ghiChu); if (ban.hinhAnh != null) { ViewBag.hinhDD = xulyDuLieu.chuyenByteHinhThanhSrcImage(ban.hinhAnh); } } }
/// <summary> /// Hàm tạo các nút chức năng cho bảng danh mục bàn /// </summary> /// <param name="ban"></param> /// <param name="trangThai"></param> /// <returns></returns> private string taoNutChucNangChoBang(BanChoNgoi ban, int trangThai) { string htmlTable = ""; htmlTable += " <div class=\"btn-group\">"; htmlTable += " <button type=\"button\" class=\"btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\">"; htmlTable += " Chức năng <span class=\"caret\"></span>"; htmlTable += " </button>"; htmlTable += " <ul class=\"dropdown-menu\" role=\"menu\">"; htmlTable += createTableData.taoNutChinhSua("/Ban/b_ChinhSuaBan", ban.maBan.ToString()); switch (trangThai) //Thực hiện tạo các chức năng cập nhật trạng thái { case 0: //Cập nhật trạng thái là sửa hoặc sửa dụng htmlTable += " <li><a href=\"capNhatTrangThai?maBan=" + ban.maBan.ToString() + "&trangThai=1\" class=\"col-green\"><i class=\"material-icons\">done_all</i>Sử dụng</a></li>"; htmlTable += " <li><a href=\"capNhatTrangThai?maBan=" + ban.maBan.ToString() + "&trangThai=2\" class=\"col-orange\"><i class=\"material-icons\">build</i>Sữa chữa</a></li>"; break; case 1: //Cập nhật trạng thái là sửa hoặc ngưng sủ dụng htmlTable += " <li><a href=\"capNhatTrangThai?maBan=" + ban.maBan.ToString() + "&trangThai=2\" class=\"col-orange\"><i class=\"material-icons\">build</i>Sữa chữa</a></li>"; htmlTable += " <li><a href=\"capNhatTrangThai?maBan=" + ban.maBan.ToString() + "&trangThai=0\" class=\"col-gray\"><i class=\"material-icons\">cancel</i>Ngưng sử dụng</a></li>"; break; case 2: //Cập nhật trạng thái là sủ dụng hoặc ngưng sử dụng htmlTable += " <li><a href=\"capNhatTrangThai?maBan=" + ban.maBan.ToString() + "&trangThai=1\" class=\"col-green\"><i class=\"material-icons\">done_all</i>Sử dụng</a></li>"; htmlTable += " <li><a href=\"capNhatTrangThai?maBan=" + ban.maBan.ToString() + "&trangThai=0\" class=\"col-gray\"><i class=\"material-icons\">build</i>Ngưng sử chữa</a></li>"; break; } htmlTable += createTableData.taoNutXoaBo(ban.maBan.ToString()); htmlTable += " </ul>"; htmlTable += " </div>"; return(htmlTable); }
/// <summary> /// Hàm thực hiện cập nhật trạng thái của bàn /// </summary> /// <param name="maBan">Mã bàn cần cập nhật</param> /// <param name="trangThai">Trạng thái cần cập nhật: (0: ngừng sử dụng 1: Còn sử dụng, 2: Đang sửa)</param> /// <returns></returns> public ActionResult capNhatTrangThai(int maBan, int trangThai) { if (xulyChung.duocCapNhat(idOfPage, "7")) { try { //----Kiểm tra trạng thái. Chỉ nhận và cập nhật 1 trong 3 trạng thái if (trangThai == 0 || trangThai == 1 || trangThai == 2) { qlCaPheEntities db = new qlCaPheEntities(); int kqLuu = 0; BanChoNgoi banSua = db.BanChoNgois.SingleOrDefault(b => b.maBan == maBan); if (banSua != null) { //----Nếu bàn không sử dụng thì cho phép cập nhật if (!this.kiemTraBanDangSuDung(banSua.maBan, db)) { int ttTemp = (int)banSua.trangThai;//-----Biến lưu lại trạng thái của bàn trước khi cập nhật để khi cập nhật xong sẽ chuyển về giao diện danh mục trước đó banSua.trangThai = trangThai; db.Entry(banSua).State = System.Data.Entity.EntityState.Modified; kqLuu = db.SaveChanges(); if (kqLuu > 0) { xulyChung.ghiNhatKyDtb(4, "Cập nhật trạng thái bàn \" " + xulyDuLieu.traVeKyTuGoc(banSua.tenBan) + " \""); //----Dựa vào trạng thái bàn trước đó để chuyển đến giao diện bàn tương ứng if (ttTemp == 1) { return(RedirectToAction("b_TableBan")); } else if (ttTemp == 2) { return(RedirectToAction("b_TableBanSuaChua")); } } } else { throw new Exception("Bàn chổ ngồi có mã ''" + maBan.ToString() + "' đang sử dụng. không thể cập nhật trạng thái"); } } else { throw new Exception("Bàn chổ ngồi có mã'" + maBan.ToString() + "' không tồn tại để cập nhật"); } } else { throw new Exception("Không thể cập nhật trạng thái '" + trangThai.ToString() + "' cho bàn"); } } catch (Exception ex) { xulyFile.ghiLoi("Class: BanController - Function: capNhatTrangThai", ex.Message); } } //----Mặc định, dựa vào trạng thái để chuyển đến giao diện hợp lý. Nếu không thì sẽ trả về danh mục bàn bị hủy bỏ return(RedirectToAction("b_TableBanHuyBo")); }
public ActionResult b_ChinhSuaBan(FormCollection f) { if (xulyChung.duocCapNhat(idOfPage, "7")) { int kqLuu = 0; BanChoNgoi banSua = new BanChoNgoi(); qlCaPheEntities db = new qlCaPheEntities(); try { int maBan = Convert.ToInt32(f["txtMaBan"]); banSua = db.BanChoNgois.Single(b => b.maBan == maBan); string tenBanCu = banSua.tenBan; //--------Lưu lại tên bàn cũ để tiến hành so sánh tên bàn có tồn tại khi xảy ra thay đổi this.layDuLieuTuView(f, banSua); //----Kiểm tra tên bàn có thay đổi không if (banSua.tenBan != tenBanCu) //-----Nếu tên bàn có thay đổi thì kiểm tra tên bàn đã có tồn tại chưa { this.kiemTraTenBanTrung(db, banSua.tenBan); } db.Entry(banSua).State = System.Data.Entity.EntityState.Modified; kqLuu = db.SaveChanges(); if (kqLuu > 0) { this.resetDuLieu(); xulyChung.ghiNhatKyDtb(4, "Bàn \" " + xulyDuLieu.traVeKyTuGoc(banSua.tenBan) + " \""); //---Dựa vào trạng thái bàn cập nhật hiện tại để chuyển đến giao diện tương ứng if (banSua.trangThai == 0) { return(RedirectToAction("b_TableBanHuyBo")); } else if (banSua.trangThai == 1) { return(RedirectToAction("b_TableBan")); } else if (banSua.trangThai == 2) { return(RedirectToAction("b_TableBanSuaChua")); } } } catch (Exception ex) { ViewBag.ThongBao = createHTML.taoThongBaoLuu(ex.Message); xulyFile.ghiLoi("Class: BanController - Function: b_ChinhSuaBan", ex.Message); //----Hiện lại dữ liệu khi thông báo lỗi this.resetDuLieu(); this.doDuLieuLenView(banSua, db); } } return(View()); }
/// <summary> /// Hàm tạo html cho mỗi bàn đang được duyệt /// </summary> /// <param name="b">Đối tượng bàn đang duyệt để gán dữ liệu</param> /// <param name="trangThai">Dựa vào trạng thái cần lấy danh sách để gán dữ liệu cho title và chức năng có trên item</param> /// <returns>html cho mỗi item bàn</returns> private string htmlItemBan(BanChoNgoi b, int trangThai) { string html = ""; html += "<div class=\"col-lg-4 col-md-4 col-sm-6 col-xs-12\">"; html += " <div class=\"card\">"; html += this.taoHeaderItemBan(b, trangThai);//---Thiết lập title cho bàn trống (Màu sắc) //-----------Body cho cart item bàn html += " <div class=\"body\">"; html += " <img src=\"" + xulyDuLieu.chuyenByteHinhThanhSrcImage(b.hinhAnh) + "\" width=\"100%;\" height=\"auto;\" />"; html += " </div>"; html += " <div class=\"footer\">"; html += this.listButtonFunction(trangThai, b.maBan); html += " </div>"; html += " </div>"; html += "</div>"; return(html); }
/// <summary> /// hàm thực hiện lấy dữ liệu nhập vào từ giao diện /// </summary> /// <param name="f"></param> /// <param name="ban"></param> private void layDuLieuTuView(FormCollection f, BanChoNgoi ban) { string loi = ""; ban.tenBan = xulyDuLieu.xulyKyTuHTML(f["txtTenBan"]); if (ban.tenBan.Length <= 0) { loi += "Vui lòng nhập tên bàn - chổ ngồi <br/>"; } ban.gioiThieu = xulyDuLieu.xulyKyTuHTML(f["txtGioiThieu"]); if (ban.gioiThieu.Length <= 0) { loi += "Vui lòng nhập thông tin giới thiệu cho bàn - chổ ngồi </br>"; } ban.sucChua = xulyDuLieu.doiChuoiSangInteger(f["txtSucChua"]); if (ban.sucChua <= 0) { loi += "Vui lòng nhập sức chứa - chổ ngồi của bàn lớn hơn 0"; } ban.ghiChu = xulyDuLieu.xulyKyTuHTML(f["txtGhiChu"]); ban.maKhuVuc = Convert.ToInt32(f["cbbKhuVuc"]); if (ban.maKhuVuc <= 0) { loi += "Vui lòng chọn khu vực quản lý bàn"; } string pathHinh = f["pathHinh"]; //------Kiểm tra xem có chọn hình không. if (!pathHinh.Equals("")) //Nếu có chọn hình thì luu hình vào csdl { pathHinh = xulyMaHoa.Decrypt(pathHinh); //Giải mã lại chuỗi đường dẫn lưu hình ảnh trên đĩa đã được mã hóa trong ajax ban.hinhAnh = xulyDuLieu.chuyenDoiHinhSangByteArray(pathHinh); //Lưu hình vào thuộc tính hinhAnh } else //-------Nếu không có chọn hình if (f["txtMaBan"] == null) //--------Kiểm tra xem có mã sản phẩm không. Nếu không tức là thêm mới và báo lỗi { loi += "Vui lòng chọn hình ảnh cho bàn <br/>"; } if (loi.Length > 0) { throw new Exception(loi); } }
/// <summary> /// Hàm tạo header cho item cart bàn /// <param name="b">Object bàn để gán các thuộc tính lên header</param> /// <param name="trangThai">-1: Danh sách bàn trống - 0:Trạng thái bàn vừa nhận (Khách vừa vào và chưa gọi món) - 1:Trạng thái bàn đã order -- 3:Trạng thái bàn đang chờ dọn dẹp</param> /// </summary> /// <returns>Html cho div title để xác định màu</returns> private string taoHeaderItemBan(BanChoNgoi b, int trangThai) { string html = "<div class=\"header "; switch (trangThai) //-------Thiết lập màu header phụ thuộc vào trạng thái của bàn { case -1: //---Danh sách bàn trống. Màu XÁM html += " bg-grey"; break; case 0: //Trạng thái bàn vừa nhận (Khách vừa vào và chưa gọi món) . Màu XANH LÁ MẠ html += " bg-light-green "; break; case 1: //Trạng thái bàn khách đã gọi đồ uống gọi món. Màu ĐỎ html += "bg-red "; break; case 3: //Trạng thái bàn đang chờ trả bàn reset lại. Màu TÍM html += " bg-purple "; break; default: break; } html += "\" >"; //Đóng starttag header html += " <h2>" + xulyDuLieu.traVeKyTuGoc(b.tenBan) + " - Sức chứa: " + b.sucChua.ToString() + " chỗ"; //------------------------------Gán thông tin GIỚI THIỆU BÀN lên giao diện. Thực hiện CẮT CHUỔI đối với bàn có thông tin giới thiệu LỚN HƠN 38 ký tự html += " <small>" + xulyDuLieu.traVeKyTuGoc(xulyDuLieu.xulyCatChuoi(b.gioiThieu, 38)) + "</small>"; html += " </h2>"; if (trangThai == 0 || trangThai == 1) //------Nếu trạng thái bàn CÓ KHÁCH NGỒI CHƯA ORDER hoặc bàn ĐÃ ORDER thì thêm chức năng ĐỔI CHỔ { html += " <ul class=\"header-dropdown m-r--5\">"; html += " <li class=\"dropdown\">"; html += " <a class=\"dropdown-toggle\" data-toggle=\"dropdown\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">"; html += " <i class=\"material-icons\">more_vert</i>"; html += " </a>"; html += " <ul class=\"dropdown-menu pull-right\">"; html += " <li><a data-toggle=\"modal\" data-target=\"#modalDoiBan\" maban=\"" + b.maBan.ToString() + "\" class=\"doiCho col-cyan waves-effect\"><i class=\"bg-red material-icons\">update</i>Đổi chổ</a></li>"; html += " </ul>"; html += " </li>"; html += " </ul>"; } html += "</div>"; //-------Đóng div header return(html); }
/// <summary> /// Hàm thực hiện tạo giao diện chỉnh sửa bàn /// </summary> /// <param name="maBan"></param> /// <returns></returns> public ActionResult b_ChinhSuaBan() { if (xulyChung.duocCapNhat(idOfPage, "7")) { try { this.resetDuLieu(); //------Tạo biến nhận request từ session string param = xulyChung.nhanThamSoTrongSession(); if (param.Length > 0) { int maBan = xulyDuLieu.doiChuoiSangInteger(param); qlCaPheEntities db = new qlCaPheEntities(); BanChoNgoi banSua = db.BanChoNgois.SingleOrDefault(b => b.maBan == maBan); if (banSua != null) { this.doDuLieuLenView(banSua, db); xulyChung.ghiNhatKyDtb(1, "Chỉnh sửa bàn \" " + xulyDuLieu.traVeKyTuGoc(banSua.tenBan) + " \""); } else { throw new Exception("Bàn có mã '" + maBan.ToString() + "' không tồn tại để thực hiện cập nhật"); } } else { throw new Exception("không được nhận tham số"); } } catch (Exception ex) { xulyFile.ghiLoi("Class: BanController - Function: b_ChinhSuaBan_Get", ex.Message); return(RedirectToAction("PageNotFound", "Home")); } } return(View()); }