/// <summary> /// hàm thực hiện đổ dữ liệu của nguyên liệu lên giao diện /// <param name="nl">Đối tượng nguyên liệu cần đổ lên giao diện</param> /// <param name="db">Class kết nối để lấy danh sách loại nguyên liệu cho combobox</param> /// </summary> private void doDuLieuLenView(nguyenLieu nl, qlCaPheEntities db) { string htmlCbb = ""; ViewBag.txtMaNguyenLieu = nl.maNguyenLieu.ToString(); //------Đổ danh sách loại nguyên liệu lên Combobox foreach (loaiNguyenLieu loai in db.loaiNguyenLieux.ToList()) { if (loai.maLoai == nl.maLoai) { htmlCbb += "<option selected value=\"" + loai.maLoai.ToString() + "\">" + xulyDuLieu.traVeKyTuGoc(loai.tenLoai) + "</option>"; } else { htmlCbb += "<option value=\"" + loai.maLoai.ToString() + "\">" + xulyDuLieu.traVeKyTuGoc(loai.tenLoai) + "</option>"; } } ViewBag.cbbLoai = htmlCbb; ViewBag.txtTenNguyenLieu = xulyDuLieu.traVeKyTuGoc(nl.tenNguyenLieu); ViewBag.txtMoTa = xulyDuLieu.traVeKyTuGoc(nl.moTa); ViewBag.txtThoiHan = nl.thoiHanSuDung.ToString(); ViewBag.txtDonViHienThi = xulyDuLieu.traVeKyTuGoc(nl.donViHienThi); ViewBag.txtDonViPhaChe = xulyDuLieu.traVeKyTuGoc(nl.donViPhaChe); ViewBag.txtTyLeChuyenDoi = nl.tyLeChuyenDoi.ToString(); ViewBag.txtGhiChu = xulyDuLieu.traVeKyTuGoc(nl.ghiChu); if (nl.hinhAnh != null) { ViewBag.hinhDD = xulyDuLieu.chuyenByteHinhThanhSrcImage(nl.hinhAnh); } }
/// <summary> /// Hàm thực hiện xóa 1 nguyên liệu khỏi CSDL /// </summary> /// <param name="maNguyenLieu"></param> public void xoaNguyenLieu(int maNguyenLieu) { try { int kqLuu = 0; qlCaPheEntities db = new qlCaPheEntities(); nguyenLieu nlXoa = db.nguyenLieux.Single(nl => nl.maNguyenLieu == maNguyenLieu); if (nlXoa != null) { db.nguyenLieux.Remove(nlXoa); kqLuu = db.SaveChanges(); if (kqLuu > 0) { xulyChung.ghiNhatKyDtb(3, "Nguyên liệu \"" + xulyDuLieu.traVeKyTuGoc(nlXoa.tenNguyenLieu) + " \""); } } else { throw new Exception("Nguyên liệu có mã " + maNguyenLieu + " không tồn tại để xóa bỏ"); } } catch (Exception ex) { xulyFile.ghiLoi("Class: NguyenLieuController - Function: xoaLoaiNguyenLieu", ex.Message); Response.Redirect(xulyChung.layTenMien() + "/Home/PageNotFound"); } }
public ActionResult nl_TaoMoiNguyenLieu(nguyenLieu nl, FormCollection f) { if (xulyChung.duocCapNhat(idOfPage, "7")) { string ndThongBao = ""; int kqLuu = 0; qlCaPheEntities db = new qlCaPheEntities(); try { this.layDuLieuTuView(nl, f); nl.trangThai = true; db.nguyenLieux.Add(nl); kqLuu = db.SaveChanges(); if (kqLuu > 0) { ndThongBao = createHTML.taoNoiDungThongBao("Nguyên liệu", xulyDuLieu.traVeKyTuGoc(nl.tenNguyenLieu), "nl_TableNguyenLieu"); this.resetDuLieu(); xulyChung.ghiNhatKyDtb(2, "Nguyên liệu \" " + xulyDuLieu.traVeKyTuGoc(nl.tenNguyenLieu) + " \""); } } catch (Exception ex) { ndThongBao = ex.Message; xulyFile.ghiLoi("Class: NguyenLieuController - Function: nl_TaoMoiNguyenLieu_Post", ex.Message); ////-----Hiện lại dữ liệu trên giao diện this.resetDuLieu(); this.doDuLieuLenView(nl, db); } this.taoDuLieuChoCbb(db); ViewBag.ThongBao = createHTML.taoThongBaoLuu(ndThongBao); } return(View()); }
/// <summary> /// Hàm thiết kế bảng DANH SÁCH CHI TIẾT, NGUYÊN LIỆU SỬ DỤNG, TỔNG TIỀN NGUYÊN LIỆU được lấy từ Session /// </summary> /// <returns>htmlBangChiTiet|htmlBangNguyenLieuSuDung</returns> public string taoBangChiTietVaNguyenLieuSuDungTuSession() { cartCongThuc cart = (cartCongThuc)Session["congThuc"]; string kq = ""; kq += "<table class=\"table table-hover\">"; kq += " <thead>"; kq += " <tr>";//------Tạo tiêu đề bảng kq += " <th>Bước</th><th>Hành động</th><th>Tên nguyên liệu</th><th>Số lượng</th><th>Đơn vị</th><td>Chức năng</td>"; kq += " </tr>"; kq += " </thead>"; kq += " <tbody>"; try { foreach (ctCongThuc ct in cart.getList().OrderBy(c => c.buocSo)) { kq += " <tr>"; kq += " <th scope=\"row\">" + ct.buocSo.ToString() + "</th>"; kq += " <td>" + xulyDuLieu.traVeKyTuGoc(ct.hanhDong) + "</td>"; //---------Lấy tên nguyên liệu đã chọn nguyenLieu nl = ct.nguyenLieu; if (nl != null) { kq += " <td>" + xulyDuLieu.traVeKyTuGoc(nl.tenNguyenLieu) + "</td>"; } else { kq += " <td></td>"; } kq += " <td>" + ct.soLuongNguyenLieu + "</td>"; kq += " <td>" + xulyDuLieu.traVeKyTuGoc(ct.donViSuDung) + "</td>"; kq += " <td>"; kq += " <div class=\"btn-group open\">"; kq += " <button type=\"button\" class=\"btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\" aria-expanded=\"true\">Chức năng <span class=\"caret\"></span></button>"; kq += " <ul class=\"dropdown-menu\" role=\"menu\">"; kq += " <li><a class=\"col-blue waves-effect waves-block suaBuoc\" maCt=\"" + ct.maChiTiet.ToString() + "\">"; kq += " <i class=\"material-icons\">mode_edit</i>Sửa bước"; kq += " </a></li>"; kq += " <li><a class=\"col-red waves-effect waves-block xoaBuoc\" maCt=\"" + ct.maChiTiet.ToString() + "\">"; kq += " <i class=\"material-icons\">delete</i>Xoá bước"; kq += " </a></li>"; kq += " </ul>"; kq += " </div>"; kq += " </td>"; kq += " </tr>"; } } catch (Exception ex) { xulyFile.ghiLoi("Class CongThucController - Function: taoBangChiTietTuSession", ex.Message); } kq += " </tbody>"; kq += "</table>"; //Trả vê chuỗi htmlBangDanhSachCacBuoc|bảng danh sách nguyên liệu|tongGiaNguyenLieu return(kq + "|" + this.taoBangNguyenLieuSuDung() + "|" + xulyDuLieu.doiVND(cart.getTotalPriceNguyenLieu())); }
/// <summary> /// Hàm thực hiện cập nhật trạng thái của nguyên liệu. /// Trạng thái cập nhật sẽ ngược với trạng thái hiện có. Nếu là true thì thành false và ngược lại /// </summary> /// <param name="maNguyenLieu"></param> /// <returns></returns> public void capNhatTrangThai() { if (xulyChung.duocCapNhat(idOfPage, "7")) { try { int kqLuu = 0; string param = xulyChung.nhanThamSoTrongSession(); if (param.Length > 0) { int maNguyenLieu = xulyDuLieu.doiChuoiSangInteger(param); qlCaPheEntities db = new qlCaPheEntities(); nguyenLieu nlSua = db.nguyenLieux.SingleOrDefault(nl => nl.maNguyenLieu == maNguyenLieu); if (nlSua != null) { bool trangThaiCu = nlSua.trangThai; //Lưu lại trạng thái cũ để chuyển đến trang tương ứng nlSua.trangThai = !trangThaiCu; //Cập nhật trạng thái ngược lại với trạng thái cũ. Nếu true thì thành false và ngược lại db.Entry(nlSua).State = System.Data.Entity.EntityState.Modified; kqLuu = db.SaveChanges(); if (kqLuu > 0) { xulyChung.ghiNhatKyDtb(4, "Cập nhật trạng thái nguyên liệu \" " + xulyDuLieu.traVeKyTuGoc(nlSua.tenNguyenLieu) + " \""); if (trangThaiCu == true)//Chuyển đến danh sách sản phẩm đang sử dụng { Response.Redirect(xulyChung.layTenMien() + "/NguyenLieu/nl_TableNguyenLieu"); } else { Response.Redirect(xulyChung.layTenMien() + "/NguyenLieu/nl_TableNguyenLieuTamNgung"); } } } else { throw new Exception("Nguyên liệu có mã " + maNguyenLieu + " cần cập nhật không tồn tại"); } } else { throw new Exception("không nhận được tham số"); } } catch (Exception ex) { xulyFile.ghiLoi("Class: NguyenLieuController - Function: capNhatTrangThai", ex.Message); Response.Redirect(xulyChung.layTenMien() + "/Home/ServerError"); } } }
/// <summary> /// hàm thực hiện lấy dữ liệu từ View gán cho các thuộc tính của nguyenLieu /// </summary> /// <param name="nl"></param> /// <param name="f"></param> private void layDuLieuTuView(nguyenLieu nl, FormCollection f) { string loi = ""; //Biến ghi nhận thông báo lỗi nl.tenNguyenLieu = xulyDuLieu.xulyKyTuHTML(f["txtTenNguyenLieu"]); if (nl.tenNguyenLieu.Length <= 0) { loi += "Vui lòng nhập tên nguyên liệu <br/>"; } nl.maLoai = xulyDuLieu.doiChuoiSangInteger(f["cbbLoai"]); if (nl.maLoai <= 0) { loi += "Vui lòng chọn loại nguyên liệu <br/>"; } nl.moTa = xulyDuLieu.xulyKyTuHTML(f["txtMoTa"]); if (nl.moTa.Length <= 0) { loi += "Vui lòng nhập thông tin mô tả nguyên liệu </br>"; } nl.thoiHanSuDung = xulyDuLieu.doiChuoiSangInteger(f["txtThoiHan"]); if (nl.thoiHanSuDung <= 0) { loi += "Thời gian sử dụng phải lớn hơn 0 <br/>"; } nl.donViHienThi = xulyDuLieu.xulyKyTuHTML(f["txtDonViHienThi"]); nl.donViPhaChe = xulyDuLieu.xulyKyTuHTML(f["txtDonViPhaChe"]); nl.tyLeChuyenDoi = xulyDuLieu.doiChuoiSangDouble(f["txtTyLeChuyenDoi"]); nl.ghiChu = xulyDuLieu.xulyKyTuHTML(f["txtGhiChu"]); 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 nl.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["txtMaNguyenLieu"] == 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 nguyên liệu<br/>"; } //Nếu có lỗi thì xuất thông báo if (loi.Length > 0) { throw new Exception(loi); } }
public ActionResult nl_ChinhSuaNguyenLieu(FormCollection f) { if (xulyChung.duocCapNhat(idOfPage, "7")) { int kqLuu = 0; nguyenLieu nlSua = new nguyenLieu(); qlCaPheEntities db = new qlCaPheEntities(); try { int maNguyenLieu = Convert.ToInt32(f["txtMaNguyenLieu"]); nlSua = db.nguyenLieux.SingleOrDefault(n => n.maNguyenLieu == maNguyenLieu); if (nlSua != null) { this.layDuLieuTuView(nlSua, f); db.Entry(nlSua).State = System.Data.Entity.EntityState.Modified; kqLuu = db.SaveChanges(); if (kqLuu > 0) { xulyChung.ghiNhatKyDtb(4, "Nguyên liệu \" " + xulyDuLieu.traVeKyTuGoc(nlSua.tenNguyenLieu) + " \""); this.resetDuLieu(); //---Dựa vào trạng thái để chuyển đến trang tương ứng if (nlSua.trangThai) { return(RedirectToAction("nl_TableNguyenLieu")); } else { return(RedirectToAction("nl_TableNguyenLieuTamNgung")); } } } else { throw new Exception("Nguyên liệu cần cập nhật không tồn tại"); } } catch (Exception ex) { ViewBag.ThongBao = createHTML.taoThongBaoLuu(ex.Message); xulyFile.ghiLoi("Class: NguyenLieuController - Function: nl_ChinhSuaNguyenLieu_Post", ex.Message); this.resetDuLieu(); //----Hiện dữ liệu nguyên liệu lại lên view this.doDuLieuLenView(nlSua, db); } } return(View()); }
/// <summary> /// Hàm tạo giao diện chỉnh sửa nguyên liệu /// </summary> /// <param name="maNguyenLieu"></param> /// <returns></returns> public ActionResult nl_ChinhSuaNguyenLieu() { if (xulyChung.duocCapNhat(idOfPage, "7")) { try { string param = xulyChung.nhanThamSoTrongSession(); if (param.Length > 0) { int maNguyenLieu = xulyDuLieu.doiChuoiSangInteger(param); this.resetDuLieu(); qlCaPheEntities db = new qlCaPheEntities(); nguyenLieu nlSua = db.nguyenLieux.SingleOrDefault(n => n.maNguyenLieu == maNguyenLieu); if (nlSua != null) { this.doDuLieuLenView(nlSua, db); xulyChung.ghiNhatKyDtb(1, "Chỉnh sửa nguyên liệu \" " + xulyDuLieu.traVeKyTuGoc(nlSua.tenNguyenLieu) + " \""); } else { throw new Exception("Nguyên liệu có mã " + maNguyenLieu + " không tồn tại để truy cập cập nhật"); } } else { throw new Exception("không nhận được tham số"); } } catch (Exception ex) { xulyFile.ghiLoi("Class: NguyenLieuController - Function: nl_ChinhSuaNguyenLieu_Get", ex.Message); return(RedirectToAction("PageNotFound", "Home")); } } return(View()); }
/// <summary> /// Hàm thực hiện lấy thông tin nguyên liệu khi đã click chọn trên modal /// </summary> /// <param name="maNL"></param> /// <returns></returns> public string layNguyenLieuModal(int maNL) { string kq = ""; try { qlCaPheEntities db = new qlCaPheEntities(); nguyenLieu nl = db.nguyenLieux.SingleOrDefault(n => n.maNguyenLieu == maNL); if (nl != null) { //-----Lấy chi tiết kq += "<img id=\"hinhNguyenLieu\" class='img img-responsive img-thumbnail'"; kq += "src=\"" + xulyDuLieu.chuyenByteHinhThanhSrcImage(nl.hinhAnh) + "\" width=\"250px\" height=\"auto\" />"; kq += "<br />"; kq += "<label id=\"lbTenNguyenLieu\" class=\"font-15 font-italic font-bold col-orange\">" + xulyDuLieu.traVeKyTuGoc(nl.tenNguyenLieu) + "</label>"; kq += "<input id=\"maNguyenLieuDaChon\" type=\"hidden\" value=\"" + nl.maNguyenLieu.ToString() + "\" />"; } } catch (Exception ex) { xulyFile.ghiLoi("Class NguyenLieuController - Function: layNguyenLieuModal", ex.Message); } return(kq); }
/// <summary> /// Hàm chuyển đổi số lượng nguyên liệu từ đơn vị lớn sang đơn vị nhỏ /// <para/> VD: 1 kg => 1000 gam /// </summary> /// <param name="soLuongCu">Số lượng cũ trước khi chuyển đổi</param> /// <param name="nl">Nguyên liệu cần chuyển đổi</param> /// <returns></returns> public double chuyenDoiDonViTuLonSangNho(double?soLuongCu, nguyenLieu nl) { return((double)(soLuongCu * nl.tyLeChuyenDoi)); }
/// <summary> /// Hàm chuyển đổi số lượng nguyên liệu từ đơn vị nhỏ sang đơn vị lớn <para/> /// VD: 1000 gam => 1 kg /// </summary> /// <param name="nl">Nguyên liệu cần chuyển đổi</param> /// <param name="soLuongCu">Số lượng cũ trước khi chuyển đổi</param> /// <returns></returns> public double chuyenDoiDonViNhoSangLon(double?soLuongCu, nguyenLieu nl) { return((double)(soLuongCu / nl.tyLeChuyenDoi)); }