コード例 #1
0
        /// <summary>
        /// 获取商品的打印条码的后三位
        /// </summary>
        /// <param name="product"></param>
        /// <param name="prcou">打印数量</param>
        /// <returns></returns>
        private List <string> GetPrintBarcodeNumbs(ProductBarcodePrintInfo product, int prcou)
        {
            List <string> li      = new List <string>();
            string        starFlg = "0";

            if (product != null)
            {
                starFlg = product.CurPrintFlag;
            }
            lock (objlock)
            {
                string _key     = "cur_barcode_flgnum_1109";
                var    tecurNum = CacheAccess.Get(_key) as string;
                if (!string.IsNullOrEmpty(tecurNum))
                {
                    starFlg = tecurNum;
                }
            }
            Math36 math    = new Math36();
            int    curstar = (int)(math.To10(starFlg, 0));

            for (int i = 0; i < prcou; i++)
            {
                curstar += 1;
                li.Add((math.To36(curstar)).PadLeft(3, '0'));
            }
            lock (objlock)
            {
                string _key = "cur_barcode_flgnum_1109";
                CacheAccess.Set(_key, curstar, 2);
            }
            return(li);
        }
コード例 #2
0
        /// <summary>
        /// 打印完成
        /// </summary>
        /// <returns></returns>
        public ActionResult PrintSuccess(BarcodeTem[] da, DateTime?PrintTime = null)
        {
            string[]       nums                 = da.Select(c => c.ProductNumber).ToArray();
            var            products             = _productContract.Products.Where(c => nums.Contains(c.ProductNumber)).DistinctBy(c => c.ProductNumber).ToList();
            List <Product> li                   = new List <Product>();
            List <ProductBarcodeDetail> details = new List <ProductBarcodeDetail>();

            for (int i = 0; i < products.Count(); i++)
            {
                Product  prod     = products[i];
                string[] lastcode = da.FirstOrDefault(c => c.ProductNumber == prod.ProductNumber).LastCode.DistinctBy(c => c).ToArray();

                string maxcode = MaxCode(lastcode);
                prod.BarcodePrintCount += lastcode.Count();
                if (prod.BarcodePrintInfo == null)
                {
                    ProductBarcodePrintInfo barcodePrintInfo = new ProductBarcodePrintInfo()
                    {
                        CurPrintFlag   = maxcode,
                        ProductNumber  = prod.ProductNumber,
                        LastUpdateTime = DateTime.Now
                    };
                    // _productBarcodePrintInfoContract.Insert(true, barcodePrintInfo);
                    prod.BarcodePrintInfo = barcodePrintInfo;
                }
                else
                {
                    prod.BarcodePrintInfo.CurPrintFlag   = maxcode;
                    prod.BarcodePrintInfo.LastUpdateTime = DateTime.Now;
                    // _productBarcodePrintInfoContract.Update(new ProductBarcodePrintInfo[] { prod.BarcodePrintInfo }, true);
                }

                Math36 math = new Math36();
                foreach (var code in lastcode)
                {
                    if (!details.Any(c => c.OnlyFlag == code && c.ProductNumber == prod.ProductNumber))
                    {
                        details.Add(new ProductBarcodeDetail()
                        {
                            ProductNumber  = prod.ProductNumber,
                            OnlyFlag       = code,
                            OnlfyFlagOfInt = (int)math.To10(code, 0),
                            LogFlag        = Guid.NewGuid().ToString().Replace("-", ""),
                            Status         = 0,
                            OperatorId     = AuthorityHelper.OperatorId,
                            ProductId      = prod.Id,
                            CreatedTime    = PrintTime ?? DateTime.Now,
                        });
                        #region 商品追踪
                        ProductTrackDto pt = new ProductTrackDto();
                        pt.ProductNumber  = prod.ProductNumber;
                        pt.ProductBarcode = prod.ProductNumber + code;
                        pt.Describe       = ProductOptDescTemplate.ON_PRODUCT_PRINT;
                        pt.CreatedTime    = PrintTime;
                        _productTrackContract.Insert(pt);
                        #endregion
                    }
                }
                li.Add(prod);
            }
            OperationResult resul = _productBarcodeDetailContract.Insert(details.ToArray());
            return(Json(resul));
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult GetBarCodePrinterInfo(BarcodeInfo[] barcodeInfos)
        {
            OperationResult resul = new OperationResult(OperationResultType.Success);
            var             nums  = barcodeInfos.Select(c => c.ProductNumber).ToList();
            //string absrpath = Request.Url.Authority;

            var IsDefaultBrand = true;
            //var IsDefaultBrandPrice = true;
            var diyBarnd = "0FASHION";
            var modbcc   = _barCodeConfigContract.BarCodeConfigs.FirstOrDefault(f => !f.IsDeleted && f.IsEnabled);

            if (modbcc.IsNotNull())
            {
                IsDefaultBrand = modbcc.IsDefaultBrand;
                if (modbcc.DIYBrand.IsNotNullAndEmpty())
                {
                    diyBarnd = modbcc.DIYBrand;
                }
                //IsDefaultBrandPrice = modbcc.IsDefaultBrandPrice;
            }

            var li = (from c in _productContract.Products.Where(c => nums.Contains(c.ProductNumber) && c.IsEnabled && !c.IsDeleted)
                      .GroupBy(x => x.ProductNumber)
                      let p = c.FirstOrDefault()
                              select new
            {
                p.Id,
                p.ProductNumber,
                p.ProductName,
                BrandName = IsDefaultBrand ? p.ProductOriginNumber.Brand.BrandName : diyBarnd,
                p.ProductOriginNumber.Category.CategoryName,
                TagPrice = c.FirstOrDefault().ProductOriginNumber.TagPrice,
                p.Size.SizeName,
                p.Color.ColorName,
                HtmlPath = strWebUrl + p.ProductOriginNumber.HtmlPhonePath,
                Enti = c.Select(g => g.BarcodePrintInfo),
                ProductOriginNumber = p.ProductOriginNumber,
                SizeExtention = p.Size.SizeExtention.Name,
            }).ToList();


            List <BarcodeInfoBase> datli = new List <BarcodeInfoBase>();

            foreach (var prli in li)
            {
                ProductBarcodePrintInfo info = null;
                if (prli.Enti != null)
                {
                    info = prli.Enti.First();
                }
                var t = GetPrintBarcodeNumbs(info,
                                             barcodeInfos.FirstOrDefault(c => c.ProductNumber == prli.ProductNumber).PrintCount);
                var prtag = prli.ProductOriginNumber.ProductOriginNumberTag;
                datli.Add(new BarcodeInfoBase()
                {
                    BarcodeNumbers  = t,
                    ProductNumber   = prli.ProductNumber,
                    ProductName     = prli.ProductName ?? "",
                    QRcode          = prli.HtmlPath ?? "",
                    BrandName       = prli.BrandName,
                    CategoryName    = prli.CategoryName,
                    ColorName       = prli.ColorName,
                    SizeName        = prli.SizeName,
                    TagPrice        = prli.TagPrice,
                    BigProdNum      = prli.ProductOriginNumber.BigProdNum,
                    Category        = prtag.IsNotNull() ? prtag.Category ?? "" : "",
                    Level           = prtag.IsNotNull() ? prtag.Level ?? "" : "",
                    ProductionPlace = prtag.IsNotNull() ? prtag.ProductionPlace ?? "" : "",
                    Standard        = prtag.IsNotNull() ? prtag.Standard ?? "" : "",
                    Inspector       = prtag.IsNotNull() ? prtag.Inspector ?? "" : "",
                    Fabric          = prtag.IsNotNull() ? prtag.Fabric ?? "" : "",
                    Material        = prtag.IsNotNull() ? prtag.Material ?? "" : "",
                    batching        = prtag.IsNotNull() ? prtag.batching ?? "" : "",
                    Manufacturer    = prtag.IsNotNull() ? prtag.Manufacturer ?? "" : "",
                    PostCode        = prtag.IsNotNull() ? prtag.PostCode ?? "" : "",
                    CateName        = prtag.IsNotNull() ? prtag.CateName ?? "" : "",
                    SizeExtention   = prli.SizeExtention ?? "",
                });
            }
            resul = new OperationResult(OperationResultType.Success)
            {
                Data = datli
            };

            return(Json(resul));
        }