Пример #1
0
 void Session_Start(object sender, EventArgs e)
 {
     //--Tạo session object chứa chi tiết công thức pha chế
     Session["congThuc"] = new cartCongThuc();
     //--Tạo session object chứa thông tin chi tiết phiếu nhập kho
     Session["ctNhapKho"] = new cartNhapKho();
     //--Tạo session object chứa thông tin chi tiết của hóa đơn tạm
     Session["hoaDonTam"] = new cartHoaDonTam();
     //--Tạo session lưu đường dẫn và request
     Session["urlAction"] = "";
     //--Tạo session object chứa thông tin chi tiết phiếu xuất kho
     Session["ctXuatKho"] = new cartXuatKho();
     //--Tạo session object chứa thông tin nguyên liệu cần kiểm kho
     Session["truocKiemKho"] = new cartKiemKho();
     //--Tạo session object chứa thông tin nguyên liệu đã kiểm
     Session["sauKiemKho"] = new cartKiemKho();
     //--Tạo session chứa danh sách các trang được phép truy cập
     Session["quyenHan"] = new cartQuyenHan();
     //--Tạo session chứa thông tin chi tiết điều phối
     Session["dieuPhoi"] = new cartDieuPhoi();
     //--Tạo session chứa object các mục tiêu chưa đánh giá
     Session["chuaDanhGia"] = new cartMucTieu();
     //--Tạo session chứa object các mục tiêu đã đánh giá
     Session["daDanhGia"] = new cartDanhGia();
     //--Tạo session object chứa thông tin người dùng đăng nhập hệ thống
     Session["login"] = new taiKhoan();
     //--Tạo session object chứa các bàn đã đặt
     Session["datBan"] = new cartDatBan();
 }
        /// <summary>
        /// Hàm thực hiện thêm nguyên liệu vào Session chứa chi tiết phiếu nhập kho
        /// </summary>
        /// <param name="duLieu">Chuỗi dữ liệu nhận từ giao diện</param>
        /// <returns></returns>
        public string AjaxThemChiTietVaTraVeBang(string duLieu)
        {
            string kq = ""; double tongTienNhap = 0;

            if (xulyChung.duocCapNhat(idOfPage, "7"))
            {
                cartXuatKho cart = (cartXuatKho)Session["ctXuatKho"];
                try
                {
                    ctPhieuXuatKho chiTietAdd = new ctPhieuXuatKho();
                    this.layDuLieuTuViewChiTiet(chiTietAdd, duLieu);
                    //------Thêm chi tiết vào session
                    cart.addCart(chiTietAdd);
                    //Cập nhật lại session
                    Session["ctXuatKho"] = cart;
                    tongTienNhap         = cart.getTotalPrice();
                }
                catch (Exception ex)
                {
                    xulyFile.ghiLoi("Class XuatKhoController - Function: themChiTietVaTraVeBang", ex.Message);
                }
                kq += taoBangChiTietTuSession();        //------Tạo lại bảng danh sách các bước có trong session và hiện lên giao diện
            }
            return(kq + "|" + tongTienNhap.ToString()); //-------Trả về chuỗi html tạo nên bảng và chuỗi nội dung thông báo. Sau đó cắt ra và hiện lên giao diện
        }
 /// <summary>
 /// Hàm thực thi xóa 1 chi tiết trong session
 /// </summary>
 /// <param name="maCT">Mã xác định </param>
 /// <returns>Html tạo bảng đã được cập nhật dữ liệu</returns>
 public string AjaxXoaMotChitiet(int maCT)
 {
     if (xulyChung.duocCapNhat(idOfPage, "7"))
     {
         try
         {
             cartXuatKho cart = (cartXuatKho)Session["ctXuatKho"];
             cart.removeItem(maCT);
             //----Cập nhật lại session
             Session["ctXuatKho"] = cart;
         }
         catch (Exception ex)
         {
             xulyFile.ghiLoi("Class XuatKhoController - Function: AjaxXoaMotChitiet", ex.Message);
         }
         return(this.taoBangChiTietTuSession());
     }
     return("");
 }
        /// <summary>
        /// Hàm tạo dữ liệu cho bảng chi tiết nguyên liệu trên phiếu và hiện lên giao diện
        /// </summary>
        /// <returns></returns>
        public string taoBangChiTietTuSession()
        {
            string kq = "";

            try
            {
                //---Lấy dữ liệu từ cart
                cartXuatKho cart = (cartXuatKho)Session["ctXuatKho"]; bNguyenLieu bNguyenLieu = new Models.Business.bNguyenLieu();
                kq += "<table class=\"table table-hover\">";
                kq += "     <thead>";
                kq += "         <tr>";
                //----Tạo tiêu đề cho bảng chi tiết
                kq += "             <th>Tên nguyên liệu</th><th>Số lượng</th><th>Đơn giá xuất</th><th>Chức năng</th>";
                kq += "         </tr>";
                kq += "     </thead>";
                kq += "     <tbody>";
                foreach (ctPhieuXuatKho ct in cart.Item.Values) //--------Lặp qua từng phần tử có trong Session
                {
                    kq += "         <tr>";
                    kq += "             <td>";
                    kq += "                 <img width=\"50px\" height=\"auto;\" src=\"" + xulyDuLieu.chuyenByteHinhThanhSrcImage(ct.nguyenLieu.hinhAnh) + "\">";
                    kq += xulyDuLieu.traVeKyTuGoc(ct.nguyenLieu.tenNguyenLieu);
                    kq += "             </td>";
                    kq += "             <td>" + bNguyenLieu.chuyenDoiDonViNhoSangLon(ct.soLuongXuat, ct.nguyenLieu).ToString() + " " + xulyDuLieu.traVeKyTuGoc(ct.nguyenLieu.donViHienThi) + "</td>";
                    kq += "             <td>" + xulyDuLieu.doiVND(ct.donGiaXuat) + "</td>";
                    kq += "             <td>";
                    //-----------Lấy mã nguyên liệu làm key trong list session để xác định chi tiết cần xóa
                    kq += "                 <button type=\"button\" maCt=\"" + ct.maNguyenLieu + "\" class=\"btn btn-danger xoaChiTiet\">Xoá nguyên liệu</button>";
                    kq += "             </td>";
                    kq += "         </tr>";
                }
                kq += "     </tbody>";
                kq += "</table>";
                //---Hiện thông tin tổng tiền nhập nguyên liệu
                kq += "<label class=\"font-20 col-red bold\" id=\"TongTienCart";
                kq += "\">Tổng số tiền xuất nguyên liệu: " + xulyDuLieu.doiVND(cart.getTotalPrice()) + "</label><br />";
            }
            catch (Exception ex)
            {
                xulyFile.ghiLoi("Class XuatKhoController - Function: taoBangChiTietTuSession", ex.Message);
            }
            return(kq);
        }
        /// <summary>
        /// Hàm thêm dữ liệu vào bảng ctPhieuXuatKho và cập nhật lại số lượng tồn kho
        /// </summary>
        /// <param name="maPhieu"></param>
        /// <param name="db"></param>
        private void insertCtXuatKhoAndUpdateTonKho(int maPhieu, qlCaPheEntities db)
        {
            cartXuatKho cart = (cartXuatKho)Session["ctXuatKho"];

            if (cart.Item.Count <= 0)
            {
                throw new Exception("Vui lòng nhập hàng vào phiếu <br/>");
            }
            //----Lặp qua từng phần tử có trong session
            foreach (ctPhieuXuatKho ctTam in cart.getList())
            {
                ctPhieuXuatKho ctAdd = new ctPhieuXuatKho();
                ctAdd.maPhieu      = maPhieu;
                ctAdd.maNguyenLieu = ctTam.maNguyenLieu;
                ctAdd.ghiChu       = ctTam.ghiChu;
                ctAdd.donGiaXuat   = ctTam.donGiaXuat;
                ctAdd.soLuongXuat  = ctTam.soLuongXuat;
                //ctAdd.nguyenLieu = ctTam.nguyen0Lieu;
                db.ctPhieuXuatKhoes.Add(ctAdd);
                db.SaveChanges();
            }
        }