Example #1
0
        public void FillResolverByBin(Resolver resolver)
        {
            User       user       = userMgr.CheckAndLoadUser(resolver.UserCode);
            StorageBin storageBin = storageBinMgr.CheckAndLoadStorageBin(resolver.Input);

            #region 校验
            if (!storageBin.IsActive)
            {
                throw new BusinessErrorException("Common.Business.Error.EntityInActive", storageBin.Code);
            }

            //if (!user.HasPermission(storageBin.Area.Location.Region.Code))
            //{
            //    throw new BusinessErrorException("Common.Business.Error.NoPermission");
            //}
            #endregion

            resolver.Description = storageBin.Description;
            resolver.BinCode     = storageBin.Code;

            //库格一定为目的(操作)
            resolver.LocationCode   = storageBin.Area.Location.Code;
            resolver.LocationToCode = storageBin.Area.Location.Code;
            resolver.Result         = languageMgr.TranslateMessage("Warehouse.CurrentBinCode", resolver.UserCode, storageBin.Code);
        }
Example #2
0
        protected override void GetDetail(Resolver resolver)
        {
            PickList pickList = pickListMgr.LoadPickList(resolver.Input, true, true);

            resolver.Transformers = TransformerHelper.ConvertPickListDetailsToTransformers(pickList.PickListDetails);
            resolver.Result       = languageMgr.TranslateMessage("Common.Business.PickList", resolver.UserCode) + ":" + resolver.Code;
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
        }
Example #3
0
        protected override void GetDetail(Resolver resolver)
        {
            InspectOrder inspectOrder = inspectOrderMgr.LoadInspectOrder(resolver.Code, true);

            resolver.Transformers = TransformerHelper.ConvertInspectDetailToTransformer(inspectOrder.InspectOrderDetails);
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
            resolver.Result       = languageMgr.TranslateMessage("MasterData.Inventory.CurrentInspectOrder", resolver.UserCode, resolver.Code);
        }
Example #4
0
        /// <summary>
        /// 分步取消
        /// </summary>
        /// <param name="resolver"></param>
        public void CancelOperation(Resolver resolver)
        {
            if (TotalCurrentQty(resolver) == 0)
            {
                resolver.Transformers = null;
                resolver.BinCode      = null;
                resolver.Code         = null;
                resolver.CodePrefix   = null;
                resolver.Description  = null;
                resolver.OrderType    = null;
                resolver.PickBy       = null;
                resolver.BarcodeHead  = null;
                resolver.LocationCode = null;
                resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
                resolver.Result       = string.Empty;//languageMgr.TranslateMessage("Resolver.Cancel.BinAllCancel", resolver.UserCode);
                return;
            }

            if (setDetailMgr.FindMaxSeq(resolver.Transformers) >= 0)
            {
                //最后一条记录的当前数设置CurrentQty为0 设置序号Sequence为0 //为了兼容带条码发货
                int[] indexArray = this.FindMaxSeqTransformerDetailRowAndColumnIndex(resolver.Transformers);
                //resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]] = null;
                if (resolver.CodePrefix == BusinessConstants.BARCODE_HEAD_FLOW)
                {
                    resolver.Transformers[indexArray[0]].Qty -= resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].Qty;
                }
                resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].CurrentQty = 0;
                resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].Sequence   = -1;
                //设置Bin为最后一库格
                indexArray = this.FindMaxSeqTransformerDetailRowAndColumnIndex(resolver.Transformers);
                if (indexArray != null)
                {
                    resolver.BinCode = resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].StorageBinCode;
                }
            }

            TransformerHelper.ProcessTransformer(resolver.Transformers);
            if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_PUTAWAY ||
                resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_PICKUP ||
                (IsHasTransformerDetail(resolver) && resolver.ModuleType != BusinessConstants.TRANSFORMER_MODULE_TYPE_PICKLIST))
            {
                resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL;
                if (resolver.BinCode != null && resolver.BinCode != string.Empty)
                {
                    resolver.Result = languageMgr.TranslateMessage("Warehouse.CurrentBinCode", resolver.UserCode, resolver.BinCode);
                }
            }
            else
            {
                resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
            }
            resolver.BarcodeHead = string.Empty;
        }
