示例#1
0
        /// <summary>
        /// 更新PO单ITEM的批次信息
        /// </summary>
        /// <param name="info"></param>
        /// <param name="callback"></param>
        public void UpdatePurchaseOrderBatchInfo(PurchaseOrderItemInfo info, EventHandler <RestClientEventArgs <object> > callback)
        {
            info.CompanyCode = CPApplication.Current.CompanyCode;
            string relativeUrl = "POService/PurchaseOrder/UpdatePurchaseOrderBatchInfo";

            restClient.Update(relativeUrl, info, callback);
        }
示例#2
0
        public static PurchaseOrderItemInfo AddPurchaseOrderItemByProductSysNo(int productSysNo, int sellerSysNo)
        {
            PurchaseOrderItemInfo item    = null;
            DataCommand           command = DataCommandManager.GetDataCommand("AddPOItemByProductSysNo");

            command.SetParameterValue("@ProductSysNo", productSysNo);
            command.SetParameterValue("@SellerSysNo", sellerSysNo);
            item = command.ExecuteEntity <PurchaseOrderItemInfo>();
            return(item);
        }
示例#3
0
        public ActionResult AjaxAddNewPurchaseOrderItem()
        {
            if (string.IsNullOrWhiteSpace(Request["Data"]))
            {
                throw new BusinessException("采购商品信息为空");
            }
            PurchaseOrderItemProductInfo product       = SerializationUtility.JsonDeserialize2 <PurchaseOrderItemProductInfo>(Request["Data"]);
            PurchaseOrderItemInfo        orderItemInfo = ProductPurchaseService.AddNewPurchaseOrderItem(product, UserAuthHelper.GetCurrentUser().SellerSysNo);

            return(Json(orderItemInfo));
        }
示例#4
0
        public static PurchaseOrderItemInfo LoadExtendPOItem(int itemSysNo)
        {
            DataCommand command = DataCommandManager.GetDataCommand("GetJDPriceAndM1AndAndAvailableQty");

            command.SetParameterValue("@ProductSysNo", itemSysNo);
            PurchaseOrderItemInfo item = command.ExecuteEntity <PurchaseOrderItemInfo>();

            if (!item.M1.HasValue)
            {
                item.M1 = 0;
            }
            return(item);
        }
示例#5
0
        public static PurchaseOrderItemInfo GetExtendPurchaseOrderItemInfo(int productSysNo)
        {
            DataCommand command = DataCommandManager.GetDataCommand("GetExtendPurchaseOrderItemInfo");

            command.SetParameterValue("@ProductSysNo", productSysNo);
            PurchaseOrderItemInfo item = command.ExecuteEntity <PurchaseOrderItemInfo>();

            if (!item.M1.HasValue)
            {
                item.M1 = 0;
            }
            return(item);
        }
