public void UpdateTemporaryReceipt(Entities.StockDamagedReceipt receipt, IEnumerable <StockDamagedReceiptDetail> details = null) { if (receipt == null) { throw new NullReferenceException("receipt参数为null"); } var useDetails = (details != null && details.Count() > 0); if (!useDetails && (receipt.Details == null || receipt.Details.Count <= 0)) { throw new ArgumentException("参数不合法", "receipt.Details"); } var receiptToUpdate = DbSession.StockDamagedReceipts.All.Where(r => r.ID == receipt.ID && !r.IsAudited).SingleOrDefault(); if (receiptToUpdate == null) { throw new Exception("不存在该单据"); } // 单据头数据 receiptToUpdate.Remark = receipt.Remark; receiptToUpdate.SubmitDate = DateTime.Now; receiptToUpdate.SubmittedBy = receipt.SubmittedBy; // 单据明细 var td = DbSession.StockDamagedReceiptDetails.Get(d => d.HeaderID == receiptToUpdate.ID); foreach (var d in td) { DbSession.StockDamagedReceiptDetails.Delete(d, false); } var receiptDetails = useDetails ? details : receipt.Details; int sort = 1; foreach (var d in receiptDetails) { d.ID = Guid.NewGuid(); d.Sort = sort++; receiptToUpdate.Details.Add(d); } DbSession.SaveChanges(); }
public void SubmitTemporaryReceipt(Entities.StockDamagedReceipt receipt, IEnumerable <StockDamagedReceiptDetail> details = null) { if (receipt == null) { throw new NullReferenceException("receipt参数为null"); } var useDetails = (details != null && details.Count() > 0); if (!useDetails && (receipt.Details == null || receipt.Details.Count <= 0)) { throw new ArgumentException("参数不合法", "receipt.Details"); } receipt.ID = Guid.NewGuid(); receipt.NO = GetLSNO(); receipt.SubmitDate = DateTime.Now; receipt.AuditDate = null; receipt.IsAudited = false; receipt.AuditedBy = null; var receiptDetaols = useDetails ? details : receipt.Details; int sort = 1; if (useDetails) { receipt.Details.Clear(); } foreach (var d in receiptDetaols) { d.ID = Guid.NewGuid(); d.Sort = sort++; d.AccountPrice = null; //d.Book = DbSession.Books.GetSingle(b => b.ID == d.BookID); d.ReceiptHeader = receipt; if (useDetails) { receipt.Details.Add(d); } } DbSession.StockDamagedReceipts.Add(receipt); }
public void UpdateTemporaryReceipt(Entities.StockDamagedReceipt receipt, IEnumerable <Entities.StockDamagedReceiptDetail> details = null) { _service.UpdateTemporaryReceipt(receipt, details); }