Exemplo n.º 1
0
        /// <summary>
        /// Hàm lấy danh sách nguyên liệu tồn kho thực tế
        /// </summary>
        /// <returns>Trả về danh sách các nguyên liệu tồn kho thực tế</returns>
        public List <ctTonKho> layDanhSachTon()
        {
            List <ctTonKho> kq = new List <ctTonKho>();

            try
            {
                qlCaPheEntities db = new qlCaPheEntities();
                //------Lấy thông tin đợt kiểm kho gần nhất
                TonKho tonKho = db.TonKhoes.OrderByDescending(t => t.maSoKy).FirstOrDefault();
                if (tonKho != null)
                {
                    List <ctPhieuNhapKho> listNguyenLieuNhapTrongKy = new bNguyenLieu().layDanhSachNguyenLieuNhapTrongKy(db, tonKho.ngayKiem);
                    List <NguyenLieuXuat> listNguyenLieuXuat        = new bNguyenLieu().layDanhSachNguyenLieuXuat(db, tonKho.ngayKiem);
                    //-------Đọc tất cả các nguyên liệu
                    foreach (nguyenLieu nlItem in db.nguyenLieux.Where(n => n.trangThai == true).ToList())
                    {
                        double   soLuongXuat = 0, soLuongNhap = 0, soLuongThucTe = 0, soLuongDauKy = 0, donGiaNhap = 0;
                        ctTonKho ctKQ = new ctTonKho();
                        ctKQ.nguyenLieu = nlItem;
                        ctPhieuNhapKho nguyenLieuNhap = listNguyenLieuNhapTrongKy.SingleOrDefault(s => s.maNguyenLieu == nlItem.maNguyenLieu);
                        if (nguyenLieuNhap != null)
                        {
                            soLuongNhap       = (double)nguyenLieuNhap.soLuongNhap;
                            donGiaNhap        = nguyenLieuNhap.donGiaNhap;
                            ctKQ.maNguyenLieu = nguyenLieuNhap.maNguyenLieu;
                        }
                        //--------Kiểm tra để nguyên liệu đang duyệt có trong sổ kho trước đây
                        ctTonKho itemSoKho = tonKho.ctTonKhoes.SingleOrDefault(t => t.maNguyenLieu == nlItem.maNguyenLieu);
                        if (itemSoKho != null)
                        {
                            ctKQ.maNguyenLieu = itemSoKho.maNguyenLieu;
                            //------Số lượng dầu kỳ này là số lượng thực tế cuối kỳ trước
                            soLuongDauKy  = (double)itemSoKho.soLuongThucTe;
                            soLuongThucTe = (double)itemSoKho.soLuongThucTe;
                            donGiaNhap    = itemSoKho.donGia;
                            //----Kiểm tra nguyên liệu đang duyệt cần kiểm tra có được xuất chưa.
                            NguyenLieuXuat nguyenLieuXuat = listNguyenLieuXuat.SingleOrDefault(s => s.maNguyenLieu == itemSoKho.maNguyenLieu);
                            if (nguyenLieuXuat != null)
                            {
                                soLuongXuat = nguyenLieuXuat.soLuongXuat;
                            }
                        }
                        ctKQ.donGia        = (long)donGiaNhap;
                        ctKQ.soLuongDauKy  = soLuongDauKy;
                        ctKQ.soLuongThucTe = soLuongThucTe;
                        //-------------Số lượng THỰC TẾ TRÊN LÝ THUYẾT là số lượng (CUỐI KỲ TRƯỚC + SỐ LƯỢNG NHẬP(Trong kỳ)) - SỐ LƯỢNG ĐÃ XUẤT(trong kỳ) //=============Trong kỳ: từ ngày kiểm kê cuối cùng đến nay
                        ctKQ.soLuongCuoiKyLyThuyet = (soLuongThucTe + soLuongNhap) - soLuongXuat;
                        ctKQ.tyLeHaoHut            = ctKQ.soLuongDauKy - ctKQ.soLuongCuoiKyLyThuyet;
                        kq.Add(ctKQ);
                    }
                }
            }
            catch (Exception ex)
            {
                xulyFile.ghiLoi("Class: bTonKho - Function: layDanhSachTon", ex.Message);
            }
            return(kq);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Hàm lấy tất cả các nguyên liệu đã xuất kho từ ngày ... đến ngày hiện tại
        /// </summary>
        /// <param name="db"></param>
        /// <param name="ngayLay">Ngày bắt đầu cần lấy</param>
        /// <returns>List object chứa các nguyên liệu đã xuất</returns>
        public List <NguyenLieuXuat> layDanhSachNguyenLieuXuat(qlCaPheEntities db, DateTime ngayLay)
        {
            List <NguyenLieuXuat> listNguyenLieuXuat = new List <NguyenLieuXuat>();
            //------Lấy danh sách nguyên liệu đã xuất từ ngày đã kiểm kho đến ngày hiện tại
            IEnumerable <object> listNguyenLieuXuatStore = db.laySoLuongNguyenLieuXuatTuNgay(ngayLay);

            //-----Đọc dữ liệu đã lấy và thêm vảo listobject nguyên liệu xuất
            foreach (object itemXuat in listNguyenLieuXuatStore)
            {
                int            maNguyenLieuGet   = xulyDuLieu.doiChuoiSangInteger(xulyDuLieu.layThuocTinhTrongMotObject(itemXuat, "maNguyenLieu"));
                int            soLuongXuatGet    = xulyDuLieu.doiChuoiSangInteger(xulyDuLieu.layThuocTinhTrongMotObject(itemXuat, "soLuongXuat"));
                long           tongTienXuatGet   = xulyDuLieu.doiChuoiSangLong(xulyDuLieu.layThuocTinhTrongMotObject(itemXuat, "tongTienXuat"));
                NguyenLieuXuat nguyenLieuXuatGet = new NguyenLieuXuat(maNguyenLieuGet, soLuongXuatGet, tongTienXuatGet);
                listNguyenLieuXuat.Add(nguyenLieuXuatGet);
            }
            return(listNguyenLieuXuat);
        }