示例#6
0
        public static bool IsBatchProduct(PurchaseOrderItemInfo poItem)
        {
            PurchaseOrderItemInfo poItemEntity = new PurchaseOrderItemInfo();
            DataCommand           cmd          = DataCommandManager.GetDataCommand("IsBatchProductInfo");

            cmd.SetParameterValue("@PreviousProductSysNo", poItem.ProductSysNo);
            poItemEntity = cmd.ExecuteEntity <PurchaseOrderItemInfo>();
            if (poItemEntity != null && poItemEntity.ProductSysNo.HasValue)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        private void btnUpdate_Click(object sender, RoutedEventArgs e)
        {
            //验证退货数量是否大于最大值
            var tItems = (from tObj in list
                          where tObj.ReturnQty > tObj.BatchInfoStockNumber || tObj.ReturnQty < 0
                          select tObj).ToList();

            if (tItems != null && tItems.Count > 0)
            {
                labErrorMsg.Visibility = Visibility.Visible;
                labErrorMsg.Text       = "退货数量应为0到库存数量之间的整数!";
                return;
            }
            else
            {
                labErrorMsg.Visibility = Visibility.Collapsed;
                labErrorMsg.Text       = "";
            }
            // 更新操作:
            PurchaseOrderItemInfo info = new PurchaseOrderItemInfo()
            {
                ItemSysNo = this.ItemSysNo,
                BatchInfo = BuildItemBatchInfo()
            };

            if (!string.IsNullOrEmpty(info.BatchInfo))
            {
                serviceFacade.UpdatePurchaseOrderBatchInfo(info, (obj, args) =>
                {
                    if (args.FaultsHandle())
                    {
                        return;
                    }
                    batchInfo = info.BatchInfo;
                    Dialog.ResultArgs.Data = batchInfo;
                    Dialog.Close(true);
                });
            }
            else
            {
                Dialog.Close(true);
            }
        }
示例#8
0
        public static PurchaseOrderItemInfo UpdatePOItem(PurchaseOrderItemInfo entity)
        {
            DataCommand command = DataCommandManager.GetDataCommand("UpdatePOItem");

            command.SetParameterValue("@SysNo", entity.ItemSysNo.Value);
            command.SetParameterValue("@POSysNo", entity.POSysNo);
            command.SetParameterValue("@ProductSysNo", entity.ProductSysNo);
            command.SetParameterValue("@BriefName", entity.BriefName);

            command.SetParameterValue("@Quantity", entity.Quantity);
            command.SetParameterValue("@Weight", entity.Weight);
            command.SetParameterValue("@OrderPrice", entity.OrderPrice);

            command.SetParameterValue("@ApportionAddOn", entity.ApportionAddOn);
            command.SetParameterValue("@UnitCost", entity.UnitCost);
            command.SetParameterValue("@ReturnCost", entity.ReturnCost);

            command.SetParameterValue("@PurchaseQty", entity.PurchaseQty.Value);
            command.SetParameterValue("@CurrencySysNo", entity.CurrencyCode);
            command.SetParameterValue("@ExecptStatus", entity.ExecptStatus);
            command.SetParameterValue("@UnitCostWithoutTax", entity.UnitCostWithoutTax);

            command.SetParameterValue("@AvailableQty", entity.AvailableQty);
            command.SetParameterValue("@m1", entity.M1);

            command.SetParameterValue("@CurrentUnitCost", entity.UnitCost);
            command.SetParameterValue("@CurrentPrice", entity.OrderPrice);
            command.SetParameterValue("@LastAdjustPriceDate", entity.LastAdjustPriceDate);

            command.SetParameterValue("@LastInTime", entity.LastInTime);
            command.SetParameterValue("@lastOrderPrice", entity.LastOrderPrice);

            if (command.ExecuteNonQuery() <= 0)
            {
                return(null);
            }
            return(entity);
        }
示例#9
0
        public static PurchaseOrderItemInfo CreatePOItem(PurchaseOrderItemInfo itemInfo)
        {
            DataCommand command = DataCommandManager.GetDataCommand("CreatePOItems");

            command.SetParameterValue("@POSysNo", itemInfo.POSysNo);
            command.SetParameterValue("@SysNo", itemInfo.ItemSysNo);
            command.SetParameterValue("@ProductSysNo", itemInfo.ProductSysNo);
            command.SetParameterValue("@BriefName", itemInfo.BriefName);
            command.SetParameterValue("@Quantity", itemInfo.Quantity);
            command.SetParameterValue("@PrePurchaseQty", itemInfo.PrePurchaseQty);
            command.SetParameterValue("@Weight", itemInfo.Weight);
            command.SetParameterValue("@OrderPrice", itemInfo.OrderPrice);
            command.SetParameterValue("@ApportionAddOn", itemInfo.ApportionAddOn);
            command.SetParameterValue("@UnitCost", itemInfo.UnitCost);
            command.SetParameterValue("@ReturnCost", 0);
            command.SetParameterValue("@lastOrderPrice", itemInfo.LastOrderPrice);
            command.SetParameterValue("@ExecptStatus", itemInfo.ExecptStatus);
            command.SetParameterValue("@ProductID", itemInfo.ProductID);
            command.SetParameterValue("@UnitCostWithoutTax", itemInfo.UnitCostWithoutTax);
            command.SetParameterValue("@AvailableQty", itemInfo.AvailableQty);
            command.SetParameterValue("@m1", itemInfo.M1);
            command.SetParameterValue("@PurchaseQty", itemInfo.PurchaseQty);
            command.SetParameterValue("@CurrencySysNo", itemInfo.CurrencyCode);
            command.SetParameterValue("@CurrentPrice", itemInfo.CurrentPrice);
            command.SetParameterValue("@CurrentUnitCost", itemInfo.CurrentUnitCost);
            command.SetParameterValue("@BatchInfo", itemInfo.BatchInfo);
            command.SetParameterValue("@CompanyCode", itemInfo.CompanyCode);

            object o = command.ExecuteScalar();

            if (o != null)
            {
                itemInfo.ItemSysNo = Convert.ToInt32(o);
            }
            return(itemInfo);
        }
示例#10
0
        private PurchaseOrderInfo GetPurchaseOrderInfo()
        {
            PurchaseOrderInfo info      = new PurchaseOrderInfo();
            Distributor       user      = Users.GetUser(HiContext.Current.User.UserId) as Distributor;
            int             modeId      = int.Parse(this.radioPaymentMode.SelectedValue);
            PaymentModeInfo paymentMode = SubsiteStoreHelper.GetPaymentMode(modeId);

            if (paymentMode != null)
            {
                info.PaymentTypeId = modeId;
                info.PaymentType   = paymentMode.Name;
                info.Gateway       = paymentMode.Gateway;
            }
            string str = this.GeneratePurchaseOrderId();

            info.PurchaseOrderId = str;
            IList <PurchaseShoppingCartItemInfo> purchaseShoppingCartItemInfos = SubsiteSalesHelper.GetPurchaseShoppingCartItemInfos();
            decimal totalWeight = 0M;

            if (purchaseShoppingCartItemInfos.Count >= 1)
            {
                foreach (PurchaseShoppingCartItemInfo info3 in purchaseShoppingCartItemInfos)
                {
                    PurchaseOrderItemInfo item = new PurchaseOrderItemInfo();
                    item.PurchaseOrderId         = str;
                    item.SkuId                   = info3.SkuId;
                    item.ThumbnailsUrl           = info3.ThumbnailsUrl;
                    item.SKUContent              = info3.SKUContent;
                    item.SKU                     = info3.SKU;
                    item.Quantity                = info3.Quantity;
                    item.ProductId               = info3.ProductId;
                    item.ItemWeight              = info3.ItemWeight;
                    item.ItemCostPrice           = info3.CostPrice;
                    item.ItemPurchasePrice       = info3.ItemPurchasePrice;
                    item.ItemListPrice           = info3.ItemListPrice;
                    item.ItemDescription         = info3.ItemDescription;
                    item.ItemHomeSiteDescription = info3.ItemDescription;
                    totalWeight                 += info3.ItemWeight * info3.Quantity;
                    info.PurchaseOrderItems.Add(item);
                }
                ShippingModeInfo shippingMode = SubsiteSalesHelper.GetShippingMode(this.radioShippingMode.SelectedValue.Value, true);
                info.ShipTo = this.txtShipTo.Text.Trim();
                if (this.rsddlRegion.GetSelectedRegionId().HasValue)
                {
                    info.RegionId = this.rsddlRegion.GetSelectedRegionId().Value;
                }
                info.Address             = Globals.HtmlEncode(this.txtAddress.Text.Trim());
                info.TelPhone            = this.txtTel.Text.Trim();
                info.ZipCode             = this.txtZipcode.Text.Trim();
                info.CellPhone           = this.txtMobile.Text.Trim();
                info.OrderId             = null;
                info.RealShippingModeId  = this.radioShippingMode.SelectedValue.Value;
                info.RealModeName        = shippingMode.Name;
                info.ShippingModeId      = this.radioShippingMode.SelectedValue.Value;
                info.ModeName            = shippingMode.Name;
                info.AdjustedFreight     = SubsiteSalesHelper.CalcFreight(info.RegionId, totalWeight, shippingMode);
                info.Freight             = info.AdjustedFreight;
                info.ShippingRegion      = this.rsddlRegion.SelectedRegions;
                info.Remark              = Globals.HtmlEncode(this.txtRemark.Text.Trim());
                info.PurchaseStatus      = OrderStatus.WaitBuyerPay;
                info.DistributorId       = user.UserId;
                info.Distributorname     = user.Username;
                info.DistributorEmail    = user.Email;
                info.DistributorRealName = user.RealName;
                info.DistributorQQ       = user.QQ;
                info.DistributorWangwang = user.Wangwang;
                info.DistributorMSN      = user.MSN;
                info.RefundStatus        = RefundStatus.None;
                info.Weight              = totalWeight;
            }
            return(info);
        }
示例#11
0
        /// <summary>
        /// 采购单确认入库(接口调用)
        /// </summary>
        /// <param name="poSysNo"></param>
        public static PurchaseOrderInfo WaitingInstockPO(PurchaseOrderInfo poInfo, List <KeyValuePair <string, int> > productList)
        {
            if (null == poInfo || !poInfo.SysNo.HasValue)
            {
                throw new BusinessException("找不到相关的采购单信息!");
            }
            if (poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus != PurchaseOrderStatus.Reporting)
            {
                throw new BusinessException("该采购单状态不是'申报中'状态,不能进行入库确认操作!");
            }
            if (productList == null || productList.Count <= 0)
            {
                throw new BusinessException("该采购单商品明细传入为空!");
            }
            //poInfo.PurchaseOrderBasicInfo.ETATimeInfo.ETATime = localEntity.PurchaseOrderBasicInfo.ETATimeInfo.ETATime;
            //poInfo.PurchaseOrderBasicInfo.ETATimeInfo.HalfDay = localEntity.PurchaseOrderBasicInfo.ETATimeInfo.HalfDay;
            TransactionOptions options = new TransactionOptions();

            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout        = System.Transactions.TransactionManager.DefaultTimeout;
            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                #region 更新PO单Item的PurchaseQty:
                if (null != productList && productList.Count > 0)
                {
                    foreach (var item in productList)
                    {
                        var poItem = poInfo.POItems.SingleOrDefault(x => x.ProductID.Trim().ToLower() == item.Key.Trim().ToLower());
                        if (null != poItem)
                        {
                            if (poItem.PrePurchaseQty < item.Value)
                            {
                                throw new BusinessException(string.Format("采购单编号:{0},商品ID为{1}的实际采购数量(ItemNum)大于计划采购数量!", poInfo.SysNo.Value, item.Key));
                            }

                            poItem.PurchaseQty = item.Value;
                            ProductPurchaseDA.UpdatePOItemPurchaseQty(poItem.ItemSysNo.Value, item.Value);
                        }
                        else
                        {
                            throw new BusinessException(string.Format("采购单编号:{0},找不到商品ID为{1}的采购单商品信息!", poInfo.SysNo.Value, item.Key));
                        }
                    }
                }
                #endregion

                #region 更新采购单状态:
                poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus = PurchaseOrderStatus.WaitingInStock;
                poInfo.PurchaseOrderBasicInfo.MemoInfo.RefuseMemo = string.Empty;

                ProductPurchaseDA.WaitingInStockPO(poInfo);
                #endregion

                #region 更新POItem信息:
                List <KeyValuePair <int, int> > kv = new List <KeyValuePair <int, int> >();
                foreach (PurchaseOrderItemInfo item in poInfo.POItems)
                {
                    kv.Add(new KeyValuePair <int, int>(item.ProductSysNo.Value, item.PurchaseQty.Value));

                    //总仓有效库存 上月销售总量
                    PurchaseOrderItemInfo tempPoItem = ProductPurchaseDA.LoadExtendPOItem(item.ProductSysNo.Value);
                    item.M1                  = tempPoItem.M1;
                    item.AvailableQty        = tempPoItem.AvailableQty;
                    item.UnitCostWithoutTax  = item.UnitCostWithoutTax ?? 0;
                    item.CurrentUnitCost     = tempPoItem.CurrentUnitCost;
                    item.CurrentPrice        = tempPoItem.CurrentPrice;
                    item.LastInTime          = tempPoItem.LastInTime;
                    item.LastAdjustPriceDate = tempPoItem.LastAdjustPriceDate;
                    item.LastOrderPrice      = tempPoItem.LastOrderPrice;
                    ProductPurchaseDA.UpdatePOItem(item);
                }
                #endregion

                #region 设置采购在途数量,(代销PO该业务逻辑不变)

                ProductPurchaseInstockAdjustInventoryInfo inventoryAdjustInfo = new ProductPurchaseInstockAdjustInventoryInfo()
                {
                    ReferenceSysNo   = poInfo.SysNo.Value,
                    SourceActionName = "Audit",
                    AdjustItemList   = new List <Entity.Inventory.InventoryAdjustItemInfo>()
                };
                kv.ForEach(x =>
                {
                    inventoryAdjustInfo.AdjustItemList.Add(new InventoryAdjustItemInfo()
                    {
                        ProductSysNo   = x.Key,
                        StockSysNo     = poInfo.PurchaseOrderBasicInfo.StockInfo.SysNo.Value,
                        AdjustQuantity = x.Value
                    });
                });

                foreach (InventoryAdjustItemInfo adjustItem in inventoryAdjustInfo.AdjustItemList)
                {
                    //this.CurrentAdjustItemInfo = adjustItem;
                    //this.AdjustQuantity = adjustItem.AdjustQuantity;
                    //ProcessAdjustItemInfo();
                    CostLockType     costLockAction = CostLockType.NoUse;
                    ProductQueryInfo productInfo    = ProductService.GetProductBySysNo(adjustItem.ProductSysNo);
                    if (productInfo == null || productInfo.SysNo <= 0)
                    {
                        throw new BusinessException(string.Format("欲调库存的商品不存在,商品编号:{0}", adjustItem.ProductSysNo));
                    }
                    InventoryDA.InitProductInventoryInfo(adjustItem.ProductSysNo, adjustItem.StockSysNo);
                    var inventoryType = InventoryDA.GetProductInventroyType(adjustItem.ProductSysNo);
                    ECommerce.Entity.Inventory.ProductInventoryInfo stockInventoryCurrentInfo = InventoryDA.GetProductInventoryInfoByStock(adjustItem.ProductSysNo, adjustItem.StockSysNo);
                    ECommerce.Entity.Inventory.ProductInventoryInfo totalInventoryCurrentInfo = InventoryDA.GetProductTotalInventoryInfo(adjustItem.ProductSysNo);

                    ECommerce.Entity.Inventory.ProductInventoryInfo stockInventoryAdjustInfo = new Entity.Inventory.ProductInventoryInfo()
                    {
                        ProductSysNo = adjustItem.ProductSysNo,
                        StockSysNo   = adjustItem.StockSysNo
                    };

                    ECommerce.Entity.Inventory.ProductInventoryInfo totalInventoryAdjustInfo = new ECommerce.Entity.Inventory.ProductInventoryInfo()
                    {
                        ProductSysNo = adjustItem.ProductSysNo
                    };
                    //获取负po的成本库存
                    List <ProductCostIn> productCostInList = InventoryDA.GetProductCostIn(adjustItem.ProductSysNo, Convert.ToInt32(inventoryAdjustInfo.ReferenceSysNo), adjustItem.StockSysNo);


                    List <ProductCostIn> adjustProductCostInList = new List <ProductCostIn>();
                    int CanUseQuantity = 0;
                    //区分正负PO单
                    if (adjustItem.AdjustQuantity < 0)
                    {
                        //负PO单审核, AdjustQty<0, 减少可用库存, 增加已分配库存
                        stockInventoryAdjustInfo.AvailableQty = adjustItem.AdjustQuantity;
                        totalInventoryAdjustInfo.AvailableQty = adjustItem.AdjustQuantity;

                        if (adjustItem.AdjustQuantity < 0)
                        {
                            //AllocatedQty(-,->0),小于0则自动调为0。
                            if (stockInventoryCurrentInfo.AllocatedQty + adjustItem.AdjustQuantity < 0)
                            {
                                stockInventoryAdjustInfo.AllocatedQty = -stockInventoryCurrentInfo.AllocatedQty;
                            }
                            else
                            {
                                stockInventoryAdjustInfo.AllocatedQty = adjustItem.AdjustQuantity;
                            }

                            if (totalInventoryCurrentInfo.AllocatedQty + adjustItem.AdjustQuantity < 0)
                            {
                                totalInventoryAdjustInfo.AllocatedQty = -totalInventoryCurrentInfo.AllocatedQty;
                            }
                            else
                            {
                                totalInventoryAdjustInfo.AllocatedQty = adjustItem.AdjustQuantity;
                            }
                        }
                        else
                        {
                            stockInventoryAdjustInfo.AllocatedQty = adjustItem.AdjustQuantity;
                            totalInventoryAdjustInfo.AllocatedQty = adjustItem.AdjustQuantity;
                        }

                        //标识要锁定成本库存
                        costLockAction = CostLockType.Lock;
                        int temp = Math.Abs(adjustItem.AdjustQuantity);
                        //锁定库存
                        foreach (var item in productCostInList)
                        {
                            CanUseQuantity = item.LeftQuantity - item.LockQuantity;
                            //可用数量大于要锁定数量,直接累加加到锁定数量
                            if (CanUseQuantity >= temp)
                            {
                                item.LockQuantity += temp;
                                adjustProductCostInList.Add(item);
                                break;
                            }
                            else if (CanUseQuantity > 0) //可用数量不足且大于0,
                            {
                                //调整数量减少相应值,进行一次锁定分配
                                temp = temp - CanUseQuantity;
                                //将可用加到锁定数量上
                                item.LockQuantity += CanUseQuantity;
                                adjustProductCostInList.Add(item);
                            }
                        }
                    }
                    else
                    {
                        //正PO单审核, AdjustQty>0, 增加采购库存
                        stockInventoryAdjustInfo.PurchaseQty = adjustItem.AdjustQuantity;
                        totalInventoryAdjustInfo.PurchaseQty = adjustItem.AdjustQuantity;
                    }

                    //预检调整后的商品库存是否合法
                    Entity.Inventory.ProductInventoryInfo stockInventoryAdjustAfterAdjust = InventoryService.PreCalculateInventoryAfterAdjust(stockInventoryCurrentInfo, stockInventoryAdjustInfo);
                    Entity.Inventory.ProductInventoryInfo totalInventoryAdjustAfterAdjust = InventoryService.PreCalculateInventoryAfterAdjust(totalInventoryCurrentInfo, totalInventoryAdjustInfo);

                    bool isNeedCompareAvailableQtyAndAccountQty = true;
                    InventoryService.PreCheckGeneralRules(stockInventoryAdjustAfterAdjust, ref isNeedCompareAvailableQtyAndAccountQty);
                    InventoryService.PreCheckGeneralRules(totalInventoryAdjustAfterAdjust, ref isNeedCompareAvailableQtyAndAccountQty);

                    //调整商品库存:

                    InventoryDA.AdjustProductStockInventoryInfo(stockInventoryAdjustInfo);
                    InventoryDA.AdjustProductTotalInventoryInfo(totalInventoryAdjustInfo);
                    //如果需要调整锁定库存
                    if (costLockAction != CostLockType.NoUse && adjustProductCostInList != null)
                    {
                        InventoryDA.LockProductCostInList(adjustProductCostInList);
                    }
                }
                #endregion

                #region 如果是负采购单,调整批次库存:
                if (poInfo.PurchaseOrderBasicInfo.PurchaseOrderType == PurchaseOrderType.Negative)
                {
                    SetInventoryInfo(poInfo, "");
                }

                #endregion

                scope.Complete();
            }
            return(poInfo);
        }
示例#12
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);
        }
