コード例 #1
0
        /// <summary>
        /// 称重条码解析
        /// </summary>
        /// <param name="barcode">条码</param>
        /// <param name="isNotFoundThrowException">当未找到商品时,是否抛出异常</param>
        /// <returns>商品列表</returns>
        public IEnumerable <ProductRecord> WeightBarcodeAnalysis(string barcode, bool isNotFoundThrowException = false)
        {
            IEnumerable <ProductRecord>             products = new ProductRecord[0];
            IPosElectronicBalanceSettingsRepository posElectronicBalanceSettingsRepository = new PosElectronicBalanceSettingsRepository();
            var electronicBalanceSetting = posElectronicBalanceSettingsRepository.Get(true);

            if (electronicBalanceSetting.Enable && electronicBalanceSetting.MaybeWeightProduct(barcode))//处理称重商品
            {
                var productBarcode = string.Empty;
                var productCode    = string.Empty;

                IPosSystemSettingsRepository systemSettingsRepository = new PosSystemSettingsRepository();
                var settings = systemSettingsRepository.Get();
                IProductRepository productRepository = null;
                if (settings.EnableRemoteService)
                {
                    productRepository = new ProductOnlineRepository();
                }
                else
                {
                    productRepository = new ProductOfflineRepository();
                }

                if (electronicBalanceSetting.IsProductCode(barcode, out productCode))
                {
                    var product = productRepository.FindProductByProductCode(productCode);
                    products = new ProductRecord[] { product };
                }
                else if (electronicBalanceSetting.IsProductBarcode(barcode, out productBarcode))
                {
                    products = productRepository.FindProductByBarcode(productBarcode);
                }
            }
            if (isNotFoundThrowException && (products == null || products.Count() == 0))
            {
                throw new NotFoundProductException(string.Format("未能找到指定条码【{0}】的商品!", barcode));
            }
            return(products);
        }
コード例 #2
0
        /// <summary>
        /// 普通商品条码解析
        /// </summary>
        /// <param name="barcode">条码</param>
        /// <param name="isNotFoundThrowException">当未找到商品时,是否抛出异常</param>
        /// <returns>商品列表</returns>
        public IEnumerable <ProductRecord> BarcodeAnalysis(string barcode, bool isNotFoundThrowException = false)
        {
            IEnumerable <ProductRecord> products = new ProductRecord[0];

            IPosSystemSettingsRepository systemSettingsRepository = new PosSystemSettingsRepository();
            var settings = systemSettingsRepository.Get();
            IProductRepository productRepository = null;

            if (settings.EnableRemoteService)
            {
                productRepository = new ProductOnlineRepository();
            }
            else
            {
                productRepository = new ProductOfflineRepository();
            }

            products = productRepository.FindProductByBarcode(barcode);
            if (isNotFoundThrowException && (products == null || products.Count() == 0))
            {
                throw new NotFoundProductException(string.Format("未能找到指定条码【{0}】的商品!", barcode));
            }
            return(products);
        }