public async Task <IActionResult> Edit(int id, [Bind("Id,BorrowDate,ReturnDate,IdBook,IdBorrowing")] BorrowDetail borrowDetail) { if (id != borrowDetail.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(borrowDetail); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BorrowDetailExists(borrowDetail.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["IdBook"] = new SelectList(_context.Books, "Id", "Id", borrowDetail.IdBook); ViewData["IdBorrowing"] = new SelectList(_context.Borrowings, "Id", "Id", borrowDetail.IdBorrowing); return(View(borrowDetail)); }
//临时还书信息根据图书条码查询图书信息 private void txtBarCode_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == 13 && this.txtBarCode.Text.Trim().Length > 0) { if (this.lblBorrowCount.Text == "0") { MessageBox.Show("书已还清,请点确认", "信息提示"); return; } #region 查询借书列表,并更新 BorrowDetail objDetail = detailList.FirstOrDefault <BorrowDetail>(b => b.BarCode.Equals(this.txtBarCode.Text.Trim()) && b.NonReturnCount != 0); if (objDetail == null) { MessageBox.Show("该图书已还清或不在还书之列,请核实", "信息提示"); this.txtBarCode.SelectAll(); return; } if (objDetail.NonReturnCount != 0)//大于1本 { objDetail.ReturnCount += 1; objDetail.NonReturnCount -= 1; } #endregion #region 在本地还书列表增加 //查询本地还书列表图书 ReturnBook objReturnBook = returnBookList.FirstOrDefault <ReturnBook>(b => b.BorrowDetailId.Equals(objDetail.BorrowDetailId)); if (objReturnBook != null) { objReturnBook.ReturnCount += 1; } else { //还书列表不存在,根据图书条码从借书列表detailList中查询图书信息 objReturnBook = new ReturnBook(); objReturnBook.BorrowDetailId = objDetail.BorrowDetailId; objReturnBook.BarCode = objDetail.BarCode; objReturnBook.BookName = objDetail.BookName; objReturnBook.ReturnCount = 1; //添加集合BookList,显示图书信息 returnBookList.Add(objReturnBook); } #endregion //显示查询图书信息 this.lblReturnCount.Text = (Convert.ToInt32(this.lblReturnCount.Text.Trim()) + 1).ToString(); this.lblBorrowCount.Text = (Convert.ToInt32(this.lblBorrowCount.Text.Trim()) - 1).ToString(); this.lbl_Remainder.Text = (Convert.ToInt32(this.lbl_Remainder.Text.Trim()) + 1).ToString(); var list = from rb in returnBookList group rb by new { rb.BarCode, rb.BookName } into s select new { BarCode = s.Key.BarCode, BookName = s.Key.BookName, ReturnCount = s.Sum(m => m.ReturnCount) }; this.dgvReturnList.DataSource = null; this.dgvReturnList.DataSource = list.ToList(); var detaill = detailList.Where(d => d.NonReturnCount != 0); this.dgvNonReturnList.DataSource = null; this.dgvNonReturnList.DataSource = detaill.ToList(); this.txtBarCode.Clear(); } }
public async Task <IActionResult> Create([Bind("Id,BorrowDate,ReturnDate,IdBook,IdBorrowing")] BorrowDetail borrowDetail) { if (ModelState.IsValid) { _context.Add(borrowDetail); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["IdBook"] = new SelectList(_context.Books, "Id", "Id", borrowDetail.IdBook); ViewData["IdBorrowing"] = new SelectList(_context.Borrowings, "Id", "Id", borrowDetail.IdBorrowing); return(View(borrowDetail)); }
/// <summary> /// 图书条码扫描并显示图书信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtBarCode_KeyDown(object sender, KeyEventArgs e) { if (this.txtBarCode.Text.Trim().Length != 0 && e.KeyValue == 13) { //[4]检查当前借书总数是否已经到达上限 if (Convert.ToInt32(this.lbl_Remainder.Text) == 0) { MessageBox.Show("当前读者借书总数已达上限", "借书提示"); return; } //[1]根据条形码从数据库里面查询 Books objBook = bookService.GetBookByBarCode(this.txtBarCode.Text.Trim()); if (objBook != null) { //[2]判断当前集合是否已经存在该图书对象(如果不存在就添加一个,存在则更新图书数量) int count = (from b in this.detailList where b.BarCode.Equals(objBook.barCode) select b).Count(); if (count == 0)//不存在添加一个对象 { //封装对象 BorrowDetail borrowDetail = new BorrowDetail() { BarCode = objBook.barCode, BookId = objBook.bookId, BookName = objBook.BookName, Expire = DateTime.Now.AddDays(objReader.AllowDay), BorrowCount = 1 }; detailList.Add(borrowDetail); //【3】同步更新列表数据 this.dgvBookList.DataSource = null; this.dgvBookList.DataSource = detailList; } else//(如果存在更新图书数量) { BorrowDetail borrowDetail = (from b in this.detailList where b.BarCode.Equals(objBook.barCode) select b).First <BorrowDetail>(); borrowDetail.BorrowCount += 1; this.dgvBookList.Refresh();//刷新 } //同步显示上面的信息,开启保存与删除按钮 this.lblBorrowCount.Text = (Convert.ToInt32(this.lblBorrowCount.Text) + 1).ToString(); this.lbl_Remainder.Text = (Convert.ToInt32(this.lbl_Remainder.Text) - 1).ToString(); this.txtBarCode.Clear();//清除当前的条码 this.btnSave.Enabled = true; this.btnDel.Enabled = true; } else { MessageBox.Show("当前图书不存在", "查询提示"); } } }
private void txtBarCode_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == 13 && this.txtBarCode.Text.Length != 0) { bool isBookExists = (from b in this.borrowList where b.BarCode == this.txtBarCode.Text.Trim() select b).Count() > 0; if (!isBookExists) { MessageBox.Show("该图书不在待还列表,请检查", "提示信息"); this.txtBarCode.SelectAll(); this.txtBarCode.Focus(); return; } BorrowDetail objCurrentDetail = (from b in this.borrowList where b.BarCode == this.txtBarCode.Text.Trim() select b).First <BorrowDetail>(); int borrowCount = (from b in this.borrowList where b.BarCode == this.txtBarCode.Text.Trim() select b).Sum(u => u.NonReturnCount); int returnCount = (from r in this.returnList where r.BarCode == this.txtBarCode.Text.Trim() select r).Count(); if (returnCount == 0) { this.returnList.Add(new BorrowDetail() { BarCode = objCurrentDetail.BarCode, BookName = objCurrentDetail.BookName, ReturnCount = 1 }); this.dgvReturnList.DataSource = null; this.dgvReturnList.DataSource = this.returnList; this.btnConfirmReturn.Enabled = true; } else { BorrowDetail returnDetail = (from r in this.returnList where r.BarCode == objCurrentDetail.BarCode select r).First <BorrowDetail>(); if (borrowCount <= returnDetail.ReturnCount) { MessageBox.Show("还书数量超出借阅数,请检查", "提示信息"); this.txtBarCode.Clear(); this.txtBarCode.Focus(); return; } else { returnDetail.ReturnCount += 1; this.dgvReturnList.Refresh(); } } this.lblReturnCount.Text = (from r in this.returnList select r.ReturnCount).Sum().ToString(); this.txtBarCode.Clear(); this.txtBarCode.Focus(); } }
private void BtnDel_Click(object sender, EventArgs e) { if (this.dgvBookList.CurrentRow == null) { return; } BorrowDetail borrowDetail = this.dgvBookList.CurrentRow.DataBoundItem as BorrowDetail; this.detailList.Remove(borrowDetail); this.currentReader.BorrowCount -= borrowDetail.BorrowCount; this.dgvBookList.DataSource = null; this.dgvBookList.DataSource = this.detailList; if (this.detailList.Count == 0) { this.btnSave.Enabled = false; this.btnDel.Enabled = false; } }
/// <summary> /// 删除图书 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDel_Click(object sender, EventArgs e) { //【1】根据图书条码找到借书明细对象 string barCode = this.dgvBookList.CurrentRow.Cells["BarCode"].Value.ToString(); BorrowDetail borrowDetail = (from b in detailList where b.BarCode.Equals(barCode) select b).First <BorrowDetail>(); //【2】删除对象(也可以根据需要添加删除确认) this.detailList.Remove(borrowDetail); //【3】同步显示(列表、借书数据) this.dgvBookList.DataSource = null; this.dgvBookList.DataSource = this.detailList; this.lblBorrowCount.Text = (Convert.ToInt32(this.lblBorrowCount.Text) - borrowDetail.BorrowCount).ToString(); this.lbl_Remainder.Text = (Convert.ToInt32(this.lbl_Remainder.Text) + borrowDetail.BorrowCount).ToString(); //【4】根据剩余对象个数禁用相关按钮(保存、删除) if (this.detailList.Count == 0) { this.btnSave.Enabled = false; this.btnDel.Enabled = false; } }
private void txtBarCode_KeyDown(object sender, KeyEventArgs e) { if (this.txtBarCode.Text.Trim().Length != 0 && e.KeyValue == 13) { //【1】检查当前借书列表中是否存在该图书 if ((from b in this.nonReturnList where b.BarCode.Equals(this.txtBarCode.Text.Trim()) select b).Count() == 0) { MessageBox.Show("当前图书不在借书列表中,请和读者确认该图书的信息", "还书提示"); this.txtBarCode.SelectAll(); return; } //【2】从还书集合中查询扫描的图书总数(用来决定是新增一个还书对象还是只是更新还书总数) int count = (from b in this.returnList where b.BarCode == this.txtBarCode.Text.Trim() select b).Count(); if (count == 0)//如果图书不存在,则添加一个新的还书对象 { this.returnList.Add(new BorrowDetail() { BarCode = this.txtBarCode.Text.Trim(), ReturnCount = 1, BookName = (from b in this.nonReturnList where b.BarCode.Equals(this.txtBarCode.Text.Trim()) select b).First <BorrowDetail>().BookName }); //显示要还的图书信息 this.dgvReturnList.DataSource = null; this.dgvReturnList.DataSource = returnList; } else//存在则更新数据 { //从还书集合中找到该还书对象 BorrowDetail bojReturnDetail = (from b in this.returnList where b.BarCode == this.txtBarCode.Text.Trim() select b).First <BorrowDetail>(); //从未还书集合中找到该对象的借书总数(注意不是第一条数据,而是他们相同的和) /*BorrowDetail bojNonReturnDetail = * (from b in this.nonReturnList where b.BarCode==this.txtBarCode.Text.Trim() select b).First<BorrowDetail>();*/ //u=>u.NonRetrunConuent求和的意思 int nonReturnCount = (from b in this.nonReturnList where b.BarCode.Equals(this.txtBarCode.Text.Trim()) select b).Sum(u => u.NonReturnCount); //判断当前还书总数是否等于总借书数 if (nonReturnCount < bojReturnDetail.ReturnCount) { MessageBox.Show("还书总数不能大于借书总数", "还书提示"); this.txtBarCode.Clear(); return; } else { bojReturnDetail.ReturnCount += 1;//还书总数加一 this.dgvReturnList.Refresh(); } } //同步显示还书总数 retrunCount++; this.lblReturnCount.Text = retrunCount.ToString(); //开启按钮 this.btnConfirmReturn.Enabled = true; //清空条码输入 this.txtBarCode.Clear(); this.txtReadingCard.Focus(); } }
private void TxtBarCode_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == 13 && this.txtBarCode.Text.Trim().Length != 0) { if (this.currentReader.BorrowCount == Convert.ToInt32(this.lbl_Remainder.Text)) { MessageBox.Show("借阅数已达上限", "提示信息"); this.txtBarCode.SelectAll(); this.txtBarCode.Focus(); return; } try { Book objBook = objBookManager.GetBookByBarCode(this.txtBarCode.Text.Trim()); if (objBook == null) { MessageBox.Show("未查询到图书信息", "提示信息"); this.txtBarCode.SelectAll(); this.txtBarCode.Focus(); return; } int count = (from b in this.detailList where b.BookId == objBook.BookId select b).Count(); if (count == 0) { if (objBook.Remainder <= 0) { MessageBox.Show("该图书库存不足,是否补充后再出借,请检查", "提示信息"); this.txtBarCode.SelectAll(); this.txtBarCode.Focus(); return; } DateTime dt = objBorrowManager.GetServerTime(); this.detailList.Add(new BorrowDetail { BookId = objBook.BookId, BarCode = objBook.BarCode, BookName = objBook.BookName, Expire = dt.AddDays(this.currentReader.AllowDay), BorrowCount = 1, ReturnCount = 0, NonReturnCount = 1 }); this.dgvBookList.DataSource = null; this.dgvBookList.DataSource = this.detailList; this.btnSave.Enabled = true; this.btnDel.Enabled = true; this.currentReader.BorrowCount += 1; this.txtBarCode.Clear(); this.txtBarCode.Focus(); } else { BorrowDetail borrowDetail = (from b in this.detailList where b.BookId == objBook.BookId select b).First <BorrowDetail>(); if (objBook.Remainder <= borrowDetail.BorrowCount) { MessageBox.Show("该图书库存不足,是否补充后再出借,请检查", "提示信息"); this.txtBarCode.SelectAll(); this.txtBarCode.Focus(); return; } borrowDetail.BorrowCount += 1; borrowDetail.NonReturnCount += 1; this.dgvBookList.Refresh(); this.currentReader.BorrowCount += 1; this.txtBarCode.Clear(); this.txtBarCode.Focus(); } } catch (Exception ex) { MessageBox.Show("查询图书过程中发生异常:" + ex.Message, "异常提示"); } } }
public bool UpdateBorrowDetail(BorrowDetail borrowDetail) { _unitOfWork.BorrowDetailRepository.Update(borrowDetail); _unitOfWork.SaveChanges(); return(true); }
public void InsertBorrowDetail(BorrowDetail borrowDetail) { _unitOfWork.BorrowDetailRepository.Add(borrowDetail); _unitOfWork.SaveChanges(); }