示例#13
0
文件: BP.cs 项目: sanlonezhang/ql
        private static void ProcessPOInfo(List <PurchaseOrderInfo> result, List <LeaseProduct> CostList, bool IsMuli)
        {
            if (IsMuli)
            {
                var muligppo = CostList.GroupBy(p => new { p.VendorSysNo, p.IsConsign, p.PMUserSysNo, p.TaxRate, p.ProductSysNo, p.Cost });
                foreach (var gp in muligppo)
                {
                    PurchaseOrderInfo po = new PurchaseOrderInfo();
                    var basic            = po.PurchaseOrderBasicInfo;
                    basic.ConsignFlag    = (PurchaseOrderConsignFlag)gp.Key.IsConsign;
                    basic.TaxRate        = gp.Key.TaxRate;
                    basic.ProductManager = new ECCentral.BizEntity.IM.ProductManagerInfo
                    {
                        SysNo = gp.Key.PMUserSysNo
                    };
                    basic.PurchaseOrderLeaseFlag = PurchaseOrderLeaseFlag.Lease;
                    basic.StockInfo = new StockInfo {
                        SysNo = 51
                    };
                    basic.PurchaseOrderType         = POType;
                    po.VendorInfo.SysNo             = gp.Key.VendorSysNo;
                    po.VendorInfo.VendorFinanceInfo = new VendorFinanceInfo
                    {
                        PayPeriodType = new VendorPayTermsItemInfo
                        {
                            PayTermsNo = 1
                        }
                    };
                    po.VendorInfo.VendorBasicInfo = new VendorBasicInfo
                    {
                        PaySettleCompany = PaySettleCompany.BJ
                    };
                    po.CompanyCode            = Settings.CompanyCode;
                    basic.PurchaseOrderStatus = PurchaseOrderStatus.InStocked;
                    basic.CurrencyCode        = 1;
                    basic.ShippingType        = new ShippingType {
                        SysNo = 13
                    };
                    basic.MemoInfo    = new PurchaseOrderMemoInfo();
                    basic.ETATimeInfo = new PurchaseOrderETATimeInfo
                    {
                        HalfDay = PurchaseOrderETAHalfDayType.PM
                    };
                    var sameprd = gp.GroupBy(p => p.ProductSysNo);
                    foreach (var item in sameprd)
                    {
                        PurchaseOrderItemInfo poitem = new PurchaseOrderItemInfo
                        {
                            ProductSysNo = item.Key,
                            PurchaseQty  = item.Sum(p => p.Quantity),
                            OrderPrice   = item.First().Cost,
                            UnitCost     = item.First().Cost,
                            Weight       = 0,
                            ReturnCost   = 0
                        };
                        po.POItems.Add(poitem);
                    }
                    result.Add(po);
                }
            }
            else
            {
                var gppo = CostList.GroupBy(p => new { p.VendorSysNo, p.IsConsign, p.PMUserSysNo, p.TaxRate });
                foreach (var gp in gppo)
                {
                    PurchaseOrderInfo po = new PurchaseOrderInfo();
                    var basic            = po.PurchaseOrderBasicInfo;
                    basic.ConsignFlag    = (PurchaseOrderConsignFlag)gp.Key.IsConsign;
                    basic.TaxRate        = gp.Key.TaxRate;
                    basic.ProductManager = new ECCentral.BizEntity.IM.ProductManagerInfo
                    {
                        SysNo = gp.Key.PMUserSysNo
                    };
                    basic.PurchaseOrderLeaseFlag = PurchaseOrderLeaseFlag.Lease;
                    basic.StockInfo = new StockInfo {
                        SysNo = 51
                    };
                    basic.PurchaseOrderType         = POType;
                    po.VendorInfo.SysNo             = gp.Key.VendorSysNo;
                    po.VendorInfo.VendorFinanceInfo = new VendorFinanceInfo
                    {
                        PayPeriodType = new VendorPayTermsItemInfo
                        {
                            PayTermsNo = 1
                        }
                    };
                    po.VendorInfo.VendorBasicInfo = new VendorBasicInfo
                    {
                        PaySettleCompany = PaySettleCompany.BJ
                    };
                    po.CompanyCode            = Settings.CompanyCode;
                    basic.PurchaseOrderStatus = PurchaseOrderStatus.InStocked;
                    basic.CurrencyCode        = 1;
                    basic.ShippingType        = new ShippingType {
                        SysNo = 13
                    };
                    basic.MemoInfo    = new PurchaseOrderMemoInfo();
                    basic.ETATimeInfo = new PurchaseOrderETATimeInfo
                    {
                        HalfDay = PurchaseOrderETAHalfDayType.PM
                    };

                    var sameprd = gp.GroupBy(p => p.ProductSysNo);
                    foreach (var item in sameprd)
                    {
                        PurchaseOrderItemInfo poitem = new PurchaseOrderItemInfo
                        {
                            ProductSysNo = item.Key,
                            PurchaseQty  = item.Sum(p => p.Quantity),
                            OrderPrice   = item.First().Cost,
                            UnitCost     = item.First().Cost,
                            Weight       = 0,
                            ReturnCost   = 0
                        };
                        po.POItems.Add(poitem);
                    }
                    result.Add(po);
                }
            }
        }
示例#14
0
        private PurchaseOrderInfo ConvertOrderToPurchaseOrder(OrderInfo order)
        {
            PurchaseOrderInfo result;

            if (order == null)
            {
                result = null;
            }
            else
            {
                StringBuilder stringBuilder = new StringBuilder();
                string        text          = "";
                foreach (LineItemInfo current in order.LineItems.Values)
                {
                    stringBuilder.AppendFormat("'" + current.SkuId + "',", new object[0]);
                }
                if (stringBuilder.Length > 0)
                {
                    stringBuilder = stringBuilder.Remove(stringBuilder.Length - 1, 1);
                    text          = string.Format("SELECT S.SkuId, S.CostPrice, p.ProductName FROM Hishop_Products P JOIN Hishop_SKUs S ON P.ProductId = S.ProductId WHERE S.SkuId IN({0});", stringBuilder);
                }
                if (order.Gifts.Count > 0)
                {
                    StringBuilder stringBuilder2 = new StringBuilder();
                    foreach (OrderGiftInfo current2 in order.Gifts)
                    {
                        stringBuilder2.AppendFormat(current2.GiftId.ToString() + ",", new object[0]);
                    }
                    stringBuilder2.Remove(stringBuilder2.Length - 1, 1);
                    text += string.Format(" SELECT GiftId, CostPrice FROM Hishop_Gifts WHERE GiftId IN({0});", stringBuilder2.ToString());
                }
                System.Data.Common.DbCommand sqlStringCommand         = this.database.GetSqlStringCommand(text);
                Dictionary <string, PurchaseOrderItemInfo> dictionary = new Dictionary <string, PurchaseOrderItemInfo>();
                Dictionary <int, decimal> dictionary2 = new Dictionary <int, decimal>();
                using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
                {
                    if (order.LineItems.Values.Count > 0)
                    {
                        while (dataReader.Read())
                        {
                            PurchaseOrderItemInfo purchaseOrderItemInfo = new PurchaseOrderItemInfo();
                            if (dataReader["CostPrice"] != DBNull.Value)
                            {
                                purchaseOrderItemInfo.ItemCostPrice = (decimal)dataReader["CostPrice"];
                            }
                            purchaseOrderItemInfo.ItemHomeSiteDescription = (string)dataReader["ProductName"];
                            dictionary.Add((string)dataReader["SkuId"], purchaseOrderItemInfo);
                        }
                    }
                    if (order.Gifts.Count > 0)
                    {
                        if (order.LineItems.Count > 0)
                        {
                            dataReader.NextResult();
                        }
                        while (dataReader.Read())
                        {
                            dictionary2.Add((int)dataReader["GiftId"], (DBNull.Value == dataReader["CostPrice"]) ? 0m : Convert.ToDecimal(dataReader["CostPrice"]));
                        }
                    }
                }
                IUser user = Users.GetUser(HiContext.Current.SiteSettings.UserId.Value, false);
                if (user == null || user.UserRole != UserRole.Distributor)
                {
                    result = null;
                }
                else
                {
                    Distributor       distributor       = user as Distributor;
                    PurchaseOrderInfo purchaseOrderInfo = new PurchaseOrderInfo();
                    purchaseOrderInfo.PurchaseOrderId     = "PO" + order.OrderId;
                    purchaseOrderInfo.OrderId             = order.OrderId;
                    purchaseOrderInfo.Remark              = order.Remark;
                    purchaseOrderInfo.PurchaseStatus      = OrderStatus.WaitBuyerPay;
                    purchaseOrderInfo.DistributorId       = distributor.UserId;
                    purchaseOrderInfo.Distributorname     = distributor.Username;
                    purchaseOrderInfo.DistributorEmail    = distributor.Email;
                    purchaseOrderInfo.DistributorRealName = distributor.RealName;
                    purchaseOrderInfo.DistributorQQ       = distributor.QQ;
                    purchaseOrderInfo.DistributorWangwang = distributor.Wangwang;
                    purchaseOrderInfo.DistributorMSN      = distributor.MSN;
                    purchaseOrderInfo.ShippingRegion      = order.ShippingRegion;
                    purchaseOrderInfo.Address             = order.Address;
                    purchaseOrderInfo.ZipCode             = order.ZipCode;
                    purchaseOrderInfo.ShipTo              = order.ShipTo;
                    purchaseOrderInfo.TelPhone            = order.TelPhone;
                    purchaseOrderInfo.CellPhone           = order.CellPhone;
                    purchaseOrderInfo.ShipToDate          = order.ShipToDate;
                    purchaseOrderInfo.ShippingModeId      = order.ShippingModeId;
                    purchaseOrderInfo.ModeName            = order.ModeName;
                    purchaseOrderInfo.RegionId            = order.RegionId;
                    purchaseOrderInfo.Freight             = order.Freight;
                    purchaseOrderInfo.AdjustedFreight     = order.Freight;
                    purchaseOrderInfo.ShipOrderNumber     = order.ShipOrderNumber;
                    purchaseOrderInfo.Weight              = order.Weight;
                    purchaseOrderInfo.RefundStatus        = RefundStatus.None;
                    purchaseOrderInfo.OrderTotal          = order.GetTotal();
                    purchaseOrderInfo.ExpressCompanyName  = order.ExpressCompanyName;
                    purchaseOrderInfo.ExpressCompanyAbb   = order.ExpressCompanyAbb;
                    purchaseOrderInfo.Tax          = order.Tax;
                    purchaseOrderInfo.InvoiceTitle = order.InvoiceTitle;
                    foreach (LineItemInfo current3 in order.LineItems.Values)
                    {
                        PurchaseOrderItemInfo purchaseOrderItemInfo2 = new PurchaseOrderItemInfo();
                        purchaseOrderItemInfo2.PurchaseOrderId = purchaseOrderInfo.PurchaseOrderId;
                        purchaseOrderItemInfo2.SkuId           = current3.SkuId;
                        purchaseOrderItemInfo2.ProductId       = current3.ProductId;
                        purchaseOrderItemInfo2.SKU             = current3.SKU;
                        purchaseOrderItemInfo2.Quantity        = current3.ShipmentQuantity;
                        foreach (KeyValuePair <string, PurchaseOrderItemInfo> current4 in dictionary)
                        {
                            if (current4.Key == current3.SkuId)
                            {
                                purchaseOrderItemInfo2.ItemCostPrice           = current4.Value.ItemCostPrice;
                                purchaseOrderItemInfo2.ItemHomeSiteDescription = current4.Value.ItemHomeSiteDescription;
                            }
                        }
                        purchaseOrderItemInfo2.ItemPurchasePrice = current3.ItemCostPrice;
                        purchaseOrderItemInfo2.ItemListPrice     = current3.ItemListPrice;
                        purchaseOrderItemInfo2.ItemDescription   = current3.ItemDescription;
                        purchaseOrderItemInfo2.SKUContent        = current3.SKUContent;
                        purchaseOrderItemInfo2.ThumbnailsUrl     = current3.ThumbnailsUrl;
                        purchaseOrderItemInfo2.ItemWeight        = current3.ItemWeight;
                        if (string.IsNullOrEmpty(purchaseOrderItemInfo2.ItemHomeSiteDescription))
                        {
                            purchaseOrderItemInfo2.ItemHomeSiteDescription = purchaseOrderItemInfo2.ItemDescription;
                        }
                        purchaseOrderInfo.PurchaseOrderItems.Add(purchaseOrderItemInfo2);
                    }
                    foreach (OrderGiftInfo current5 in order.Gifts)
                    {
                        PurchaseOrderGiftInfo purchaseOrderGiftInfo = new PurchaseOrderGiftInfo();
                        purchaseOrderGiftInfo.PurchaseOrderId = purchaseOrderInfo.PurchaseOrderId;
                        foreach (KeyValuePair <int, decimal> current6 in dictionary2)
                        {
                            if (current6.Key == current5.GiftId)
                            {
                                purchaseOrderGiftInfo.CostPrice = current6.Value;
                            }
                        }
                        purchaseOrderGiftInfo.PurchasePrice = current5.CostPrice;
                        purchaseOrderGiftInfo.GiftId        = current5.GiftId;
                        purchaseOrderGiftInfo.GiftName      = current5.GiftName;
                        purchaseOrderGiftInfo.Quantity      = current5.Quantity;
                        purchaseOrderGiftInfo.ThumbnailsUrl = current5.ThumbnailsUrl;
                        purchaseOrderInfo.PurchaseOrderGifts.Add(purchaseOrderGiftInfo);
                    }
                    result = purchaseOrderInfo;
                }
            }
            return(result);
        }
