/// <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); }
/// <summary> /// Hàm CẬP NHẬT LẠI BÀN CHO HÓA ĐƠN TẠM <para /> /// KHI ĐỔI BÀN /// </summary> /// <param name="db">Object thực thi entities</param> /// <param name="hoaDonCu">Object chứa các giá trị của hóa đơn cũ</param> /// <param name="maBanMoi">Mã bàn mới cần cập nhật sang</param> /// <returns></returns> public int capNhatHoaDonTam(qlCaPheEntities db, hoaDonTam hoaDonCu, int maBanMoi) { int kq = 0; try { //thiết lập lại các thuộc tính của bàn mới hoaDonTam hoaDonMoi = new hoaDonTam(); hoaDonMoi.ghiChu = hoaDonCu.ghiChu; hoaDonMoi.ngayLap = hoaDonCu.ngayLap; hoaDonMoi.nguoiPhucVu = hoaDonCu.nguoiPhucVu; hoaDonMoi.thoiDiemDen = hoaDonCu.thoiDiemDen; hoaDonMoi.tongTien = hoaDonCu.tongTien; hoaDonMoi.trangThaiHoadon = hoaDonCu.trangThaiHoadon; hoaDonMoi.trangthaiphucVu = hoaDonCu.trangthaiphucVu; hoaDonMoi.maBan = maBanMoi; db.hoaDonTams.Add(hoaDonMoi); kq = db.SaveChanges(); if (kq > 0) { this.capNhatChiTietHoaDonCuSangMoi(db, hoaDonCu.ctHoaDonTams.ToList(), maBanMoi); this.xoaHoaDonTam(db, hoaDonCu); } } catch (Exception ex) { xulyFile.ghiLoi("Class: bHoaDonTam - Fucntion: capNhatHoaDonTam", ex.Message); } return(kq); }
public int tiepNhanThanhToan(int maBan) { int kq = 0; try { qlCaPheEntities db = new qlCaPheEntities(); hoaDonTam hdSua = db.hoaDonTams.SingleOrDefault(b => b.maBan == maBan); if (hdSua != null) { //------Xét trạng thái hóa đơn ĐÃ ORDER thì mới được phép cập nhật if (hdSua.trangThaiHoadon == 1) { hdSua.trangThaiHoadon = 2;//--Cập nhật trạng thái hóa đơn thành đang chờ thanh toán - Để hiển thị trong danh sách hóa đơn chờ thanh toán. db.Entry(hdSua).State = System.Data.Entity.EntityState.Modified; kq = db.SaveChanges(); } } } catch (Exception ex) { xulyFile.ghiLoi("Class: bNghiepVuBan - Fucntion: tiepNhanThanhToan", ex.Message); } return(kq); }
/// <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 thực hiện thêm mới 1 bàn vào hóa đơn tạm khi có khách đến trong CSDL <para /> /// TIẾP NHẬN BÀN /// </summary> /// <param name="param">Chuỗi chứa mã bàn có dạng maBanMoi|maBanCu</param> /// <returns>Trả về danh sách bàn của khu vực và của trạng thái</returns> public void AjaxTiepNhanBan(string param) { if (xulyChung.duocCapNhat(idOfPage, "7")) { try { bHoaDonTam bHoaDonTam = new bHoaDonTam(); //-------Tiến hành xử lý chuỗi param chia thành 2 tham số maBan mới cần chuyển sang và mã bàn cũ int maBanMoi = xulyDuLieu.doiChuoiSangInteger(param.Split('|')[0]); int maBanCu = xulyDuLieu.doiChuoiSangInteger(param.Split('|')[1]); qlCaPheEntities db = new qlCaPheEntities(); //-----Lấy thông tin bàn cũ hoaDonTam hoaDonCu = db.hoaDonTams.SingleOrDefault(h => h.maBan == maBanCu); //-----Nếu chưa có bàn if (hoaDonCu == null) { bHoaDonTam.themMoiHoaDonTam(db, maBanMoi, ((taiKhoan)Session["login"]).tenDangNhap); } else { //-----BÀN CŨ ĐANG SỬ DỤNG. cho phép ĐỔI BÀN bHoaDonTam.capNhatHoaDonTam(db, hoaDonCu, maBanMoi); } } catch (Exception ex) { xulyFile.ghiLoi("Class: NghiepVuBanController - Fucntion: AjaxTiepNhanBan", ex.Message); } } }
public int resetBan(int maBan) { int kq = 0; try { qlCaPheEntities db = new qlCaPheEntities(); hoaDonTam hoaDonXoa = db.hoaDonTams.SingleOrDefault(h => h.maBan == maBan); if (hoaDonXoa != null) { //-----Nếu trạng thái VỪA TIẾP NHẬN hoặc ĐÃ THANH TOÁN thì mới cho xóa if (hoaDonXoa.trangThaiHoadon == 0 || hoaDonXoa.trangThaiHoadon == 3) { //------thực hiện xóa dữ liệu trong bảng ctHoaDonTam foreach (ctHoaDonTam ctXoa in db.ctHoaDonTams.ToList().Where(c => c.maBan == hoaDonXoa.maBan)) { //-----Xóa chi tiết db.ctHoaDonTams.Remove(ctXoa); db.SaveChanges(); } //-----Xóa hoaDonTam db.hoaDonTams.Remove(hoaDonXoa); kq = db.SaveChanges(); } } } catch (Exception ex) { xulyFile.ghiLoi("Class: bNghiepVuBan - Fucntion: resetBan", ex.Message); } return(kq); }
/// <summary> /// Hàm thêm mới 1 hóa đơn tạm vào bảng HoaDonTam trong database /// </summary> /// <param name="db">Object entities thực thi</param> /// <param name="maBan">Mã bàn cần thêm mới vào bảng</param> /// <param name="tenDangNhap">Tên đăng nhập người phục vụ (Người thêm)</param> /// <returns>1: Thêm thành công, 2: Thất bại</returns> public int themMoiHoaDonTam(qlCaPheEntities db, int maBan, string tenDangNhap) { int kq = 0; try { hoaDonTam hoaDonAdd = new hoaDonTam(); hoaDonAdd.maBan = maBan; hoaDonAdd.trangThaiHoadon = 0; //-----Thiết lập trạng thái hóa đơn 0 - VỪA VÀO BÀN hoaDonAdd.trangthaiphucVu = -1; //------Thiết lập trạng thái phục vụ - Trước khi nhận order hoaDonAdd.thoiDiemDen = DateTime.Now; hoaDonAdd.nguoiPhucVu = tenDangNhap; db.hoaDonTams.Add(hoaDonAdd); kq = db.SaveChanges(); if (kq > 0) { xulyChung.ghiNhatKyDtb(2, "Đã tiếp nhận bàn"); } } catch (Exception ex) { xulyFile.ghiLoi("Class: bHoaDonTam - Fucntion: themMoiHoaDonTam", ex.Message); } return(kq); }
/// <summary> /// hàm tạo bảng danh sách các món đã order trong hoaDonTam được lấy từ database /// </summary> /// <param name="maBan"></param> /// <param name="db"></param> /// <returns></returns> private string taoBangChiTietHoaDon(hoaDonTam hoaDon) { string html = ""; html += "<table class=\"table table-hover\">"; html += " <thead>"; html += " <tr>"; html += " <th style=\"width:70%\">Tên món</th>"; html += " <th>Số lượng</th>"; html += " </tr>"; html += " </thead>"; html += " <tbody>"; //-------Lặp qua danh sách các món trong ctHoaDonTam chưa pha chế foreach (ctHoaDonTam ct in hoaDon.ctHoaDonTams.Where(c => c.trangThaiPhaChe == 0).ToList()) { html += " <tr>"; html += " <td>"; html += " <img width=\"50px;\" height=\"50px;\" src=\"" + xulyDuLieu.chuyenByteHinhThanhSrcImage(ct.sanPham.hinhAnh) + "\">"; html += " <b>" + xulyDuLieu.traVeKyTuGoc(ct.sanPham.tenSanPham) + "</b>"; html += " </td>"; html += " <td>" + ct.soLuong.ToString() + "</td>"; html += " </tr>"; } html += " </tbody>"; html += "</table>"; return(html); }
/// <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); }
public int capNhatDaOrder(int maBan, long tongTien, string ghiChu) { int kq = -1; try { qlCaPheEntities db = new qlCaPheEntities(); hoaDonTam hoaDonSua = db.hoaDonTams.SingleOrDefault(s => s.maBan == maBan); if (hoaDonSua != null) { hoaDonSua.trangThaiHoadon = 1; //--------Cập nhật trạng thái hóa đơn bàn đã order hoaDonSua.ngayLap = DateTime.Now; //-----Cập nhật ngày lập hóa đơn hoaDonSua.trangthaiphucVu = 0; //---------cập nhật trạng thái pha chế - CHỜ TIẾP NHẬN - Để hiện trong danh sách tiếp nhận pha chế hoaDonSua.tongTien = tongTien; hoaDonSua.ghiChu = xulyDuLieu.xulyKyTuHTML(ghiChu); db.Entry(hoaDonSua).State = System.Data.Entity.EntityState.Modified; kq = db.SaveChanges(); if (kq > 0) { //----------Xóa tất cả chi tiết trong hóa đơn foreach (ctHoaDonTam ctXoa in hoaDonSua.ctHoaDonTams.ToList()) { db.ctHoaDonTams.Remove(ctXoa); db.SaveChanges(); } } } } catch (Exception ex) { xulyFile.ghiLoi("Class: bNghiepVuBan - Function: capNhatDaOrder", ex.Message); } return(kq); }
/// <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; }
/// <summary> /// Hàm ajax lấy danh sách các món đã order có trong bảng ctHoaDonTam và hiện lên modal chi tiết /// </summary> /// <param name="maBan"></param> /// <returns>Chuỗi html tạo nên modal</returns> public string AjaxXemChitietHoaDon(int maBan) { string htmlDetails = ""; if (xulyChung.duocTruyCap(idOfPage)) { try { qlCaPheEntities db = new qlCaPheEntities(); //--------Lấy thông tin hóa dơn hoaDonTam hoaDon = db.hoaDonTams.SingleOrDefault(h => h.maBan == maBan); if (hoaDon != null) { htmlDetails += "<div class=\"modal-header\">"; htmlDetails += " <button type=\"button\" class=\"close\" data-dismiss=\"modal\">×</button>"; htmlDetails += " <h3 class=\"modal-title\" id=\"largeModalLabel\">XEM CHI TIẾT HÓA ĐƠN</h3>"; htmlDetails += "</div>"; htmlDetails += "<div class=\"modal-body\">"; htmlDetails += " <div class=\"row\">"; htmlDetails += " <div class=\"col-md-12 col-lg-12\">"; htmlDetails += " <div class=\"card\">"; htmlDetails += " <div class=\"header bg-cyan\">"; htmlDetails += " <h2>Danh mục món cần pha chế cho bàn " + xulyDuLieu.traVeKyTuGoc(hoaDon.BanChoNgoi.tenBan) + "</h2>"; htmlDetails += " </div>"; htmlDetails += " <div class=\"body table-responsive\">"; htmlDetails += " <!--Nội dung-->"; htmlDetails += this.taoBangChiTietHoaDon(hoaDon); htmlDetails += " </div>"; htmlDetails += " </div>"; htmlDetails += " </div>"; htmlDetails += "</div>"; htmlDetails += "<div class=\"modal-footer\">"; htmlDetails += " <div class=\"col-md-4\"> "; htmlDetails += " <div class=\"pull-left\"> "; htmlDetails += " <label class=\"pull-left col-blue-grey\"><i>* Ghi chú: " + xulyDuLieu.traVeKyTuGoc(hoaDon.ghiChu) + "</i></label> "; htmlDetails += " </div> "; htmlDetails += " </div>"; htmlDetails += " <div class=\"col-md-8\"> "; htmlDetails += " <a task=\"" + xulyChung.taoUrlCoTruyenThamSo("PhaChe/pc_ThucHienPhaCheTheoBan", hoaDon.maBan.ToString()) + "\" class=\" guiRequest btn btn-success waves-effect\"><i class=\"material-icons\">local_dining</i><span>Pha chế</span></a>"; htmlDetails += " <a class=\"btn btn-default waves-effect\" data-dismiss=\"modal\"><i class=\"material-icons\">close</i>Đóng lại</a>"; htmlDetails += " </div>"; htmlDetails += "</div>"; } } catch (Exception ex) { xulyFile.ghiLoi("Class: PhaCheController - Function: AjaxXemChitietHoaDon", ex.Message); } } return(htmlDetails); }
/// <summary> /// Hàm xóa 1 hóa đơn tạm Khi DỌN BÀN /// </summary> /// <param name="db"></param> /// <param name="hoaDonXoa">Object hóa đơn cần xóa</param> /// <returns>1: Thành công, 2: Thất bại</returns> private int xoaHoaDonTam(qlCaPheEntities db, hoaDonTam hoaDonXoa) { int kq = 0; try { //------Dọn bàn cũ db.hoaDonTams.Remove(hoaDonXoa); kq = db.SaveChanges(); } catch (Exception ex) { xulyFile.ghiLoi("Class: bHoaDonTam - Fucntion: xoaHoaDonTam", ex.Message); } return(kq); }
/// <summary> /// Hàm kiểm tra bàn có đang sử dụng /// </summary> /// <param name="maBanKiem">Mã bàn cần kiểm tra</param> /// <param name="db"></param> /// <returns>True: Đang sử dụng - False: không sử dụng</returns> private bool kiemTraBanDangSuDung(int maBanKiem, qlCaPheEntities db) { try { hoaDonTam hoaDonTam = db.hoaDonTams.SingleOrDefault(h => h.maBan == maBanKiem); if (hoaDonTam != null) //------Nếu trong hóa đơn tạm có chưa mã bàn { return(true); } } catch (Exception ex) { xulyFile.ghiLoi("Class: BanController - Function: kiemTraBanDangSuDung", ex.Message); } return(false); }
/// <summary> /// Hàm lấy tổng số lượng sản phẩm trong hóa đơn dựa vào trạng thái pha chế /// </summary> /// <param name="hoaDon">Hóa đơn cần lấy</param> /// <param name="trangThai">Trạng thái pha chế cần lấy<para/> -1: Chờ tiếp nhận pha chế - 0: Đã tiếp nhận pha chế - 1: Đang pha chế - 2: Đã pha chế xong</param> /// <returns></returns> public int layTongSoLuongSanPhamTrongHoaDon(hoaDonTam hoaDon, int trangThai) { int kq = 0; try { foreach (ctHoaDonTam ct in hoaDon.ctHoaDonTams.Where(c => c.trangThaiPhaChe == trangThai)) { kq += ct.soLuong; } } catch (Exception ex) { xulyFile.ghiLoi("Class: bHoaDonTam - Fucntion: layTongTienSanPham", ex.Message); } return(kq); }
/// <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); }
/// <summary> /// Lấy tổng tiền của có trong hóa đơn tạm. /// Chỉ tính những sản phẩm có khả năng bán. /// không tính tiền cho những sản phẩm có đề xuất thay thế /// </summary> /// <param name="hoaDon">Hóa đơn tạm cần lấy tổng tiền</param> /// <returns></returns> public long layTongTienSanPham(hoaDonTam hoaDon) { long kq = 0; try { //-------Lặp qua những sản phẩm có khả năng bán foreach (ctHoaDonTam ct in hoaDon.ctHoaDonTams.Where(c => c.trangThaiPhaChe != 4)) { kq += ct.donGia * ct.soLuong; } } catch (Exception ex) { xulyFile.ghiLoi("Class: bHoaDonTam - Fucntion: layTongTienSanPham", ex.Message); } return(kq); }
/// <summary> /// Hàm tạo giao diện pha chế theo bàn <para/> và CẬP NHẬT TRẠNG THÁI pha chế /// </summary> /// <param name="maBan"></param> /// <returns></returns> public ActionResult pc_ThucHienPhaCheTheoBan() { if (xulyChung.duocCapNhat(idOfPage, "7")) { try { int kqLuu = 0; string param = xulyChung.nhanThamSoTrongSession();//param = maBan if (param.Length > 0) { int maBan = xulyDuLieu.doiChuoiSangInteger(param); qlCaPheEntities db = new qlCaPheEntities(); hoaDonTam hoaDon = db.hoaDonTams.SingleOrDefault(h => h.maBan == maBan); if (hoaDon != null) { ViewBag.TieuDeTrang = "PHA CHẾ CHO BÀN \"" + xulyDuLieu.traVeKyTuGoc(hoaDon.BanChoNgoi.tenBan) + "\""; ViewBag.MaBan = hoaDon.maBan.ToString();//Gán mã bàn để xác định bàn lấy danh sách sản phẩm ViewBag.GhiChu = hoaDon.ghiChu; //-----Cập nhật trạng thái thành pha chế hoaDon.trangthaiphucVu = 1; db.Entry(hoaDon).State = System.Data.Entity.EntityState.Modified; kqLuu = db.SaveChanges(); if (kqLuu > 0) { this.insertNewPhieuXuatKho(maBan, db); xulyChung.ghiNhatKyDtb(1, "Tiếp nhận pha chế"); } } } else { throw new Exception("không nhận được tham số"); } } catch (Exception ex) { xulyFile.ghiLoi("Class: PhaCheController - Function: pc_ThucHienPhaCheTheoBan", ex.Message); return(RedirectToAction("PageNotFound", "Home")); } //-----Tạo modal dạng lớn để chứa chi tiết các bước thực hiện của công thức ViewBag.ModalChiTiet = createHTML.taoModalChiTiet("modalChiTiet", "vungChiTiet", 3); } return(View()); }
public ActionResult hoanTatPhaCheHoaDon(FormCollection f) { if (xulyChung.duocCapNhat(idOfPage, "7")) { try { //-----Nhận mã hóa đơn cần cập nhật từ SEssion int maHoaDonSua = this.layThamSoTrongSession(0); int kqLuu = 0; if (maHoaDonSua > 0) { qlCaPheEntities db = new qlCaPheEntities(); //-----Nếu tất cả sản phẩm đã pha chế xong thì cho phép cập nhật hoaDonTam hoaDonSua = db.hoaDonTams.SingleOrDefault(h => h.maBan == maHoaDonSua); if (hoaDonSua != null) { //------Kiểm tra. Sản phẩm đã pha chế hoàn tất thì cập nhật if (this.kiemTraPhaCheHoanTat(hoaDonSua.ctHoaDonTams.ToList())) { hoaDonSua.ghiChu = xulyDuLieu.xulyKyTuHTML(f["txtGhiChu"]); hoaDonSua.trangthaiphucVu = 2; //Trạng thái đã pha chế - Chờ giao db.Entry(hoaDonSua).State = System.Data.Entity.EntityState.Modified; kqLuu = db.SaveChanges(); if (kqLuu > 0) { taoThongBao(db, hoaDonSua.taiKhoan.tenDangNhap, "Bàn \"" + xulyDuLieu.traVeKyTuGoc(hoaDonSua.BanChoNgoi.tenBan) + "\" đã pha chế"); xulyChung.ghiNhatKyDtb(4, "Hoàn tất pha chế cho bàn \" " + xulyDuLieu.traVeKyTuGoc(hoaDonSua.BanChoNgoi.tenBan) + " \""); } } } } else { throw new Exception("KHÔNG nhận được tham số"); } } catch (Exception ex) { xulyFile.ghiLoi("Class: PhaCheController - Function: hoanTatPhaCheHoaDon", ex.Message); return(RedirectToAction("PageNotFound", "Home")); } } return(RedirectToAction("pc_PhaCheTheoBan")); }
public int tiepNhanBanMoi(int maBan, string tenDangNhap) { int kq = 0; try { qlCaPheEntities db = new qlCaPheEntities(); hoaDonTam hoaDonTam = db.hoaDonTams.SingleOrDefault(s => s.maBan == maBan); if (hoaDonTam == null) //-----Bàn này chưa có hóa đơn trong hệ thống (Bàn trống) { kq = new bHoaDonTam().themMoiHoaDonTam(db, maBan, tenDangNhap); } } catch (Exception ex) { xulyFile.ghiLoi("Class: bNghiepVuBan - Fucntion: tiepNhanBanMoi", ex.Message); } return(kq); }
/// <summary> /// Hàm xóa tất cả dữ liệu của hoaDonTam cũ và bảng chi tiết /// </summary> /// <param name="db"></param> /// <param name="hdCu">Hóa đơn cũ cần xóa</param> /// <returns>1: Thành công - 2: Thất bại</returns> private int xoaHoaDonCuSauChuyenDoi(qlCaPheEntities db, hoaDonTam hdCu) { int kq = 0, kqXoaCt = 0; //----------Xóa bảng chi tiết hoaDonTam Cũ List <ctHoaDonTam> listChiTietCu = hdCu.ctHoaDonTams.ToList(); foreach (ctHoaDonTam ctXoa in listChiTietCu) { db.ctHoaDonTams.Remove(ctXoa); kqXoaCt += db.SaveChanges(); } //---------Nếu đã xóa xong tất cả trong chi tiết //-------------Xóa bảng hoaDonTam-------------- if (kqXoaCt == listChiTietCu.Count) { db.hoaDonTams.Remove(hdCu); kq = db.SaveChanges(); } return(kq); }
/// <summary> /// Hàm ĐỔ DỮ LIỆU từ bảng ctHoaDonTam lên view modal sản phẩm đã order /// </summary> /// <param name="param">Mã bàn cần lấy danh sách các món đã order</param> /// <returns>Trả về html có chuỗi bảng và tổng tiền</returns> public string AjaxDoChiTietLenView(int param) { string html = ""; try { qlCaPheEntities db = new qlCaPheEntities(); this.resetData();//---Reset lại sesion hoaDonTam hdTam = db.hoaDonTams.SingleOrDefault(h => h.maBan == param); this.luuTongTienVaoSession(hdTam); //------Hiện danh sách sản phẩm từ bảng ctHoaDonTam html += this.taoBangChiTietTuDatabase(hdTam); html += "|" + hdTam.ghiChu; } catch (Exception ex) { xulyFile.ghiLoi("Class: NghiepVuBanController - Fucntion: AjaxDoChiTietLenView", ex.Message); } return(html); }
/// <summary> /// Hàm tính tổng tiền sản phẩm có trong ctHoaDonTam /// </summary> /// <param name="maBan"></param> /// <returns></returns> private long layTongTienTuChiTiet(hoaDonTam hoaDon) { long kq = 0; try { foreach (ctHoaDonTam ct in hoaDon.ctHoaDonTams.ToList()) { if (ct.trangThaiPhaChe != 4) //------Nếu trạng thái sản phẩm không bị hủy bỏ (ĐỀ XUẤT THAY THẾ) { kq += ct.soLuong * ct.donGia; } } } catch (Exception ex) { xulyFile.ghiLoi("Class: NghiepVuBanController - Fucntion: layTongTienTuChiTiet", ex.Message); } return(kq); }
/// <summary> /// Hàm thêm mới 1 hóa đơn vào csdl cho bảng hoDonOrder /// </summary> /// <param name="hoaDonTam">Hóa đơn tạm để gán dữ liệu</param> /// <param name="db"></param> /// <param name="f"></param> private hoaDonOrder InsertHoaDonOrder(hoaDonTam hoaDonTam, qlCaPheEntities db, FormCollection f) { int kqLuu = 0; hoaDonOrder hoaDonAdd = new hoaDonOrder(); hoaDonAdd.maBan = hoaDonTam.maBan; hoaDonAdd.trangThai = 1;//----Thiết lập trạng thái hóa đơn đã thanh toán hoaDonAdd.ngayLap = DateTime.Now; hoaDonAdd.thoiDiemDen = hoaDonTam.thoiDiemDen; hoaDonAdd.nguoiPhucVu = hoaDonTam.nguoiPhucVu; hoaDonAdd.BanChoNgoi = hoaDonTam.BanChoNgoi; hoaDonAdd.nguoiXuatHD = ((taiKhoan)Session["login"]).tenDangNhap; hoaDonAdd.chietKhau = xulyDuLieu.doiChuoiSangInteger(f["txtTienChietKhau"]); hoaDonAdd.tongTien = new bHoaDonTam().layTongTienSanPham(hoaDonTam); hoaDonAdd.tamTinh = hoaDonAdd.tongTien - hoaDonAdd.chietKhau; hoaDonAdd.ghiChu = hoaDonTam.ghiChu; db.hoaDonOrders.Add(hoaDonAdd); kqLuu = db.SaveChanges(); return(hoaDonAdd); }
/// <summary> /// Hàm tạo giao diện thanh toán /// </summary> /// <returns>View với model hoaDonTam</returns> public ActionResult hd_ThucHienThanhToan() { hoaDonTam hoaDonThanhToan = new hoaDonTam(); if (xulyChung.duocCapNhat(idOfPage, "7")) { try { //--------Lấy thông tin hóa đơn int maBan = this.layMaBanTuSession(); hoaDonThanhToan = new qlCaPheEntities().hoaDonTams.SingleOrDefault(s => s.maBan == maBan); xulyChung.ghiNhatKyDtb(1, "Thực hiện thanh toán cho hóa đơn được lập vào \" " + xulyDuLieu.traVeKyTuGoc(hoaDonThanhToan.ngayLap.ToString()) + " \""); } catch (Exception ex) { xulyFile.ghiLoi("Class: HoaDonController - Function: hd_ThucHienThanhToan", ex.Message); return(RedirectToAction("PageNotFound", "Home")); } } return(View(hoaDonThanhToan)); }
/// <summary> /// Hàm cập nhật trạng thái của tất cả chi tiết trong hóa đơn thành đã giao /// </summary> /// <returns></returns> public string capNhatSangDaGiao(string param) { if (xulyChung.duocCapNhat(idOfPage, "7")) { //------Thay thế khoảng trắng thành dấu + khi truyền 2 tham số param = param.Replace(" ", "+"); param = xulyMaHoa.DecryptWithKey(param, DateTime.Now.ToShortDateString()); try { param = param.Split('|')[1]; //-----param = request=maban param = param.Replace("request=", ""); //----param = maban int maBan = xulyDuLieu.doiChuoiSangInteger(param); //-----Cập nhật dữ liệu trong chi tiết qlCaPheEntities db = new qlCaPheEntities(); hoaDonTam hdSua = db.hoaDonTams.SingleOrDefault(s => s.maBan == maBan); if (hdSua != null) { //------Chỉ lấy những sản phẩm đã pha chế và cập nhật foreach (ctHoaDonTam ct in hdSua.ctHoaDonTams.Where(c => c.trangThaiPhaChe == 2).ToList()) { ct.trangThaiPhaChe = 3;//Cập nhật sang sản phẩm đã giao db.Entry(ct).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } //------Cập nhật trạng thái phục vụ của hóa đơn hdSua.trangthaiphucVu = -1;//------Cập nhật bàn sang trạng thái chờ order tiếp theo db.Entry(hdSua).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); xulyChung.ghiNhatKyDtb(4, "Đã bàn giao sản phẩm cho bàn \" " + xulyDuLieu.traVeKyTuGoc(hdSua.BanChoNgoi.tenBan) + " \""); } //-----reset session Session["urlAction"] = ""; } catch (Exception ex) { xulyFile.ghiLoi("Class: PhucVuController - Function: capNhatSangDaGiao", ex.Message); } } return(AjaxLayDanhSachBanCanPhucVu(1)); }
/// <summary> /// Hàm hoàn tất thanh toán 1 hóa đơn. /// 1. Tạo hóa đơn order /// 2. Xóa hóa đơn tạm /// </summary> /// <param name="f"></param> /// <returns></returns> public ActionResult hd_ThucHienThanhToan(FormCollection f) { string modal = ""; int kqLuu = 0; hoaDonTam hoaDonThanhToan = new hoaDonTam(); hoaDonOrder hoaDonAdd = new hoaDonOrder(); if (xulyChung.duocCapNhat(idOfPage, "7")) { try { ////--------Lấy thông tin hóa đơn int maBan = this.layMaBanTuSession(); qlCaPheEntities db = new qlCaPheEntities(); hoaDonThanhToan = db.hoaDonTams.SingleOrDefault(s => s.maBan == maBan); if (hoaDonThanhToan != null) { //--------Thêm vào bảng hoaDonOrder hoaDonAdd = this.InsertHoaDonOrder(hoaDonThanhToan, db, f); if (hoaDonAdd != null) { //--------Thêm vào bảng ctHoaDonOrder this.InsertCtHoaDonOrder(hoaDonAdd, hoaDonThanhToan.ctHoaDonTams.ToList(), db); //--------Cập nhật trạng thái hóa đơn tạm thành 3 ĐÃ thanh toán => chờ reset this.UpdateHoaDonTam(hoaDonThanhToan, db); xulyChung.ghiNhatKyDtb(2, "Thêm mới hóa đơn có mã \" " + hoaDonAdd.maHoaDon.ToString() + " \""); } } modal = this.taoModalInBill(hoaDonAdd, db, f); } catch (Exception ex) { modal = createHTML.taoThongBaoLuu(ex.Message); xulyFile.ghiLoi("Class: HoaDonController - Function: hd_ThucHienThanhToan", ex.Message); return(RedirectToAction("PageNotFound", "Home")); } ViewBag.ModalBill = modal; } return(View(hoaDonThanhToan)); }
public int doiBan(int maBanCu, int maBanMoi) { int kq = 0; try { qlCaPheEntities db = new qlCaPheEntities(); hoaDonTam hdCu = db.hoaDonTams.SingleOrDefault(h => h.maBan == maBanCu); hoaDonTam hdMoi = db.hoaDonTams.SingleOrDefault(h => h.maBan == maBanMoi); //--------Kiểm tra nếu bàn cũ tồn tại và bàn mới không tồn tại trong hoaDonTam if (hdCu != null && hdMoi == null) { hdMoi = new hoaDonTam(); if (this.themHoaDonChuyenDoi(maBanMoi, hdCu, hdMoi, db) > 0) { kq = this.xoaHoaDonCuSauChuyenDoi(db, hdCu); } } } catch (Exception ex) { xulyFile.ghiLoi("Class: bNghiepVuBan - Function: doiBan", ex.Message); } return(kq); }
public int capNhatDaGiao(int maBan) { int kq = 0;; try { //-----Cập nhật dữ liệu trong chi tiết qlCaPheEntities db = new qlCaPheEntities(); hoaDonTam hdSua = db.hoaDonTams.SingleOrDefault(s => s.maBan == maBan); if (hdSua != null) { int kqLuuChiTiet = 0; List <ctHoaDonTam> listChiTiet = hdSua.ctHoaDonTams.Where(c => c.trangThaiPhaChe == 2).ToList(); //------Chỉ lấy những sản phẩm đã pha chế và cập nhật foreach (ctHoaDonTam ct in listChiTiet) { ct.trangThaiPhaChe = 3;//Cập nhật sang sản phẩm đã giao db.Entry(ct).State = System.Data.Entity.EntityState.Modified; kqLuuChiTiet += db.SaveChanges(); } //------Nếu đã cập nhật tất cả chi tiết trong hóa đơn thành công if (kqLuuChiTiet == listChiTiet.Count) { //------Cập nhật trạng thái phục vụ của hóa đơn hdSua.trangthaiphucVu = -1;//------Cập nhật bàn sang trạng thái chờ order tiếp theo db.Entry(hdSua).State = System.Data.Entity.EntityState.Modified; kq = db.SaveChanges(); } } } catch (Exception ex) { xulyFile.ghiLoi("Class: bNghiepVuBan - Function: capNhatDaGiao", ex.Message); } return(kq); }
/// <summary> /// Hàm cập nhật lại tổng tiền của 1 hóa đơn tạm /// </summary> /// <param name="db"></param> /// <param name="hoaDonSua"></param> private void UpdateTongTienHoaDonTamDatabase(qlCaPheEntities db, hoaDonTam hoaDonSua) { hoaDonSua.tongTien = this.layTongTienTuChiTiet(hoaDonSua); db.Entry(hoaDonSua).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); }