Beispiel #1
0
        public static PurchaseOrderItemInfo AddNewPurchaseOrderItem(PurchaseOrderItemProductInfo productInfo, int sellerSysNo)
        {
            if (productInfo == null)
            {
                throw new BusinessException(L("采购商品不能为空"));
            }
            if (productInfo.PrePurchaseQty <= 0)
            {
                throw new BusinessException(L("采购数量必须大于0"));
            }
            if (productInfo.PurchasePrice < 0m)
            {
                throw new BusinessException(L("采购价不能小于0"));
            }
            PurchaseOrderItemInfo item = ProductPurchaseDA.AddPurchaseOrderItemByProductSysNo(productInfo.SysNo, sellerSysNo);

            if (item == null)
            {
                throw new BusinessException(L("采购商品不存在"));
            }
            //if (item.ProductTradeType != TradeType.FTA)
            //{
            //    throw new BusinessException(L("商品【{0}】不是自贸商品,只能采购交易类型为自贸的商品", item.BriefName));
            //}

            item.OrderPrice     = productInfo.PurchasePrice;
            item.PrePurchaseQty = productInfo.PrePurchaseQty;
            //当前成本:
            item.CurrentUnitCost       = item.UnitCost;
            item.UnitCostWithoutTax    = item.UnitCostWithoutTax;
            item.LineReturnedPointCost = item.UnitCost * productInfo.PrePurchaseQty;
            item.Quantity    = 0;
            item.PurchaseQty = 0;
            //调用IM接口,获取Item价格信息:
            item.LastOrderPrice = ProductPurchaseDA.GetLastPriceBySysNo(item.ProductSysNo.Value);

            Entity.Product.ProductInventoryInfo productInventoryInfo = ProductPurchaseDA.GetProductInventoryByProductSysNO(item.ProductSysNo.Value);
            if (productInventoryInfo != null)
            {
                item.AvailableQty    = productInventoryInfo.AvailableQty;
                item.UnActivatyCount = productInventoryInfo.UnActivatyCount;
            }
            item.ApportionAddOn = 0;
            ////获取本地货币:
            item.CurrencyCode = 1;
            CurrencyInfo localCurrency = CommonService.GetCurrencyBySysNo(item.CurrencyCode.Value);

            item.CurrencySymbol = localCurrency == null ? String.Empty : localCurrency.CurrencySymbol;

            PurchaseOrderItemInfo getExendPOitem = ProductPurchaseDA.GetExtendPurchaseOrderItemInfo(productInfo.SysNo);

            if (getExendPOitem != null)
            {
                item.LastAdjustPriceDate = getExendPOitem.LastAdjustPriceDate;
                item.LastInTime          = getExendPOitem.LastInTime;
                item.UnActivatyCount     = getExendPOitem.UnActivatyCount;
            }
            if (ProductPurchaseDA.IsVirtualStockPurchaseOrderProduct(item.ProductSysNo.Value))
            {
                item.IsVirtualStockProduct = true;
            }
            return(item);
        }