示例#15
0
 public virtual void UpdatePurchaeOrderBatchInfo(PurchaseOrderItemInfo info)
 {
     PurchaseOrderProcessor.UpdatePurchaeOrderBatchInfo(info);
 }
示例#16
0
        private void ProcessPurchaseOrderAdd(HttpContext context)
        {
            PurchaseOrderInfo purchaseOrderInfo = new PurchaseOrderInfo();
            decimal           totalWeight       = 0M;

            if (string.IsNullOrEmpty(context.Request["Products"]))
            {
                context.Response.Write("{\"PurchaseOrderAddResponse\":\"-1\"}");
            }
            else
            {
                int distributorId = int.Parse(context.Request["distributorUserId"]);
                foreach (string str in context.Request["Products"].Split(new char[] { ';' }))
                {
                    string[]  strArray2 = str.Split(new char[] { ',' });
                    DataTable table     = SubSiteProducthelper.GetSkuContent(long.Parse(strArray2[0]), strArray2[1], distributorId);
                    if ((table != null) && (table.Rows.Count > 0))
                    {
                        PurchaseOrderItemInfo item = new PurchaseOrderItemInfo();
                        foreach (DataRow row in table.Rows)
                        {
                            if (!string.IsNullOrEmpty(row["AttributeName"].ToString()) && !string.IsNullOrEmpty(row["ValueStr"].ToString()))
                            {
                                object sKUContent = item.SKUContent;
                                item.SKUContent = string.Concat(new object[] { sKUContent, row["AttributeName"], ":", row["ValueStr"], "; " });
                            }
                        }
                        item.PurchaseOrderId = purchaseOrderInfo.PurchaseOrderId;
                        item.SkuId           = (string)table.Rows[0]["SkuId"];
                        item.ProductId       = (int)table.Rows[0]["ProductId"];
                        if (table.Rows[0]["SKU"] != DBNull.Value)
                        {
                            item.SKU = (string)table.Rows[0]["SKU"];
                        }
                        if (table.Rows[0]["Weight"] != DBNull.Value)
                        {
                            item.ItemWeight = (decimal)table.Rows[0]["Weight"];
                        }
                        item.ItemPurchasePrice = (decimal)table.Rows[0]["PurchasePrice"];
                        item.Quantity          = int.Parse(strArray2[2]);
                        item.ItemListPrice     = (decimal)table.Rows[0]["SalePrice"];
                        if (table.Rows[0]["CostPrice"] != DBNull.Value)
                        {
                            item.ItemCostPrice = (decimal)table.Rows[0]["CostPrice"];
                        }
                        item.ItemDescription         = (string)table.Rows[0]["ProductName"];
                        item.ItemHomeSiteDescription = (string)table.Rows[0]["ProductName"];
                        if (table.Rows[0]["ThumbnailUrl40"] != DBNull.Value)
                        {
                            item.ThumbnailsUrl = (string)table.Rows[0]["ThumbnailUrl40"];
                        }
                        totalWeight += item.ItemWeight * item.Quantity;
                        purchaseOrderInfo.PurchaseOrderItems.Add(item);
                    }
                }
                if (purchaseOrderInfo.PurchaseOrderItems.Count <= 0)
                {
                    context.Response.Write("{\"PurchaseOrderAddResponse\":\"-3\"}");
                }
                else
                {
                    purchaseOrderInfo.Weight          = totalWeight;
                    purchaseOrderInfo.TaobaoOrderId   = context.Request["TaobaoOrderId"];
                    purchaseOrderInfo.PurchaseOrderId = "MPO" + purchaseOrderInfo.TaobaoOrderId;
                    purchaseOrderInfo.ShipTo          = context.Request["ShipTo"];
                    string province = context.Request["ReceiverState"];
                    string city     = context.Request["ReceiverCity"];
                    string county   = context.Request["ReceiverDistrict"];
                    purchaseOrderInfo.ShippingRegion = province + city + county;
                    purchaseOrderInfo.RegionId       = RegionHelper.GetRegionId(county, city, province);
                    purchaseOrderInfo.Address        = context.Request["Address"];
                    purchaseOrderInfo.TelPhone       = context.Request["TelPhone"];
                    purchaseOrderInfo.CellPhone      = context.Request["CellPhone"];
                    purchaseOrderInfo.ZipCode        = context.Request["ZipCode"];
                    purchaseOrderInfo.OrderTotal     = decimal.Parse(context.Request["OrderTotal"]);
                    ShippingModeInfo shippingMode = ShoppingProcessor.GetShippingMode(HiContext.Current.SiteSettings.TaobaoShippingType, true);
                    if (shippingMode != null)
                    {
                        purchaseOrderInfo.ModeName        = shippingMode.Name;
                        purchaseOrderInfo.AdjustedFreight = purchaseOrderInfo.Freight = ShoppingProcessor.CalcFreight(purchaseOrderInfo.RegionId, totalWeight, shippingMode);
                    }
                    purchaseOrderInfo.PurchaseStatus = OrderStatus.WaitBuyerPay;
                    purchaseOrderInfo.RefundStatus   = RefundStatus.None;
                    Distributor user = Users.GetUser(distributorId) as Distributor;
                    if (user != null)
                    {
                        purchaseOrderInfo.DistributorId       = user.UserId;
                        purchaseOrderInfo.Distributorname     = user.Username;
                        purchaseOrderInfo.DistributorEmail    = user.Email;
                        purchaseOrderInfo.DistributorRealName = user.RealName;
                        purchaseOrderInfo.DistributorQQ       = user.QQ;
                        purchaseOrderInfo.DistributorWangwang = user.Wangwang;
                        purchaseOrderInfo.DistributorMSN      = user.MSN;
                    }
                    if (!SubsiteSalesHelper.CreatePurchaseOrder(purchaseOrderInfo))
                    {
                        context.Response.Write("{\"PurchaseOrderAddResponse\":\"0\"}");
                    }
                    else
                    {
                        context.Response.Write("{\"PurchaseOrderAddResponse\":\"1\"}");
                    }
                }
            }
        }
示例#17
0
        private PurchaseOrderInfo GetPurchaseOrderInfo()
        {
            PurchaseOrderInfo purchaseOrderInfo = new PurchaseOrderInfo();

            Hidistro.Membership.Context.Distributor distributor = Hidistro.Membership.Context.Users.GetUser(Hidistro.Membership.Context.HiContext.Current.User.UserId) as Hidistro.Membership.Context.Distributor;
            int             num         = int.Parse(this.radioPaymentMode.SelectedValue);
            PaymentModeInfo paymentMode = SubsiteStoreHelper.GetPaymentMode(num);

            if (paymentMode != null)
            {
                purchaseOrderInfo.PaymentTypeId = num;
                purchaseOrderInfo.PaymentType   = paymentMode.Name;
                purchaseOrderInfo.Gateway       = paymentMode.Gateway;
            }
            string purchaseOrderId = this.GeneratePurchaseOrderId();

            purchaseOrderInfo.PurchaseOrderId = purchaseOrderId;
            System.Collections.Generic.IList <PurchaseShoppingCartItemInfo> purchaseShoppingCartItemInfos = SubsiteSalesHelper.GetPurchaseShoppingCartItemInfos();
            decimal num2 = 0m;

            if (purchaseShoppingCartItemInfos.Count >= 1)
            {
                foreach (PurchaseShoppingCartItemInfo current in purchaseShoppingCartItemInfos)
                {
                    PurchaseOrderItemInfo purchaseOrderItemInfo = new PurchaseOrderItemInfo();
                    purchaseOrderItemInfo.PurchaseOrderId         = purchaseOrderId;
                    purchaseOrderItemInfo.SkuId                   = current.SkuId;
                    purchaseOrderItemInfo.ThumbnailsUrl           = current.ThumbnailsUrl;
                    purchaseOrderItemInfo.SKUContent              = current.SKUContent;
                    purchaseOrderItemInfo.SKU                     = current.SKU;
                    purchaseOrderItemInfo.Quantity                = current.Quantity;
                    purchaseOrderItemInfo.ProductId               = current.ProductId;
                    purchaseOrderItemInfo.ItemWeight              = current.ItemWeight;
                    purchaseOrderItemInfo.ItemCostPrice           = current.CostPrice;
                    purchaseOrderItemInfo.ItemPurchasePrice       = current.ItemPurchasePrice;
                    purchaseOrderItemInfo.ItemListPrice           = current.ItemListPrice;
                    purchaseOrderItemInfo.ItemDescription         = current.ItemDescription;
                    purchaseOrderItemInfo.ItemHomeSiteDescription = current.ItemDescription;
                    num2 += current.ItemWeight * current.Quantity;
                    purchaseOrderInfo.PurchaseOrderItems.Add(purchaseOrderItemInfo);
                }
                ShippingModeInfo shippingMode = SubsiteSalesHelper.GetShippingMode(this.radioShippingMode.SelectedValue.Value, true);
                purchaseOrderInfo.ShipTo = this.txtShipTo.Text.Trim();
                if (this.rsddlRegion.GetSelectedRegionId().HasValue)
                {
                    purchaseOrderInfo.RegionId = this.rsddlRegion.GetSelectedRegionId().Value;
                }
                purchaseOrderInfo.Address             = Globals.HtmlEncode(this.txtAddress.Text.Trim());
                purchaseOrderInfo.TelPhone            = this.txtTel.Text.Trim();
                purchaseOrderInfo.ZipCode             = this.txtZipcode.Text.Trim();
                purchaseOrderInfo.CellPhone           = this.txtMobile.Text.Trim();
                purchaseOrderInfo.OrderId             = null;
                purchaseOrderInfo.RealShippingModeId  = this.radioShippingMode.SelectedValue.Value;
                purchaseOrderInfo.RealModeName        = shippingMode.Name;
                purchaseOrderInfo.ShippingModeId      = this.radioShippingMode.SelectedValue.Value;
                purchaseOrderInfo.ModeName            = shippingMode.Name;
                purchaseOrderInfo.AdjustedFreight     = SubsiteSalesHelper.CalcFreight(purchaseOrderInfo.RegionId, num2, shippingMode);
                purchaseOrderInfo.Freight             = purchaseOrderInfo.AdjustedFreight;
                purchaseOrderInfo.ShippingRegion      = this.rsddlRegion.SelectedRegions;
                purchaseOrderInfo.Remark              = Globals.HtmlEncode(this.txtRemark.Text.Trim());
                purchaseOrderInfo.PurchaseStatus      = OrderStatus.WaitBuyerPay;
                purchaseOrderInfo.DistributorId       = distributor.UserId;
                purchaseOrderInfo.Distributorname     = distributor.Username;
                purchaseOrderInfo.DistributorEmail    = distributor.Email;
                purchaseOrderInfo.DistributorRealName = distributor.RealName;
                purchaseOrderInfo.DistributorQQ       = distributor.QQ;
                purchaseOrderInfo.DistributorWangwang = distributor.Wangwang;
                purchaseOrderInfo.DistributorMSN      = distributor.MSN;
                purchaseOrderInfo.RefundStatus        = RefundStatus.None;
                purchaseOrderInfo.Weight              = num2;
            }
            return(purchaseOrderInfo);
        }
        private PurchaseOrderInfo GetPurchaseOrder(Trade trade)
        {
            PurchaseOrderInfo info = new PurchaseOrderInfo();

            info.PurchaseOrderId    = "MPO" + trade.Tid.ToString();
            info.TaobaoOrderId      = trade.Tid.ToString();
            info.ShipTo             = trade.ReceiverName;
            info.ShippingRegion     = trade.ReceiverState + trade.ReceiverCity + trade.ReceiverDistrict;
            info.RegionId           = RegionHelper.GetRegionIdByName(trade.ReceiverState, trade.ReceiverCity, trade.ReceiverDistrict);
            info.Address            = trade.ReceiverAddress;
            info.TelPhone           = trade.ReceiverPhone;
            info.ZipCode            = trade.ReceiverZip;
            info.CellPhone          = trade.ReceiverMobile;
            info.ShippingModeId     = shippingMode.ModeId;
            info.ModeName           = shippingMode.Name;
            info.RealShippingModeId = shippingMode.ModeId;
            info.RealModeName       = shippingMode.Name;
            info.AdjustedDiscount   = 0M;
            info.OrderTotal         = decimal.Parse(trade.Payment);
            int totalWeight = 0;

            foreach (Order order in trade.Orders)
            {
                DataTable skuContent = SubSiteProducthelper.GetSkuContent(order.NumIid, order.OuterSkuId);

                if ((skuContent != null) && (skuContent.Rows.Count > 0))
                {
                    PurchaseOrderItemInfo item = new PurchaseOrderItemInfo();

                    foreach (DataRow row in skuContent.Rows)
                    {
                        if (!(string.IsNullOrEmpty(row["AttributeName"].ToString()) || string.IsNullOrEmpty(row["ValueStr"].ToString())))
                        {
                            object sKUContent = item.SKUContent;
                            item.SKUContent = string.Concat(new object[] { sKUContent, row["AttributeName"], ":", row["ValueStr"], "; " });
                        }
                    }
                    item.PurchaseOrderId = info.PurchaseOrderId;
                    item.SkuId           = (string)skuContent.Rows[0]["SkuId"];
                    item.ProductId       = (int)skuContent.Rows[0]["ProductId"];
                    if (skuContent.Rows[0]["SKU"] != DBNull.Value)
                    {
                        item.SKU = (string)skuContent.Rows[0]["SKU"];
                    }
                    if (skuContent.Rows[0]["Weight"] != DBNull.Value)
                    {
                        item.ItemWeight = (int)skuContent.Rows[0]["Weight"];
                    }
                    item.ItemPurchasePrice = (decimal)skuContent.Rows[0]["PurchasePrice"];
                    item.Quantity          = int.Parse(order.Num.ToString());
                    item.ItemListPrice     = (decimal)skuContent.Rows[0]["SalePrice"];
                    if (skuContent.Rows[0]["CostPrice"] != DBNull.Value)
                    {
                        item.ItemCostPrice = (decimal)skuContent.Rows[0]["CostPrice"];
                    }
                    item.ItemDescription         = (string)skuContent.Rows[0]["ProductName"];
                    item.ItemHomeSiteDescription = (string)skuContent.Rows[0]["ProductName"];
                    if (skuContent.Rows[0]["ThumbnailUrl40"] != DBNull.Value)
                    {
                        item.ThumbnailsUrl = (string)skuContent.Rows[0]["ThumbnailUrl40"];
                    }
                    totalWeight += item.ItemWeight * item.Quantity;
                    info.PurchaseOrderItems.Add(item);
                }
            }
            if (info.PurchaseOrderItems.Count <= 0)
            {
                return(null);
            }
            info.Weight              = totalWeight;
            info.AdjustedFreight     = SubsiteSalesHelper.CalcFreight(info.RegionId, totalWeight, shippingMode);
            info.Freight             = info.AdjustedFreight;
            info.PurchaseStatus      = OrderStatus.WaitBuyerPay;
            info.RefundStatus        = RefundStatus.None;
            info.DistributorId       = distributor.UserId;
            info.Distributorname     = distributor.Username;
            info.DistributorEmail    = distributor.Email;
            info.DistributorRealName = distributor.RealName;
            info.DistributorQQ       = distributor.QQ;
            info.DistributorWangwang = distributor.Wangwang;
            info.DistributorMSN      = distributor.MSN;
            return(info);
        }
