public static PurchaseOrderInfo LoadPurchaseOrderInfo(int poSysNo, int sellerSysNo) { //1.加载采购单基本信息 PurchaseOrderInfo poInfo = ProductPurchaseDA.LoadPOMaster(poSysNo, sellerSysNo); if (poInfo == null) { return(poInfo); } PurchaseOrderETATimeInfo getCheckETMTimeInfo = ProductPurchaseDA.LoadPOETATimeInfo(poInfo.SysNo.Value); if (null != getCheckETMTimeInfo) { poInfo.PurchaseOrderBasicInfo.ETATimeInfo = getCheckETMTimeInfo; } //2.加载采购单商品列表: poInfo.POItems = ProductPurchaseDA.LoadPOItems(poInfo.SysNo.Value); foreach (var item in poInfo.POItems) { ////获取本地货币: if (poInfo.PurchaseOrderBasicInfo.CurrencyCode.HasValue) { item.CurrencyCode = poInfo.PurchaseOrderBasicInfo.CurrencyCode.Value; CurrencyInfo localCurrency = CommonService.GetCurrencyBySysNo(item.CurrencyCode.Value); item.CurrencySymbol = localCurrency == null ? String.Empty : localCurrency.CurrencySymbol; } } //3.加载采购单供应商信息 poInfo.VendorInfo = StoreService.LoadVendorInfo(sellerSysNo); //4.获取polog的入库总金额 PurchaseOrderLogInfo poLogInfo = ProductPurchaseDA.LoadPOLogInfo(poInfo.SysNo.Value); if (null != poLogInfo) { poInfo.PurchaseOrderBasicInfo.TotalActualPrice = poLogInfo.SumTotalAmt; } if (poInfo.PurchaseOrderBasicInfo.TotalActualPrice == 0) { foreach (PurchaseOrderItemInfo pitem in poInfo.POItems) { poInfo.PurchaseOrderBasicInfo.TotalActualPrice += pitem.OrderPrice.Value * pitem.Quantity; } } //5.加载采购单收货信息: poInfo.ReceivedInfoList = new List <PurchaseOrderReceivedInfo>(); poInfo.ReceivedInfoList = ProductPurchaseDA.LoadPurchaseOrderReceivedInfo(poInfo.SysNo.Value); foreach (PurchaseOrderReceivedInfo revInfo in poInfo.ReceivedInfoList) { foreach (PurchaseOrderItemInfo item in poInfo.POItems) { if (revInfo.ProductSysNo == item.ProductSysNo) { revInfo.PurchaseQty = (item.PurchaseQty.HasValue ? item.PurchaseQty.Value : 0); revInfo.WaitInQty = revInfo.PurchaseQty - revInfo.ReceivedQuantity; } } } //返回PO实体: return(poInfo); }