/// <summary>
        /// Mượn sách
        /// </summary>
        /// <param name="bandoc">bạn đọc mượn</param>
        /// <param name="sachs">danh sách sách mượn , thông tin đúng </param>
        /// <returns></returns>
        public bool MuonSach(docgiaDTO bandoc, List <sachDTO> sachs)
        {
            sachDAL      sachDAL             = new sachDAL();
            quydinhDAL   quyDinhDAL          = new quydinhDAL();
            phieumuonDAL phieuMuonDAL        = new phieumuonDAL();
            ctpmDAL      chiTietPhieuMuonDAL = new ctpmDAL();

            List <sachDTO>      cacSachdangmuon   = new List <sachDTO>();
            quydinhDTO          cacQuyDinh        = new quydinhDTO();
            List <phieumuonDTO> danhsachphieuMuon = new List <phieumuonDTO>();
            List <DateTime>     danhsachngaymuon  = new List <DateTime>();

            sachDAL.SachDangMuon(bandoc.MaThe, cacSachdangmuon, danhsachngaymuon);

            quyDinhDAL.listquydinh(cacQuyDinh);
            phieuMuonDAL.danhsachPM(danhsachphieuMuon);

            //kiểm tra số luọng sách mươn
            if (cacSachdangmuon.Count + sachs.Count > cacQuyDinh.Sosachduocmuon)
            {
                BUS_notification.mess = "Không thể mượn sách vượt quá số lượng cho phép";
                return(false);
            }

            //thêm phiếu mượn
            phieumuonDTO phieumuonDTO = new phieumuonDTO();

            phieumuonDTO.Mapm     = danhsachphieuMuon.Count + 1;
            phieumuonDTO.Mathe    = bandoc.MaThe;
            phieumuonDTO.Ngaymuon = DateTime.Now;
            if (!phieuMuonDAL.themPhieuMuon(phieumuonDTO))
            {
                BUS_notification.mess = "Không thể thêm phiếu mượn";
                return(false);
            }

            //thêm chi tiết phiếu mượn
            foreach (sachDTO sach in sachs)
            {
                ctpmDTO ctpm = new ctpmDTO();
                ctpm.Mapm   = phieumuonDTO.Mapm;
                ctpm.Masach = sach.Masach;
                if (!chiTietPhieuMuonDAL.themCTPM(ctpm))
                {
                    BUS_notification.mess = "Có sự cố trong khi mượn sách " + sach.Tensach;
                    return(false);
                }
                else
                {
                    QuanLiSachBUS sachBUS = new QuanLiSachBUS();
                    sachBUS.MuonSach(sach);
                }

                //thêm vao bang gia han cho sach
                GiaHanSachBUS ghsax = new GiaHanSachBUS();
                ghsax.TaoSoLanmuonsach(sach.Masach);
            }
            return(true);
        }
Example #2
0
        /// <summary>
        /// Sửa thông tin sách
        /// </summary>
        /// <param name="sach"></param>
        /// <returns></returns>
        public bool SuaSach(sachDTO sach)
        {
            sachDAL saxDAL = new sachDAL();

            if (saxDAL.isSach(sach.Masach))
            {
                return(saxDAL.suaSach(sach, sach.Masach));
            }
            return(false);
        }
Example #3
0
        /// <summary>
        /// Đưa ra danh sách sách bao gồm cả sách không khả dụng
        /// </summary>
        /// <returns></returns>
        public List <sachDTO> DanhSachSach()
        {
            List <sachDTO> list   = new List <sachDTO>();
            sachDAL        saxDAL = new sachDAL();

            if (saxDAL.tatcaSach(list))
            {
                return(list);
            }
            return(new List <sachDTO>());
        }
Example #4
0
        /// <summary>
        /// Cập nhật thông tin cho sách đã trả về kho
        /// </summary>
        /// <param name="sDTO"></param>
        /// <returns></returns>
        internal bool Travekho(sachDTO sDTO)
        {
            sachDAL saxDAL = new sachDAL();

            if (saxDAL.isSach(sDTO.Masach))
            {
                sDTO.Trangthai = (int)TrangThaiSach.CoSan;
                return(SuaSach(sDTO));
            }

            return(false);
        }
Example #5
0
        /// <summary>
        /// Cập nhật thông tin cho sách đã mượn
        /// </summary>
        /// <param name="sDTO"></param>
        /// <returns></returns>
        internal bool MuonSach(sachDTO sDTO)
        {
            sachDAL saxDAL = new sachDAL();

            if (saxDAL.isSach(sDTO.Masach))
            {
                sDTO.Trangthai = (int)TrangThaiSach.DaChoMuon;
                return(SuaSach(sDTO));
            }

            return(false);
        }