示例#19
0
        PurchaseOrderInfo ConvertOrderToPurchaseOrder(OrderInfo order)
        {
            if (order == null)
            {
                return(null);
            }
            StringBuilder builder = new StringBuilder();
            string        query   = "";

            foreach (LineItemInfo info in order.LineItems.Values)
            {
                builder.AppendFormat("'" + info.SkuId + "',", new object[0]);
            }
            if (builder.Length > 0)
            {
                builder = builder.Remove(builder.Length - 1, 1);
                query   = string.Format("SELECT S.SkuId, S.CostPrice, p.ProductName FROM Hishop_Products P JOIN Hishop_SKUs S ON P.ProductId = S.ProductId WHERE S.SkuId IN({0});", builder);
            }
            if (order.Gifts.Count > 0)
            {
                StringBuilder builder2 = new StringBuilder();
                foreach (OrderGiftInfo info2 in order.Gifts)
                {
                    builder2.AppendFormat(info2.GiftId.ToString() + ",", new object[0]);
                }
                builder2.Remove(builder2.Length - 1, 1);
                query = query + string.Format(" SELECT GiftId, CostPrice FROM Hishop_Gifts WHERE GiftId IN({0});", builder2.ToString());
            }
            DbCommand sqlStringCommand = database.GetSqlStringCommand(query);
            Dictionary <string, PurchaseOrderItemInfo> dictionary = new Dictionary <string, PurchaseOrderItemInfo>();
            Dictionary <int, decimal> dictionary2 = new Dictionary <int, decimal>();

            using (IDataReader reader = database.ExecuteReader(sqlStringCommand))
            {
                if (order.LineItems.Values.Count > 0)
                {
                    while (reader.Read())
                    {
                        PurchaseOrderItemInfo info3 = new PurchaseOrderItemInfo();
                        if (reader["CostPrice"] != DBNull.Value)
                        {
                            info3.ItemCostPrice = (decimal)reader["CostPrice"];
                        }
                        info3.ItemHomeSiteDescription = (string)reader["ProductName"];
                        dictionary.Add((string)reader["SkuId"], info3);
                    }
                }
                if (order.Gifts.Count > 0)
                {
                    if (order.LineItems.Count > 0)
                    {
                        reader.NextResult();
                    }
                    while (reader.Read())
                    {
                        dictionary2.Add((int)reader["GiftId"], (DBNull.Value == reader["CostPrice"]) ? 0M : Convert.ToDecimal(reader["CostPrice"]));
                    }
                }
            }
            IUser user = Users.GetUser(HiContext.Current.SiteSettings.UserId.Value, false);

            if ((user == null) || (user.UserRole != UserRole.Distributor))
            {
                return(null);
            }
            Distributor       distributor = user as Distributor;
            PurchaseOrderInfo info4       = new PurchaseOrderInfo();

            info4.PurchaseOrderId     = "PO" + order.OrderId;
            info4.OrderId             = order.OrderId;
            info4.Remark              = order.Remark;
            info4.PurchaseStatus      = OrderStatus.WaitBuyerPay;
            info4.DistributorId       = distributor.UserId;
            info4.Distributorname     = distributor.Username;
            info4.DistributorEmail    = distributor.Email;
            info4.DistributorRealName = distributor.RealName;
            info4.DistributorQQ       = distributor.QQ;
            info4.DistributorWangwang = distributor.Wangwang;
            info4.DistributorMSN      = distributor.MSN;
            info4.ShippingRegion      = order.ShippingRegion;
            info4.Address             = order.Address;
            info4.ZipCode             = order.ZipCode;
            info4.ShipTo              = order.ShipTo;
            info4.TelPhone            = order.TelPhone;
            info4.CellPhone           = order.CellPhone;
            info4.ShippingModeId      = order.ShippingModeId;
            info4.ModeName            = order.ModeName;
            info4.RegionId            = order.RegionId;
            info4.Freight             = order.Freight;
            info4.AdjustedFreight     = order.Freight;
            info4.ShipOrderNumber     = order.ShipOrderNumber;
            info4.Weight              = order.Weight;
            info4.RefundStatus        = RefundStatus.None;
            info4.OrderTotal          = order.GetTotal();
            info4.ExpressCompanyName  = order.ExpressCompanyName;
            info4.ExpressCompanyAbb   = order.ExpressCompanyAbb;
            foreach (LineItemInfo info5 in order.LineItems.Values)
            {
                PurchaseOrderItemInfo item = new PurchaseOrderItemInfo();
                item.PurchaseOrderId = info4.PurchaseOrderId;
                item.SkuId           = info5.SkuId;
                item.ProductId       = info5.ProductId;
                item.SKU             = info5.SKU;
                item.Quantity        = info5.ShipmentQuantity;
                foreach (KeyValuePair <string, PurchaseOrderItemInfo> pair in dictionary)
                {
                    if (pair.Key == info5.SkuId)
                    {
                        item.ItemCostPrice           = pair.Value.ItemCostPrice;
                        item.ItemHomeSiteDescription = pair.Value.ItemHomeSiteDescription;
                    }
                }
                item.ItemPurchasePrice = info5.ItemCostPrice;
                item.ItemListPrice     = info5.ItemListPrice;
                item.ItemDescription   = info5.ItemDescription;
                item.SKUContent        = info5.SKUContent;
                item.ThumbnailsUrl     = info5.ThumbnailsUrl;
                item.ItemWeight        = info5.ItemWeight;
                if (string.IsNullOrEmpty(item.ItemHomeSiteDescription))
                {
                    item.ItemHomeSiteDescription = item.ItemDescription;
                }
                info4.PurchaseOrderItems.Add(item);
            }
            foreach (OrderGiftInfo info7 in order.Gifts)
            {
                PurchaseOrderGiftInfo info8 = new PurchaseOrderGiftInfo();
                info8.PurchaseOrderId = info4.PurchaseOrderId;
                foreach (KeyValuePair <int, decimal> pair2 in dictionary2)
                {
                    if (pair2.Key == info7.GiftId)
                    {
                        info8.CostPrice = pair2.Value;
                    }
                }
                info8.PurchasePrice = info7.CostPrice;
                info8.GiftId        = info7.GiftId;
                info8.GiftName      = info7.GiftName;
                info8.Quantity      = info7.Quantity;
                info8.ThumbnailsUrl = info7.ThumbnailsUrl;
                info4.PurchaseOrderGifts.Add(info8);
            }
            foreach (OrderOptionInfo info9 in order.OrderOptions)
            {
                PurchaseOrderOptionInfo info10 = new PurchaseOrderOptionInfo();
                info10.PurchaseOrderId     = info4.PurchaseOrderId;
                info10.LookupListId        = info9.LookupListId;
                info10.LookupItemId        = info9.LookupItemId;
                info10.ListDescription     = info9.ListDescription;
                info10.ItemDescription     = info9.ItemDescription;
                info10.AdjustedPrice       = info9.AdjustedPrice;
                info10.CustomerTitle       = info9.CustomerTitle;
                info10.CustomerDescription = info9.CustomerDescription;
                info4.PurchaseOrderOptions.Add(info10);
            }
            return(info4);
        }
