Beispiel #1
0
        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);
        }