public bool ALTER(DauSachDTO dauSach)
        {
            string query = string.Empty;

            query += "UPDATE [dbo].[DauSach] SET [MaDauSach] = @madausach, [MaTuaSach] = @matuasach , [NhaXB] = @nhaxb, [NamXB] = @namxb, [TriGia] =@trigia ";

            using (SqlConnection con = new SqlConnection(ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection  = con;
                    cmd.CommandType = System.Data.CommandType.Text;
                    cmd.CommandText = query;
                    cmd.Parameters.AddWithValue("@madausach", dauSach.Madausach);
                    cmd.Parameters.AddWithValue("@matuasach", dauSach.Matuasach);
                    cmd.Parameters.AddWithValue("@nhaxb", dauSach.Nxb);
                    cmd.Parameters.AddWithValue("@namxb", dauSach.Namxb);
                    cmd.Parameters.AddWithValue("@trigia", dauSach.Trigia);

                    try
                    {
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                        con.Dispose();
                    }
                    catch (Exception ex)
                    {
                        con.Close();
                        return(false);
                    }
                }
            }
            return(true);
        }
 public static int ThemDauSach(DauSachDTO ds)
 {
     SqlParameter[] para = new SqlParameter[]
     {
         new SqlParameter("@masach", ds.MaSach),
         new SqlParameter("@tensach", ds.TenSach),
         new SqlParameter("@tacgia", ds.TacGia),
         new SqlParameter("@nxb", ds.NXB),
         new SqlParameter("@theloai", ds.TheLoai),
         new SqlParameter("@vitri", ds.ViTri)
     };
     SqlParameter[] para1 = new SqlParameter[]
     {
         new SqlParameter("@mahd", ds.MaHD),
         new SqlParameter("@ngaynhap", ds.NgayNhap),
         new SqlParameter("@matt", ds.MaTT)
     };
     SqlParameter[] para2 = new SqlParameter[]
     {
         new SqlParameter("@mahd", ds.MaHD),
         new SqlParameter("@masach", ds.MaSach),
         new SqlParameter("@soluong", ds.Soluong)
     };
     if (DataProvider.Execute_NonQuery("insert_hoadon", para1) == 0)
     {
         return(0);
     }
     if (DataProvider.Execute_NonQuery("insert_dausach", para) == 0)
     {
         XoaHoaDon(ds.MaHD);
         return(-1);
     }
     DataProvider.Execute_NonQuery("insert_chitiethoadon", para2);
     return(1);
 }
        public bool DELETE(DauSachDTO dauSach)
        {
            string query = string.Empty;

            query += "DELETE FROM DocGia WHERE [MaDauSach] = @madausach";

            using (SqlConnection con = new SqlConnection(ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection  = con;
                    cmd.CommandType = System.Data.CommandType.Text;
                    cmd.CommandText = query;
                    cmd.Parameters.AddWithValue("@madausach", dauSach.Madausach);
                    try
                    {
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                        con.Dispose();
                    }
                    catch (Exception ex)
                    {
                        con.Close();
                        return(false);
                    }
                }
            }
            return(true);
        }
Example #4
0
 public PReceiptNote(DauSachDTO dauSach)
 {
     InitPanelReceiptNote(true);
     this.dauSach              = dauSach;
     lblNameTitle.Text         = dauSach.Ten;
     cbbSupplier.DataSource    = NXBBUS.GetSuppliers();
     cbbSupplier.DisplayMember = "ten";
 }
Example #5
0
 public static int DelTitBook(DauSachDTO dauSach)
 {
     if (SachBUS.DelAllBooks(dauSach) > -1)
     {
         return(DauSachDAO.DeletTitleBook(dauSach));
     }
     return(-1);
 }
Example #6
0
 /* Phương thức xóa tất cả sách của một đầu sách */
 public static int DelAllBooks(DauSachDTO dauSach)
 {
     if (NotHaveBook(dauSach))
     {
         return(SachDAO.DeletAllBooks(dauSach));
     }
     return(-1);
 }
