/// <summary> /// Hàm thực hiện chuyển toàn bộ dữ liệu của bảng hoaDonTam từ cũ sang mới /// Thực hiện tạo mới hoaDonTam mới và xóa hoaDonTam cũ /// </summary> /// <param name="maBanMoi">Mã bàn mới dành cho hoaDonTam mới</param> /// <param name="hdCu">Object chứa hoaDonTam cũ cần chuyển sang</param> /// <param name="hdMoi">Object chứa dữ liệu từ bảng cũ chuyển sang</param> /// <param name="db"></param> /// <returns>2: Thành công</returns> private int themHoaDonChuyenDoi(int maBanMoi, hoaDonTam hdCu, hoaDonTam hdMoi, qlCaPheEntities db) { int kq = 0; hdMoi.ghiChu = hdCu.ghiChu; hdMoi.ngayLap = hdCu.ngayLap; hdMoi.nguoiPhucVu = hdCu.nguoiPhucVu; hdMoi.thoiDiemDen = hdCu.thoiDiemDen; hdMoi.tongTien = hdCu.tongTien; hdMoi.trangThaiHoadon = hdCu.trangThaiHoadon; hdMoi.trangthaiphucVu = hdCu.trangthaiphucVu; hdMoi.maBan = maBanMoi; db.hoaDonTams.Add(hdMoi); kq = db.SaveChanges(); if (kq > 0) { //-----------Thêm mới dữ liệu chi tiết của hoaDonTam cũ sang hoaDonTam mới foreach (ctHoaDonTam ctCu in hdCu.ctHoaDonTams.ToList()) { ctHoaDonTam ctMoi = new ctHoaDonTam(); ctMoi.donGia = ctCu.donGia; ctMoi.maCtTam = ctCu.maCtTam; ctMoi.maSP = ctCu.maSP; ctMoi.soLuong = ctCu.soLuong; ctMoi.trangThaiPhaChe = ctCu.trangThaiPhaChe; ctMoi.maBan = hdMoi.maBan; db.ctHoaDonTams.Add(ctMoi); kq = db.SaveChanges(); } } return(kq); }
/// <summary> /// Hàm thực hiện xóa một chi tiết trong database /// </summary> /// <param name="param">Mã chi tiết cần xóa</param> /// <returns></returns> public string AjaxXoaMotChiTietTam(int param) { string html = ""; if (xulyChung.duocCapNhat(idOfPage, "7")) { try { int kqLuu = 0; qlCaPheEntities db = new qlCaPheEntities(); ctHoaDonTam ctTam = db.ctHoaDonTams.SingleOrDefault(c => c.maCtTam == param); if (ctTam != null) { //----Lưu lại hóa đơn tạm để lấy danh sách hoaDonTam hoaDon = ctTam.hoaDonTam; //----Xóa dữ liệu db.ctHoaDonTams.Remove(ctTam); kqLuu = db.SaveChanges(); xulyChung.ghiNhatKyDtb(3, "Một sản phẩm tại hóa đơn có mã \" " + ctTam.hoaDonTam.maBan + " \""); this.UpdateTongTienHoaDonTamDatabase(db, hoaDon); //------Cập nhật tổng tiền this.luuTongTienVaoSession(hoaDon); html += this.taoBangChiTietTuDatabase(hoaDon); } } catch (Exception ex) { xulyFile.ghiLoi("Class: NghiepVuBanController - Fucntion: AjaxXoaMotChiTietTam", ex.Message); } } return(html); }
//--------------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); }
/// <summary> /// Hàm cập nhật số lượng sản phẩm của 1 chi tiết trong database /// </summary> /// <param name="param">Chuỗi chứa chi tiết cần cập nhật và số lượng cần cập nhật <para /> Có dạng: maCt|soLuong</param> /// <returns></returns> public string AjaxUpdateSoLuongSanPhamTrongDatabase(string param) { string html = ""; if (xulyChung.duocCapNhat(idOfPage, "7")) { try { qlCaPheEntities db = new qlCaPheEntities(); int maCt = xulyDuLieu.doiChuoiSangInteger(param.Split('|')[0]); int soLuong = xulyDuLieu.doiChuoiSangInteger(param.Split('|')[1]); ctHoaDonTam ctSua = db.ctHoaDonTams.SingleOrDefault(c => c.maCtTam == maCt); if (ctSua != null) { //------Cập nhật lại số lượng trong bảng chi tiết ctSua.soLuong = soLuong; db.Entry(ctSua).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); this.UpdateTongTienHoaDonTamDatabase(db, ctSua.hoaDonTam); this.luuTongTienVaoSession(ctSua.hoaDonTam); html += this.taoBangChiTietTuDatabase(ctSua.hoaDonTam); } } catch (Exception ex) { xulyFile.ghiLoi("Class: NghiepVuBanController - Fucntion: AjaxUpdateSoLuongSanPhamTrongDatabase", ex.Message); } } return(html); }
///// <summary> ///// Hàm cập nhật số lượng nguyên liệu trong kho khi pha chế ///// </summary> ///// <param name="ct"></param> ///// <param name="db"></param> //private void capNhatSoLuongNguyenLieu(ctHoaDonTam ct, qlCaPheEntities db) //{ // congThucPhaChe congThucSanPham = ct.sanPham.congThucPhaChes.SingleOrDefault(c=>c.trangThai==true); // if (congThucSanPham != null) // { // //----------Lặp qua từng nguyên liệu trong công thức pha chế sản phẩm // foreach (ctCongThuc ctCongThuc in congThucSanPham.ctCongThucs.ToList()) // { // if (ctCongThuc.nguyenLieu != null) // { // //nguyenLieuDaXuat tonKho = ctCongThuc.nguyenLieu.nguyenLieuDaXuat; // //double soLuongTon = tonKho.soLuongTon; //------Lấy số lượng nguyên liệu hiện tại trong kho // //if (soLuongTon > 0) // //{ // // double soLuongSuDung = (double)ctCongThuc.soLuongNguyenLieu; // // ///-------Cập nhật số lượng nguyên liệu trong kho // // tonKho.soLuongTon -= soLuongSuDung; // // db.Entry(tonKho).State = System.Data.Entity.EntityState.Modified; // // db.SaveChanges(); // //} // } // } // } //} /// <summary> /// Hàm cập nhật trạng thái pha chế của 1 ctHoaDonTam sang hoàn tất /// </summary> /// <param name="maCt"></param> /// <returns></returns> public string AjaxHoanTatMotMon(int maCt) { string kq = ""; try { int kqLuu = 0; qlCaPheEntities db = new qlCaPheEntities(); ctHoaDonTam ctSua = db.ctHoaDonTams.SingleOrDefault(c => c.maCtTam == maCt); if (ctSua != null) { //----Cập nhật trạng thái hoàn tất pha chế cho sản phẩm này. ctSua.trangThaiPhaChe = 2; db.Entry(ctSua).State = System.Data.Entity.EntityState.Modified; kqLuu = db.SaveChanges(); if (kqLuu > 0) { kq += this.taoBangSanPham(ctSua.maBan); //--Tải lại danh sách sản phầm xulyChung.ghiNhatKyDtb(4, "Pha chế hoàn tất cho sản phẩm tại bàn \" " + xulyDuLieu.traVeKyTuGoc(ctSua.hoaDonTam.BanChoNgoi.tenBan) + " \""); } } } catch (Exception ex) { xulyFile.ghiLoi("Class: PhaCheController - Function: AjaxHoanTatMotMon", ex.Message); } return(kq); }
//-----------------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 lặp qua danh sách sản phẩm có trong ctHoadon /// </summary> /// <param name="maBan"></param> /// <param name="trangThai"></param> /// <param name="db"></param> /// <returns></returns> private string lapQuaSanPham(int maBan, int trangThai, qlCaPheEntities db) { string html = ""; try { //--------Lặp qua danh sách sản phẩm trong hóa đơn theo trạng thái cần lấy int indexHoaDonTam = 0; LapLaiDanhSachOrder: //-------Làm móc để xác định vị trí cần chạy tiếp theo ctHoaDonTam ctTam = new ctHoaDonTam(); foreach (ctHoaDonTam ct in db.ctHoaDonTams.Where(c => c.maBan == maBan && c.trangThaiPhaChe == trangThai).ToList().Skip(indexHoaDonTam)) { ctTam = ct; indexHoaDonTam++; break; } if (ctTam.maCtTam > 0) { html += ganDuLieuChiTietHoaDon(ctTam); goto LapLaiDanhSachOrder; //-----Lặp lại lấy danh sách sản phẩm tiếp theo trong hóa đơn } } catch (Exception ex) { xulyFile.ghiLoi("Class: PhaCheController - Function: lapQuaSanPham", ex.Message); } return(html); }
/// <summary> /// Hàm cập nhật trangThaiPhaChe của 1 ctHoaDonTam sang 4 (ĐỀ XUẤT THAY THẾ) /// khi click vào nút btnThayThe /// </summary> /// <param name="param">Chi tiết cần cập nhật</param> /// <returns>Danh sách bảng sản phẩm</returns> public string AjaxDeXuatThayThe(int param) { string kq = ""; if (xulyChung.duocCapNhat(idOfPage, "7")) { try { qlCaPheEntities db = new qlCaPheEntities(); ctHoaDonTam ctSua = db.ctHoaDonTams.SingleOrDefault(ct => ct.maCtTam == param); if (ctSua != null) { //--------CẬP NHẬT SANG ĐỀ XUẤT THAY THẾ ctSua.trangThaiPhaChe = 4; //-----Trạng thái thay thế db.Entry(ctSua).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); //----------Cập nhật lại tổng tiền cho hóa đơn hoaDonTam hdSua = ctSua.hoaDonTam; hdSua.tongTien = new bHoaDonTam().layTongTienSanPham(hdSua); db.Entry(hdSua).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); //------------Trả về bảng danh sách sản phẩm kq += this.taoBangSanPham(ctSua.maBan); this.taoThongBao(db, hdSua.nguoiPhucVu, "Thay thế \"" + xulyDuLieu.traVeKyTuGoc(ctSua.sanPham.tenSanPham) + "\" tại Bàn \"" + xulyDuLieu.traVeKyTuGoc(hdSua.BanChoNgoi.tenBan) + "\""); xulyChung.ghiNhatKyDtb(4, "Đề xuất thay thế sản phẩm"); } } catch (Exception ex) { xulyFile.ghiLoi("Class: PhaCheController - Function: AjaxPhaCheSanPham", ex.Message); } } return(kq); }
/// <summary> /// Hàm gán dữ liệu của 1 object ctHoaDonTam vào 1 dòng trên bảng /// </summary> /// <param name="ct"></param> /// <param name="db"></param> /// <returns></returns> private string ganDuLieuChiTietHoaDon(ctHoaDonTam ct) { string html = ""; //----------Gán dữ liệu cho giao diện html += "<tr>"; html += " <td>"; html += " <div class=\"col-md-4 col-sm-4 col-xs-4 col-lg-4\">"; html += " <img width=\"50px;\" height=\"50px;\" src=\"" + xulyDuLieu.chuyenByteHinhThanhSrcImage(ct.sanPham.hinhAnh) + "\">"; html += " </div>"; html += " <div class=\"col-md-8 col-sm-8 col-xs-8 col-lg-8\">"; html += " <h4>" + xulyDuLieu.traVeKyTuGoc(ct.sanPham.tenSanPham) + "</h4>"; html += " </div>"; html += " </td>"; html += " <td>" + ct.soLuong.ToString() + "</td>"; //----Kiểm tra trạng thái của hóa đơn để thiết lập các nút chức năng tương ứng if (ct.trangThaiPhaChe == 0) //-----Trạng thái đang pha chế --- CÓ CHỨC NĂNG PHA CHẾ SẢN PHẨM HOẶC HỦY { if (new bSanPham().kiemTraSanPhamKhaThi(ct.sanPham)) { html += " <td><button type=\"button\" maCt=\"" + ct.maCtTam.ToString() + "\" class=\"btnPhaChe btn btn-success btn-circle waves-effect waves-circle waves-float\"><i class=\"material-icons\">send</i></button></td>"; } else { html += " <td><button type=\"button\" maCt=\"" + ct.maCtTam.ToString() + "\" class=\"btnThayThe btn btn-warning btn-circle waves-effect waves-circle waves-float\"><i class=\"material-icons\">undo</i></button></td>"; } } else if (ct.trangThaiPhaChe == 1) //----Trạng thái đã pha chế --- CÓ CHỨC NĂNG CẬP NHẬT TRẠNG THÁI PHA CHẾ XONG HOẶC XEM CÔNG THỨC { congThucPhaChe ctSanPham = ct.sanPham.congThucPhaChes.SingleOrDefault(c => c.trangThai == true); if (ctSanPham != null) //-----Tạo nút xem công thức { html += " <td><button type=\"button\" maCongThuc=\"" + ctSanPham.maCongThuc.ToString() + "\" class=\"btnXemCongThuc btn btn-info btn-circle waves-effect waves-circle waves-float\"><i class=\"material-icons\">info_outline</i></button></td>"; } else { html += " <td></td>"; } html += " <td><button type=\"button\" maCt=\"" + ct.maCtTam.ToString() + "\" class=\"btnHoanTat btn btn-danger btn-circle waves-effect waves-circle waves-float\"><i class=\"material-icons\">done</i></button></td>"; } html += "</tr>"; return(html); }
/// <summary> /// Hàm thực hiện xoá chi tiết trong session /// </summary> /// <param name="key">Mã sản phẩm của chi tiết cần xóa</param> /// <returns>Trả về kết quả > 0 thì thêm thành công</returns> public int removeItem(ctHoaDonTam ctXoa) { int kq = 0; try { //Nếu như tìm thấy chi tiết đó trong Session if (this.Item.ContainsKey(ctXoa.maSP)) { this.Item.Remove(ctXoa.maSP); kq++; } } catch (Exception ex) { xulyFile.ghiLoi("Class: cartHoaDonTam - Function: removeItem", ex.Message); } return(kq); }
/// <summary> /// Hàm thêm một sản phẩm vào hóa đơn tạm trong Session /// </summary> /// <returns>Trả về kết quả > 0 thì thêm thành công</returns> public int addCart(ctHoaDonTam x) { int kq = 0; try { ///--------Kiểm tra xem sản phẩm này đã chọn chưa. Nếu chưa thi.......... if (!this.Item.ContainsKey(x.maSP)) { this.Item.Add(x.maSP, x); kq++; } } catch (Exception ex) { xulyFile.ghiLoi("Class: cartHoaDonTam - Function: addCart", ex.Message); } return(kq); }
/// <summary> /// Hàm thực hiện cập nhật số lượng sản phẩm đã chọn trong SEssion /// </summary> /// <param name="hoaDon">Đối tượng hóa đơn cần cập nhật</param> /// <param name="soLuong">Số lượng sản phẩm cần cập nhật</param> public int updateItem(ctHoaDonTam hoaDon) { int kq = 0; try { ///--------Kiểm tra xem có trùng mã nguyên liệu, nếu trùng thì xóa và tạo lại chi tiết if (this.Item.ContainsKey(hoaDon.maSP)) { this.removeItem(hoaDon); this.Item.Add(hoaDon.maSP, hoaDon); kq++; } } catch (Exception ex) { xulyFile.ghiLoi("Class: cartNhapKho - Function: addCart", ex.Message); } return(kq); }
//------------------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); }
/// <summary> /// Hàm thêm mới dữ liệu vào bảng ctPhieuXuatKho khi tiếp nhận pha chế 1 sản phẩm /// </summary> /// <param name="ct"></param> /// <param name="db"></param> private void insertNewCtPhieuXuat(ctHoaDonTam ct, qlCaPheEntities db) { try { //------Nhận mã phiếu xuất vửa thêm khi vào trang. int maPhieuXuat = this.layThamSoTrongSession(1); //---------DUYỆT QUA NGUYÊN LIỆU LÀM NÊN SẢN PHẨM ĐỂ THÊM VÀO PHIẾU XUẤT congThucPhaChe congThucSanPham = ct.sanPham.congThucPhaChes.SingleOrDefault(c => c.trangThai == true); if (congThucSanPham != null) { //----------Lặp qua từng nguyên liệu trong công thức pha chế sản phẩm foreach (ctCongThuc ctCongThuc in congThucSanPham.ctCongThucs.Where(c => c.maNguyenLieu > 0).ToList()) { //---------Lấy thông tin chi tiết để xem nguyên đang duyệt có trong phiếu chưa ctPhieuXuatKho ctXuat = db.ctPhieuXuatKhoes.SingleOrDefault(c => c.maPhieu == maPhieuXuat && c.maNguyenLieu == ctCongThuc.maNguyenLieu); if (ctXuat == null) //--------Chưa có nguyên liệu này trong phiếu => tạo mới { ctXuat = new ctPhieuXuatKho(); ctXuat.maPhieu = maPhieuXuat; ctXuat.maNguyenLieu = (int)ctCongThuc.maNguyenLieu; ctXuat.soLuongXuat = ctCongThuc.soLuongNguyenLieu; ctXuat.donGiaXuat = new bTonKho().layDonGiaNguyenLieuTonKho(ctXuat.maNguyenLieu); ctXuat.ghiChu = "XUẤT NGUYÊN LIỆU KHI PHA CHẾ"; db.ctPhieuXuatKhoes.Add(ctXuat); db.SaveChanges(); } else //-------Cập nhật số lượng nguyên liệu { this.capNhatSoLuongNguyenLieuTrongChiTiet(db, ctXuat, (double)ctCongThuc.soLuongNguyenLieu); } } } } catch (Exception ex) { xulyFile.ghiLoi("Class: PhaCheController - Function: insertCtPhieuXuatKho", ex.Message); } }
public int themChiTietHoaDonTam(int maBan, int maSP, long donGia, int soLuong, int trangThaiPhaChe) { int kq = 0; try { qlCaPheEntities db = new qlCaPheEntities(); ctHoaDonTam ctAdd = new ctHoaDonTam(); //-----Gán các thuộc tính từ session vào object để thêm vào database ctAdd.maSP = maSP; ctAdd.donGia = donGia; ctAdd.soLuong = soLuong; ctAdd.trangThaiPhaChe = trangThaiPhaChe; ctAdd.maBan = maBan; db.ctHoaDonTams.Add(ctAdd); kq = db.SaveChanges(); } catch (Exception ex) { xulyFile.ghiLoi("Class: bNghiepVuBan - Function: themChiTietHoaDonTam", ex.Message); } return(kq); }
/// <summary> /// Hàm xử lý pha chế sản phẩm. Thực hiện các giai đoạn: /// Trừ số lượng nguyên liệu sử dụng trong kho /// Cập nhật trạng thái /// Trả danh sách sản phẩm /// </summary> /// <param name="maCt"></param> /// <returns>Chuổi html tạo danh sách sản phẩm pha chế (Chờ pha chế - Đang pha chế)</returns> public string AjaxPhaCheSanPham(int maCt) { string html = ""; if (xulyChung.duocCapNhat(idOfPage, "7")) { try { qlCaPheEntities db = new qlCaPheEntities(); ctHoaDonTam ctSua = db.ctHoaDonTams.SingleOrDefault(c => c.maCtTam == maCt); if (ctSua != null) { int indexSoLuong = 1; bool hetHang = false; //--------Lặp số lượng sản phẩm để thêm vào phiếu xuất cho hợp lý với tổng số nguyên liệu sử dụng cho 1 order for (int i = 1; i <= ctSua.soLuong; i++) { if (new bSanPham().kiemTraSanPhamKhaThi(ctSua.sanPham)) //-----Nếu còn nguyên liệu để pha chế { this.insertNewCtPhieuXuat(ctSua, db); indexSoLuong = i; } else //------Hết nguyên liệu giữa chừng { hetHang = true; break; } } if (hetHang) { //-----Tạo mới 1 record để đề xuất thay thế ctHoaDonTam ctDeXuat = new ctHoaDonTam(); ctDeXuat.maSP = ctSua.maSP; ctDeXuat.donGia = ctSua.donGia; ctDeXuat.hoaDonTam = ctSua.hoaDonTam; ctDeXuat.maBan = ctSua.maBan; ctDeXuat.sanPham = ctSua.sanPham; ctDeXuat.soLuong = ctSua.soLuong - indexSoLuong; //------Số lượng còn lại = tổng số lượng đã đặt - số lượng đã tiếp nhận ctDeXuat.trangThaiPhaChe = 4; db.ctHoaDonTams.Add(ctDeXuat); db.SaveChanges(); //----------Cập nhật lại tổng tiền của hóa đơn hoaDonTam hdSua = ctSua.hoaDonTam; hdSua.tongTien = new bHoaDonTam().layTongTienSanPham(hdSua); db.Entry(hdSua).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); //---------------Gọi thread tạo thông báo yêu cầu đề xuất } //----Cập nhật trạng thái đang pha chế sản phẩm này. ctSua.soLuong = indexSoLuong; ctSua.trangThaiPhaChe = 1; db.Entry(ctSua).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); html += this.taoBangSanPham(ctSua.maBan); //--Tải lại danh sách tất cả sản phầm xulyChung.ghiNhatKyDtb(2, "Pha chế cho sản phẩm \" " + xulyDuLieu.traVeKyTuGoc(ctSua.sanPham.tenSanPham) + " \""); } } catch (Exception ex) { xulyFile.ghiLoi("Class: PhaCheController - Function: AjaxPhaCheSanPham", ex.Message); } } return(html); }