private void btnCommit_Click(object sender, EventArgs e)
        {
            //Preparing data
            List <BorrowBookDetail> objListDetail = new List <BorrowBookDetail>();

            //Traversing DataGridView
            for (int i = 0; i < dgvReturn.Rows.Count; i++)
            {
                if (Convert.ToBoolean(dgvReturn.Rows[i].Cells[7].Value) == true)
                {
                    //Instantiate an Object
                    BorrowBookDetail objDetail = new BorrowBookDetail();
                    objDetail.DetailId       = objBorrowBookDetailServices.GetDetailId(borrowId, dgvReturn.Rows[i].Cells[1].Value.ToString());
                    objDetail.BorrowId       = borrowId;
                    objDetail.BookId         = dgvReturn.Rows[i].Cells[1].Value.ToString();
                    objDetail.LastReturnDate = Convert.ToDateTime(dgvReturn.Rows[i].Cells[3].Value);
                    objDetail.IsOverdue      = Convert.ToBoolean(dgvReturn.Rows[i].Cells[4].Value);
                    objDetail.IsLost         = Convert.ToBoolean(dgvReturn.Rows[i].Cells[5].Value);
                    //Add to List
                    objListDetail.Add(objDetail);
                }
            }

            if (objListDetail == null)
            {
                MessageBox.Show("There are no books to submit!", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            //Submit
            try
            {
                if (objBorrowBookDetailServices.CommitReturnBook(objListDetail, Program.currentUser.LoginId, objMember))
                {
                    //Updating user information
                    LoadNumInfo();
                    //This return of the book=0
                    lblCurrentReturnBookNumber.Text = "0";
                    //In turn, delete the submitted
                    for (int i = 0; i < dgvReturn.Rows.Count; i++)
                    {
                        if (Convert.ToBoolean(dgvReturn.Rows[i].Cells[7].Value) == true)
                        {
                            dgvReturn.Rows.RemoveAt(i);
                        }
                    }
                    //Replacement fee
                    lblBookCompensation.Text = "0.00";
                    lblPoundage.Text         = "0.00";
                    lblOverdueAmount.Text    = "0.00";
                    lblTotalMoney.Text       = "0.00";
                    //Notice Successful!
                    MessageBox.Show("Successful submission of return information!", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Abnormal submission of books! Specific reasons:" + ex.Message, "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        //Open detail form
        private void btnMoneyDetail_Click(object sender, EventArgs e)
        {
            if (dgvReturn.Rows.Count == 0)
            {
                MessageBox.Show("No book information returned", "System Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            //Get current book information
            Book objBook = objBookServices.GetBookById(dgvReturn.CurrentRow.Cells[1].Value.ToString());

            //Encapsulated BookDetail Information
            BorrowBookDetail objDetai = new BorrowBookDetail
            {
                LastReturnDate = Convert.ToDateTime(dgvReturn.CurrentRow.Cells[3].Value),
                IsOverdue      = Convert.ToBoolean(dgvReturn.CurrentRow.Cells[4].Value),
                IsLost         = Convert.ToBoolean(dgvReturn.CurrentRow.Cells[5].Value),
            };


            if (objFrmReturnMoneyDetail == null)
            {
                objFrmReturnMoneyDetail = new frmReturnMoneyDetail(objBook, objDetai);
                objFrmReturnMoneyDetail.Show();
            }
            else
            {
                objFrmReturnMoneyDetail.Activate();
                objFrmReturnMoneyDetail.WindowState = FormWindowState.Normal;
            }
        }
        //Load fee detail
        private void LoadMoneyDetail(BorrowBookDetail objDetail)
        {
            lblLastReturnDate.Text = objDetail.LastReturnDate.ToShortDateString();
            lblCurrentDate.Text    = DateTime.Now.ToShortDateString();
            if (objDetail.IsOverdue == false)
            {
                lblOverdueDays.Text = "0";
            }
            else
            {
                DateTime today          = DateTime.Now;
                DateTime lastReturnDate = objDetail.LastReturnDate;
                TimeSpan days           = today.Subtract(lastReturnDate);
                lblOverdueDays.Text = days.Days.ToString();
                lblTotalAmount.Text = (Convert.ToDouble(lblOverdueDays.Text) * Convert.ToDouble(lblAmountPerDay.Text)).ToString("0.00");
            }

            //Handling fee
            if (objDetail.IsOverdue || objDetail.IsLost)
            {
                lblPoundage.Text = "5.00";
            }
            //Loss of compensation
            if (objDetail.IsLost)
            {
                lblLostBookCompensation.Text = lblBookPrice.Text;
            }

            //Total Price:
            lblTotalMoney.Text = (Convert.ToDouble(lblTotalAmount.Text) + Convert.ToDouble(lblPoundage.Text) + Convert.ToDouble(lblLostBookCompensation.Text)).ToString("0.00");
        }
        public frmReturnMoneyDetail(Book objBook, BorrowBookDetail objDetail) : this()
        {
            //Load book information
            LoadBookInfo(objBook);

            //Load fee information
            LoadMoneyDetail(objDetail);
        }
Example #5
0
        // xậy dựng action đặt hàng
        public ActionResult DatHang(Customer customer)
        {
            if (Session["GioHang"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            Customer cus = new Customer();


            if (Session["user"] == null)
            {
                // thêm khách hàng đối với khách hàng vãng lai(chưa có tài khoản)
                cus = customer;
                db.Customers.Add(cus);
                db.SaveChanges();
            }

            // thêm đơn hàng
            List <ItemGioHang> lstGH = LayGioHang();
            BorrowBook         ddh   = new BorrowBook();

            //ddh.CustomerID =  int.Parse(cus.CustomerID.ToString());

            ddh.CustomerID = int.Parse(Session["CusId"].ToString());



            ddh.BorrowDay = DateTime.Now;
            //ddh.TinhTrangGiaoHang = false;
            //ddh.DaThanhToan = false;
            //ddh.DaHuy = false;
            //ddh.DaXoa = false;
            //ddh.OderTotal = item.Total;
            ddh.OderTotal = TongTien();
            db.BorrowBooks.Add(ddh);
            db.SaveChanges();
            //}
            // thêm chi tiết đơn đặt hàng
            //List<ItemGioHang> lstGH = LayGioHang();
            foreach (var item in lstGH)
            {
                BorrowBookDetail ctdh = new BorrowBookDetail();
                ctdh.BorrowBookID = ddh.BorrowBookID;
                ctdh.BookID       = item.BookID;
                //ctdh.TenSanPham = item.TenSanPham;
                //ctdh.Quantity = item.Quantity;
                ctdh.Price = item.Price;
                db.BorrowBookDetails.Add(ctdh);
            }


            Session["GioHang"] = null;
            db.SaveChanges();
            return(View("ThongBao1"));
        }
Example #6
0
        public async Task <IActionResult> CreateBorrowBook(BorrowBook borrow)
        {
            var date        = DateTime.Today.Month;
            var timesBorrow = _context.BorrowBooks.Where(x => x.UserId == borrow.UserId && x.BorrowDate.Month == date);

            if (timesBorrow.Count() > 2)
            {
                return(BadRequest("Ban da het lan muon trong thang"));
            }



            var items = 0;

            foreach (var i in timesBorrow)
            {
                var val = _context.BorrowBookDetails.Where(x => x.BorrowBookId == i.BorrowBookId).Sum(x => x.Quantity);
                items += val;
            }

            if (items >= 5)
            {
                return(BadRequest("Bạn đã hết số lần mượn trong tháng"));
            }

            if (borrow.BorrowBookDetails != null && borrow.BorrowBookDetails.Any())
            {
                var borrowed = borrow.BorrowBookDetails.Sum(x => x.Quantity);
                if (borrowed > 5)
                {
                    return(BadRequest("Ban chi duoc muon it hon 5 quyen"));
                }
                if ((borrowed + items) > 5)
                {
                    return(BadRequest("Ban chi dc muon it hon" + (5 - borrowed)));
                }
                var newborrow = new BorrowBook {
                    BorrowDate = borrow.BorrowDate,

                    Status = borrow.Status,
                    UserId = borrow.UserId
                };
                _context.BorrowBooks.Add(newborrow);
                _context.SaveChanges();
                var id = newborrow.BorrowBookId;

                foreach (var itemdetail in borrow.BorrowBookDetails)
                {
                    var detail = new BorrowBookDetail {
                        BorrowBookId = id,
                        BookId       = itemdetail.BookId,
                        Quantity     = itemdetail.Quantity
                    };
                    _context.BorrowBookDetails.Add(detail);
                }
                await _context.SaveChangesAsync();

                return(Ok("Successed!"));
            }
            return(BadRequest("Danh sach muon trong"));
        }
        public async Task AddBorrowBookDetail(List <BorrowBookDetailDto> input)
        {
            List <string> errorList = new List <string>();

            DateTime today = DateTime.Now;
            //Add id BorrowBook
            var borrowBook = new BorrowBook
            {
                DateBorrow = today
            };
            await _borrowBookRepository.InsertAsync(borrowBook);

            int allTotal = 0;

            var items = _bookLibraryRepository.GetAll();

            //Add borrow book detail
            foreach (var borrowBookDetail in input)
            {
                var addBorrowBookDetail = new BorrowBookDetail
                {
                    Qty          = borrowBookDetail.Qty,
                    BookId       = borrowBookDetail.BookId,
                    LibraryId    = borrowBookDetail.LibraryId,
                    PriceBorrow  = borrowBookDetail.PriceBorrow,
                    Total        = borrowBookDetail.Qty * borrowBookDetail.PriceBorrow,
                    BorrowBookId = borrowBook.Id
                };

                allTotal = allTotal + (borrowBookDetail.Qty * borrowBookDetail.PriceBorrow);

                BorrowBookDetailValiadtor validator        = new BorrowBookDetailValiadtor();
                ValidationResult          validationResult = validator.Validate(addBorrowBookDetail);

                if (!validationResult.IsValid)
                {
                    foreach (var error in validationResult.Errors)
                    {
                        errorList.Add(string.Format("Error: {0}", error.ErrorMessage));
                    }
                    string errorString = string.Join(" ", errorList.ToArray());
                    throw new UserFriendlyException(errorString);
                }

                await _borrowBookDetailRepository.InsertAsync(addBorrowBookDetail);

                var book = items.Where(s => s.BookId == borrowBookDetail.BookId && s.LibraryId == borrowBookDetail.LibraryId)
                           .FirstOrDefault();


                if (borrowBookDetail.Qty > book.Stock)
                {
                    throw new UserFriendlyException(string.Format("{0} have {1} in stock", book.Book.Name, book.Stock));
                }
                else
                {
                    book.Stock = book.Stock - addBorrowBookDetail.Qty;
                    await _bookLibraryRepository.UpdateAsync(book);
                }
            }

            //Update BorrowBook
            TimeSpan aInterval = new System.TimeSpan(5, 0, 0, 0);

            DateTime newTime = today.Add(aInterval);

            borrowBook.Total     = allTotal;
            borrowBook.Status    = "Đang xử lý";
            borrowBook.DateRepay = newTime;
            borrowBook.UserId    = AbpSession.UserId.Value;
            await _borrowBookRepository.InsertAsync(borrowBook);
        }