Example #5
0
        protected override void ExecuteSubmit(Resolver resolver)
        {
            IList <Hu> huList = new List <Hu>();

            if (resolver.Transformers != null)
            {
                foreach (Transformer transformer in resolver.Transformers)
                {
                    if (transformer.TransformerDetails != null)
                    {
                        foreach (TransformerDetail transformerDetail in transformer.TransformerDetails)
                        {
                            Hu hu = huMgr.LoadHu(transformerDetail.HuId);
                            huList.Add(hu);
                        }
                    }
                }
            }
            if (huList.Count > 0)
            {
                orderMgr.CreateOrder(resolver.Code, resolver.UserCode, huList);
                resolver.Result       = languageMgr.TranslateMessage("Order.Reuse.Successfully", resolver.UserCode);
                resolver.Transformers = null;
                resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
            }
            else
            {
                throw new BusinessErrorException("Common.Business.Error.OprationFailed");
            }
        }
Example #6
0
        public void CreateRepack(Resolver resolver)
        {
            IList <RepackDetail> repackDetailList = executeMgr.ConvertTransformerListToRepackDetail(resolver.Transformers);

            if (repackDetailList.Count == 0)
            {
                throw new BusinessErrorException("MasterData.Inventory.Repack.Error.RepackDetailEmpty");
            }
            Repack repack = repackMgr.CreateRepack(repackDetailList, userMgr.LoadUser(resolver.UserCode, false, true));

            resolver.Code         = repack.RepackNo;
            resolver.Transformers = null;
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL;
            resolver.Result       = languageMgr.TranslateMessage("MasterData.Inventory.Repack.Successfully", resolver.UserCode);


            #region 打印
            if (resolver.IsCSClient)
            {
                IList <Hu> huList = new List <Hu>();
                repack = repackMgr.LoadRepack(resolver.Code, true);
                foreach (RepackDetail repackDet in repack.RepackDetails)
                {
                    if (repackDet.IOType == BusinessConstants.IO_TYPE_OUT && repackDet.LocationLotDetail.Hu != null &&
                        repackDet.LocationLotDetail.Hu.PrintCount == 0)
                    {
                        huList.Add(repackDet.LocationLotDetail.Hu);
                    }
                }
                resolver.PrintUrl = PrintHu(huList, resolver.UserCode);
            }
            #endregion
        }
Example #7
0
        private Resolver ShipOrder(Resolver resolver)
        {
            InProcessLocation inProcessLocation = null;

            if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_PICKLIST)
            {
                inProcessLocation = orderMgr.ShipOrder(resolver.Code, resolver.UserCode);
            }
            else
            {
                IList <InProcessLocationDetail> inProcessLocationDetailList = orderMgr.ConvertTransformerToInProcessLocationDetail(resolver.Transformers);
                if (inProcessLocationDetailList.Count > 0)
                {
                    inProcessLocation = orderMgr.ShipOrder(inProcessLocationDetailList, resolver.UserCode);
                }
                else
                {
                    throw new BusinessErrorException("OrderDetail.Error.OrderDetailShipEmpty");
                }
            }
            #region 打印
            if (resolver.NeedPrintAsn && resolver.IsCSClient)
            {
                resolver.PrintUrl = PrintASN(inProcessLocation);
            }
            #endregion

            resolver.Transformers = TransformerHelper.ConvertInProcessLocationDetailsToTransformers(inProcessLocation.InProcessLocationDetails);
            resolver.Result       = languageMgr.TranslateMessage("Common.Business.ASNIs", resolver.UserCode, inProcessLocation.IpNo);
            resolver.Code         = inProcessLocation.IpNo;
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
            return(resolver);
        }
Example #8
0
        protected override void ExecuteSubmit(Resolver resolver)
        {
            IList <MaterialIn> materialInList = executeMgr.ConvertTransformersToMaterialIns(resolver.Transformers);

            productLineInProcessLocationDetailMgr.RawMaterialIn(resolver.Code, materialInList, userMgr.CheckAndLoadUser(resolver.UserCode));
            resolver.Transformers = null;
            resolver.Result       = languageMgr.TranslateMessage("MasterData.MaterialIn.Successfully", resolver.UserCode, resolver.Code);
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
        }
