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(); }
/// <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); } }