示例#20
0
 protected void btnSubmit_Click(object sender, EventArgs e)
 {
     if (this.ValidateCreateOrder())
     {
         string            str2 = "";
         PurchaseOrderInfo purchaseOrderInfo = new PurchaseOrderInfo();
         Distributor       user = Users.GetUser(HiContext.Current.User.UserId) as Distributor;
         string            str3 = this.GeneratePurchaseOrderId();
         purchaseOrderInfo.PurchaseOrderId = str3;
         decimal totalWeight = 0M;
         for (int i = 0; i < this.rpTaobaoOrder.Items.Count; i++)
         {
             CheckBox box = (CheckBox)this.rpTaobaoOrder.Items[i].FindControl("chkTbOrder");
             if (box.Checked)
             {
                 str2 = str2 + this.tbOrders[i].orderId + ",";
                 Repeater            repeater = (Repeater)this.rpTaobaoOrder.Items[i].FindControl("reOrderItems");
                 IList <tbOrderItem> items    = this.tbOrders[i].items;
                 for (int j = 0; j < repeater.Items.Count; j++)
                 {
                     if (items[j].localSkuId.Trim() == "")
                     {
                         string msg = string.Format("在授权给分销商的商品中没有找到淘宝商品:{0}!请重新查找", items[j].title);
                         this.ShowMsg(msg, false);
                         return;
                     }
                     string  localSkuId = items[j].localSkuId;
                     TextBox box2       = (TextBox)repeater.Items[j].FindControl("productNumber");
                     int     num4       = Convert.ToInt32(box2.Text);
                     bool    flag       = false;
                     foreach (PurchaseOrderItemInfo info2 in purchaseOrderInfo.PurchaseOrderItems)
                     {
                         if (info2.SKU == localSkuId)
                         {
                             flag            = true;
                             info2.Quantity += num4;
                             totalWeight    += info2.ItemWeight * num4;
                         }
                     }
                     if (!flag)
                     {
                         DataTable             skuContentBySku = SubSiteProducthelper.GetSkuContentBySku(localSkuId);
                         PurchaseOrderItemInfo item            = new PurchaseOrderItemInfo();
                         if (num4 > ((int)skuContentBySku.Rows[0]["Stock"]))
                         {
                             this.ShowMsg("商品库存不够", false);
                             return;
                         }
                         foreach (DataRow row in skuContentBySku.Rows)
                         {
                             if (!string.IsNullOrEmpty(row["AttributeName"].ToString()) && !string.IsNullOrEmpty(row["ValueStr"].ToString()))
                             {
                                 object sKUContent = item.SKUContent;
                                 item.SKUContent = string.Concat(new object[] { sKUContent, row["AttributeName"], ":", row["ValueStr"], "; " });
                             }
                         }
                         item.PurchaseOrderId = str3;
                         item.SkuId           = localSkuId;
                         item.ProductId       = (int)skuContentBySku.Rows[0]["ProductId"];
                         if (skuContentBySku.Rows[0]["SKU"] != DBNull.Value)
                         {
                             item.SKU = (string)skuContentBySku.Rows[0]["SKU"];
                         }
                         if (skuContentBySku.Rows[0]["Weight"] != DBNull.Value)
                         {
                             item.ItemWeight = (decimal)skuContentBySku.Rows[0]["Weight"];
                         }
                         item.ItemPurchasePrice = (decimal)skuContentBySku.Rows[0]["PurchasePrice"];
                         item.Quantity          = num4;
                         item.ItemListPrice     = (decimal)skuContentBySku.Rows[0]["SalePrice"];
                         if (skuContentBySku.Rows[0]["CostPrice"] != DBNull.Value)
                         {
                             item.ItemCostPrice = (decimal)skuContentBySku.Rows[0]["CostPrice"];
                         }
                         item.ItemDescription         = (string)skuContentBySku.Rows[0]["ProductName"];
                         item.ItemHomeSiteDescription = (string)skuContentBySku.Rows[0]["ProductName"];
                         if (skuContentBySku.Rows[0]["ThumbnailUrl40"] != DBNull.Value)
                         {
                             item.ThumbnailsUrl = (string)skuContentBySku.Rows[0]["ThumbnailUrl40"];
                         }
                         totalWeight += item.ItemWeight * num4;
                         purchaseOrderInfo.PurchaseOrderItems.Add(item);
                     }
                 }
             }
         }
         if (str2 == "")
         {
             this.ShowMsg("至少选择一个淘宝订单!!", false);
         }
         else
         {
             ShippingModeInfo shippingMode = SubsiteSalesHelper.GetShippingMode(this.radioShippingMode.SelectedValue.Value, true);
             purchaseOrderInfo.ShipTo = this.txtShipTo.Text.Trim();
             if (this.rsddlRegion.GetSelectedRegionId().HasValue)
             {
                 purchaseOrderInfo.RegionId = this.rsddlRegion.GetSelectedRegionId().Value;
             }
             purchaseOrderInfo.Address             = this.txtAddress.Text.Trim();
             purchaseOrderInfo.TelPhone            = this.txtTel.Text.Trim();
             purchaseOrderInfo.ZipCode             = this.txtZipcode.Text.Trim();
             purchaseOrderInfo.CellPhone           = this.txtMobile.Text.Trim();
             purchaseOrderInfo.OrderId             = null;
             purchaseOrderInfo.RealShippingModeId  = this.radioShippingMode.SelectedValue.Value;
             purchaseOrderInfo.RealModeName        = shippingMode.Name;
             purchaseOrderInfo.ShippingModeId      = this.radioShippingMode.SelectedValue.Value;
             purchaseOrderInfo.ModeName            = shippingMode.Name;
             purchaseOrderInfo.AdjustedFreight     = SubsiteSalesHelper.CalcFreight(purchaseOrderInfo.RegionId, totalWeight, shippingMode);
             purchaseOrderInfo.Freight             = purchaseOrderInfo.AdjustedFreight;
             purchaseOrderInfo.ShippingRegion      = this.rsddlRegion.SelectedRegions;
             purchaseOrderInfo.PurchaseStatus      = OrderStatus.WaitBuyerPay;
             purchaseOrderInfo.DistributorId       = user.UserId;
             purchaseOrderInfo.Distributorname     = user.Username;
             purchaseOrderInfo.DistributorEmail    = user.Email;
             purchaseOrderInfo.DistributorRealName = user.RealName;
             purchaseOrderInfo.DistributorQQ       = user.QQ;
             purchaseOrderInfo.DistributorWangwang = user.Wangwang;
             purchaseOrderInfo.DistributorMSN      = user.MSN;
             purchaseOrderInfo.RefundStatus        = RefundStatus.None;
             purchaseOrderInfo.Weight        = totalWeight;
             purchaseOrderInfo.Remark        = null;
             purchaseOrderInfo.TaobaoOrderId = str2;
             if (purchaseOrderInfo.PurchaseOrderItems.Count == 0)
             {
                 this.ShowMsg("您暂时未选择您要添加的商品", false);
             }
             else if (SubsiteSalesHelper.CreatePurchaseOrder(purchaseOrderInfo))
             {
                 SubsiteSalesHelper.ClearPurchaseShoppingCart();
                 this.ResponseCookies();
                 base.Response.Redirect(Globals.ApplicationPath + "/Shopadmin/purchaseOrder/ChoosePayment.aspx?PurchaseOrderId=" + purchaseOrderInfo.PurchaseOrderId);
             }
             else
             {
                 this.ShowMsg("提交采购单失败", false);
             }
         }
     }
 }
示例#21
0
        private void ProcessPurchaseOrderAdd(System.Web.HttpContext context)
        {
            PurchaseOrderInfo purchaseOrderInfo = new PurchaseOrderInfo();
            decimal           num = 0m;

            if (string.IsNullOrEmpty(context.Request["Products"]))
            {
                context.Response.Write("{\"PurchaseOrderAddResponse\":\"-1\"}");
                return;
            }
            int num2 = int.Parse(context.Request["distributorUserId"]);

            string[] array = context.Request["Products"].Split(new char[]
            {
                ';'
            });
            string[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                string   text   = array2[i];
                string[] array3 = text.Split(new char[]
                {
                    ','
                });
                System.Data.DataTable skuContent = SubSiteProducthelper.GetSkuContent(long.Parse(array3[0]), array3[1], num2);
                if (skuContent != null && skuContent.Rows.Count > 0)
                {
                    PurchaseOrderItemInfo purchaseOrderItemInfo = new PurchaseOrderItemInfo();
                    foreach (System.Data.DataRow dataRow in skuContent.Rows)
                    {
                        if (!string.IsNullOrEmpty(dataRow["AttributeName"].ToString()) && !string.IsNullOrEmpty(dataRow["ValueStr"].ToString()))
                        {
                            PurchaseOrderItemInfo expr_124 = purchaseOrderItemInfo;
                            object sKUContent = expr_124.SKUContent;
                            expr_124.SKUContent = string.Concat(new object[]
                            {
                                sKUContent,
                                dataRow["AttributeName"],
                                ":",
                                dataRow["ValueStr"],
                                "; "
                            });
                        }
                    }
                    purchaseOrderItemInfo.PurchaseOrderId = purchaseOrderInfo.PurchaseOrderId;
                    purchaseOrderItemInfo.SkuId           = (string)skuContent.Rows[0]["SkuId"];
                    purchaseOrderItemInfo.ProductId       = (int)skuContent.Rows[0]["ProductId"];
                    if (skuContent.Rows[0]["SKU"] != System.DBNull.Value)
                    {
                        purchaseOrderItemInfo.SKU = (string)skuContent.Rows[0]["SKU"];
                    }
                    if (skuContent.Rows[0]["Weight"] != System.DBNull.Value)
                    {
                        purchaseOrderItemInfo.ItemWeight = (decimal)skuContent.Rows[0]["Weight"];
                    }
                    purchaseOrderItemInfo.ItemPurchasePrice = (decimal)skuContent.Rows[0]["PurchasePrice"];
                    purchaseOrderItemInfo.Quantity          = int.Parse(array3[2]);
                    purchaseOrderItemInfo.ItemListPrice     = (decimal)skuContent.Rows[0]["SalePrice"];
                    if (skuContent.Rows[0]["CostPrice"] != System.DBNull.Value)
                    {
                        purchaseOrderItemInfo.ItemCostPrice = (decimal)skuContent.Rows[0]["CostPrice"];
                    }
                    purchaseOrderItemInfo.ItemDescription         = (string)skuContent.Rows[0]["ProductName"];
                    purchaseOrderItemInfo.ItemHomeSiteDescription = (string)skuContent.Rows[0]["ProductName"];
                    if (skuContent.Rows[0]["ThumbnailUrl40"] != System.DBNull.Value)
                    {
                        purchaseOrderItemInfo.ThumbnailsUrl = (string)skuContent.Rows[0]["ThumbnailUrl40"];
                    }
                    num += purchaseOrderItemInfo.ItemWeight * purchaseOrderItemInfo.Quantity;
                    purchaseOrderInfo.PurchaseOrderItems.Add(purchaseOrderItemInfo);
                }
            }
            if (purchaseOrderInfo.PurchaseOrderItems.Count <= 0)
            {
                context.Response.Write("{\"PurchaseOrderAddResponse\":\"-3\"}");
                return;
            }
            purchaseOrderInfo.Weight          = num;
            purchaseOrderInfo.TaobaoOrderId   = context.Request["TaobaoOrderId"];
            purchaseOrderInfo.PurchaseOrderId = "MPO" + purchaseOrderInfo.TaobaoOrderId;
            purchaseOrderInfo.ShipTo          = context.Request["ShipTo"];
            string text2 = context.Request["ReceiverState"];
            string text3 = context.Request["ReceiverCity"];
            string text4 = context.Request["ReceiverDistrict"];

            purchaseOrderInfo.ShippingRegion = text2 + text3 + text4;
            purchaseOrderInfo.RegionId       = RegionHelper.GetRegionId(text4, text3, text2);
            purchaseOrderInfo.Address        = context.Request["Address"];
            purchaseOrderInfo.TelPhone       = context.Request["TelPhone"];
            purchaseOrderInfo.CellPhone      = context.Request["CellPhone"];
            purchaseOrderInfo.ZipCode        = context.Request["ZipCode"];
            purchaseOrderInfo.OrderTotal     = decimal.Parse(context.Request["OrderTotal"]);
            ShippingModeInfo shippingMode = ShoppingProcessor.GetShippingMode(Hidistro.Membership.Context.HiContext.Current.SiteSettings.TaobaoShippingType, true);

            if (shippingMode != null)
            {
                purchaseOrderInfo.ModeName        = shippingMode.Name;
                purchaseOrderInfo.AdjustedFreight = (purchaseOrderInfo.Freight = ShoppingProcessor.CalcFreight(purchaseOrderInfo.RegionId, num, shippingMode));
            }
            purchaseOrderInfo.PurchaseStatus = OrderStatus.WaitBuyerPay;
            purchaseOrderInfo.RefundStatus   = RefundStatus.None;
            Hidistro.Membership.Context.Distributor distributor = Hidistro.Membership.Context.Users.GetUser(num2) as Hidistro.Membership.Context.Distributor;
            if (distributor != null)
            {
                purchaseOrderInfo.DistributorId       = distributor.UserId;
                purchaseOrderInfo.Distributorname     = distributor.Username;
                purchaseOrderInfo.DistributorEmail    = distributor.Email;
                purchaseOrderInfo.DistributorRealName = distributor.RealName;
                purchaseOrderInfo.DistributorQQ       = distributor.QQ;
                purchaseOrderInfo.DistributorWangwang = distributor.Wangwang;
                purchaseOrderInfo.DistributorMSN      = distributor.MSN;
            }
            if (!SubsiteSalesHelper.CreatePurchaseOrder(purchaseOrderInfo))
            {
                context.Response.Write("{\"PurchaseOrderAddResponse\":\"0\"}");
                return;
            }
            context.Response.Write("{\"PurchaseOrderAddResponse\":\"1\"}");
        }