Example #6
0
        /// <summary>
        /// Đưa ra danh sách các sách khả dụng trong thư viện
        /// </summary>
        /// <returns></returns>
        public List <sachDTO> DanhSachSachCoSan()
        {
            List <sachDTO> list   = new List <sachDTO>();
            List <sachDTO> result = new List <sachDTO>();
            sachDAL        saxDAL = new sachDAL();

            if (saxDAL.tatcaSach(list))
            {
                foreach (sachDTO sax in list)
                {
                    if (sax.Trangthai == (int)TrangThaiSach.CoSan)
                    {
                        result.Add(sax);
                    }
                }

                return(result);
            }
            return(new List <sachDTO>());
        }
Example #7
0
        /// Danh sách các tựa sách mà đọc giả đang lượng
        /// </summary>
        /// <param name="docgia"></param>
        /// <returns></returns>
        public List <sachDTO> DanhSachDocGiaDangMuon(docgiaDTO docgia, List <DateTime> listngaymuon)
        {
            docgiaDAL docGiaDAL = new docgiaDAL();
            sachDAL   saxDAL    = new sachDAL();

            List <sachDTO> listsach = new List <sachDTO>();

            //List<DateTime> listngaymuon = new List<DateTime>();

            if (!docGiaDAL.isDocGia(docgia.MaThe))
            {
                BUS_notification.mess = "Không tồn tại đọc giả";
                return(new List <sachDTO>());
            }

            if (!saxDAL.SachDangMuon(docgia.MaThe, listsach, listngaymuon))
            {
                return(new List <sachDTO>());
            }
            return(listsach);
        }
Example #8
0
        /// <summary>
        /// Thêm sách mới
        /// </summary>
        /// <param name="sDTO"></param>
        /// <returns></returns>
        public bool ThemSach(sachDTO sDTO)
        {
            sachDAL saxDal = new sachDAL();

            //kiểm tra các điều kiện
            if (saxDal.isSach(sDTO.Masach))
            {
                return(false);
            }
            quydinhDAL quydinh     = new quydinhDAL();
            quydinhDTO listquydinh = new quydinhDTO();

            if (!quydinh.listquydinh(listquydinh))
            {
                return(false);
            }
            System.DateTime date    = DateTime.Now;
            int             curyear = date.Year;

            if (curyear - sDTO.Ngayxb.Year > listquydinh.Kcnamxuatban)
            {
                return(false);
            }

            //tạo
            List <sachDTO> list = new List <sachDTO>();

            if (!saxDal.tatcaSach(list))
            {
                return(false);
            }

            // sDTO.Masach = list.Count + 1;
            sDTO.Trangthai = 1;
            return(saxDal.themSach(sDTO));
        }
