Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 /// <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);
     }
 }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }