Beispiel #1
0
        /// <summary>
        /// Trả về sanh sách độc giả
        /// </summary>
        /// <returns></returns>
        public List <docgiaDTO> DanhSachDocGia()
        {
            List <docgiaDTO> list    = new List <docgiaDTO>();
            docgiaDAL        docgias = new docgiaDAL();

            if (docgias.danhsachDG(list))
            {
                return(list);
            }
            return(new List <docgiaDTO>());
        }
Beispiel #2
0
        /// <summary>
        /// Sửa Đọc Giả
        /// </summary>
        /// <param name="docgia"></param>
        /// <returns></returns>
        public bool SuaDocGia(docgiaDTO docgia)
        {
            docgiaDAL dgDAL = new docgiaDAL();

            if (dgDAL.isDocGia(docgia.MaThe))
            {
                return(dgDAL.suaDocGia(docgia, docgia.MaThe));
            }
            BUS_notification.mess = "Không tồn tại mã thẻ";
            return(false);
        }
Beispiel #3
0
        /// <summary>
        /// Thêm đọc giả
        /// </summary>
        /// <param name="docgia"></param>
        /// <returns></returns>
        public bool ThemDocGia(docgiaDTO docgia)
        {
            docgiaDAL dgDAL = new docgiaDAL();

            if (dgDAL.isDocGia(docgia.MaThe))
            {
                BUS_notification.mess = "Đã tạo thẻ với số CMND này. Vui lòng chọn số CMND khác";
                return(false);
            }
            return(dgDAL.themDocGia(docgia));
        }
Beispiel #4
0
        /// <summary>
        /// M thêm code vô đây
        /// , rep :ok gái
        /// </summary>
        /// <param name="docgia"></param>
        /// <returns></returns>
        public bool XoaDocGia(docgiaDTO docgia)
        {
            docgiaDAL doxgiaDAL = new docgiaDAL();

            if (!doxgiaDAL.isDocGia(docgia.MaThe))
            {
                BUS_notification.mess = "Không tồn tại mã thẻ";
                return(false);
            }

            return(doxgiaDAL.xoaDocGia(docgia.MaThe));
        }
Beispiel #5
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);
        }
        /// <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);
        }
Beispiel #7
0
        /// <summary>
        /// Tìm đọc giả theo tên và số cmnd
        /// </summary>
        /// <param name="cmnd"> Mã số cmnd </param>
        /// <param name="name"> Họ tên bạn đọc </param>
        /// <returns></returns>
        public List <docgiaDTO> TimDocGia(string cmnd, string name)
        {
            //cmnd = cmnd.Replace(" ", "");
            if (cmnd == null)
            {
                cmnd = "";
            }
            if (name == null)
            {
                name = "";
            }
            List <docgiaDTO> result    = new List <docgiaDTO>();
            List <docgiaDTO> danhsach  = this.DanhSachDocGia();
            docgiaDAL        docgiaDAL = new docgiaDAL();


            if (cmnd != "")
            {
                if (docgiaDAL.isDocGia(int.Parse(cmnd)))
                {
                    foreach (docgiaDTO dg in danhsach)
                    {
                        if (dg.MaThe == int.Parse(cmnd))
                        {
                            result.Add(dg);
                            return(result);
                        }
                    }
                }
                else
                {
                    foreach (docgiaDTO dg in danhsach)
                    {
                        if (Levenshtein_Distance.Distance(dg.MaThe.ToString(), cmnd) <= (MAX_LEVENSTEIN_DISTANCE / 2))
                        {
                            if (result.IndexOf(dg) == -1)
                            {
                                result.Add(dg);
                            }
                        }
                    }
                }
            }

            if (name != "")
            {
                List <ResultItem> item = new List <ResultItem>();
                foreach (docgiaDTO dg in danhsach)
                {
                    int check = TimKiemBUS.CheckisAvaiable(name, dg.HoTen);
                    if (check != -1)
                    {
                        ResultItem rItem;
                        rItem.mark   = check;
                        rItem.docgia = dg;
                        item.Add(rItem);
                    }
                }
                item.Sort((s1, s2) => s1.mark.CompareTo(s2.mark));
                foreach (ResultItem i in item)
                {
                    result.Add(i.docgia);
                }
            }

            return(result);
        }