/// <summary> /// 新增采购记录 /// </summary> /// <param name="date">日期</param> /// <param name="category">分类</param> /// <param name="item">项</param> /// <param name="quantity">数量</param> /// <param name="unit">单位</param> /// <param name="supplier">供应方</param> /// <param name="remark">备注</param> /// <param name="costs">成本</param> /// <param name="creator">创建人</param> public void Add(DateTime date, string category, string item, decimal quantity, string unit, string supplier, string remark, Dictionary <string, decimal> costs, string creator) { using (DbConnection conn = DbHelper.CreateConnection()) { DbTransaction trans = null; try { conn.Open(); trans = conn.BeginTransaction(); if (trans == null) { throw new ArgumentNullException("DbTransaction"); } Purchase entity = new Purchase(); entity.Create(date, category, item, quantity, unit, supplier, remark, creator); foreach (KeyValuePair <string, decimal> cost in costs) { Cost cost1 = new Cost(); cost1.Create(entity.Id, CostItemCategory.Purchase, cost.Key, cost.Value); entity.AddCost(cost.Value); this.costRepository.Insert(trans, cost1); } this.purchaseRepository.Insert(trans, entity); trans.Commit(); } catch { if (trans != null) { trans.Rollback(); } throw; } } }