/// <summary> /// Hàm tạo nội dung chi tiết của từng bước /// </summary> /// <param name="ct"></param> /// <param name="index"></param> /// <returns></returns> private string htmlNoiDungChoTungBuoc(ctCongThuc ct, int index) { string kq = ""; if (index == 0) { kq += " <div class=\"tab-pane active\" role=\"tabpanel\" id=\"step" + ct.buocSo.ToString() + "\">"; //---Kiểm tra nếu là phần tử đầu tiên thì thêm class active } else { kq += " <div class=\"tab-pane\" role=\"tabpanel\" id=\"step" + ct.buocSo.ToString() + "\">"; } kq += " <h3>Bước " + ct.buocSo.ToString() + "</h3>"; kq += " <div class=\"col-lg-6 col-md-6 col-xs-6\"><b>HÀNH ĐỘNG</b><p class=\"lead col-pink\">" + xulyDuLieu.traVeKyTuGoc(ct.hanhDong) + "</p></div>"; if (ct.maNguyenLieu > 0) {//---Có nguyên liệu thì lấy thông tin nguyên liệu kq += " <div class=\"col-lg-6 col-md-6 col-xs-6\">"; kq += " <b>NGUYÊN LIỆU SỬ DUNG</b><img src=\"" + xulyDuLieu.chuyenByteHinhThanhSrcImage(ct.nguyenLieu.hinhAnh) + "\">"; kq += "<p class=\"lead col-cyan\">" + xulyDuLieu.traVeKyTuGoc(ct.nguyenLieu.tenNguyenLieu) + "</p>"; kq += " <p class=\"font-bold col-orange\">Số lượng sử dụng: " + ct.soLuongNguyenLieu.ToString() + " " + xulyDuLieu.traVeKyTuGoc(ct.nguyenLieu.donViPhaChe) + " = " + xulyDuLieu.traVeKyTuGoc(ct.donViSuDung) + "</p>"; kq += " </div>"; } kq += " <div class=\"col-lg-9 col-md-9 col-xs-9 \"><label class=\"pull-left col-teal\"><i>* Ghi chú cho bước: </i>" + xulyDuLieu.traVeKyTuGoc(ct.ghiChu) + "</label></div>"; kq += " </div>"; return(kq); }
/// <summary> /// hàm thực hiện thêm chi tiết công thức vào database /// </summary> /// <param name="maCongThuc"></param> private void themChiTietVaoDatabase(int maCongThuc, qlCaPheEntities db) { try { //------lấy danh sách các chi tiết trong session cartCongThuc cart = (cartCongThuc)Session["congThuc"]; //------Lặp qua từng phần tử có trong list và thêm vào database foreach (ctCongThuc ct in cart.getList()) { ctCongThuc ctThem = new ctCongThuc(); //----Vì mã ct và ctThem khác nhau nên cần gán lại giá trị ctThem.buocSo = ct.buocSo; ctThem.ghiChu = ct.ghiChu; ctThem.hanhDong = ct.hanhDong; ctThem.maCongThuc = maCongThuc; if (ct.maNguyenLieu != 0) //---Kiểm tra, nếu có nguyên liệu thì thêm các thuộc tính của nguyên liệu { ctThem.maNguyenLieu = ct.maNguyenLieu; ctThem.soLuongNguyenLieu = ct.soLuongNguyenLieu; ctThem.donViSuDung = ct.donViSuDung; } //----Thêm vào database db.ctCongThucs.Add(ctThem); db.SaveChanges(); } } catch (Exception ex) { xulyFile.ghiLoi("Class CongThucController - Function: themChiTietVaoDatabase", ex.Message); } }
/// <summary> /// Hàm thực hiện xóa 1 bước trong Session /// </summary> /// <param name="maCt">Mã chi tiết công thức cần xóa</param> /// <returns>Bảng danh sách các bước còn lại trong session</returns> public string xoaMotBuoc(int maCt) { cartCongThuc cart = (cartCongThuc)Session["congThuc"]; if (maCt > 0) { //-------Lấy công thức cần xóa có trong cart ctCongThuc ctXoa = cart.getList().SingleOrDefault(c => c.maChiTiet == maCt); if (ctXoa != null) { cart.removeItem(ctXoa.maChiTiet); Session["congThuc"] = cart; } } //-----Trả về chuỗi bao gồm htmlTablBangDanhSachBuoc|BangDanhSachNguyenLieu|TongTienNguyenLieu return(this.taoBangChiTietVaNguyenLieuSuDungTuSession()); }
/// <summary> /// Hàm tạo script cho mỗi bước của công thức. Khi người dùng click vào mỗi item dưới đây sẽ hiện chi tiết của công thức đó /// </summary> /// <param name="ct">Mỗi bước đang lặp qua</param> /// <param name="index">Thứ tự để gán class Active để kích hoạt chọn bước đầu tiên</param> /// <returns></returns> private string htmlStepListModalChitietCongThuc(ctCongThuc ct, int index) { string kq = ""; kq += "<li role=\"presentation\""; if (index == 0) //--Active tabb bước 1 { kq += " class=\"active\">"; } else { kq += " >"; //-----Đóng tag li } kq += " <a href=\"#step" + ct.buocSo.ToString() + "\" data-toggle=\"tab\" aria-controls=\"step1\" role=\"tab\" title=\"Bước " + ct.buocSo.ToString() + "\">"; kq += " <span class=\"round-tab\">" + ct.buocSo.ToString() + "</span></a></li>"; return(kq); }
/// <summary> /// Hàm thực hiện lấy thông tin chi tiết rồi đổ dữ liệu lên giao diện khi người dùng click vào chỉnh sửa chi tiết /// </summary> /// <param name="maCt"></param> /// <returns>Trả về chuỗi dữ liệu trong chi tiết theo dạng /// buocSo|hanhDong|ghiChu|soLuongSuDung|donViSuDung|maChiTiet|maNguyenLieuVaHinhAnh</returns> public string doDuLieuChiTietLenView(int maCt) { string kq = ""; cartCongThuc cart = (cartCongThuc)Session["congThuc"]; ctCongThuc ctSua = cart.getItem(maCt);; if (ctSua != null) { string imgAndID = ""; if (ctSua.nguyenLieu != null) //-----Kiểm tra xem có nguyên liệu để gán hình và mã nguyên liệu cập nhật { //------Tạo chuỗi hiện hình nguyên liệu nếu bước có nguyên liệu. imgAndID += "<img id=\"hinhNguyenLieu\" class='img img-responsive img-thumbnail'"; imgAndID += "src=\"" + xulyDuLieu.chuyenByteHinhThanhSrcImage(ctSua.nguyenLieu.hinhAnh) + "\" width=\"250px\" height=\"auto\" />"; imgAndID += "<input id=\"maNguyenLieuDaChon\" type=\"hidden\" value=\"" + ctSua.maNguyenLieu.ToString() + "\" />"; } kq += ctSua.buocSo.ToString() + "|" + xulyDuLieu.traVeKyTuGoc(ctSua.hanhDong) + "|" + xulyDuLieu.traVeKyTuGoc(ctSua.ghiChu) + "|" + ctSua.soLuongNguyenLieu.ToString() + "|" + xulyDuLieu.traVeKyTuGoc(ctSua.donViSuDung) + "|" + ctSua.maChiTiet.ToString() + "|" + imgAndID; } return(kq); }
/// <summary> /// Hàm thực hiện ajax thêm các bước vào bảng và thực hiện lấy danh sách các bước có trong cart đổ lên giao diện /// </summary> /// <returns>Trả vê chuỗi htmlBangDanhSachCacBuoc|bảng danh sách nguyên liệu|tongGiaNguyenLieu</returns> public string themChiTietVaTraVeBang(string duLieu) { cartCongThuc cart = (cartCongThuc)Session["congThuc"]; try { ctCongThuc chiTietAdd = new ctCongThuc(); this.layDuLieuTuViewChiTiet(chiTietAdd, duLieu); //------Thêm chi tiết vào session cart.addCart(chiTietAdd); //-----Cập nhật lại session Session["congThuc"] = cart; } catch (Exception ex) { xulyFile.ghiLoi("Class CongThucController - Function: themChiTietVaTraVeBang", ex.Message); } //Trả vê chuỗi htmlBangDanhSachCacBuoc|bảng danh sách nguyên liệu|tongGiaNguyenLieu return(taoBangChiTietVaNguyenLieuSuDungTuSession()); }
/// <summary> /// Hàm thêm chi tiết công thức đã chọn vào Session /// </summary> public void addCart(ctCongThuc x) { try { ///--------Kiểm tra xem có trùng mã nguyên liệu, nếu không thì mới cho thêm vào if (!this.Item.ContainsKey(x.maChiTiet)) { this.Item.Add(x.maChiTiet, x); } //---Nếu như nguyên liệu đã có trong session thì xóa và cập nhật nguyên liệu mới else { //-----Xóa nguyên liệu this.removeItem(x.maChiTiet); this.Item.Add(x.maNguyenLieu, x); } } catch (Exception ex) { xulyFile.ghiLoi("Class: cartCongThuc- Function: addCart", ex.Message); } }
/// <summary> /// Hàm thực hiện lấy dữ liệu chi tiết gán vào các thuộc tính của chi tiết /// </summary> /// <param name="chiTiet"></param> /// <param name="duLieu">Chuỗi dữ liệu được lấy khi ajax gửi về. Dữ liệu là các giá trị trong textbox nhập vào chi tiết /// có dang: maNguyenLieu|buocSo|soLuong|donVi|hanhDong|ghiChu</param> private void layDuLieuTuViewChiTiet(ctCongThuc chiTiet, string duLieu) { string loi = ""; //------Thực hiện xử lý cắt chuỗi duLieu để lấy giá trị của các thuộc tính int maNguyenLieu = xulyDuLieu.doiChuoiSangInteger(duLieu.Split('|')[0]); if (maNguyenLieu > 0) { //-----Gán nguyên liệu vào chi tiết qlCaPheEntities db = new qlCaPheEntities(); chiTiet.nguyenLieu = db.nguyenLieux.SingleOrDefault(c => c.maNguyenLieu == maNguyenLieu); } int buocSo = xulyDuLieu.doiChuoiSangInteger(duLieu.Split('|')[1]); if (buocSo <= 0) { loi += "Vui lòng nhập bước thực hiện <br/>"; } double soLuongSuDung = xulyDuLieu.doiChuoiSangDouble(duLieu.Split('|')[2]); string donViSuDung = xulyDuLieu.xulyKyTuHTML(duLieu.Split('|')[3]); string hanhDong = xulyDuLieu.xulyKyTuHTML(duLieu.Split('|')[4]); if (hanhDong.Length <= 0) { loi += "Vui lòng nhập hành động cho bước này <br/>"; } string ghiChu = xulyDuLieu.xulyKyTuHTML(duLieu.Split('|')[5]); if (loi.Length > 0) { throw new Exception(loi); } chiTiet.maChiTiet = ++maChiTietTam; chiTiet.maNguyenLieu = maNguyenLieu; chiTiet.buocSo = buocSo; chiTiet.soLuongNguyenLieu = soLuongSuDung; chiTiet.donViSuDung = donViSuDung; chiTiet.hanhDong = hanhDong; chiTiet.ghiChu = ghiChu; }
/// <summary> /// Hàm thực hiện chỉnh sửa lại bước trong session /// </summary> /// <param name="maCt">Mã chi tiết để xác định chi tiết cần sửa</param> /// <param name="duLieu">Chuỗi chứa dữ liệu chỉnh sửa có dang: maNguyenLieu|buocSo|soLuong|donVi|hanhDong|ghiChu</param> /// <returns>Trả vê chuỗi htmlBangDanhSachCacBuoc|bảng danh sách nguyên liệu|tongGiaNguyenLieu</returns> public string chinhSuaBuoc(string duLieu, int maCt) { cartCongThuc cart = (cartCongThuc)Session["congThuc"]; try { //-----Lấy ra 1 phần tử trong session với điều kiện..... ctCongThuc chiTietSua = cart.getItem(maCt); this.layDuLieuTuViewChiTiet(chiTietSua, duLieu); //----Xóa bước cũ trong session và tạo lại cart.removeItem(maCt); chiTietSua.maChiTiet = maCt; cart.addCart(chiTietSua); //------Cập nhật lại session Session["congThuc"] = cart; } catch (Exception ex) { xulyFile.ghiLoi("Class CongThucController - Function: chinhSuaBuoc", ex.Message); } return(taoBangChiTietVaNguyenLieuSuDungTuSession()); }