示例#22
0
        private void btnSave_Click(object sender, System.EventArgs e)
        {
            ManagerHelper.CheckPrivilege(Privilege.POAdd);
            var member = HiContext.Current.User;

            if (member == null || member.IsLockedOut)
            {
                this.ShowMsg("获取用户信息失败,请重新登录", false);
                return;
            }

            if (Request["Id"] != null && Request["Id"].ToString() != "")
            {
                PurchaseOrderItemInfo purchaseOrderItemInfo = new PurchaseOrderItemInfo
                {
                    BoxBarCode     = txtBoxBarCode.Text,
                    ExpectQuantity = txtExpectQuantity.Text.Length > 0 ? int.Parse(txtExpectQuantity.Text) : 0,
                    //PracticalQuantity = txtPracticalQuantity.Text.Length > 0 ? int.Parse(txtPracticalQuantity.Text) : 0,
                    IsSample              = ddlIsSample.SelectedValue == "0" ? false : true,
                    ManufactureDate       = calendarManufactureDate.SelectedDate,
                    EffectiveDate         = calendarEffectiveDate.SelectedDate,
                    BatchNumber           = txtBatchNumber.Text,
                    RoughWeight           = txtRoughWeight.Text.Length > 0 ? decimal.Parse(txtRoughWeight.Text) : 0,
                    NetWeight             = txtNetWeight.Text.Length > 0 ? decimal.Parse(txtNetWeight.Text) : 0,
                    OriginalCurrencyPrice = txtOriginalCurrencyPrice.Text.Length > 0 ? decimal.Parse(txtOriginalCurrencyPrice.Text) : 0,
                    CurrencyId            = int.Parse(ddlCurrency.SelectedValue),
                    Rate          = hidRate.Value.Length > 0 ? decimal.Parse(hidRate.Value) : 0,//txtRate.Text.Length > 0 ? decimal.Parse(txtRate.Text) : 0,
                    CostPrice     = txtCostPrice.Text.Length > 0 ? decimal.Parse(txtCostPrice.Text) : 0,
                    SalePrice     = txtSalePrice.Text.Length > 0 ? decimal.Parse(txtSalePrice.Text) : 0,
                    CartonSize    = txtCartonSize.Text,
                    Cases         = txtCases.Text.Length > 0 ? int.Parse(txtCases.Text) : 0,
                    CartonMeasure = txtCartonMeasure.Text,
                    UpdateUserId  = member.UserId
                };
                int tmpId = 0;
                if (int.TryParse(this.Page.Request["Id"], out tmpId))
                {
                    purchaseOrderItemInfo.id                         = tmpId;
                    purchaseOrderItemInfo.TotalCostPrice             = purchaseOrderItemInfo.CostPrice * purchaseOrderItemInfo.ExpectQuantity;
                    purchaseOrderItemInfo.TotalSalePrice             = purchaseOrderItemInfo.SalePrice * purchaseOrderItemInfo.ExpectQuantity;
                    purchaseOrderItemInfo.OriginalCurrencyTotalPrice = purchaseOrderItemInfo.OriginalCurrencyPrice * purchaseOrderItemInfo.ExpectQuantity;
                    if (PurchaseOrderHelper.EditPurchaseOrderItemInfo(purchaseOrderItemInfo))
                    {
                        base.Response.Redirect(Globals.GetAdminAbsolutePath("/POManage/POItemList.aspx?Id=" + POId + "&SupplierId=" + SupplierId), true);
                        return;
                    }
                    else
                    {
                        this.ShowMsg("该单状态不允许操作或您无权操作该单", false);
                    }
                }
                else
                {
                    this.ShowMsg("未知参数", false);
                }
            }
            else
            {
                this.ShowMsg("未知参数", false);
            }
        }
示例#23
0
 public void UpdatePurchaseOrderBatchInfo(PurchaseOrderItemInfo info)
 {
     ObjectFactory <PurchaseOrderAppService> .Instance.UpdatePurchaeOrderBatchInfo(info);
 }
示例#24
0
 public static bool EditPurchaseOrderItemInfo(PurchaseOrderItemInfo PurchaseOrderItemInfo)
 {
     return(new PurchaseOrderDao().EditPurchaseOrderItemInfo(PurchaseOrderItemInfo));
 }
示例#25
0
        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);
        }
示例#26
0
        private bool SavePOItem(int POId, DataTable dt, int UserId)
        {
            //导入字段检查
            string strField = "商品代码,商品名称,产品条码,外箱条形码,订单数量,是否样品,生产日期,有效日期,生产批号,商品总净重(kg),商品总毛重(kg),币别,原币单价,成本价,销售价,装箱规格,箱子尺寸,箱数";

            foreach (string item in strField.Split(','))
            {
                if (!dt.Columns.Contains(item))
                {
                    this.ShowMsg("导入模板缺少字段:" + item, false);
                    return(false);
                }
            }

            //获取所有币别 Name_CN
            DataSet dsBaseCurrency = PurchaseOrderHelper.GetBaseCurrency();

            if (dsBaseCurrency == null || dsBaseCurrency.Tables.Count <= 0 || dsBaseCurrency.Tables[0].Rows.Count <= 0)
            {
                this.ShowMsg("获取币别信息错误,请重试!", false);
                return(false);
            }

            List <PurchaseOrderItemInfo> listInfo = new List <PurchaseOrderItemInfo>();

            dt.Columns.Add("数据检查结果");
            #region 检查并构造数据
            foreach (DataRow dr in dt.Rows)
            {
                PurchaseOrderItemInfo purchaseOrderItemInfo = new PurchaseOrderItemInfo();
                if (dr["商品代码"].ToString() == "")
                {
                    dr["数据检查结果"] = "商品代码不能为空";
                    continue;
                }
                purchaseOrderItemInfo.SkuId      = dr["商品代码"].ToString();
                purchaseOrderItemInfo.POId       = POId;
                purchaseOrderItemInfo.BoxBarCode = dr["外箱条形码"].ToString();
                int tempExpectQuantity = 0;
                if (!int.TryParse(dr["订单数量"].ToString(), out tempExpectQuantity))
                {
                    dr["数据检查结果"] = "订单数量转换错误,请输入正确的数字";
                    continue;
                }
                purchaseOrderItemInfo.ExpectQuantity = tempExpectQuantity;
                if (dr["是否样品"].ToString() != "" && dr["是否样品"].ToString() != "是" && dr["是否样品"].ToString() != "否")
                {
                    dr["数据检查结果"] = "是否样品,请输入‘是’或‘否’";
                    continue;
                }

                if (dr["是否样品"].ToString() != "")
                {
                    purchaseOrderItemInfo.IsSample = dr["是否样品"].ToString() == "否" ? false : true;
                }

                DateTime tempManufactureDate = DateTime.MinValue;
                if (dr["生产日期"].ToString() != "" && !DateTime.TryParse(dr["生产日期"].ToString(), out tempManufactureDate))
                {
                    dr["数据检查结果"] = "生产日期格式错误";
                    continue;
                }
                if (dr["生产日期"].ToString() != "")
                {
                    purchaseOrderItemInfo.ManufactureDate = tempManufactureDate;
                }

                DateTime tempEffectiveDate = DateTime.MinValue;
                if (dr["有效日期"].ToString() != "" && !DateTime.TryParse(dr["有效日期"].ToString(), out tempEffectiveDate))
                {
                    dr["数据检查结果"] = "有效日期格式错误";
                    continue;
                }
                if (dr["有效日期"].ToString() != "")
                {
                    purchaseOrderItemInfo.EffectiveDate = tempEffectiveDate;
                }
                purchaseOrderItemInfo.BatchNumber = dr["生产批号"].ToString();

                decimal tempNetWeight = 0;
                if (dr["商品总净重(kg)"].ToString() != "" && !decimal.TryParse(dr["商品总净重(kg)"].ToString(), out tempNetWeight))
                {
                    dr["数据检查结果"] = "商品总净重(kg)格式错误";
                    continue;
                }
                if (dr["商品总净重(kg)"].ToString() != "")
                {
                    purchaseOrderItemInfo.NetWeight = tempNetWeight;
                }

                decimal tempRoughWeight = 0;
                if (dr["商品总毛重(kg)"].ToString() != "" && !decimal.TryParse(dr["商品总毛重(kg)"].ToString(), out tempRoughWeight))
                {
                    dr["数据检查结果"] = "商品总毛重(kg)格式错误";
                    continue;
                }
                if (dr["商品总毛重(kg)"].ToString() != "")
                {
                    purchaseOrderItemInfo.RoughWeight = tempRoughWeight;
                }

                //需转换成Id
                if (dr["币别"].ToString() != "")
                {
                    DataRow[] drs = dsBaseCurrency.Tables[0].Select("Name_CN='" + dr["币别"].ToString() + "'");
                    if (drs.Length <= 0)
                    {
                        dr["数据检查结果"] = "未匹配到币别,请输入系统中存在币别";
                        continue;
                    }
                    purchaseOrderItemInfo.CurrencyId = int.Parse(drs[0]["ID"].ToString());
                }

                decimal tempOriginalCurrencyPrice = 0;
                if (dr["原币单价"].ToString() != "" && !decimal.TryParse(dr["原币单价"].ToString(), out tempOriginalCurrencyPrice))
                {
                    dr["数据检查结果"] = "原币单价格式错误";
                    continue;
                }
                if (dr["原币单价"].ToString() != "")
                {
                    purchaseOrderItemInfo.OriginalCurrencyPrice = tempOriginalCurrencyPrice;
                }

                decimal tempCostPrice = 0;
                if (dr["成本价"].ToString() != "" && !decimal.TryParse(dr["成本价"].ToString(), out tempCostPrice))
                {
                    dr["数据检查结果"] = "成本价格式错误";
                    continue;
                }
                if (dr["成本价"].ToString() != "")
                {
                    purchaseOrderItemInfo.CostPrice = tempCostPrice;
                }


                decimal tempSalePrice = 0;
                if (dr["销售价"].ToString() != "" && !decimal.TryParse(dr["销售价"].ToString(), out tempSalePrice))
                {
                    dr["数据检查结果"] = "销售价格式错误";
                    continue;
                }
                if (dr["销售价"].ToString() != "")
                {
                    purchaseOrderItemInfo.SalePrice = tempSalePrice;
                }

                purchaseOrderItemInfo.CartonSize    = dr["装箱规格"].ToString();
                purchaseOrderItemInfo.CartonMeasure = dr["箱子尺寸"].ToString();

                int tempCases = 0;
                if (dr["箱数"].ToString() != "" && !int.TryParse(dr["箱数"].ToString(), out tempCases))
                {
                    dr["数据检查结果"] = "箱数转换错误,请输入正确的数字";
                    continue;
                }
                if (dr["箱数"].ToString() != "")
                {
                    purchaseOrderItemInfo.Cases = tempCases;
                }

                purchaseOrderItemInfo.UpdateUserId = UserId;

                //汇率
                if (tempOriginalCurrencyPrice != 0 && tempSalePrice != 0)
                {
                    purchaseOrderItemInfo.Rate = tempOriginalCurrencyPrice / tempSalePrice;
                }
                //合计价格
                if (tempCostPrice != 0)
                {
                    purchaseOrderItemInfo.TotalCostPrice = tempCostPrice * purchaseOrderItemInfo.ExpectQuantity;
                }
                if (tempSalePrice != 0)
                {
                    purchaseOrderItemInfo.TotalSalePrice = tempSalePrice * purchaseOrderItemInfo.ExpectQuantity;
                }
                if (tempOriginalCurrencyPrice != 0)
                {
                    purchaseOrderItemInfo.OriginalCurrencyTotalPrice = tempOriginalCurrencyPrice * purchaseOrderItemInfo.ExpectQuantity;
                }
                dr["数据检查结果"] = "数据无误";
                listInfo.Add(purchaseOrderItemInfo);
            }
            #endregion
            if (listInfo != null && listInfo.Count > 0 && listInfo.Count == dt.Rows.Count)
            {
                this.ShowMsg(PurchaseOrderHelper.ImportPoItem(listInfo), true);
            }
            else
            {
                //全部提交失败
                this.ShowMsg("存在数据错误,请查看错误Excel后导入", false);
                GetExcelReportItem(dt, "POImportError");
                return(false);
            }
            return(true);
        }