Example #9
0
        /// <summary>
        /// Tìm sách có sặn trong thư viện
        /// </summary>
        /// <param name="sDTO"></param>
        /// <returns></returns>
        public List <sachDTO> TimSach(sachDTO sDTO)
        {
            List <sachDTO> list   = new List <sachDTO>();
            List <sachDTO> result = new List <sachDTO>();

            string tensach    = sDTO.Tensach;
            string theloai    = sDTO.Theloai;
            string tacgia     = sDTO.Tacgia;
            string nhaxuatban = sDTO.Nxb;
            string masach;

            if (sDTO.Masach == -1)
            {
                masach = "";
            }
            else
            {
                masach = sDTO.Masach.ToString();
            }
            if (tensach == null)
            {
                tensach = "";
            }
            if (theloai == null)
            {
                theloai = "";
            }
            if (tacgia == null)
            {
                tacgia = "";
            }
            if (nhaxuatban == null)
            {
                nhaxuatban = "";
            }

            int max_masach_distance         = masach.ToString().Length / 2;
            int max_name_distance           = tensach.Length / 2;
            int max_author_distance         = tacgia.Length / 2;
            int max_publishcompany_distance = nhaxuatban.Length / 2;

            sachDAL saxDAL = new sachDAL();
            sachDTO temp   = new sachDTO();

            list = DanhSachSach();

            //if(masach != "")
            //if (saxDAL.isSach(sDTO.Masach,ref temp))
            //{
            //    result.Add(temp);
            //}

            if (masach != "")
            {
                if (saxDAL.isSach(sDTO.Masach))
                {
                    foreach (sachDTO sax in list)
                    {
                        if (sax.Masach == int.Parse(masach))
                        {
                            result.Add(sax);
                            return(result);
                        }
                    }
                }
            }

            if (tensach != "")
            {
                List <ResultItem> item = new List <ResultItem>();
                foreach (sachDTO sa in list)
                {
                    int check = TimKiemBUS.CheckisAvaiable(tensach, sa.Tensach);
                    if (check != -1)
                    {
                        ResultItem rItem;
                        rItem.mark = check;
                        rItem.sach = sa;
                        item.Add(rItem);
                    }
                }
                item.Sort((s1, s2) => s1.mark.CompareTo(s2.mark));
                foreach (ResultItem i in item)
                {
                    result.Add(i.sach);
                }
            }

            if (theloai != "")
            {
                foreach (sachDTO sach in list)
                {
                    if (sach.Theloai == theloai)
                    {
                        if (result.IndexOf(sach) == -1)
                        {
                            result.Add(sach);
                        }
                    }
                }
            }

            if (tacgia != "")
            {
                foreach (sachDTO sach in list)
                {
                    if (TimKiemBUS.CheckisAvaiable(tacgia, sach.Tacgia) != -1)
                    {
                        if (result.IndexOf(sach) == -1)
                        {
                            result.Add(sach);
                        }
                    }
                }
            }

            if (nhaxuatban != "")
            {
                foreach (sachDTO sach in list)
                {
                    if (Levenshtein_Distance.Distance(sach.Nxb, nhaxuatban) <= sach.Nxb.Length)
                    {
                        if (result.IndexOf(sach) == -1)
                        {
                            result.Add(sach);
                        }
                    }
                }
            }


            return(result);
        }
        /// <summary>
        /// Trả sách
        /// </summary>
        /// <param name="bandoc">Mã bạn đọc </param>
        /// <param name="sachs">danh sách các bạn đọc </param>
        /// <returns></returns>
        public List <ctptDTO> TraSach(docgiaDTO bandoc, List <sachDTO> sachtra)
        {
            docgiaDAL   banDocDAL   = new docgiaDAL();
            sachDAL     sachDAL     = new sachDAL();
            quydinhDAL  quyDinhDAL  = new quydinhDAL();
            phieutraDAL phieutraDAL = new phieutraDAL();
            ctptDAL     ctptDAL     = new ctptDAL();
            giahanDAL   giaHanDAL   = new giahanDAL();

            List <sachDTO>     sachdangmuon            = new List <sachDTO>();
            List <DateTime>    danhsachngaymuonsach    = new List <DateTime>();
            List <phieutraDTO> danhsachphieutra        = new List <phieutraDTO>();
            List <ctptDTO>     danhsachchitietphieutra = new List <ctptDTO>();
            quydinhDTO         danhsachquydinh         = new quydinhDTO();

            quydinhDTO quydinh = new quydinhDTO();

            quyDinhDAL.listquydinh(danhsachquydinh);
            quydinh = danhsachquydinh;

            sachDAL.SachDangMuon(bandoc.MaThe, sachdangmuon, danhsachngaymuonsach);
            phieutraDAL.danhsachPhieuTra(danhsachphieutra);



            //Thêm phiếu trả
            phieutraDTO phieutra = new phieutraDTO();

            phieutra.Mapt          = danhsachphieutra.Count + 1;
            phieutra.Mathe         = bandoc.MaThe;
            phieutra.Ngaytra       = DateTime.Now;
            phieutra.Tienphatkinay = 0;
            phieutraDAL.themPhieuTra(phieutra);

            int tienphatkinay = 0;

            foreach (sachDTO saxtra in sachtra)
            {
                giahanDTO giaHanDTO = new giahanDTO();
                giaHanDAL.laygiahancuasach(saxtra.Masach, giaHanDTO);


                // kiễm tra quá hạn , tính tiền phạt khi trễ, mất sách
                DateTime ngaymuonsach    = LayDatetimeDcMuonCuaSach(saxtra.Masach, sachdangmuon, danhsachngaymuonsach);
                int      songaydamuon    = SoNgayMuon(ngaymuonsach, DateTime.Now);
                int      tienphatsachnay = 0;

                if (saxtra.Trangthai == (int)TrangThaiSach.DaMat)
                {
                    tienphatsachnay = saxtra.Giatri;
                }

                if (songaydamuon > quydinh.Songayduocmuon + giaHanDTO.Solangiahan * 7)
                {
                    tienphatsachnay = (songaydamuon - (quydinh.Songayduocmuon + giaHanDTO.Solangiahan * 7)) * quydinh.Tienphattrasachtremoingay;
                }
                tienphatkinay += tienphatsachnay;


                //thêm chi tiết phiếu trả
                ctptDTO ctptra = new ctptDTO();
                ctptra.Mapt         = phieutra.Mapt;
                ctptra.Masach       = saxtra.Masach;
                ctptra.Songaydamuon = songaydamuon;
                ctptra.Tienphatsach = tienphatsachnay;

                ctptDAL.themCTPT(ctptra);
                danhsachchitietphieutra.Add(ctptra);

                //quẳng sách lại zô kho
                QuanLiSachBUS qlsachBUS = new QuanLiSachBUS();
                if (saxtra.Trangthai != (int)TrangThaiSach.DaMat)
                {
                    qlsachBUS.Travekho(saxtra);
                }
                else
                {
                    qlsachBUS.MatSach(saxtra);
                }


                //xóa ngày cho phép giữ sách
                GiaHanSachBUS ghsax = new GiaHanSachBUS();
                ghsax.XoaSoLanMuonSach(saxtra.Masach);
            }

            //sửa thông tin phiếu trả
            phieutra.Tienphatkinay = tienphatkinay;
            phieutraDAL.suaPhieuTra(phieutra);


            //thêm nợ vào bạn đọc
            bandoc.Tongtienno += tienphatkinay;
            banDocDAL.suaDocGia(bandoc, bandoc.MaThe);

            return(danhsachchitietphieutra);
        }