Example #9
0
        protected override void ExecuteSubmit(Resolver resolver)
        {
            IList <InspectOrderDetail> inspectDetailList = executeMgr.ConvertResolverToInspectOrderDetails(resolver);

            inspectOrderMgr.ProcessInspectOrder(inspectDetailList, resolver.UserCode);
            resolver.Result       = languageMgr.TranslateMessage("MasterData.InspectOrder.Confirm.Successfully", resolver.UserCode, resolver.Code);
            resolver.Transformers = null;
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
        }
Example #10
0
 protected override void SetDetail(Resolver resolver)
 {
     if (resolver.CodePrefix == string.Empty)
     {
         throw new BusinessErrorException("Common.Business.Error.ScanFlowFirst");
     }
     if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_PRODUCTIONRECEIVE)
     {
         LocationLotDetail locationLotDetail    = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, resolver.UserCode);
         TransformerDetail newTransformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, false);
         resolver.AddTransformerDetail(newTransformerDetail);
     }
     else
     {
         setDetailMgr.MatchReceive(resolver);
         if (resolver.BinCode != null && resolver.BinCode != string.Empty)
         {
             resolver.Result = languageMgr.TranslateMessage("Warehouse.CurrentBinCode", resolver.UserCode, resolver.BinCode);
         }
     }
 }
Example #11
0
 public void CreateInspectOrder(Resolver resolver)
 {
     IList<LocationLotDetail> locationLotDetailList = executeMgr.ConvertTransformersToLocationLotDetails(resolver.Transformers, false);
     if (locationLotDetailList.Count == 0)
     {
         throw new BusinessErrorException("MasterData.Inventory.Repack.Error.RepackDetailEmpty");
     }
     User user = userMgr.LoadUser(resolver.UserCode, false, true);
     InspectOrder inspectOrder = inspectOrderMgr.CreateInspectOrder(locationLotDetailList, user);
     resolver.Result = languageMgr.TranslateMessage("MasterData.InspectOrder.Create.Successfully", resolver.UserCode, inspectOrder.InspectNo);
     resolver.Transformers = null;
     resolver.Code = inspectOrder.InspectNo;
     resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
 }
Example #12
0
        protected override void ExecuteSubmit(Resolver resolver)
        {
            if (resolver.Transformers == null || resolver.Transformers.Count < 1)
            {
                throw new BusinessErrorException("PickUp.Error.HuDetailEmpty");
            }

            IList <LocationLotDetail> locationLotDetailList = executeMgr.ConvertTransformersToLocationLotDetails(resolver.Transformers, false);

            locationMgr.InventoryPick(locationLotDetailList, resolver.UserCode);
            resolver.Result       = languageMgr.TranslateMessage("Warehouse.PickUp.Successfully", resolver.UserCode);
            resolver.Transformers = null;
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL;
        }
Example #13
0
        protected override void ExecuteSubmit(Resolver resolver)
        {
            User user = userMgr.LoadUser(resolver.UserCode, false, true);
            IDictionary <string, decimal> itemDictionary = new Dictionary <string, decimal>();

            foreach (Transformer transformer in resolver.Transformers)
            {
                itemDictionary.Add(transformer.ItemCode, transformer.CurrentQty);
            }
            productLineInProcessLocationDetailMgr.RawMaterialBackflush(resolver.Code, itemDictionary, user);
            resolver.Result       = languageMgr.TranslateMessage("MasterData.BackFlush.Successfully", resolver.UserCode, resolver.Code);
            resolver.Transformers = null;
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
        }
Example #14
0
        public void CreateDevanning(Resolver resolver)
        {
            IList <RepackDetail> repackDetailList = executeMgr.ConvertTransformerListToRepackDetail(resolver.Transformers);

            if (repackDetailList.Count == 0)
            {
                throw new BusinessErrorException("MasterData.Inventory.Repack.Error.RepackDetailEmpty");
            }
            //KSS 客户化需求, 拆箱并上架
            foreach (RepackDetail repackDetail in repackDetailList)
            {
                repackDetail.StorageBinCode = resolver.BinCode;
            }
            Repack repack = repackMgr.CreateDevanning(repackDetailList, this.userMgr.LoadUser(resolver.UserCode, false, true));

            resolver.Code         = repack.RepackNo;
            resolver.Result       = languageMgr.TranslateMessage("MasterData.Inventory.Devanning.Successfully", resolver.UserCode, resolver.Transformers[0].TransformerDetails[0].HuId);
            resolver.Transformers = null;
        }