Example #7
0
        public static int DeletTitleBook(DauSachDTO dauSach)
        {
            string sqlstr = $"EXEC dbo.DeletTitleBook '{dauSach.Mads}'";

            MySQL.Open();
            int numrow = MySQL.ExecuteNonSQL(sqlstr);

            MySQL.Close();
            return(numrow);
        }
Example #8
0
        public static int InsertTitleBook(DauSachDTO dauSach)
        {
            string sqlstr = $"EXEC dbo.InserTitle N'{dauSach.Ten}', '{dauSach.Soluong}', '{dauSach.Songaytoida}', '{dauSach.Sotienphat}', '{dauSach.Giabia}', '{dauSach.Matl.Matl}' ";

            MySQL.Open();
            int numrow = MySQL.ExecuteNonSQL(sqlstr);

            MySQL.Close();
            return(numrow);
        }
Example #9
0
 /* Phương thức kiểm tra đầu sách đã được thêm vào chưa */
 private bool CheckTitle(DauSachDTO dauSach)
 {
     foreach (PReceiptNote item in pnlreceiptNotes)
     {
         if (dauSach.Mads == item.DauSach.Mads)
         {
             return(false);
         }
     }
     return(true);
 }
Example #10
0
        /* Phương thức xóa đi một cuốn sách được đánh dấu mất trả về số dòng thực hiện được */
        public static int DelBook(DauSachDTO dauSach)
        {
            List <SachDTO> saches    = GetBooks(dauSach);
            int            indexlost = FindLostBookLastIndex(saches);

            if (indexlost != -1)
            {
                return(SachDAO.DeletBook(saches[indexlost]));
            }
            return(0);
        }
Example #11
0
 public PReceiptNote(TTPhieuNhapDTO chiTiet, bool Deli)
 {
     InitPanelReceiptNote(false);
     this.Enabled         = Deli;
     dauSach              = chiTiet.Mads;
     lblNameTitle.Text    = dauSach.Ten;
     nudQuantity.Value    = chiTiet.Soluong;
     nudPrice.Value       = chiTiet.Dongia;
     dtpDeliveryDay.Value = chiTiet.Ngaygiao;
     lblNameSupplier.Text = chiTiet.NXB;
     nhaCungCap           = chiTiet.Manxb;
 }
Example #12
0
        /* Phương thức kiểm tra các đầu sách có sách không */
        private static bool NotHaveBook(DauSachDTO dauSach)
        {
            List <SachDTO> saches = GetBooks(dauSach);

            foreach (SachDTO sach in saches)
            {
                if (sach.Trangthai != SachDTO.IsLost)
                {
                    return(false);
                }
            }
            return(true);
        }
