/// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
    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);
    }
Example #4
0
        /// <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);
         }
     }
 }
Example #6
0
    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);
    }
Example #7
0
        /// <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);
        }
Example #8
0
        /// <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);
        }
Example #9
0
    /// <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);
    }
Example #10
0
    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;
        }
Example #12
0
        /// <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);
        }
Example #13
0
        /// <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);
 }
Example #15
0
        /// <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);
        }
Example #17
0
        /// <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);
        }
Example #18
0
 /// <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());
 }
Example #19
0
 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"));
 }
Example #20
0
    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);
    }
Example #21
0
    /// <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));
        }
Example #28
0
    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);
    }
Example #29
0
    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();
 }