Example #15
0
        public void TransferOrder(Resolver resolver)
        {
            IList <OrderDetail> orderDetails = executeMgr.ConvertResolverToOrderDetails(resolver);

            Receipt receipt = orderMgr.QuickReceiveOrder(resolver.Code, orderDetails, resolver.UserCode);

            #region Print
            if (resolver.NeedPrintReceipt && resolver.IsCSClient)
            {
                receipt.ReceiptDetails = receiptDetailMgr.SummarizeReceiptDetails(receipt.ReceiptDetails);

                IList <object> list = new List <object>();
                list.Add(receipt);
                list.Add(receipt.ReceiptDetails);
                resolver.PrintUrl = reportMgr.WriteToFile("ReceiptNotes.xls", list);
            }
            #endregion
            resolver.Result       = languageMgr.TranslateMessage("Receipt.Transfer.Successfully", resolver.UserCode, receipt.ReceiptNo);
            resolver.Code         = receipt.ReceiptNo;
            resolver.Transformers = null;//TransformerHelper.ConvertReceiptToTransformer(receipt.ReceiptDetails);
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
        }
Example #16
0
        protected override void SetDetail(Resolver resolver)
        {
            #region Hu状态查询
            if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_HUSTATUS)
            {
                Hu hu = null;
                //检查库存
                LocationLotDetail locationLotDetail = locationLotDetailMgr.LoadHuLocationLotDetail(resolver.Input);
                if (locationLotDetail == null)//库存中没有,检查HuDet
                {
                    hu = huMgr.CheckAndLoadHu(resolver.Input);
                    //修正状态
                    if (hu.Status == BusinessConstants.CODE_MASTER_HU_STATUS_VALUE_INVENTORY)
                    {
                        hu.Status = "ERROR";
                    }
                }
                else
                {
                    hu = locationLotDetail.Hu;
                    //修正库位 数量
                    hu.Location = locationLotDetail.Location.Code;
                    hu.Qty      = locationLotDetail.Qty / hu.UnitQty;
                    if (hu.Status == BusinessConstants.CODE_MASTER_HU_STATUS_VALUE_INVENTORY)
                    {
                        if (this.locationMgr.IsHuOcuppyByPickList(resolver.Input))
                        {
                            hu.Status += languageMgr.TranslateMessage("MasterDate.PickList.Ocuppied", resolver.UserCode);
                        }
                    }
                }
                TransformerDetail transformerDetail = TransformerHelper.ConvertHuToTransformerDetail(hu);
                if (locationLotDetail != null && locationLotDetail.StorageBin != null)
                {
                    transformerDetail.StorageBinCode = locationLotDetail.StorageBin.Code;
                }
                resolver.Transformers = null;
                resolver.AddTransformerDetail(transformerDetail);
            }
            #endregion

            #region 盘点
            else
            {
                if (resolver.WorkingHours == null || resolver.WorkingHours.Count != 2)
                {
                    //出错
                    throw new BusinessErrorException("CycCnt.Error.ScanCycCountFirst");
                }
                if (resolver.LocationCode == null || resolver.LocationCode == string.Empty)
                {
                    throw new BusinessErrorException("CycCnt.Error.HasNoLocation");
                }
                //如果指定了库格或启用了高级仓库管理,需要先扫描库格.
                //if ((resolver.BinCode == null || resolver.BinCode == string.Empty)
                //    && (resolver.WorkingHours[1].Length > 0 || resolver.IsPickFromBin))
                //{
                //    throw new BusinessErrorException("CycCnt.Error.ScanStorageBinFirst");
                //}

                //检查当月盘点重复扫描
                this.cycleCountMgr.CheckHuExistThisCount(resolver.Input);
                Hu hu = huMgr.CheckAndLoadHu(resolver.Input);

                if (hu.Status == BusinessConstants.CODE_MASTER_HU_STATUS_VALUE_CLOSE)
                {
                    throw new BusinessErrorException("CycCnt.Error.HuStatusError", hu.Status);
                }

                if (resolver.WorkingHours[0].Length > 0 && !resolver.WorkingHours[0].Contains(hu.Item.Code))
                {
                    if (resolver.WorkingHours[0].Length > 0)
                    {
                        throw new BusinessErrorException("CycCnt.Error.NotContainTheItem");
                    }
                    else
                    {
                        //nothing todo
                    }
                }

                TransformerDetail transformerDetail = Utility.TransformerHelper.ConvertHuToTransformerDetail(hu);
                transformerDetail.StorageBinCode = resolver.BinCode;
                resolver.AddTransformerDetail(transformerDetail);
            }
            #endregion
        }
