예제 #1
0
    public List <svCtTonKho> layTonKhoLyThuyet()
    {
        List <svCtTonKho> kq = new List <svCtTonKho>();

        try
        {
            List <ctTonKho> listTon = new bTonKho().layDanhSachTon();
            //------Lặp qua danh sách tồn kho theo tháng
            foreach (ctTonKho item in listTon)
            {
                svCtTonKho ctKQ = new svCtTonKho();
                ctKQ.donGia                = item.donGia;
                ctKQ.maNguyenLieu          = item.maNguyenLieu;
                ctKQ.maSoKy                = item.maSoKy;
                ctKQ.nguyenNhanHaoHut      = item.nguyenNhanHaoHut;
                ctKQ.soLuongCuoiKyLyThuyet = (int)item.soLuongCuoiKyLyThuyet;
                ctKQ.soLuongDauKy          = (int)item.soLuongDauKy;
                ctKQ.soLuongThucTe         = (int)item.soLuongThucTe;
                ctKQ.tenNguyenLieu         = item.nguyenLieu.tenNguyenLieu;
                ctKQ.tyLeHaoHut            = (double)item.tyLeHaoHut;
                ctKQ.hinhNguyenLieu        = item.nguyenLieu.hinhAnh;
                ctKQ.donViPhaChe           = item.nguyenLieu.donViPhaChe;
                ctKQ.donViHienThi          = item.nguyenLieu.donViHienThi;
                kq.Add(ctKQ);
            }
        }
        catch (Exception ex)
        {
            xulyFile.ghiLoi("Class: bKiemKho  - Function: layTonKhoLyThuyet", ex.Message);
        }
        return(kq);
    }
 /// <summary>
 /// Hàm tạo giao diện cho chức năng kiểm kê kho hàng
 /// </summary>
 /// <returns></returns>
 public ActionResult tkho_KiemKho()
 {
     if (xulyChung.duocTruyCap(idOfPage))
     {
         try
         {
             //-----Khởi tạo lại dữ liệu cho các giỏ nguyên liệu
             this.xoaSession();
             cartKiemKho cartTruoc = (cartKiemKho)Session["truocKiemKho"];
             List<ctTonKho> listTon = new bTonKho().layDanhSachTon();
             //------Lặp qua danh sách tồn kho theo tháng
             foreach (ctTonKho item in listTon.Where(s=>s.soLuongCuoiKyLyThuyet>0))
             {
                 cartTruoc.addCart(item);
                 Session["kiemKho"] = cartTruoc;
             }
             xulyChung.ghiNhatKyDtb(1, "Kiểm kho");
         }
         catch (Exception ex)
         {
             xulyFile.ghiLoi("Class: TonKhoController - Function: tkho_KiemKho", ex.Message);
         }
     }
     return View();
 }
