예제 #1
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);
    }
        /// <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);
        }
예제 #5
0
        ///// <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));
        }
예제 #7
0
        /// <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);
        }
예제 #8
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);
        }
예제 #9
0
        /// <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);
        }
예제 #10
0
        /// <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);
        }
예제 #11
0
        /// <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);
        }
예제 #12
0
        /// <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);
        }
예제 #14
0
 /// <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);
     }
 }
예제 #15
0
    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);
    }
예제 #16
0
        /// <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);
        }