Example #17
0
        public void ReceiveWorkOrder(Resolver resolver)
        {
            IList <ReceiptDetail> receiptDetails = orderMgr.ConvertTransformerToReceiptDetail(resolver.Transformers);
            //Receipt receipt = new Receipt();
            //foreach (Transformer transformer in resolver.Transformers)
            //{
            //    ReceiptDetail receiptDetail = new ReceiptDetail();
            //    receiptDetail.OrderLocationTransaction = orderLocationTransactionMgr.LoadOrderLocationTransaction(transformer.OrderLocTransId);
            //    receiptDetail.HuId = null;
            //    receiptDetail.ReceivedQty = transformer.CurrentQty;
            //    receiptDetail.RejectedQty = transformer.CurrentRejectQty;
            //    receiptDetail.ScrapQty = transformer.ScrapQty;
            //    receiptDetail.Receipt = receipt;
            //    receipt.AddReceiptDetail(receiptDetail);
            //}
            List <WorkingHours> workingHoursList = new List <WorkingHours>();

            foreach (string[] stringArray in resolver.WorkingHours)
            {
                WorkingHours workingHours = new WorkingHours();
                workingHours.Employee = employeeMgr.LoadEmployee(stringArray[0]);
                workingHours.Hours    = Convert.ToDecimal(stringArray[1]);
                workingHoursList.Add(workingHours);
            }

            Receipt receiptResult = orderMgr.ReceiveOrder(receiptDetails, resolver.UserCode, null, null, workingHoursList, true, resolver.IsOddCreateHu);
            //(receiptDetailList, this.CurrentUser, null, null, null, true, isOddCreateHu);

            //OrderHead orderHead = orderHeadMgr.LoadOrderHead(resolver.Code);
            IList <Hu>            huList            = new List <Hu>();
            IList <ReceiptDetail> receiptDetailList = receiptResult.ReceiptDetails;

            if (resolver.AutoPrintHu)
            {
                if (receiptDetailList == null || receiptDetailList.Count == 0)
                {
                    throw new BusinessErrorException("Inventory.Error.PrintHu.ReceiptDetail.Required");
                }
                foreach (ReceiptDetail receiptDetail in receiptDetailList)
                {
                    if (receiptDetail.HuId != null)
                    {
                        Hu hu = huMgr.LoadHu(receiptDetail.HuId);
                        if (hu != null)
                        {
                            huList.Add(hu);
                        }
                    }
                }
                if (huList.Count > 0)
                {
                    IList <object> huDetailObj = new List <object>();
                    huDetailObj.Add(huList);
                    huDetailObj.Add(resolver.UserCode);
                    resolver.PrintUrl = reportMgr.WriteToFile("BarCode.xls", huDetailObj, "BarCode.xls");
                }
            }
            resolver.Transformers = null;
            string huString = string.Empty;

            foreach (Hu hu in huList)
            {
                huString += " " + hu.HuId;
            }
            resolver.Result = languageMgr.TranslateMessage("MasterData.WorkOrder.OrderHead.Receive.Successfully", resolver.UserCode, resolver.Code);
            if (huList.Count > 0)
            {
                resolver.Result += languageMgr.TranslateMessage("Inventory.CreateHu.Successful", resolver.UserCode, huString);
            }
            resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
        }
