/// <summary> /// Adicionar um BookStock e atualizar a data do estoque. /// </summary> /// <param name="bookName">Informar o nome do livro</param> /// <param name="stockQuantity">Informar a quantidade em estoque do livro</param> /// public BookStock Post(string bookName, int stockQuantity) { var newBookStock = new BookStock(bookName, stockQuantity); _booksStockDataBase.BooksStock.Add(newBookStock); return(newBookStock); }
private void AsserAreEqualBookStock(BookStock expectBookStock, BookStock actualBookStock) { Assert.AreEqual(expectBookStock.BookID, actualBookStock.BookID); Assert.AreEqual(expectBookStock.BookName, actualBookStock.BookName); Assert.AreEqual(expectBookStock.StockQuantity, actualBookStock.StockQuantity); Assert.AreEqual(expectBookStock.StockUpdated.ToLongDateString(), actualBookStock.StockUpdated.ToLongDateString()); }
protected void Page_Load(object sender, EventArgs e) { //当页面启动时,将bookstock对象加载到会话变量中 //这样就可以让BookStock对象被多个页面访问 BookStock bookstock = new BookStock(); Session["bookstock"] = bookstock; GetSessionInformation(); }
public ActionResult <BookStock> Put(long id, [FromBody] BookStock bookStock) { if (id != bookStock.Id) { return(BadRequest()); } _context.Entry(bookStock).State = EntityState.Modified; _context.SaveChanges(); return(NoContent()); }
public BookStock InsertOneBookStock() { var expectStockUpdated = DateTime.Now; var bookStock = new BookStock("One BookStock", 10); _booksStockDataBase.BooksStock.Add(bookStock); Assert.IsNotNull(bookStock.BookID); Assert.IsTrue(bookStock.StockUpdated >= expectStockUpdated, "A data do estoque não foi atualizada!"); return(bookStock); }
/// <summary> /// Load book stock from a json string /// </summary> /// <param name="catallogAsJson">Book stock in json format</param> public void Import(string catallogAsJson) { if (!string.IsNullOrWhiteSpace(CatalogSchema)) { BookStock.ValidateJsonFormat(catallogAsJson, CatalogSchema); } bookStock = BookStock.FromJson(catallogAsJson); Books = bookStock.Books.ToDictionary(b => b.Name, b => b); Categories = bookStock.Categories.ToDictionary(c => c.Name, c => c.Discount); }
public ActionResult <IEnumerable <BookStock> > Get() { List <BookStock> listBookStock = new List <BookStock>(); BookStock bookStock = new BookStock() { Title = "", Description = "", AuthorName = "", CategoryName = "", ISBN = "", PublisherName = "", Price = 0, Quantity = 0 }; listBookStock.Add(bookStock); return(listBookStock); }
public async Task <RedeemDeliveryCommandResult> Handle(RedeemDeliveryCommand request, CancellationToken cancellationToken) { var deliveryToRedeem = await _activeDeliveryRepository.FindByIdAsync(request.Id); if (deliveryToRedeem is null) { return(new RedeemDeliveryCommandResult(false, new List <string> { $"Active Delivery: {request.Id} not found" })); } // if (deliveryToRedeem.RedeemDelivery(out string error)) // return new RedeemDeliveryCommandResult(false, new List<string> {error}); if (!_activeDeliveryRepository.RedeemDelivery(deliveryToRedeem, out string error)) { return(new RedeemDeliveryCommandResult(false, new List <string> { error })); } var createdStocks = new List <BookStock>(); foreach (var item in deliveryToRedeem.Items) { for (var i = 0; i < item.ItemsCount; i++) { var stockToAdd = new BookStock(deliveryToRedeem, item); _bookStockRepository.Add(stockToAdd); createdStocks.Add(stockToAdd); } } var completedDelivery = new CompletedDelivery(deliveryToRedeem, createdStocks); if (_completedDeliveryRepository.Add(completedDelivery) is null) { return(new RedeemDeliveryCommandResult(false, new List <string> { "Something wend wrong during adding Completed Delivery" })); } if (await _activeDeliveryRepository.UnitOfWork.SaveChangesAsync() < 1) { return(new RedeemDeliveryCommandResult(false, new List <string>() { "Error occured during saving to DB" })); } return(new RedeemDeliveryCommandResult(true)); }
private void btnAddBook_Click(object sender, EventArgs e) { bs = new BookStock(); bs.ArriveQuantity = int.Parse(txtNetNum.Text); bs.Discount = float.Parse(txtDiscount.Text); bs.NetPrice = float.Parse(txtNetPrice.Text); bs.NoArriveQuantity = int.Parse(txtNum.Text) - int.Parse(txtNetNum.Text); bs.ISBN = txtISBN.Text; bllbs.UpdateBookStock(bs); txtText(); dgvOrder.DataSource = bllo.GetAllOrder(5, null); }
protected void Page_Load(object sender, EventArgs e) { //调用Request.QueryString方法获取查询字符串的值 string BookName =Server.UrlDecode(Request.QueryString["BookName"]); //构造一个BookStock类,初始化书籍信息 BookStock books = new BookStock(); //使用Linq表达式查询BookStock中指定书名的书籍信息 var s = from book in books where book.BookName == BookName select book; //绑定查询结果到DetailsView控件中 DetailsView1.DataSource = s; DetailsView1.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { //调用Request.QueryString方法获取查询字符串的值 string BookName = Server.UrlDecode(Request.QueryString["BookName"]); //构造一个BookStock类,初始化书籍信息 BookStock books = new BookStock(); //使用Linq表达式查询BookStock中指定书名的书籍信息 var s = from book in books where book.BookName == BookName select book; //绑定查询结果到DetailsView控件中 DetailsView1.DataSource = s; DetailsView1.DataBind(); }
public void UpdateBookStock(BookStock bookstock) { string sql = "Update BookStock set ArriveQuantity=@ArriveQuantity,NoArriveQuantity=@NoArriveQuantity,NetPrice=@NetPrice,Discount=@Discount,Arrived='true' where BookStock.PlanBookID = (select PlanBook.PlanBookID from PlanBook where ISBN=@ISBN)"; SqlParameter[] parameter = { new SqlParameter("@ArriveQuantity", SqlDbType.Int), new SqlParameter("@NoArriveQuantity", SqlDbType.Int), new SqlParameter("@NetPrice", SqlDbType.Float), new SqlParameter("@Discount", SqlDbType.Float), new SqlParameter("@ISBN", SqlDbType.VarChar) }; parameter[0].Value = bookstock.ArriveQuantity; parameter[1].Value = bookstock.NoArriveQuantity; parameter[2].Value = bookstock.NetPrice; parameter[3].Value = bookstock.Discount; parameter[4].Value = bookstock.ISBN; DBHelpers.UpdateInfo(sql, parameter); }
public BookStocksController(TodoContext context) { _context = context; if (_context.BookStocks.Count() == 0) { // Create a new TodoItem if collection is empty, // which means you can't delete all TodoItems. BookStock bookStock = new BookStock() { Title = "Phi Lý Trí", Description = "Best Book", AuthorName = "Don Ariel", CategoryName = "Kinh Tế", ISBN = "4235435435", PublisherName = "NXB Trẻ", Price = 20000, Quantity = 15 }; _context.BookStocks.Add(bookStock); _context.SaveChanges(); } }
public async Task <IActionResult> EditAsync(BookStock bookStock) { /*Stock stock = new Stock * { * Id = bookStock.IdStock, * CurrentStock = bookStock.currentStock * * };*/ string accessToken = await HttpContext.GetTokenAsync("access_token"); HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); string content = await client.GetStringAsync(_configuration["URLApi"] + "api/Books/" + bookStock.IdBook); Book book = JsonConvert.DeserializeObject <Book>(content); if (book == null) { return(NotFound()); } else { if (bookStock.currentStock >= 0) { book.Stock = bookStock.currentStock; string jsonString = System.Text.Json.JsonSerializer.Serialize <Models.Book>(book); StringContent httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PutAsync(_configuration["URLApi"] + "api/Books/" + book.Id, httpContent); if (!response.IsSuccessStatusCode) { return(View("Error")); } } } return(RedirectToAction("index")); }
protected void btnmore_Click(object sender, EventArgs e) { if (ListBox1.SelectedIndex == -1) { Response.Write("请选择书籍信息"); } else { ////从Session中获取BookStock类。 BookStock bookstock = (BookStock)Session["bookstock"]; //使用LINQ查询泛型集合 var s = from book in bookstock where book.BookName == ListBox1.SelectedValue select book; //绑定到DetailsView控件 DetailsView1.DataSource = s; DetailsView1.DataBind(); } }
public async Task <bool> IncrementStocks(BookStockViewModel bookStockViewModel) { var books = bookStockViewModel.StockViewModels.GroupBy(s => s.Sn) .Select(g => new { Sn = g.Key, Count = g.Sum(s => s.Count) }) .ToList(); var sns = books.Select(b => b.Sn).ToList(); var stocks = await bookContext.BookStocks .Where(s => sns.Contains(s.Sn)) .ToListAsync(); foreach (var book in books) { var stock = stocks.Find(s => s.Sn == book.Sn); if (stock == null) { stock = new BookStock { Sn = book.Sn, StockCount = 0 }; bookContext.BookStocks.Add(stock); } if (stock.StockCount < 0 || stock.FreezeStock > stock.StockCount) { logger.LogError("detected data {Id} run into concurrent conflict state! freeze {freezeCount}, stock {stockCount}", stock.Id, stock.FreezeStock, stock.StockCount); continue; } //test //stock.StockCount += book.Count; stock.StockCount = 30; stock.FreezeStock = 0; } await bookContext.SaveChangesAsync(); return(true); }
public IHttpActionResult ReserveBook(int bookID, int userID) { try { BookStock bs = BookStockRepository.GetCacheBookStocks().FirstOrDefault(x => x.BookID == bookID && x.Status == BookStockStatus.Available); if (bs == null) { //The stocks of the book you have researched for is insufficient return(Json("0")); } int returnedCount = BookTransactionRepository.GetCacheBookTransactions().Where(x => x.UserID == userID && x.Status != BookTransactionStatus.Returned).Count(); if (returnedCount == 3) { return(Json("-2")); } BookTransaction bt = new BookTransaction(); bt.BookID = bookID; bt.DateOfReserved = DateTime.Now; bt.ExpirationOfReserveDate = DateTime.Now.AddDays(7); bt.UserID = userID; bt.Status = BookTransactionStatus.Reserved; BookTransactionRepository btr = new BookTransactionRepository(); btr.AddEntity(bt); bs.Status = BookStockStatus.Reserved; BookStockRepository bsr = new BookStockRepository(); bsr.UpdateEntity(bs); LogRepository.NewLog(bookID, userID); } catch (Exception) { return(Json("-1")); } return(Json("1")); }
public void InvalidReceipt(Guid receiptId, Guid operatorId) { var period = DbSession.SysVariables.All.SingleOrDefault(v => v.Name.Equals("NY")); if (period == null) { throw new Exception("取不到当前年月"); } if (!period.Value.Equals(DateTime.Now.ToString("yyMM"))) { throw new Exception("系统年月与当前年月不符,审核失败"); } var theBeforeReceipt = DbSession.OutStockReceipts.All.Where(r => r.IsAudited && r.ID == receiptId).SingleOrDefault(); if (theBeforeReceipt == null) { throw new Exception("不存在该单据"); } if (theBeforeReceipt.InvalidReceipt != null) { throw new Exception("该单据已经作废"); } if (theBeforeReceipt.BeforeVoidReceipt != null) { throw new Exception("该单据由作废单据产生,不能作废"); } var operatorUser = DbSession.Users.GetSingle(u => u.ID == operatorId); var invalidReceipt = new OutStockReceipt { ID = Guid.NewGuid(), NO = GetNO(DateTime.Now.ToString("yyMMdd")), Freight = -theBeforeReceipt.Freight, Remark = "作废出库单(" + theBeforeReceipt.NO + ")产生的红字单据", SubmitDate = DateTime.Now, AuditDate = DateTime.Now, IsAudited = true, OrderID = theBeforeReceipt.OrderID, SubmittedBy = operatorUser, AuditedBy = operatorUser, Order = theBeforeReceipt.Order, BeforeVoidReceipt = theBeforeReceipt }; invalidReceipt.Details = (from d in theBeforeReceipt.Details select new OutStockReceiptDetail { ID = Guid.NewGuid(), Sort = d.Sort, OutQuantity = -d.OutQuantity, OutUnitPrice = d.OutUnitPrice, AccountPrice = d.AccountPrice, BookID = d.BookID, ReceiptHeader = invalidReceipt, Book = d.Book }).ToList(); theBeforeReceipt.InvalidReceipt = invalidReceipt; DbSession.OutStockReceipts.Add(invalidReceipt, false); bool istj = false; foreach (var d in theBeforeReceipt.Details) { var stock = d.Book.Stock; var outQuantity = -d.OutQuantity; var outMoney = -(d.OutQuantity * (decimal)d.Book.AccountPrice); if (stock == null) { stock = new BookStock { ID = Guid.NewGuid(), StockOf = d.Book, PriorPeriodQuantity = 0, PriorPeriodMoney = 0, EntryQuantity = 0, EntryMoney = 0, OutQuantity = outQuantity, OutMoney = outMoney, StocktakeQuantity = 0, StocktakeMoney = 0, DamagedQuantity = 0, DamagedMoney = 0, AdjustMoney = 0, ThisPeriodQuantity = -outQuantity, ThisPeriodMoney = -outMoney }; DbSession.BookStocks.Add(stock, false); } else { stock.OutQuantity += outQuantity; stock.OutMoney += outMoney; stock.ThisPeriodQuantity -= outQuantity; stock.ThisPeriodMoney -= outMoney; } if (!istj) { istj = (d.Book.AccountPrice != d.AccountPrice); } } if (istj) { var priceAdjustReceipt = new PriceAdjustReceipt { ID = Guid.NewGuid(), NO = GetTJNO(DateTime.Now.ToString("yyMMdd")), Remark = "作废出库单(" + theBeforeReceipt.NO + ")产生的调价单", SubmitDate = DateTime.Now, AuditDate = DateTime.Now, IsAudited = true, SubmittedBy = operatorUser, AuditedBy = operatorUser }; int sort = 1; foreach (var d in theBeforeReceipt.Details) { priceAdjustReceipt.Details.Add(new PriceAdjustReceiptDetail { ID = Guid.NewGuid(), Sort = sort++, AdjustQuantity = d.OutQuantity, NewAccountPrice = d.AccountPrice.GetValueOrDefault(), OldAccountPrice = d.Book.AccountPrice.GetValueOrDefault(), BookID = d.BookID, ReceiptHeader = priceAdjustReceipt, Book = d.Book }); } DbSession.PriceAdjustReceipts.Add(priceAdjustReceipt, false); } DbSession.SaveChanges(); }
public void UpdateBookStock(BookStock bookstock) { dalbs.UpdateBookStock(bookstock); }
/// <summary> /// Atualizar um BookStock /// </summary> /// <param name="bookStockUpdated">Informar o BookStock atualizado</param> public void Update(BookStock bookStockUpdated) => _booksStock.Save(bookStockUpdated);
/// <summary> /// Adicionar um BookStock e atualizar a data do estoque. /// </summary> /// <param name="newBookStock"></param> public void Add(BookStock newBookStock) { newBookStock.StockUpdated = DateTime.Now; _booksStock.Insert(newBookStock); }
public void Should_Throw_Exception_If_Json_Format_Invalid() => Assert.ThrowsException <InvalidJsonFormatException>(() => BookStock.ValidateJsonFormat(InvalidCatalog, catalogSchema));
public ActionResult <BookStock> Post([FromBody] BookStock bookStock) { _context.Add(bookStock); _context.SaveChanges(); return(CreatedAtAction(nameof(Get), new { id = bookStock.Id }, bookStock)); }
public void AuditReceipt(Guid receiptId, Guid auditId) { var period = DbSession.SysVariables.All.SingleOrDefault(v => v.Name.Equals("NY")); if (period == null) { throw new Exception("取不到当前年月"); } if (!period.Value.Equals(DateTime.Now.ToString("yyMM"))) { throw new Exception("系统年月与当前年月不符,审核失败"); } var receiptToAudit = DbSession.InStockReceipts.All.Where(r => !r.IsAudited && r.ID == receiptId).SingleOrDefault(); if (receiptToAudit == null) { throw new Exception("不存在该单据"); } receiptToAudit.NO = GetNO(DateTime.Now.ToString("yyMMdd")); receiptToAudit.AuditDate = DateTime.Now; receiptToAudit.IsAudited = true; receiptToAudit.AuditedBy = DbSession.Users.All.Where(u => u.ID == auditId).Single(); foreach (var d in receiptToAudit.Details) { d.AccountPrice = d.Book.AccountPrice; var stock = d.Book.Stock; int entryQuantity = d.EntryQuantity; decimal entryMoney = ((decimal)d.EntryQuantity) * d.Book.AccountPrice.GetValueOrDefault(); if (stock == null) { stock = new BookStock { ID = Guid.NewGuid(), StockOf = d.Book, PriorPeriodQuantity = 0, PriorPeriodMoney = 0, EntryQuantity = entryQuantity, EntryMoney = entryMoney, OutQuantity = 0, OutMoney = 0, StocktakeQuantity = 0, StocktakeMoney = 0, DamagedQuantity = 0, DamagedMoney = 0, AdjustMoney = 0, ThisPeriodQuantity = entryQuantity, ThisPeriodMoney = entryMoney }; DbSession.BookStocks.Add(stock, false); } else { stock.EntryQuantity += entryQuantity; stock.EntryMoney += entryMoney; stock.ThisPeriodQuantity += entryQuantity; stock.ThisPeriodMoney += entryMoney; } } DbSession.SaveChanges(); }
public BookStock Add(BookStock stock) { return(_context.BookStocks.Add(stock).Entity); }