Example #13
0
 /* Sự kiện chọn một dòng trong dgv để hiện thị chi tiết đầu sách và trạng thái từng cuốn sách */
 private void dgvTitles_SelectionChanged(object sender, EventArgs e)
 {
     if (dgvTitles.CurrentRow != null)
     {
         int        index   = dgvTitles.CurrentRow.Index;
         DauSachDTO dauSach = (dgvTitles.DataSource as List <DauSachDTO>)[index];
         dgvBooks.DataSource            = SachBUS.GetBooks(dauSach);
         dgvBooks.Columns[0].Visible    = false;
         dgvBooks.Columns[1].Visible    = false;
         dgvBooks.Columns[2].HeaderText = "Số thứ tự";
         dgvBooks.Columns[3].HeaderText = "Trạng thái";
     }
 }
        private void Them_bt_Click_1(object sender, EventArgs e)
        {
            if (DauSach.check(nxb_tb.Text, namxb_tb.Text) == true && tuasach.kiemtra(tensach_tb.Text) == false)
            {
                MessageBox.Show("Đã tồn tại");
            }
            else
            {
                TuaSachDTO tuaSach = new TuaSachDTO();
                tuaSach.Matacgia  = Convert.ToString(tacGia.mathetacgia(tacgia_cb.Text) + 1);
                tuaSach.Matheloai = Convert.ToString(theLoai.matheloai(theloai_cb.Text) + 1);
                tuaSach.Matuasach = MaTuDongTuaSach(tensach_tb.Text);
                tuaSach.Tuasach   = tensach_tb.Text;

                DauSachDTO dauSach = new DauSachDTO();
                dauSach.Namxb     = namxb_tb.Text;
                dauSach.Nxb       = nxb_tb.Text;
                dauSach.Soluong   = Convert.ToInt32(soluong_tb.Text);
                dauSach.Madausach = DauSach.getds() + 1;
                dauSach.Matuasach = tuaSach.Matuasach;
                dauSach.Trigia    = float.Parse(namxb_tb.Text);

                SachDTO sach = new SachDTO();
                sach.Madausach = dauSach.Madausach;
                //sach.Masach = MaTuDongSach();
                sach.Tinhtrang = "Còn";
                sach.Ngaynhap  = Convert.ToDateTime(DateTime.Now);
                ngaynhap.Value = DateTime.Now;
                // neu tua sach khac thi them tat ca
                int soluongsach = list.soluongsach();
                int year        = sach.Ngaynhap.Year - Convert.ToInt32(namxb_tb.Text);
                if (year > sach.Nam)
                {
                    MessageBox.Show("Chỉ nhập sách trong vòng 8 năm", "Lỗi", MessageBoxButtons.OK);
                }
                else
                {
                    if (tuasach.kiemtra(tensach_tb.Text) == true)
                    {
                        tuasach.Them(tuaSach);
                        DauSach.add(dauSach);
                        for (int i = soluongsach; i < soluongsach + dauSach.Soluong; i++)
                        {
                            sach.Masach = i;
                            list.Them(sach);
                        }
                        MessageBox.Show("Thêm Thành Công", "Thông Báo", MessageBoxButtons.OK);
                    }
                }
            }
        }
Example #15
0
        /* Sự kiện thêm sách cho đầu sách */
        private void btnAddBook_Click(object sender, EventArgs e)
        {
            int        index   = dgvTitles.CurrentRow.Index;
            DauSachDTO dauSach = (dgvTitles.DataSource as List <DauSachDTO>)[index];

            if (SachBUS.AddBook(dauSach) < 1)
            {
                MessageBox.Show("Đã xảy ra lỗi.", "Thông báo");
            }
            dgvBooks.DataSource            = SachBUS.GetBooks(dauSach);
            dgvBooks.Columns[0].Visible    = false;
            dgvBooks.Columns[1].HeaderText = "Số thứ tự";
            dgvBooks.Columns[2].HeaderText = "Trạng thái";
        }
Example #16
0
        /* Sự kiện xóa một cuốn sách trong đầu sách khi sách đã bị mất */
        private void btnDelBook_Click(object sender, EventArgs e)
        {
            int        index   = dgvTitles.CurrentRow.Index;
            DauSachDTO dauSach = (dgvTitles.DataSource as List <DauSachDTO>)[index];

            if (SachBUS.DelBook(dauSach) < 1)
            {
                MessageBox.Show("Không thể xóa vì sách đang được sử dụng hoặc không có cuốn sách nào", "Thông báo");
            }
            dgvBooks.DataSource            = SachBUS.GetBooks(dauSach);
            dgvBooks.Columns[0].Visible    = false;
            dgvBooks.Columns[1].HeaderText = "Số thứ tự";
            dgvBooks.Columns[2].HeaderText = "Trạng thái";
        }
Example #17
0
        /* Sự kiện chọn sách đầu sách cần nhập bằng việc thêm một Panel sách nhập đã được tạo */
        private void dgvTitles_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex < 0)
            {
                return;
            }
            DauSachDTO dauSach = (dgvTitles.DataSource as List <DauSachDTO>)[e.RowIndex];

            if (CheckTitle(dauSach))
            {
                pnlreceiptNotes.Add(new PReceiptNote(dauSach));
                flpDetail.Controls.Add(pnlreceiptNotes[pnlreceiptNotes.Count - 1]);
            }
        }
