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 { } }
private void Button1Click(object sender, EventArgs e) { var tenKH = cbHoTen.Text; var msg = ""; var phieuXuatID = 0; var khachHangID = KhachHangBUS.GetKhachHangID(tenKH); if (khachHangID != 0) { if (ThamSoBUS.CheckNoLN(tenKH)) { int rowCount = PhieuNhapGrid.Rows.Count; bool hasPhieuXuat = false; decimal sum = 0; // Tổng tiền mua của khách hàng, để cập nhật vào nợ for (int i = 0; i < rowCount-1; ++i) { var sachNhap = new SachNhapDTO(); DataGridViewCellCollection cell = PhieuNhapGrid.Rows[i].Cells; var data = true; // Kiểm tra coi dữ liệu một row đã được nhập đủ chưa if (cell[1].Value == null || cell[2].Value == null || cell[5].Value == null) { msg += @"Bạn phải nhập Tên sách, Số lượng và Đơn giá " + (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(); sachNhap.DonGia = decimal.Parse(cell[2].Value.ToString()); sachNhap.TheLoai = cell[3].Value != null ? cell[2].Value.ToString() : ""; sachNhap.TacGia = cell[4].Value != null ? cell[4].Value.ToString() : ""; sachNhap.SoLuong = Int32.Parse(cell[5].Value.ToString()); // Kiểm tra lượng sách tồn sau khi nhập có đúng như quy định không) int sachID = DauSachBUS.CheckBook(sachNhap.TenSach); if (sachID == 0) msg += "Sách " + sachNhap.TenSach + " không tồn tại trong kho hàng \n"; else if (ThamSoBUS.CheckLTNN(sachNhap.TenSach, sachNhap.SoLuong)) { var phieuXuat = new PhieuXuatDTO { NgayXuat = ngayLap.Value.Date, MaKH = khachHangID, }; // We use another hasPhieuNhap bool to make sure // we only check phieuNhap in database one time phieuXuatID = PhieuXuatBUS.CheckPhieuXuat(khachHangID, ngayLap.Value.Date); if (!hasPhieuXuat) if (phieuXuatID != 0) hasPhieuXuat = true; else { phieuXuatID = PhieuXuatBUS.Insert(phieuXuat); } // Lập phiếu chi tiết nhập sách var chiTietPhieuXuat = new ChiTietPhieuXuatDTO { DonGia = sachNhap.DonGia, MaSach = sachID, SoLuong = sachNhap.SoLuong, MaPhieuXuat = phieuXuatID }; ChiTietPhieuXuatBUS.Insert(chiTietPhieuXuat); // + tiền sum += sachNhap.DonGia * sachNhap.SoLuong; // Update lại lượng tồn int luongTon = DauSachBUS.GetLuongTon(sachNhap.TenSach); DauSachBUS.UpdateLuongTon(sachNhap.TenSach, luongTon - sachNhap.SoLuong); msg += @"Thành công!"; } else { msg += @"Bạn mua quá nhiều sách "+ sachNhap.TenSach + @" , hãy giảm lại!"; } } } // Cập nhật nợ + cập nhật thành tiền KhachHangBUS.UpdateNo(khachHangID, sum); PhieuXuatBUS.UpdateThanhTien(phieuXuatID,sum); } else msg += @"Khách hàng này nợ quá nhiều !"; } else msg += @"Khách hàng này không tồn tại"; MessageBox.Show(msg, @"Thông báo!", MessageBoxButtons.OK); }