private void SaleRMAPaidNotified(OPC_RMA rma) { using (var db = new YintaiHZhouContext()) { var opcRMA = db.OPC_RMA.FirstOrDefault(x => x.Id == rma.Id); if (opcRMA == null) { Logger.Error(string.Format("Invalid RMA ({0})", rma.RMANo)); return; } if (rma.Status != (int)EnumRMAStatus.NotifyProduct) { Logger.ErrorFormat("invalid rma status {0}", rma.Status); return; } opcRMA.UpdatedDate = DateTime.Now; opcRMA.RMACashStatus = 5;//5表示已送收银 opcRMA.UpdatedUser = -10000; db.SaveChanges(); db.OPC_RMANotificationLog.Add(new OPC_RMANotificationLog { CreateDate = DateTime.Now, CreateUser = -10000, RMANo = rma.RMANo, Status = (int)NotificationStatus.Paid, Message = string.Empty, }); db.SaveChanges(); } }
private void Process(PropertyValueRaw p) { using (var db = new YintaiHZhouContext()) { var s = db.OPC_Stock.Where(x => x.SourceStockId == p.ID) .Join(db.OPC_SKU, stock => stock.SkuId, sku => sku.Id, (stock, sku) => sku).FirstOrDefault(); if (s == null) { Log.InfoFormat("单品未同步 {0}", p.ID); return; } var inventory = db.Inventories.FirstOrDefault( x => x.ProductId == s.ProductId && x.PColorId == s.ColorValueId && x.PSizeId == s.SizeValueId); if (inventory == null) { Log.InfoFormat("销售属性未同步 {0}", p.ID); return; } var propertyExt = db.OPC_StockPropertyValueRaw.FirstOrDefault(x => x.SourceStockId == p.ID && x.Channel == SystemDefine.IntimeChannel); if (propertyExt == null) { db.OPC_StockPropertyValueRaw.Add(new OPC_StockPropertyValueRaw() { InventoryId = inventory.Id, Channel = SystemDefine.IntimeChannel, PropertyData = JsonConvert.SerializeObject(p), SourceStockId = p.ID, UpdateDate = p.LastUpdate }); db.SaveChanges(); } else if (propertyExt.UpdateDate < p.LastUpdate || propertyExt.InventoryId != inventory.Id) { propertyExt.InventoryId = inventory.Id; propertyExt.PropertyData = JsonConvert.SerializeObject(p); propertyExt.UpdateDate = p.LastUpdate; db.SaveChanges(); } var product = db.Products.FirstOrDefault(x => x.Id == inventory.ProductId); if (product != null) { //商品属性更新后更新商品时间,以重新索引商品 product.UpdatedDate = DateTime.Now; product.UpdatedUser = SystemDefine.SystemUser; db.SaveChanges(); } } }
public Category Sync(string channelCategoryId, string channelCategoryName) { if (string.IsNullOrWhiteSpace(channelCategoryId) || string.IsNullOrWhiteSpace(channelCategoryName)) { Log.WarnFormat("分类参数错误,categoryId:{0},categoryName:{1}", channelCategoryId, channelCategoryName); return(null); } using (var db = new YintaiHZhouContext()) { // 查找分类映射关系 var categoryMapExt = _channelMapper.GetMapByChannelValue(channelCategoryId, ChannelMapType.CategoryId); if (categoryMapExt == null) { var newCategory = new Category() { ExCatCode = string.Empty, Name = channelCategoryName, Status = 1, UpdateDate = DateTime.Now }; db.Categories.Add(newCategory); db.SaveChanges(); // 添加映射关系 var newChannelMap = new ChannelMap() { LocalId = newCategory.Id, ChannnelValue = channelCategoryId, MapType = ChannelMapType.CategoryId }; _channelMapper.CreateMap(newChannelMap); return(newCategory); } var categoryExt = db.Categories.FirstOrDefault(b => b.Id == categoryMapExt.LocalId); // 更新品牌 if (categoryExt != null) { categoryExt.Name = channelCategoryName ?? string.Empty; db.SaveChanges(); } return(categoryExt); } }
public void Process(Repository.DTO.ProductDto product, Inventory inventory) { if (string.IsNullOrEmpty(product.BrandSizeCode) && string.IsNullOrEmpty(product.BrandSizeName)) { return; } using (var db = new YintaiHZhouContext()) { var rpv = db.OPC_StockPropertyValueRaw.FirstOrDefault( x => x.InventoryId == inventory.Id && x.SourceStockId == product.ProductId); if (rpv == null) { db.OPC_StockPropertyValueRaw.Add(new OPC_StockPropertyValueRaw() { BrandSizeCode = product.BrandSizeCode, BrandSizeName = product.BrandSizeName, Channel = SystemDefine.IntimeChannel, InventoryId = inventory.Id, PropertyData = string.Empty, SourceStockId = product.ProductId, UpdateDate = DateTime.Now.AddDays(-1) }); } else { rpv.BrandSizeName = product.BrandSizeName; rpv.BrandSizeCode = product.BrandSizeCode; } db.SaveChanges(); } }
public OPC_OrgInfo Add(OPC_OrgInfo orgInfo) { using (var db = new YintaiHZhouContext()) { if (orgInfo != null) { var lst = db.OPC_OrgInfos.Where(t => t.ParentID == orgInfo.ParentID).OrderByDescending(t => t.OrgID); var e = lst.FirstOrDefault(); if (e == null) { orgInfo.OrgID = orgInfo.ParentID + "001"; } else { int d = int.Parse(e.OrgID); orgInfo.OrgID = (d + 1).ToString(); } orgInfo.IsDel = false; var a = db.OPC_OrgInfos.Add(orgInfo); db.SaveChanges(); return(a); } return(null); } }
public void Process(StockModel stock) { using (var db = new YintaiHZhouContext()) { var sku = db.OPC_SKU.FirstOrDefault(x => x.Id == stock.SkuId); var inventory = db.Inventories.FirstOrDefault(x => x.ProductId == sku.ProductId && x.PColorId == sku.ColorValueId && x.PSizeId == sku.SizeValueId); if (inventory == null) { db.Inventories.Add(new Inventory() { ProductId = sku.ProductId, PColorId = sku.ColorValueId, PSizeId = sku.SizeValueId, UpdateDate = DateTime.Now, UpdateUser = SystemDefine.SystemUser, ChannelInventoryId = 0, Amount = stock.Count }); } else { inventory.UpdateDate = DateTime.Now; inventory.UpdateUser = SystemDefine.SystemUser; inventory.Amount = stock.Count; } db.SaveChanges(); } }
public OPC_SKU Sync(int productId, int colorValueId, int sizeValueId) { using (var db = new YintaiHZhouContext()) { var skuExt = db.OPC_SKU.FirstOrDefault(p => p.ColorValueId == colorValueId && p.SizeValueId == sizeValueId && p.ProductId == productId); // 如果已经存在SKU记录直接返回 if (skuExt != null) { return(skuExt); } // 创建新的Sku并返回 var newSku = new OPC_SKU() { ProductId = productId, ColorValueId = colorValueId, SizeValueId = sizeValueId }; db.OPC_SKU.Add(newSku); db.SaveChanges(); return(newSku); } }
private IMS_Associate CreateAssociate(IMS_InviteCodeRequest request) { using (var db = new YintaiHZhouContext()) { var section = db.Set <Section>() .FirstOrDefault(x => x.SectionCode == request.SectionCode && x.StoreId == request.StoreId); if (section == null) { return(null); } var associate = new IMS_Associate() { CreateDate = DateTime.Now, CreateUser = request.UserId, OperateRight = request.RequestType == 2 ? 7 : 3, SectionId = section.Id, Status = 1, StoreId = request.StoreId, UserId = request.UserId, TemplateId = int.Parse(ConfigurationManager.AppSettings["IMS_Default_Template"]), OperatorCode = request.OperatorCode, }; associate = db.Set <IMS_Associate>().Add(associate); db.SaveChanges(); return(associate); } }
private void NotifyFailed(OPC_Sale saleOrder, SaleOrderNotificationStatus create, IEnumerable <string> errorList) { using (var db = new YintaiHZhouContext()) { using (var scope = new TransactionScope()) { db.OPC_SaleOrderNotificationLog.Add(new OPC_SaleOrderNotificationLog { CreateDate = DateTime.Now, CreateUser = JobUserId, SaleOrderNo = saleOrder.SaleOrderNo, Status = (int)create, Message = string.Join(";", errorList) }); var trade = db.OPC_Sale.FirstOrDefault(x => x.SaleOrderNo == saleOrder.SaleOrderNo); if (trade != null) { trade.CashStatus = (int)EnumCashStatus.CashingFailed; trade.CashDate = DateTime.Now; trade.UpdatedDate = DateTime.Now; trade.UpdatedUser = JobUserId; db.Entry(trade).State = EntityState.Modified; } db.SaveChanges(); scope.Complete(); } } }
/// <summary> /// Creates the specified entity. /// </summary> /// <param name="entity">The entity.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> public bool Create(T entity) { using (var db = new YintaiHZhouContext()) { if (entity != null) { IDbSet <T> set = db.Set <T>(); var errors = db.Entry(entity).GetValidationResult(); if (!errors.IsValid) { StringBuilder strb = new StringBuilder(); foreach (var err in errors.ValidationErrors) { strb.AppendLine(string.Format("property:{0} Error:{1}", err.PropertyName, err.ErrorMessage)); } throw new Exception(strb.ToString()); } set.Add(entity); db.SaveChanges(); return(true); } return(false); } }
/// <summary> /// 物流入库 /// </summary> /// <param name="rmaNo"></param> public void SetRmaShipInStorage(string rmaNo) { using (var db = new YintaiHZhouContext()) { var opcRma = db.OPC_RMAs.FirstOrDefault(x => x.RMANo == rmaNo); if (opcRma == null) { throw new RmaException(string.Format("无效的退货单号{0}", rmaNo)); } opcRma.Status = EnumRMAStatus.ShipInStorage.AsId(); opcRma.UpdatedDate = DateTime.Now; opcRma.UpdatedUser = -1; opcRma.BackDate = DateTime.Now; db.Entry(opcRma).State = EntityState.Modified; var rmaEntity = db.RMAs.FirstOrDefault(x => x.RMANo == rmaNo); if (rmaEntity != null) { rmaEntity.Status = 12;//退货已签收 rmaEntity.UpdateDate = DateTime.Now; rmaEntity.UpdateUser = -1; db.Entry(rmaEntity).State = EntityState.Modified; } db.SaveChanges(); } }
public bool FinishPrintSale(string orderNo, int userId) { //return UpdateSatus(orderNo, userId, EnumSaleOrderStatus.PrintSale); using (var db = new YintaiHZhouContext()) { var saleOrder = db.OPC_Sales.FirstOrDefault(x => x.SaleOrderNo == orderNo); if (saleOrder == null) { throw new OpcException(string.Format("无效的销售单号:{0}", orderNo)); } var order = db.Orders.FirstOrDefault(x => x.OrderNo == saleOrder.OrderNo); if (order == null) { throw new OpcException(string.Format("数据异常,根据销售单号({0})无法找到订单", orderNo)); } if (order.OrderProductType == (int)OrderType.SystemProduct || order.OrderProductType == (int)OrderType.None) { if (string.IsNullOrEmpty(saleOrder.CashNum) || saleOrder.CashStatus != (int)EnumCashStatus.CashOver) { throw new OpcException(string.Format("系统商品订单必须完成收银后才能打印")); } } saleOrder.Status = (int)EnumSaleOrderStatus.PrintSale; saleOrder.UpdatedDate = DateTime.Now; saleOrder.UpdatedUser = userId; db.SaveChanges(); } return(true); }
/// <summary> /// 保存拆单失败的订单 /// </summary> /// <param name="orderNo"></param> /// <param name="ErrorReason"></param> /// <returns></returns> public bool SaveSplitOrderLog(string orderNo, string reason, int status) { using (var db = new YintaiHZhouContext()) { var log = db.OPC_OrderSplitLog.FirstOrDefault( x => x.OrderNo == orderNo && reason == x.Reason && x.Status == status); if (log == null) { var opc_OrderSplitLog = new OPC_OrderSplitLog { OrderNo = orderNo, Reason = reason, Status = status, CreateDate = DateTime.Now }; db.OPC_OrderSplitLog.Add(opc_OrderSplitLog); } else { log.CreateDate = DateTime.Now; } db.SaveChanges(); } return(true); }
public Section Sync(string channelSectionId, string channelStoreNo) { using (var db = new YintaiHZhouContext()) { // 检查专柜所属门店信息 var storeExt = _storeSyncProcessor.Sync(channelStoreNo); if (storeExt == null) { Log.ErrorFormat("同步专柜时发生错误,门店storeNo:{0}同步失败", channelStoreNo); return(null); } var channelSection = _remoteRepository.GetSectionById(channelSectionId, channelStoreNo); if (channelSection == null) { Log.ErrorFormat("远程获取专柜信息出错,counterId:{0},storeNo:{1}", channelSectionId, channelStoreNo); return(null); } var section = db.Sections.FirstOrDefault(x => x.SectionCode == channelSectionId && x.StoreId == storeExt.Id); if (section == null) { section = db.Sections.Add(new Section() { CreateDate = DateTime.Now, CreateUser = SystemDefine.SystemUser, Location = string.Empty, Name = channelSection.Name, ContactPhone = string.Empty, SectionCode = channelSection.CounterId, StoreId = storeExt.Id, Status = 1, UpdateDate = DateTime.Now, UpdateUser = SystemDefine.SystemUser, }); } else { if (channelSection.Status.ToUpper() != "Y") { section.Status = -1; section.UpdateDate = DateTime.Now; section.UpdateUser = SystemDefine.SystemUser; } else { if (section.Status != 1) { section.Status = 1; section.UpdateDate = DateTime.Now; section.UpdateUser = SystemDefine.SystemUser; } } } db.SaveChanges(); return(section); } }
public void DeleteByUserID(int id) { using (var db = new YintaiHZhouContext()) { var lst = db.OPC_AuthRoleUsers.Where(t => t.OPC_AuthUserId == id).ToList(); db.OPC_AuthRoleUsers.RemoveRange(lst); db.SaveChanges(); } }
private void Process(Domain.Models.Product sku) { using (var db = new YintaiHZhouContext()) { var p = db.Products.FirstOrDefault(t => t.Id == sku.Id); p.IsHasImage = true; p.UpdatedDate = DateTime.Now; p.UpdatedUser = SystemDefine.SystemUser; db.SaveChanges(); } }
public bool DeleteByRoleMenu(int roleID) { using (var db = new YintaiHZhouContext()) { var lst = db.OPC_AuthRoleMenus.Where(t => t.OPC_AuthRoleId == roleID); db.OPC_AuthRoleMenus.RemoveRange(lst); db.SaveChanges(); return(true); } }
public void Sync() { var pageIndex = 1; while (true) { var sections = _remoteRepository.GetSectionList(pageIndex++, PageSize, DateTime.Now.AddYears(-2)).ToList(); if (sections.Count == 0) { Log.ErrorFormat("没有可同步的信息,pageIndex:{0},pageSize:{1},lastUpdateDatetime:{2}", pageIndex, PageSize); break; } foreach (var channelSection in sections) { var channelSectionId = channelSection.CounterId; var channelStoreNo = channelSection.StoreNo; var storeExt = _storeSyncProcessor.Sync(channelStoreNo); if (storeExt == null) { continue; } using (var db = new YintaiHZhouContext()) { var section = db.Sections.FirstOrDefault( x => x.SectionCode == channelSectionId && x.StoreId == storeExt.Id); if (section != null) { continue; } var newSection = new Section { CreateDate = DateTime.Now, CreateUser = SystemDefine.SystemUser, Location = string.Empty, Name = channelSection.Name, ContactPhone = string.Empty, StoreId = storeExt.Id, SectionCode = channelSectionId, Status = 1, UpdateDate = DateTime.Now, UpdateUser = SystemDefine.SystemUser, }; db.Sections.Add(newSection); db.SaveChanges(); } } Thread.Sleep(500); } }
/// <summary> /// OPC_SaleRMA RMACashStatus 入收银状态 Status 退货单状态 /// OPC_RMA RMACashNum 、RMACashDate、Status 退货单状态 /// </summary> /// <param name="rmaNo"></param> /// <param name="statusResult"></param> public override void Process(string rmaNo, OrderStatusResultDto statusResult) { using (var db = new YintaiHZhouContext()) { var saleRMA = db.OPC_RMA.FirstOrDefault(t => t.RMANo == rmaNo); saleRMA.RMACashStatus = (int)EnumCashStatus.Cashed; saleRMA.RMAStatus = (int)EnumReturnGoodsStatus.Valid; saleRMA.RMACashDate = statusResult.PosTime; saleRMA.RMACashNum = statusResult.PosSeqNo; saleRMA.UpdatedDate = DateTime.Now; saleRMA.UpdatedUser = -100; db.SaveChanges(); if (string.IsNullOrEmpty(statusResult.Products_SaleCodes)) { Log.ErrorFormat("没有销售码信息,退货单号{0}", rmaNo); return; } Log.Error("**************************************"); Log.ErrorFormat(statusResult.Products_SaleCodes); Log.Error("**************************************"); var slices = ParseProductIdAndPosCode(statusResult.Products_SaleCodes); foreach (var slice in slices) { var productId = slice.Key; var detail = db.OPC_RMADetail.Where(x => x.RMANo == rmaNo) .Join(db.OPC_Stock.Where(s => s.SourceStockId == productId), d => d.StockId, s => s.Id, (o, s) => o) .FirstOrDefault(); if (detail != null) { detail.ProdSaleCode = slice.Value; db.SaveChanges(); } } } }
private void UpdateSaleDetailOfBackNum(OPC_SaleDetail saleDetail, int backCount, YintaiHZhouContext db) { OPC_SaleDetail sd = db.OPC_SaleDetails.FirstOrDefault(x => x.Id == saleDetail.Id); if (sd == null) { throw new RmaException("不存在的销售单明细"); } sd.BackNumber = (sd.BackNumber.HasValue ? sd.BackNumber.Value : 0) + backCount; db.SaveChanges(); }
public bool Save(IEnumerable <Models.SaleOrderModel> saleOrders) { // 遍历保存销售单 foreach (var saleOrderModel in saleOrders) { using (var db = new YintaiHZhouContext()) { using (var ts = new TransactionScope()) { var saleOrder = new OPC_Sale() { OrderNo = saleOrderModel.OrderNo, SaleOrderNo = saleOrderModel.SaleOrderNo, SalesType = 0, Status = saleOrderModel.Status, SellDate = saleOrderModel.SellDate, SalesAmount = saleOrderModel.SalesAmount, //是明细累加出的总金额 SalesCount = saleOrderModel.SalesCount, SectionId = saleOrderModel.SectionId, CreatedDate = saleOrderModel.CreatedDate, CreatedUser = saleOrderModel.CreatedUser, UpdatedDate = saleOrderModel.CreatedDate, UpdatedUser = saleOrderModel.CreatedUser, CashDate = SplitOrderUtils.GetDefaultDateTime(), RemarkDate = SplitOrderUtils.GetDefaultDateTime() }; db.OPC_Sale.Add(saleOrder); // 保存销售单详情 foreach (var saleDetail in saleOrderModel.Items) { saleDetail.UpdatedDate = DateTime.UtcNow; saleDetail.Remark = String.Empty; saleDetail.UpdatedUser = SystemDefine.SysUserId; db.OPC_SaleDetail.Add(saleDetail); } // 检查销售是否已经存在,防止重复拆单, // 处理方式:发现销售单存继续其他销售单处理,放弃当前的修改,不进行保存 if (db.OPC_Sale.Any(s => s.SaleOrderNo == saleOrderModel.SaleOrderNo)) { SaveSplitOrderLog(saleOrderModel.OrderNo.ToString(CultureInfo.InvariantCulture), "已经拆单完成,重复拆单", -999); continue; } db.SaveChanges(); ts.Complete(); } } } return(true); }
/// <summary> /// 销售单收银状态从单品系统同步回来,目前未做销售单明细表商品销售码的回写。 /// 信息部回传格式有问题,需要调整后再依据他们的结果调整。 wxh comment on 2014-04-20 17:45:00 /// </summary> /// <param name="saleOrderNo"></param> /// <param name="statusResult"></param> public override void Process(string saleOrderNo, OrderStatusResultDto statusResult) { using (var db = new YintaiHZhouContext()) { var saleOrder = db.OPC_Sale.FirstOrDefault(t => t.SaleOrderNo == saleOrderNo); if (saleOrder == null) { return; } saleOrder.CashStatus = (int)EnumCashStatus.Cashed; saleOrder.UpdatedDate = DateTime.Now; saleOrder.UpdatedUser = SystemDefine.SystemUser; saleOrder.CashNum = statusResult.PosSeqNo; saleOrder.CashDate = statusResult.PosTime; db.SaveChanges(); if (!IsSystemProductOrder(db, saleOrderNo)) { return; } var slices = ParseProductIdAndPosCode(statusResult.Products_SaleCodes); foreach (var slice in slices) { var productId = slice.Key; var detail = db.OPC_SaleDetail.Where(x => x.SaleOrderNo == saleOrderNo) .Join(db.OPC_Stock.Where(s => s.SourceStockId == productId), d => d.StockId, s => s.Id, (o, s) => o) .FirstOrDefault(); if (detail != null) { detail.ProdSaleCode = slice.Value; db.SaveChanges(); } } } }
/// <summary> /// Updates the specified entity. /// </summary> /// <param name="entity">The entity.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> public bool Update(T entity) { using (var db = new YintaiHZhouContext()) { if (entity != null) { IDbSet <T> set = db.Set <T>(); set.AddOrUpdate(entity); db.SaveChanges(); return(true); } return(false); } }
public bool SetEnable(int userId, bool enable) { using (var db = new YintaiHZhouContext()) { OPC_AuthUser user = db.OPC_AuthUsers.FirstOrDefault(t => t.Id == userId); if (user != null) { user.IsValid = enable; db.SaveChanges(); return(true); } return(false); } }
public void SetVoidBySaleOrder(string saleOrderNo) { using (var db = new YintaiHZhouContext()) { var lst = db.OPC_RMAs.Where(t => t.SaleOrderNo == saleOrderNo).ToList(); foreach (var sale in lst) { sale.Status = EnumRMAStatus.OutofStack.AsId(); sale.RMAStatus = (int)EnumReturnGoodsStatus.Valid; sale.RMACashStatus = EnumCashStatus.CashOver.AsId(); } db.SaveChanges(); } }
/// <summary> /// Deletes the specified identifier. /// </summary> /// <param name="id">The identifier.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> public bool Delete(int id) { using (var db = new YintaiHZhouContext()) { IDbSet <T> set = db.Set <T>(); T entity = set.FirstOrDefault(t => t.Id == id); if (null != entity) { set.Remove(entity); db.SaveChanges(); return(true); } return(false); } }
public override void Process(string saleOrderNo, OrderStatusResultDto statusResult) { using (var db = new YintaiHZhouContext()) { var saleOrder = db.OPC_Sale.FirstOrDefault(o => o.SaleOrderNo == saleOrderNo); if (saleOrder.Status != (int)EnumSaleOrderStatus.PrintSale) { return; } saleOrder.Status = (int)_status; saleOrder.UpdatedDate = DateTime.Now; saleOrder.UpdatedUser = -100; db.SaveChanges(); } }
public void SetRmaPint(string rmaNo) { using (var db = new YintaiHZhouContext()) { var opcRma = db.OPC_RMAs.FirstOrDefault(x => x.RMANo == rmaNo); if (opcRma == null) { throw new RmaException(string.Format("无效的退货单号{0}", rmaNo)); } opcRma.Status = EnumRMAStatus.PrintRMA.AsId(); opcRma.UpdatedDate = DateTime.Now; opcRma.UpdatedUser = -1; db.SaveChanges(); } }
public override void Process(string rmaNo, OrderStatusResultDto statusResult) { using (var db = new YintaiHZhouContext()) { var saleRMA = db.OPC_RMA.FirstOrDefault(o => o.RMANo == rmaNo); if (saleRMA.Status == (int)EnumRMAStatus.ShoppingGuideReceive || saleRMA.Status == (int)EnumRMAStatus.PayVerify) { return; } saleRMA.Status = (int)EnumRMAStatus.ShoppingGuideReceive; saleRMA.UpdatedDate = DateTime.Now; saleRMA.UpdatedUser = -100; db.SaveChanges(); } }
public void SetSaleOrderVoid(string saleOrderNo) { using (var db = new YintaiHZhouContext()) { var sale = db.OPC_Sales.FirstOrDefault(t => t.SaleOrderNo == saleOrderNo); if (sale == null) { throw new Exception("销售单不存在,销售单号:" + saleOrderNo); } sale.Status = EnumSaleOrderStatus.Void.AsId(); db.OPC_Sales.AddOrUpdate(sale); db.SaveChanges(); } }