示例#27
0
        /// <summary>
        /// 加载检查信息
        /// </summary>
        private void LoadCheckReasonMemo()
        {
            if (isEdit && infoVM.POItems.Count == 1 && infoVM.POItems[0].ItemSysNo.HasValue)
            {
                serviceFacade.LoadPurchaseOrderItemInfo(infoVM.POItems[0].ItemSysNo.Value.ToString(), (obj, args) =>
                {
                    if (args.FaultsHandle())
                    {
                        return;
                    }
                    PurchaseOrderItemInfo item      = args.Result;
                    Dictionary <string, string> dic = new Dictionary <string, string>();
                    CodeNamePairHelper.GetList("PO", "PartlyReceiveReason", (obj2, args2) =>
                    {
                        if (args2.FaultsHandle())
                        {
                            return;
                        }
                        args2.Result.ForEach(x =>
                        {
                            dic.Add(x.Code, x.Name);
                        });

                        int Quantity           = 0;
                        string ReasonType      = dic.First(a => a.Key == "-1").Value;
                        string CheckReasonMemo = "";
                        bool Message           = false;
                        if (item != null)
                        {
                            if (item.CheckStatus != PurchaseOrdeItemCheckStatus.UnCheck)
                            {
                                Quantity = item.Quantity.Value;
                            }
                            if (item.CheckReasonMemo != null && item.CheckReasonMemo.Trim() != "")
                            {
                                if (dic.Any(a => a.Value != item.CheckReasonMemo.Trim()))
                                {
                                    CheckReasonMemo = item.CheckReasonMemo.Trim();
                                }
                                else
                                {
                                    ReasonType = dic.First(a => a.Value != item.CheckReasonMemo.Trim()).Value;
                                }
                            }
                            //TODO:调用Invoice接口:采购单是否有预付款:
                            //if (QueryProviderFactory.GetQueryProvider<IQueryPO>().GetPayItemByPaySysno(condition.SysNo.Value))
                            //{
                            //    Message = true;
                            //    Quantity = item.Quantity.Value;
                            //}

                            //return Json(new
                            //{
                            //    Quantity = Quantity,
                            //    ReasonType = ReasonType,
                            //    CheckReasonMemo = CheckReasonMemo,
                            //    Message = Message
                            //});

                            this.txtQuantity.Text      = Quantity.ToString();
                            this.txtReasonType.Text    = ReasonType.ToString();
                            this.txtReasonMemo.Text    = CheckReasonMemo;
                            this.lblReasonMessage.Text = (Message == true ? ResPurchaseOrderMaintain.InfoMsg_CheckReason_PrePay : string.Empty);
                        }
                    });
                });
            }
        }
        protected void btnSubmit_Click(object sender, System.EventArgs e)
        {
            if (!this.ValidateCreateOrder())
            {
                return;
            }
            string            text = "";
            PurchaseOrderInfo purchaseOrderInfo = new PurchaseOrderInfo();

            Hidistro.Membership.Context.Distributor distributor = Hidistro.Membership.Context.Users.GetUser(Hidistro.Membership.Context.HiContext.Current.User.UserId) as Hidistro.Membership.Context.Distributor;
            string purchaseOrderId = this.GeneratePurchaseOrderId();

            purchaseOrderInfo.PurchaseOrderId = purchaseOrderId;
            decimal num = 0m;

            for (int i = 0; i < this.rpTaobaoOrder.Items.Count; i++)
            {
                System.Web.UI.WebControls.CheckBox checkBox = (System.Web.UI.WebControls.CheckBox) this.rpTaobaoOrder.Items[i].FindControl("chkTbOrder");
                if (checkBox.Checked)
                {
                    text += this.tbOrders[i].orderId;
                    text += ",";
                    System.Web.UI.WebControls.Repeater repeater = (System.Web.UI.WebControls.Repeater) this.rpTaobaoOrder.Items[i].FindControl("reOrderItems");
                    System.Collections.Generic.IList <SubmitTaobaoPurchaseorderCart.tbOrderItem> items = this.tbOrders[i].items;
                    for (int j = 0; j < repeater.Items.Count; j++)
                    {
                        if (items[j].localSkuId.Trim() == "")
                        {
                            string string_ = string.Format("在授权给分销商的商品中没有找到淘宝商品:{0}!请重新查找", items[j].title);
                            this.ShowMsg(string_, false);
                            return;
                        }
                        string localSkuId = items[j].localSkuId;
                        System.Web.UI.WebControls.TextBox textBox = (System.Web.UI.WebControls.TextBox)repeater.Items[j].FindControl("productNumber");
                        int  num2 = System.Convert.ToInt32(textBox.Text);
                        bool flag = false;
                        foreach (PurchaseOrderItemInfo current in purchaseOrderInfo.PurchaseOrderItems)
                        {
                            if (current.SKU == localSkuId)
                            {
                                flag              = true;
                                current.Quantity += num2;
                                num += current.ItemWeight * num2;
                            }
                        }
                        if (!flag)
                        {
                            System.Data.DataTable skuContentBySku       = SubSiteProducthelper.GetSkuContentBySku(localSkuId);
                            PurchaseOrderItemInfo purchaseOrderItemInfo = new PurchaseOrderItemInfo();
                            if (num2 > (int)skuContentBySku.Rows[0]["Stock"])
                            {
                                this.ShowMsg("商品库存不够", false);
                                return;
                            }
                            foreach (System.Data.DataRow dataRow in skuContentBySku.Rows)
                            {
                                if (!string.IsNullOrEmpty(dataRow["AttributeName"].ToString()) && !string.IsNullOrEmpty(dataRow["ValueStr"].ToString()))
                                {
                                    PurchaseOrderItemInfo expr_23B = purchaseOrderItemInfo;
                                    object sKUContent = expr_23B.SKUContent;
                                    expr_23B.SKUContent = string.Concat(new object[]
                                    {
                                        sKUContent,
                                        dataRow["AttributeName"],
                                        ":",
                                        dataRow["ValueStr"],
                                        "; "
                                    });
                                }
                            }
                            purchaseOrderItemInfo.PurchaseOrderId = purchaseOrderId;
                            purchaseOrderItemInfo.SkuId           = localSkuId;
                            purchaseOrderItemInfo.ProductId       = (int)skuContentBySku.Rows[0]["ProductId"];
                            if (skuContentBySku.Rows[0]["SKU"] != System.DBNull.Value)
                            {
                                purchaseOrderItemInfo.SKU = (string)skuContentBySku.Rows[0]["SKU"];
                            }
                            if (skuContentBySku.Rows[0]["Weight"] != System.DBNull.Value)
                            {
                                purchaseOrderItemInfo.ItemWeight = (decimal)skuContentBySku.Rows[0]["Weight"];
                            }
                            purchaseOrderItemInfo.ItemPurchasePrice = (decimal)skuContentBySku.Rows[0]["PurchasePrice"];
                            purchaseOrderItemInfo.Quantity          = num2;
                            purchaseOrderItemInfo.ItemListPrice     = (decimal)skuContentBySku.Rows[0]["SalePrice"];
                            if (skuContentBySku.Rows[0]["CostPrice"] != System.DBNull.Value)
                            {
                                purchaseOrderItemInfo.ItemCostPrice = (decimal)skuContentBySku.Rows[0]["CostPrice"];
                            }
                            purchaseOrderItemInfo.ItemDescription         = (string)skuContentBySku.Rows[0]["ProductName"];
                            purchaseOrderItemInfo.ItemHomeSiteDescription = (string)skuContentBySku.Rows[0]["ProductName"];
                            if (skuContentBySku.Rows[0]["ThumbnailUrl40"] != System.DBNull.Value)
                            {
                                purchaseOrderItemInfo.ThumbnailsUrl = (string)skuContentBySku.Rows[0]["ThumbnailUrl40"];
                            }
                            num += purchaseOrderItemInfo.ItemWeight * num2;
                            purchaseOrderInfo.PurchaseOrderItems.Add(purchaseOrderItemInfo);
                        }
                    }
                }
            }
            if (text == "")
            {
                this.ShowMsg("至少选择一个淘宝订单!!", false);
                return;
            }
            ShippingModeInfo shippingMode = SubsiteSalesHelper.GetShippingMode(this.radioShippingMode.SelectedValue.Value, true);

            purchaseOrderInfo.ShipTo = this.txtShipTo.Text.Trim();
            if (this.rsddlRegion.GetSelectedRegionId().HasValue)
            {
                purchaseOrderInfo.RegionId = this.rsddlRegion.GetSelectedRegionId().Value;
            }
            purchaseOrderInfo.Address             = this.txtAddress.Text.Trim();
            purchaseOrderInfo.TelPhone            = this.txtTel.Text.Trim();
            purchaseOrderInfo.ZipCode             = this.txtZipcode.Text.Trim();
            purchaseOrderInfo.CellPhone           = this.txtMobile.Text.Trim();
            purchaseOrderInfo.OrderId             = null;
            purchaseOrderInfo.RealShippingModeId  = this.radioShippingMode.SelectedValue.Value;
            purchaseOrderInfo.RealModeName        = shippingMode.Name;
            purchaseOrderInfo.ShippingModeId      = this.radioShippingMode.SelectedValue.Value;
            purchaseOrderInfo.ModeName            = shippingMode.Name;
            purchaseOrderInfo.AdjustedFreight     = SubsiteSalesHelper.CalcFreight(purchaseOrderInfo.RegionId, num, shippingMode);
            purchaseOrderInfo.Freight             = purchaseOrderInfo.AdjustedFreight;
            purchaseOrderInfo.ShippingRegion      = this.rsddlRegion.SelectedRegions;
            purchaseOrderInfo.PurchaseStatus      = OrderStatus.WaitBuyerPay;
            purchaseOrderInfo.DistributorId       = distributor.UserId;
            purchaseOrderInfo.Distributorname     = distributor.Username;
            purchaseOrderInfo.DistributorEmail    = distributor.Email;
            purchaseOrderInfo.DistributorRealName = distributor.RealName;
            purchaseOrderInfo.DistributorQQ       = distributor.QQ;
            purchaseOrderInfo.DistributorWangwang = distributor.Wangwang;
            purchaseOrderInfo.DistributorMSN      = distributor.MSN;
            purchaseOrderInfo.RefundStatus        = RefundStatus.None;
            purchaseOrderInfo.Weight        = num;
            purchaseOrderInfo.Remark        = null;
            purchaseOrderInfo.TaobaoOrderId = text;
            if (purchaseOrderInfo.PurchaseOrderItems.Count == 0)
            {
                this.ShowMsg("您暂时未选择您要添加的商品", false);
                return;
            }
            if (SubsiteSalesHelper.CreatePurchaseOrder(purchaseOrderInfo))
            {
                SubsiteSalesHelper.ClearPurchaseShoppingCart();
                this.ResponseCookies();
                base.Response.Redirect(Globals.ApplicationPath + "/Shopadmin/purchaseOrder/ChoosePayment.aspx?PurchaseOrderId=" + purchaseOrderInfo.PurchaseOrderId);
                return;
            }
            this.ShowMsg("提交采购单失败", false);
        }