Example #18
0
        protected override bool FillValuesImpl(String templateFileName, IList <object> list)
        {
            try
            {
                if (list == null || list.Count < 2)
                {
                    return(false);
                }

                OrderHead           orderHead    = (OrderHead)(list[0]);
                IList <OrderDetail> orderDetails = (IList <OrderDetail>)(list[1]);


                if (orderHead == null ||
                    orderDetails == null || orderDetails.Count == 0)
                {
                    return(false);
                }


                //this.SetRowCellBarCode(0, 2, 8);
                this.barCodeFontName = this.GetBarcodeFontName(2, 8);
                this.CopyPage(orderDetails.Count);

                this.FillHead(orderHead);


                int pageIndex = 1;
                int rowIndex  = 0;
                int rowTotal  = 0;
                foreach (OrderDetail orderDetail in orderDetails)
                {
                    // No.
                    this.SetRowCell(pageIndex, rowIndex, 0, "" + orderDetail.Sequence);

                    //零件号 Item Code
                    this.SetRowCell(pageIndex, rowIndex, 1, orderDetail.Item.Code);

                    //参考号 Ref No.
                    this.SetRowCell(pageIndex, rowIndex, 2, orderDetail.ReferenceItemCode);

                    //描述Description
                    this.SetRowCell(pageIndex, rowIndex, 3, orderDetail.Item.Description);

                    //单位Unit
                    this.SetRowCell(pageIndex, rowIndex, 4, orderDetail.Item.Uom.Code);

                    //单包装UC
                    this.SetRowCell(pageIndex, rowIndex, 5, orderDetail.UnitCount.ToString("0.########"));

                    //需求 Request	包装
                    int UCs = (int)Math.Ceiling(orderDetail.OrderedQty / orderDetail.UnitCount);
                    this.SetRowCell(pageIndex, rowIndex, 6, UCs.ToString());

                    //需求 Request	零件数
                    this.SetRowCell(pageIndex, rowIndex, 7, orderDetail.OrderedQty.ToString("0.########"));

                    //发货数
                    this.SetRowCell(pageIndex, rowIndex, 8, orderDetail.ShippedQty.HasValue ? orderDetail.ShippedQty.Value.ToString("0.########") : string.Empty);

                    //实收 Received	包装
                    this.SetRowCell(pageIndex, rowIndex, 9, "");

                    //实收 Received	零件数
                    this.SetRowCell(pageIndex, rowIndex, 10, orderDetail.ReceivedQty.HasValue ? orderDetail.ReceivedQty.Value.ToString("0.########") : string.Empty);

                    //批号/备注
                    if (orderHead.Type == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_TRANSFER)
                    {
                        IList <LocationLotDetail> locationLotDetailList = locationLotDetailMgr.GetHuLocationLotDetail(orderDetail.DefaultLocationFrom.Code, null, orderDetail.Item.Code, null, false);

                        decimal qty        = (from l in locationLotDetailList select l.Qty).Sum();
                        decimal shippedQty = orderDetail.ShippedQty.HasValue ? orderDetail.ShippedQty.Value : 0;
                        if (qty < orderDetail.OrderedQty - shippedQty)
                        {
                            string memo = languageMgr.TranslateMessage("MasterData.PickList.NotEnoughInventory", orderHead.CreateUser.Code);
                            this.SetRowCell(pageIndex, rowIndex, 11, memo);
                        }
                    }
                    else
                    {
                        this.SetRowCell(pageIndex, rowIndex, 11, string.Empty);
                    }
                    if (this.isPageBottom(rowIndex, rowTotal))//页的最后一行
                    {
                        pageIndex++;
                        rowIndex = 0;
                    }
                    else
                    {
                        rowIndex++;
                    }
                    rowTotal++;
                }

                this.sheet.DisplayGridlines = false;
                this.sheet.IsPrintGridlines = false;

                if (orderHead.IsPrinted == null || orderHead.IsPrinted == false)
                {
                    orderHead.IsPrinted = true;
                    orderHeadMgr.UpdateOrderHead(orderHead);
                }
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }