public bool SaveSalesOrder(OM_Order saleOrder) { if (DbRepository.Add(saleOrder) > 0) { return(true); } return(false); }
/// <summary> /// 保存 /// </summary> /// <param name="salesOrder"></param> /// <returns></returns> public bool SaveSalesOrder(OM_SalesOrderDataObject salesOrder) { OM_Order order = salesOrder.ToDTO(); var user = DbRepository.GetModel <OM_User>(s => s.Account.ToUpper() == salesOrder.CardCode.ToUpper() && s.IsDel == false); if (user == null) { throw new GenericException("客户代码不存在,保持草稿失败"); } order.DocStatus = ((int)OM_DocStatusEnum.未提交).ToString(); order.TotalPrice = salesOrder.TotalPrice; order.DocEntry = GetLastDocEntry(); order.NoteNotice = GetShortRemarks(order.Remarks, 5); var salesOrderHead = DbRepository.Add(order); if (salesOrderHead <= 0) { throw new GenericException("保存草稿失败"); } var orderResult = DbRepository.GetModel <OM_Order>(s => s.Guid == order.Guid); List <OM_OrderItem> items = new List <OM_OrderItem>(); foreach (var item in salesOrder.SalesOrderLine) { OM_OrderItem oi = new OM_OrderItem() { Guid = Guid.NewGuid().ToString().ToUpper(), Currency = item.Currency, ItemCode = item.ItemCode, ItemName = item.ItemName, Price = item.Price, Quantity = item.Quantity, TotalPrice = (item.CustomerPrice ?? item.Price) * item.Quantity, Remarks = item.Remarks, Order_Guid = orderResult.Guid, DocEntry = orderResult.DocEntry, InnerPrice = item.InnerPrice, CustomerPrice = item.CustomerPrice, ItemStandard = item.ItemStandard, ItemUnit = item.ItemUnit }; items.Add(oi); } var salesOrderLine = DbRepository.AddRange(items); if (salesOrderLine <= 0) { throw new GenericException("保存草稿失败"); } return(true); }
public OM_Order ToDTO() { OM_Order salesOrderDataObejct = new OM_Order() { DocEntry = this.DocEntry, Guid = this.Guid, DocDate = this.DocDate == null ? DateTime.Now : this.DocDate, DocDueDate = this.DocDueDate, DocStatus = this.DocStatus, CardCode = this.CardCode, CardName = this.CardName, NumCard = this.NumCard, TPLCompany = this.TPLCompany, TPLContact = this.TPLContact, TPLOrder = this.TPLOrder, TPLPhone = this.TPLPhone, NoteNotice = this.NoteNotice, Remarks = this.Remarks, User_Guid = this.User_Guid }; return(salesOrderDataObejct); }
/// <summary> /// 更新 /// </summary> /// <param name="salesOrder"></param> /// <returns></returns> public bool UpdateSalesOrder(OM_SalesOrderDataObject salesOrder) { OM_Order temp = salesOrder.ToDTO(); var order = DbRepository.GetModel <OM_Order>(s => s.Guid == salesOrder.Guid); if (order == null) { throw new GenericException("订单号不存在,修改草稿失败"); } var user = DbRepository.GetModel <OM_User>(s => s.Account.ToUpper() == salesOrder.CardCode.ToUpper() && s.IsDel == false); if (user == null) { throw new GenericException("客户代码不存在,修改草稿失败"); } order.CardCode = salesOrder.CardCode; order.CardName = user.Name; order.Remarks = salesOrder.Remarks; order.DocDate = salesOrder.DocDate; order.DocDueDate = salesOrder.DocDueDate; order.NoteNotice = GetShortRemarks(order.Remarks, 5); var salesOrderHead = DbRepository.Update(order); if (salesOrderHead <= 0) { throw new GenericException("修改草稿失败"); } List <OM_OrderItem> items = DbRepository.GetList <OM_OrderItem>(s => s.Order_Guid == salesOrder.Guid); List <OM_OrderItem> removeItem = new List <OM_OrderItem>(); foreach (var item in salesOrder.SalesOrderLine) //temp { foreach (var i in items) //数据库 { if (string.IsNullOrWhiteSpace(item.Guid)) { item.Guid = Guid.NewGuid().ToString(); item.DocEntry = salesOrder.DocEntry; item.Order_Guid = salesOrder.Guid; DbRepository.Add(item); } else { //不为空并且在数据库中找不到对应 var exist = salesOrder.SalesOrderLine.Where(s => s.Guid == i.Guid); if ((exist == null || exist.Count() == 0) && !removeItem.Contains(i)) { removeItem.Add(i); } } if (i.Guid == item.Guid) { i.ItemCode = item.ItemCode; i.ItemName = item.ItemName; i.Remarks = item.Remarks; i.InnerPrice = item.InnerPrice; i.CustomerPrice = item.CustomerPrice; i.Price = item.Price; i.Quantity = item.Quantity; i.TotalPrice = item.Price * item.Quantity; i.ItemUnit = item.ItemUnit; i.ItemStandard = item.ItemStandard; } } } var salesOrderLine = DbRepository.UpdateRange(items); foreach (var delItem in removeItem) { DbRepository.RealDelete <OM_OrderItem>(s => s.Guid == delItem.Guid); } if (salesOrderLine <= 0) { throw new GenericException("修改草稿失败"); } return(true); }