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