public static PurchaseOrderInfo CreatePO(PurchaseOrderInfo poInfo) { //获取ExchangeRate: poInfo.PurchaseOrderBasicInfo.CurrencyCode = 1; CurrencyInfo localCurrency = CommonService.GetCurrencyBySysNo(poInfo.PurchaseOrderBasicInfo.CurrencyCode.Value); poInfo.PurchaseOrderBasicInfo.ExchangeRate = localCurrency.ExchangeRate; poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus = PurchaseOrderStatus.Created; poInfo.PurchaseOrderBasicInfo.PurchaseOrderType = PurchaseOrderType.Normal; ////SellerPortal创建的采购单的账期属性为代销 //采购单代销属性从供应商上取得 //poInfo.PurchaseOrderBasicInfo.ConsignFlag = PurchaseOrderConsignFlag.Consign; poInfo.PurchaseOrderBasicInfo.TaxRateType = PurchaseOrderTaxRate.Percent000; poInfo.PurchaseOrderBasicInfo.TaxRate = ((decimal)poInfo.PurchaseOrderBasicInfo.TaxRateType) / 100; PreCheckCreatePO(poInfo); List <PurchaseOrderItemInfo> poItems = new List <PurchaseOrderItemInfo>(); foreach (var item in poInfo.POItems) { PurchaseOrderItemInfo poItem = AddNewPurchaseOrderItem(new PurchaseOrderItemProductInfo() { SysNo = item.ProductSysNo.Value, ProductID = item.ProductID, PrePurchaseQty = item.PrePurchaseQty.Value, PurchasePrice = item.PurchasePrice.Value }, int.Parse(poInfo.VendorInfo.VendorID)); poItems.Add(poItem); } poInfo.POItems = poItems; poInfo.PurchaseOrderBasicInfo.TotalAmt = poInfo.POItems.Sum(item => item.OrderPrice.Value * item.PrePurchaseQty.Value); using (ITransaction trans = ECommerce.Utility.TransactionManager.Create()) { //设置初始化值: poInfo.SysNo = ProductPurchaseDA.CreatePOSequenceSysNo(); poInfo.PurchaseOrderBasicInfo.PurchaseOrderID = poInfo.SysNo.Value.ToString(); poInfo.PurchaseOrderBasicInfo.CreateDate = System.DateTime.Now; poInfo.PurchaseOrderBasicInfo.IsApportion = 0; //创建操作: ProductPurchaseDA.CreatePO(poInfo); //ETA时间申请 poInfo.PurchaseOrderBasicInfo.ETATimeInfo.POSysNo = poInfo.SysNo; poInfo.PurchaseOrderBasicInfo.ETATimeInfo.Status = 1; poInfo.PurchaseOrderBasicInfo.ETATimeInfo.InUser = poInfo.InUserName; ProductPurchaseDA.CreatePOETAInfo(poInfo.PurchaseOrderBasicInfo.ETATimeInfo); foreach (PurchaseOrderItemInfo item in poInfo.POItems) { item.Quantity = 0; //将采购数量初始化为PrePurchaseQty item.PurchaseQty = item.PrePurchaseQty; item.POSysNo = poInfo.SysNo; //创建PO Item: ProductPurchaseDA.CreatePOItem(item); } trans.Complete(); } return(poInfo); }