コード例 #1
0
        /// <summary>
        /// 打印小标签管理里面所有选中的内箱
        /// </summary>
        /// <param name="boxIds"></param>
        /// <returns></returns>
        public List <PrintInnerBoxModel> GetInnerBoxesWithExtra4Print(List <int> boxIds)
        {
            List <PrintInnerBoxModel> boxes = new List <PrintInnerBoxModel>();

            var m = (from i in db.InneBoxes
                     join et in db.InnerBoxesExtra on i.inner_box_id equals et.inner_box_id into etp
                     from e in etp.DefaultIfEmpty()
                     where boxIds.Contains(i.inner_box_id)
                     select new
            {
                i,
                e
            }).ToList();

            if (m.Count() == 0)
            {
                throw new Exception("不存在可打印的内箱");
            }

            string supplierNumber = m.First().e.user_name;
            string supplierName   = new ItemSv().GetSupplierNameByNumber(supplierNumber, m.First().e.account);

            if (string.IsNullOrEmpty(supplierName))
            {
                supplierName = "测试供应商名";
            }

            foreach (var b in m)
            {
                var    innerBoxes     = b.i.box_number_long.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                string outerBoxNumber = "";
                if (b.i.outer_box_id != null)
                {
                    var outerBox = db.OuterBoxes.Where(o => o.outer_box_id == b.i.outer_box_id).FirstOrDefault();
                    if (outerBox != null)
                    {
                        outerBoxNumber = outerBox.box_number;
                    }
                }
                for (var i = 0; i < innerBoxes.Count(); i++)
                {
                    boxes.Add(new PrintInnerBoxModel()
                    {
                        batchNo        = b.e.batch,
                        boxNumber      = innerBoxes[i],
                        brand          = b.e.brand,
                        expireDate     = b.e.expire_date == null ? ((DateTime)b.e.produce_date).AddMonths((int)b.e.safe_period).AddDays(-1).ToString("yyyy-MM-dd") : ((DateTime)b.e.expire_date).ToString("yyyy-MM-dd"),
                        itemModel      = b.e.item_model,
                        itemName       = b.e.item_name,
                        itemNumber     = b.e.item_number,
                        keepCondition  = b.e.keep_condition,
                        madeBy         = b.e.made_by,
                        produceDate    = b.e.produce_date == null ? "" : ((DateTime)b.e.produce_date).ToString("yyyy-MM-dd"),
                        qtyAndUnit     = string.Format("{0:0.####}{1}", b.i.every_qty, b.e.unit_name),
                        rohs           = b.e.rohs,
                        supplierName   = supplierName,
                        tradeTypeName  = b.e.trade_type_name,
                        outerBoxNumber = outerBoxNumber,
                        //qrcodeContent = string.Format("{9};{0};{1};{2:0.####};{3};{4};{5};{6:yyyy-MM-dd};{7};{8}",
                        //innerBoxes[i], b.o.item_number, b.i.every_qty, b.o.unit_number, supplierNumber, b.o.batch, b.o.produce_date, outerBoxNum, b.o.account == "S" ? "zb" : "gd",b.i.inner_box_id
                        //)
                        qrcodeContent = string.Format("{0};{1};{2};{3};{4:0.####}", b.i.inner_box_id, innerBoxes[i], outerBoxNumber, b.e.item_number, b.i.every_qty)
                    });
                }
            }

            return(boxes.OrderBy(b => b.boxNumber).ToList());
        }