public void Purchase_Item_Quantity_Should_Be_Less_ThanEqual_To_Stock() { //Arrange var repo = new StockItemRepository(new TonerJobContext()); //Act Action action = () => PurchaseItem.Create(repo.GetStockItemById(1), 2); //Assert action.Should().Throw <ArgumentException>().WithMessage("Quantity should be less than or equal to quantity in stock!"); }
/// <summary> /// 新增采购项 /// </summary> /// <param name="name">名称</param> /// <param name="code">编码</param> /// <param name="category">分类</param> /// <param name="inUnit">入库单位</param> /// <param name="outUnit">出库单位</param> /// <param name="inOutRate">入库出库单位换算比例</param> /// <param name="price">销售单价</param> /// <param name="creator">创建人</param> public void Add(string name, string code, string category, string inUnit, string outUnit, decimal inOutRate, decimal price, string creator) { using (DbConnection conn = DbHelper.CreateConnection()) { DbTransaction trans = null; try { conn.Open(); trans = conn.BeginTransaction(); if (this.purchaseItemRepository.HasSameCode(trans, string.Empty, code)) { throw new EasySoftException(BusinessResource.PurchaseItem_ExistsSameCode); } PurchaseItem entity = new PurchaseItem(); entity.Create(name, code, category, inUnit, outUnit, inOutRate, price, creator); this.purchaseItemRepository.Insert(trans, entity); trans.Commit(); } catch (EasySoftException ex) { if (trans != null) { trans.Rollback(); } throw ex; } catch (Exception ex) { if (trans != null) { trans.Rollback(); } throw ex; } } }
private List <PurchaseItem> CreatePurchasedItems(List <PurchaseItemViewModel> purchasedItems) { return(purchasedItems.Select(p => PurchaseItem.Create(stockItemRepository.GetStockItemById(p.StockItem.Id), p.Quantity)).ToList()); }