Example #18
0
 /* Sự kiện chọn một dòng trong dgv để hiện thị chi tiết đầu sách và trạng thái từng cuốn sách */
 private void dgvTitle_SelectionChanged(object sender, EventArgs e)
 {
     if (dgvTitles.CurrentRow != null)
     {
         int        index   = dgvTitles.CurrentRow.Index;
         DauSachDTO dauSach = (dgvTitles.DataSource as List <DauSachDTO>)[index];
         lbNameTit.Text                 = dauSach.Ten;
         lbQuantity.Text                = dauSach.Soluong.ToString();
         lbDay.Text                     = dauSach.Songaytoida.ToString();
         lbMulct.Text                   = dauSach.Sotienphat.ToString("#,0");
         lbBookCate.Text                = dauSach.Matl.Ten;
         lbPrice.Text                   = dauSach.Giabia.ToString("#,0");
         dgvBooks.DataSource            = SachBUS.GetBooks(dauSach);
         dgvBooks.Columns[0].Visible    = false;
         dgvBooks.Columns[1].Visible    = false;
         dgvBooks.Columns[2].HeaderText = "Số thứ tự";
         dgvBooks.Columns[3].HeaderText = "Trạng thái";
     }
 }
Example #19
0
        private void btnThem_Click(object sender, EventArgs e)
        {
            DauSachDTO dauSachDTO = new DauSachDTO
            {
                MaDauSach  = txtMaDauSach.Text,
                TenDauSach = txtTenDauSach.Text,
                MaTheLoai  = cbbTheLoai.SelectedValue.ToString(),
                TrangThai  = true
            };

            if (DauSachBUS.ThemDauSach(dauSachDTO))
            {
                MessageBox.Show(Constrant.ThemThanhCong, Constrant.ThongBao, MessageBoxButtons.OK, MessageBoxIcon.Information);
                frmThemDauSach_Load(sender, e);
            }
            else
            {
                MessageBox.Show(Constrant.ThemThatBai, Constrant.ThongBao, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #20
0
        private void Them_bt_Click_1(object sender, EventArgs e)
        {
            if (DauSach.check(nxb_tb.Text, namxb_tb.Text) == true && tuasach.kiemtra(tensach_tb.Text) == false)
            {
                MessageBox.Show("Đã tồn tại");
            }
            else
            {
                TuaSachDTO tuaSach = new TuaSachDTO();
                tuaSach.Matacgia  = Convert.ToString(tacGia.mathetacgia(tacgia_cb.Text) + 1);
                tuaSach.Matheloai = Convert.ToString(theLoai.matheloai(theloai_cb.Text) + 1);
                tuaSach.Matuasach = MaTuDongTuaSach(tensach_tb.Text);
                tuaSach.Tuasach   = tensach_tb.Text;

                DauSachDTO dauSach = new DauSachDTO();
                dauSach.Namxb     = namxb_tb.Text;
                dauSach.Nxb       = nxb_tb.Text;
                dauSach.Soluong   = Convert.ToInt32(soluong_tb.Text);
                dauSach.Madausach = DauSach.getds() + 1;
                dauSach.Matuasach = tuaSach.Matuasach;
                dauSach.Trigia    = float.Parse(namxb_tb.Text);

                SachDTO sach = new SachDTO();
                sach.Madausach = dauSach.Madausach;
                //sach.Masach = MaTuDongSach();
                sach.Tinhtrang = "Còn";
                sach.Ngaynhap  = Convert.ToDateTime(ngaynhap.Value.ToShortDateString());
                // neu tua sach khac thi them tat ca
                int soluongsach = list.soluongsach();
                if (tuasach.kiemtra(tensach_tb.Text) == true)
                {
                    tuasach.Them(tuaSach);
                    DauSach.add(dauSach);
                    for (int i = soluongsach; i < soluongsach + dauSach.Soluong; i++)
                    {
                        sach.Masach = i;
                        list.Them(sach);
                    }
                }
            }
        }
Example #21
0
        public bool ThemDauSach(DauSachDTO dauSachDTO)
        {
            try
            {
                DauSach dauSach = new DauSach
                {
                    MaDauSach  = dauSachDTO.MaDauSach,
                    TenDauSach = dauSachDTO.TenDauSach,
                    MaTheLoai  = dauSachDTO.MaTheLoai,
                    TrangThai  = true
                };
                data.DauSaches.Add(dauSach);
                data.SaveChanges();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Example #22
0
        /* Sự kiện xóa đầu sách khi tất cả sách của đầu sách không còn cuốn nào */
        private void btnDeleTit_Click(object sender, EventArgs e)
        {
            int        index   = dgvTitles.CurrentRow.Index;
            DauSachDTO dauSach = (dgvTitles.DataSource as List <DauSachDTO>)[index];
            int        check   = DauSachBUS.DelTitBook(dauSach);

            if (check > -1)
            {
                if (check == 0)
                {
                    MessageBox.Show("Không xóa được vui lòng thử lại", "Thông báo");
                }
                else
                {
                    cbbBookCate_SelectedValueChanged(cbbBookCate, new EventArgs());
                }
            }
            else
            {
                MessageBox.Show("Còn sách tồn tại không thể xóa được", "Thông báo");
            }
        }
Example #23
0
        /* Phương thức thêm sách mới của một đầu sách, trả về số dòng thêm được
         * Nếu có tồn tại một vị trí mất thì thay đổi vị trí đó thành sách
         * còn không thì thêm một vị trí mới */
        public static int AddBook(DauSachDTO dauSach)
        {
            List <SachDTO> saches    = GetBooks(dauSach);
            int            indexlost = FindLostBook(saches);
            SachDTO        sachmoi   = null;

            if (indexlost == -1)
            {
                sachmoi = new SachDTO(dauSach, saches.Count + 1);
                for (int i = 0; i < saches.Count; i++)
                {
                    if (i + 1 < saches[i].Stt)
                    {
                        sachmoi.Stt = i + 1;
                        break;
                    }
                }
                return(SachDAO.InserBook(sachmoi));
            }
            sachmoi = saches[indexlost];
            return(ChangeStatusBook(ref sachmoi));
        }
Example #24
0
        public static List <SachDTO> SelecBooks(DauSachDTO dauSach)
        {
            string         sqlstr = $"EXEC dbo.SelecBooks '{dauSach.Mads}'";
            List <SachDTO> saches = new List <SachDTO>();

            MySQL.Open();
            using (SqlDataReader dataReader = MySQL.ExecuteSQL(sqlstr))
            {
                while (dataReader.Read())
                {
                    saches.Add(
                        new SachDTO(
                            dauSach,
                            Int32.Parse(dataReader["stt"].ToString()),
                            dataReader["trangthai"].ToString()
                            )
                        );
                }
            }
            MySQL.Close();
            return(saches);
        }
        public bool ADD(DauSachDTO dauSach)
        {
            string query = string.Empty;

            query += "INSERT [dbo].[DauSach] ([MaDauSach], [MaTuaSach], [NhaXB], [NamXB], [TriGia], [SoLuong]) " +
                     "VALUES (@madausach, @matuasach, @nhaxb, @namxb, @trigia, @soluong)";

            using (SqlConnection con = new SqlConnection(ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection  = con;
                    cmd.CommandType = System.Data.CommandType.Text;
                    cmd.CommandText = query;
                    cmd.Parameters.AddWithValue("@madausach", dauSach.Madausach);
                    cmd.Parameters.AddWithValue("@matuasach", dauSach.Matuasach);
                    cmd.Parameters.AddWithValue("@nhaxb", dauSach.Nxb);
                    cmd.Parameters.AddWithValue("@namxb", dauSach.Namxb);
                    cmd.Parameters.AddWithValue("@trigia", dauSach.Trigia);
                    cmd.Parameters.AddWithValue("@soluong", dauSach.Soluong);
                    try
                    {
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                        con.Dispose();
                    }
                    catch (Exception ex)
                    {
                        con.Close();
                        return(false);
                    }
                }
            }
            return(true);
        }
Example #26
0
 // Insert book, return bookID
 public static int InsertBook(DauSachDTO sach)
 {
     int result = SachDAO.InsertBook(sach);
     return result;
 }
Example #27
0
        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (/*cboMaHD.SelectedText == "" ||*/ dtpNgayNhap.Value == DateTime.Now || txtSoLuong.Text == "" || txtMaSach.Text == "" || txtTenSach.Text == "" || txtTacGia.Text == "" || txtNhaXB.Text == "" || txtTheLoai.Text == "" || txtViTri.Text == "")
            {
                MessageBox.Show("Nhập đầy đủ thông tin", "Thông báo");
                return;
            }
            DauSachDTO ds = new DauSachDTO();

            ds.MaHD     = cboMaHD.Text;
            ds.MaTT     = cboMaTT.Text;
            ds.NgayNhap = DateTime.Parse(dtpNgayNhap.Value.ToString("dd/MM/yyyy"));
            ds.Soluong  = int.Parse(txtSoLuong.Text);
            ds.MaSach   = txtMaSach.Text;
            ds.TenSach  = txtTenSach.Text;
            ds.TacGia   = txtTacGia.Text;
            ds.NXB      = txtNhaXB.Text;
            ds.TheLoai  = txtTheLoai.Text;
            ds.ViTri    = txtViTri.Text;
            if (luu == 1)
            {
                if (MessageBox.Show(string.Format("Thêm đầu sách {0} tên sách {1} hóa đơn {2}", ds.MaSach, ds.TenSach, ds.MaHD), "", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    switch (DauSachBUS.ThemDauSach(ds))
                    {
                    case 0:
                        MessageBox.Show("Mã hóa đơn đã tồn tại");
                        break;

                    case 1:
                        MessageBox.Show("Đã thêm");
                        DauSach_UserC_Load(sender, e);
                        btnHuy_Click(sender, e);
                        break;

                    case -1:
                        MessageBox.Show("Mã đầu sách đã tồn tại");
                        break;

                    default: break;
                    }
                }
            }
            else
            {
                if (MessageBox.Show(string.Format("Cập nhật đầu sách {0} tên sách {1} hóa đơn {2}", ds.MaSach, ds.TenSach, ds.MaHD), "", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    switch (DauSachBUS.SuaDauSach(ds))
                    {
                    case 0:
                        MessageBox.Show("Cập nhật đầu sách lỗi");
                        break;

                    case 1:
                        MessageBox.Show("Cập nhật thành công");
                        DauSach_UserC_Load(sender, e);
                        btnHuy_Click(sender, e);
                        break;

                    case -1:
                        MessageBox.Show("Cập nhật hóa đơn lỗi");
                        break;

                    default: break;
                    }
                }
            }
        }
 public static int SuaDauSach(DauSachDTO ds)
 {
     return(DauSachDAO.SuaDauSach(ds));
 }
Example #29
0
        private void BtnThemClick(object sender, EventArgs e)
        {
            try {
                // Variables
                int rowCount = PhieuNhapGrid.Rows.Count;
                bool hasPhieuNhap = false; // Đảm bảo Phiếu Nhập Sách chỉ được tạo một lần
                string msg = ""; // Biến toàn cục string để thông báo tổng hợp các trường hợp nhập vào không hợp lệ

                for (int i = 0; i < rowCount-1; ++i) {
                    // 1.  Kiểm tra có dữ liệu nhập vào hay không
                    var sachNhap = new SachNhapDTO();
                    DataGridViewCellCollection cell = PhieuNhapGrid.Rows[i].Cells;
                    bool data = true; // Kiểm tra coi dữ liệu một row đã được nhập đủ chưa
                    if (cell[1].Value == null || cell[4].Value == null) {
                        msg += @"Bạn đã chưa nhập Tên Sách hoặc Số lượng ở dòng " + (i+1) + "\n";
                        data = false;
                        }
                    if (data) {
                        sachNhap.STT = cell[0].Value != null ? Int32.Parse(cell[0].Value.ToString()) : 0;
                        sachNhap.TenSach = cell[1].Value.ToString(); // Ten sach
                        sachNhap.TacGia = cell[3].Value != null ? cell[3].Value.ToString() : "";
                        sachNhap.TheLoai = cell[2].Value != null ? cell[2].Value.ToString() : "";
                        sachNhap.SoLuong = Int32.Parse(cell[4].Value.ToString()); // SoLuong Nhap

                        // 2.Kiểm tra số lượng sách nhập có thoả quy định không
                        if (ThamSoBUS.CheckSoLuongNhapNN(sachNhap.SoLuong)) {
                            var phieuNhap = new PhieuNhapDTO {NgayNhap = dtNgayNhap.Value};

                            // We use another hasPhieuNhap bool to make sure
                            // we only check phieuNhap in database one time
                            int phieuNhapID = PhieuNhapBUS.HasPhieuNhap(phieuNhap.NgayNhap);
                            if (!hasPhieuNhap)
                                if (phieuNhapID != 0)
                                    hasPhieuNhap = true;
                                else {
                                    phieuNhapID = PhieuNhapBUS.Insert(phieuNhap.NgayNhap);
                                }
                            // 3.Kiểm tra coi sách có tồn tại trong CSDL không
                            int maSach = DauSachBUS.CheckBook(sachNhap.TenSach);
                            if (maSach != 0) {
                                //Sách tồn tại > kiểm tra lượng tồn và update
                                int luongTon = DauSachBUS.CheckLuongTonLN(sachNhap.TenSach);
                                if (luongTon != -1) {
                                    DauSachBUS.UpdateLuongTon(sachNhap.TenSach, luongTon + sachNhap.SoLuong);
                                }
                                var chiTietPN = new ChiTietPhieuNhapDTO {
                                                                            MaPhieuNhap = phieuNhapID,
                                                                            MaSach = maSach,
                                                                            LuongNhap = sachNhap.SoLuong
                                                                        };
                                ChiTietPhieuNhapBUS.Insert(chiTietPN);
                                msg += @"Thành công!";
                            }
                                // 3. Nếu sách không tồn tại thì ta insert một sách mới
                            else {
                                var sachDTO = new DauSachDTO();
                                sachDTO.TacGia = sachNhap.TacGia;
                                sachDTO.TenSach = sachNhap.TenSach;
                                sachDTO.TheLoai = sachNhap.TheLoai;
                                sachDTO.LuongTon = sachNhap.SoLuong;

                                int sachID = DauSachBUS.InsertBook(sachDTO);
                                var chiTietPN = new ChiTietPhieuNhapDTO {
                                                                            MaPhieuNhap = phieuNhapID,
                                                                            MaSach = sachID,
                                                                            LuongNhap = sachNhap.SoLuong
                                                                        };
                                ChiTietPhieuNhapBUS.Insert(chiTietPN);
                                msg += @"Thành công!";
                            }
                        } else {
                            msg += @"Bạn đã nhập dưới số lượng tối thiểu cho cuốn sách" + sachNhap.TenSach + "\n";
                        }

                    }
                }
                MessageBox.Show(msg, @"Thông báo", MessageBoxButtons.OK);
            }
            catch {
            }
        }
        public bool add(DauSachDTO ds)
        {
            bool re = DauSach.ADD(ds);

            return(re);
        }
        public bool alter(DauSachDTO ds)
        {
            bool re = DauSach.ALTER(ds);

            return(re);
        }
        public bool delete(DauSachDTO ds)
        {
            bool re = DauSach.DELETE(ds);

            return(re);
        }