Exemple #1
0
        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));
        }
Exemple #2
0
 //临时还书信息根据图书条码查询图书信息
 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();
     }
 }
Exemple #3
0
        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));
        }
Exemple #4
0
 /// <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;
            }
        }
Exemple #7
0
        /// <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;
            }
        }
Exemple #8
0
        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();
 }