/// <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); }
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); }
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)); }
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); }
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); }
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); } }
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); }
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); }
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); }
/// <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); }
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); }
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); } } }
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); }
public virtual void UpdatePurchaeOrderBatchInfo(PurchaseOrderItemInfo info) { PurchaseOrderProcessor.UpdatePurchaeOrderBatchInfo(info); }
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\"}"); } } } }
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); }
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); }
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); } } } }
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\"}"); }
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); } }
public void UpdatePurchaseOrderBatchInfo(PurchaseOrderItemInfo info) { ObjectFactory <PurchaseOrderAppService> .Instance.UpdatePurchaeOrderBatchInfo(info); }
public static bool EditPurchaseOrderItemInfo(PurchaseOrderItemInfo PurchaseOrderItemInfo) { return(new PurchaseOrderDao().EditPurchaseOrderItemInfo(PurchaseOrderItemInfo)); }
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); }
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); }
/// <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); }