예제 #3
0
        /// <summary>
        /// Hàm tạo vùng danh sách các nguyên liệu tồn kho dưới cảnh báo
        /// Dưới 75%
        /// </summary>
        /// <returns></returns>
        public ActionResult tools_PartTonKhoDuoiCanhBao()
        {
            List <ctTonKho> listTonCanhBao = new List <ctTonKho>();

            if (xulyChung.duocTruyCapKhongChuyenTiep("804"))
            {
                try
                {
                    List <ctTonKho> listTon = new bTonKho().layDanhSachTon();
                    foreach (ctTonKho item in listTon)
                    {
                        double soLieuHaoHut = (double)item.tyLeHaoHut;
                        if (soLieuHaoHut > 0) //-----hao hụt trong quá trình sử dụng
                        {
                            double phanTramHaoHut = (double)((soLieuHaoHut * 100) / item.soLuongDauKy);
                            if (phanTramHaoHut >= 75)
                            {
                                listTonCanhBao.Add(item);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    xulyFile.ghiLoi("Class: Tools_VungLamViecController - Function: tools_PartTonKhoDuoiCanhBao", ex.Message);
                }
            }
            return(PartialView(listTonCanhBao));
        }
 /// <summary>
 /// Hàm tạo giao diện danh sách nguyên liệu còn tồn trong kho theo thời gian hiện tại
 /// </summary>
 /// <returns></returns>
 public ActionResult tkho_TonThucTe()
 {
     if (xulyChung.duocTruyCap(idOfPage))
     {
         string htmlTable = "";
         try
         {
             int index = 1;
             //-----------Lấy danh sách nguyên liệu tồn kho trong 1 tháng 
             List<ctTonKho> listTon = new bTonKho().layDanhSachTon();
             foreach (ctTonKho item in listTon)
             {
                 if (item != null)
                 {
                     string donViTinh = xulyDuLieu.traVeKyTuGoc(item.nguyenLieu.donViPhaChe);
                     htmlTable += "<tr role=\"row\" class=\"odd\">";
                     htmlTable += "<td>" + index.ToString() + "</td>";
                     htmlTable += "    <td><b>" + xulyDuLieu.traVeKyTuGoc(item.nguyenLieu.tenNguyenLieu) + "</b></td>";
                     htmlTable += "    <td>" + xulyDuLieu.doiVND(item.donGia) + "</td>";
                     htmlTable += "    <td class=\"col-green\"><b>" + item.soLuongDauKy.ToString() + " (" + donViTinh + ") </b></td>";
                     htmlTable += "    <td class=\"col-blue\"><b>" + item.soLuongCuoiKyLyThuyet.ToString() + " (" + donViTinh + ")" + "</b></td>";
                     string soLieuHaoHut = "";
                     if (item.tyLeHaoHut > 0) //-----Thêm icon phù hợp với số liệu đã thay đổi
                         soLieuHaoHut = "<i class=\"material-icons\">arrow_drop_down</i>" + item.tyLeHaoHut.ToString();
                     else if (item.tyLeHaoHut < 0)
                         soLieuHaoHut = "<i class=\"material-icons\">arrow_drop_up</i>" + (item.tyLeHaoHut * (-1)).ToString();
                     else
                         soLieuHaoHut = "0";
                     htmlTable += "    <td class=\"col-red\"><b>" + ((item.tyLeHaoHut!=0)?soLieuHaoHut + " (" + donViTinh + ")":"0")+"</b></td>";
                     htmlTable += "</tr>";
                     index++;
                 }
             }
             xulyChung.ghiNhatKyDtb(1, "Danh mục tồn kho thực tế");
         }
         catch (Exception ex)
         {
             xulyFile.ghiLoi("Class: TonKhoController - Function: tkho_TonThucTe", ex.Message);
             return RedirectToAction("PageNotFound", "Home");
         }
         ViewBag.TableData = htmlTable;
     }
     return View();
 }
        /// <summary>
        /// Hàm thêm dữ liệu từ giao diện cho object ctPhieuXuatKho
        /// </summary>
        /// <param name="chiTiet"></param>
        /// <param name="duLieu">Chuỗi dữ liệu được lấy khi ajax gửi về. Dữ liệu là các giá trị trong textbox nhập vào chi tiết
        /// có dạng: maNguyenLieu|maNhaCungCap|soLuongNhap|donGiaNhap|ghiChu</param>
        private void layDuLieuTuViewChiTiet(ctPhieuXuatKho chiTiet, string duLieu)
        {
            string loi = ""; qlCaPheEntities db = new qlCaPheEntities();
            //------Thực hiện xử lý cắt chuỗi duLieu để lấy giá trị của các thuộc tính
            int  maNguyenLieu = xulyDuLieu.doiChuoiSangInteger(duLieu.Split('|')[0]); double soLuong = xulyDuLieu.doiChuoiSangDouble(duLieu.Split('|')[1]);
            long donGia = xulyDuLieu.doiChuoiSangLong(duLieu.Split('|')[2]); string ghiChu = xulyDuLieu.xulyKyTuHTML(duLieu.Split('|')[3]);

            //--Gán giá trị cho các thuộc tính
            chiTiet.maNguyenLieu = maNguyenLieu;
            if (chiTiet.maNguyenLieu <= 0)
            {
                loi += "Vui lòng chọn nguyên liệu cần nhập <br/>";
            }
            //------Gán các giá trị references nguyenLieu, nhaCungCap cho chi tiết
            chiTiet.nguyenLieu = db.nguyenLieux.SingleOrDefault(s => s.maNguyenLieu == chiTiet.maNguyenLieu);
            //---------Chuyển đổi số lượng ra đơn vị pha chế: VD: 1 kg = 1000g (soLuongNhapVao * tyLeChuyenDoi)
            double soLuongXuatChuyenDoi = new bNguyenLieu().chuyenDoiDonViTuLonSangNho(soLuong, chiTiet.nguyenLieu);
            double soLuongTon           = new bTonKho().laySoLuongNguyenLieuTonThucTeTrongKho(chiTiet.maNguyenLieu, db);

            chiTiet.soLuongXuat = soLuongXuatChuyenDoi;
            if (chiTiet.soLuongXuat <= 0 || soLuongXuatChuyenDoi > soLuongTon)
            {
                loi += "Số lượng nguyên liệu xuất kho không hợp lệ hoặc số lượng xuất lớn hơn số lượng tồn kho <br/>";
            }

            chiTiet.donGiaXuat = donGia;
            if (chiTiet.donGiaXuat <= 0)
            {
                loi += "Vui lòng nhập đơn giá của nguyên liệu tại thời điểm nhập vào phiếu <br/>";
            }

            chiTiet.ghiChu = ghiChu;
            if (loi.Length > 0)
            {
                throw new Exception(loi);
            }
        }