/// <summary> /// 获取商品指定类型价格(一组价格) /// </summary> /// <param name="productSysNo">商品系统编号</param> /// <param name="priceSourceType">商品价格来源类型</param> /// <param name="levelSysNo">等级系统编号</param> /// <returns>返回一组同一类型价格</returns> /// <remarks>2013-08-19 邵斌 创建</remarks> public IList <CBPdPrice> GetProductPrice(int productSysNo, ProductStatus.产品价格来源 priceSourceType) { CBSimplePdProduct product = GetProduct(productSysNo); if (product == null) { return(null); } else if (product.Prices == null) { return(null); } int sourctType = (int)priceSourceType; IList <CBPdPrice> prices = product.Prices.Where(p => p.PriceSource == sourctType).ToList(); return(prices); }
/// <summary> /// 根据商品代码查询商品 /// </summary> /// <param name="KeyWord"></param> /// <returns></returns> public override CBSimplePdProduct GetUtilLikePdProductCode(string KeyWord) { if (!string.IsNullOrEmpty(KeyWord)) { string sqlstr = @" select top 1 p.SysNo,p.BrandSysNo,p.ErpCode,p.Barcode,p.QrCode,p.ProductType,p.EasName,p.GrosWeight,p.NetWeight,p.SalesAddress,p.ProductName,p.ProductSubName,p.NameAcronymy,p.ProductShortTitle,p.ProductSummary,p.ProductSlogan,p.PackageDesc,p.ProductDesc,p.ProductImage,p.ViewCount,p.SeoTitle,p.SeoKeyword,p.SeoDescription,p.Status,p.DisplayOrder,pb.name as BrandName,p.CanFrontEndOrder,p.Volume,o.Origin_Name,p.AgentSysNo from PdProduct p left join PdBrand pb on pb.sysno = p.brandsysno left join Origin o on p.OriginSysNo = o.SysNo where ('%" + KeyWord + "%' is null or p.ErpCode like '%" + KeyWord + "%') "; return(Context.Sql(sqlstr).QuerySingle <CBSimplePdProduct>()); } else { CBSimplePdProduct list = new CBSimplePdProduct(); return(list); } }
/// <summary> /// 根据订单获取退货商品列表 /// </summary> /// <param name="orderSysNo">订单编号</param> /// <param name="returyType">退换货乐讯</param> /// <param name="productSysNo">商品系统编号</param> /// <returns></returns> /// <remarks>2013-08-27 邵斌 创建</remarks> public CBWebRMA GetReturnProductListByOrder(int orderSysNo, RmaStatus.RMA类型 returyType, int?productSysNo = null) { var result = new CBWebRMA(); result.Items = new List <CBWebRMAItem>(); //页面出库单显示列表 //判断订单是否存在 var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo); if (order != null) { result.CustomerSysNo = order.CustomerSysNo; result.ShipType = order.DeliveryTypeSysNo; //原订单配送方式 var rmaItemList = RmaBo.Instance.GetItemListByOrder(orderSysNo); //退换货明细 (2013-08-07 朱成果) var stockOutList = Warehouse.WhWarehouseBo.Instance.GetWhStockOutListByOrderID(orderSysNo, true); //获取该订单的出库单列表(包含出库单明细) CBSimplePdProduct product = null; CBWebRMAItem stockOutItemEx; IList <WhStockOutItem> productItems; //遍历出库单,用出库单设置显示列表 foreach (var stockOut in stockOutList) { //过滤商品,只处理指定商品 if (productSysNo.HasValue) { productItems = stockOut.Items.Where(p => p.ProductSysNo == productSysNo.Value).ToList(); } else { productItems = stockOut.Items; } //遍历每个出库单组合商品 foreach (var item in productItems) { stockOutItemEx = result.Items.FirstOrDefault(i => i.ProductSysNo == item.ProductSysNo); //判断商品是否已经存在列表,如果不存在就读取数据 if (stockOutItemEx == null) { product = BLL.Web.PdProductBo.Instance.GetProduct(item.ProductSysNo); //读取基本数据 stockOutItemEx = new CBWebRMAItem(); stockOutItemEx.StockOutItemSysNo = item.SysNo; stockOutItemEx.ProductSysNo = item.ProductSysNo; stockOutItemEx.ProductName = item.ProductName; stockOutItemEx.OriginalPrice = item.OriginalPrice; stockOutItemEx.PackageDesc = product.PackageDesc; //商品基础信息 stockOutItemEx.Image = product.ProductImage; stockOutItemEx.RealSalesAmount = item.RealSalesAmount; stockOutItemEx.OrderItemSysNo = item.OrderItemSysNo; //添加到退换货明细 result.Items.Add(stockOutItemEx); } //TODO 价格优惠暂时没有实现或确切的计算方式,等待确定业务逻辑和算法 stockOutItemEx.Preferential = 0; //计算实际销售金额和消失数量 stockOutItemEx.RealSalesAmount += item.RealSalesAmount; stockOutItemEx.ProductQuantity += item.ProductQuantity; //判断商品是否可进行退换货操作 if (RmaBo.Instance.OrderRMARequest(stockOut.OrderSysNO, stockOutItemEx.ProductSysNo, (int)returyType)) { //标记能否退换货 stockOutItemEx.EnableRMA = true; //计算可退换货数量 stockOutItemEx.ProductQuantityAble += item.ProductQuantity - RmaBo.Instance.GetAllRmaQuantity( rmaItemList, item.SysNo, 0); } } } //获取取件地址 result.PickUpAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); //获取发票信息 var invoice = BLL.Order.SoOrderBo.Instance.GetFnInvoice(order.InvoiceSysNo); //是否有发票 if (invoice != null) { //如果有发票,并取得发票的状态用于前台判断是否需要退票 result.InvoiceSysNo = invoice.SysNo; result.HasInvoice = true; result.InvoiceStatus = (Hyt.Model.WorkflowStatus.FinanceStatus.发票状态)invoice.Status; } } //安能否退货排序 result.Items = result.Items.OrderByDescending(i => i.EnableRMA).ToList(); result.OrderSysNo = orderSysNo; return(result); }
public Resuldt ImportExcel(System.IO.Stream stream, int SysNo) { DataTable dt = null; var cols = DicColsMapping.Select(p => p.Value).ToArray(); try { dt = ExcelUtil.ImportExcel(stream, cols); } catch (Exception ex) { return(new Resuldt { Message = string.Format("数据导入错误,请选择正确的excel文件"), Status = false }); } if (dt == null) { //not all the cols mapped return(new Resuldt { Message = string.Format("请选择正确的excel文件!"), Status = false }); } if (dt.Rows.Count == 0) { return(new Resuldt { Message = "导入的数据为空!", Status = false }); } Resuldt run = new Resuldt(); List <CBSimplePdProduct> listModel = new List <CBSimplePdProduct>(); int fail = 0; //失败记录数 int success = 0; //成功记录数 string failstr = ""; //失败条数记录 for (int i = 0; i < dt.Rows.Count; i++) { CBSimplePdProduct model = PdProductBo.Instance.GetProductErpCode(dt.Rows[i]["产品编码"].ToString(), dt.Rows[i]["条形码"].ToString()); if (model == null) { fail++; failstr += (i + 2) + "、"; dt.Rows.Remove(dt.Rows[i]); } else { success++; listModel.Add(model); } } if (success > 0 && dt.Rows.Count > 0) { run.Data = dt; } if (success > 0 && listModel != null) { run.listModel = listModel; } run.Message = "导入成功" + success + "件商品,失败" + fail + "件商品;"; if (fail > 0) { run.Message += "失败原因为:产品编码有误,不存在此件商品。失败条数为第" + failstr.Trim('、') + "条。"; } run.Status = true; return(run); }