Ejemplo n.º 1
0
        private IList <CycleCountDetail> ConvertResolverToCycleCountDetail(Resolver resolver)
        {
            if (resolver.Transformers == null || resolver.Transformers.Count == 0)
            {
                return(null);
            }

            IList <CycleCountDetail> cycleCountDetailList = new List <CycleCountDetail>();

            foreach (Transformer transformer in resolver.Transformers)
            {
                if (transformer.TransformerDetails != null && resolver.IsScanHu)
                {
                    #region 条码
                    foreach (TransformerDetail transformerDetail in transformer.TransformerDetails)
                    {
                        if (transformerDetail.Id == 0 ||
                            (transformerDetail.HuId != null && transformerDetail.HuId.Trim() != string.Empty))
                        {
                            //Hu hu = huMgr.LoadHu(transformerDetail.HuId);
                            CycleCountDetail cycleCountDetail = new CycleCountDetail();
                            cycleCountDetail.Id    = transformerDetail.Id;
                            cycleCountDetail.HuId  = transformerDetail.HuId;
                            cycleCountDetail.LotNo = transformerDetail.LotNo;
                            cycleCountDetail.Qty   = transformerDetail.CurrentQty;
                            cycleCountDetail.Item  = itemMgr.LoadItem(transformerDetail.ItemCode);
                            if (transformerDetail.StorageBinCode != null && transformerDetail.StorageBinCode.Trim() != string.Empty)
                            {
                                cycleCountDetail.StorageBin = storageBinMgr.LoadStorageBin(transformerDetail.StorageBinCode).Code;
                            }
                            cycleCountDetailList.Add(cycleCountDetail);
                        }
                    }
                    #endregion
                }
                else
                {
                    #region Item
                    if (transformer.Id == 0 ||
                        (transformer.ItemCode != null && transformer.ItemCode.Trim() != string.Empty))
                    {
                        CycleCountDetail cycleCountDetail = new CycleCountDetail();
                        cycleCountDetail.Id   = transformer.Id;
                        cycleCountDetail.Item = itemMgr.LoadItem(transformer.ItemCode);
                        cycleCountDetail.Qty  = transformer.CurrentQty;
                        cycleCountDetailList.Add(cycleCountDetail);
                    }
                    #endregion
                }
            }
            return(cycleCountDetailList);
        }
Ejemplo n.º 2
0
        public IList <Uom> GetItemUom(string itemCode)
        {
            List <Uom> uomList = new List <Uom>();

            if (itemCode != null && itemCode != string.Empty)
            {
                IList <UomConversion> uomConversionList = uomConversionMgr.GetUomConversion(itemCode);

                //添加基本单位
                uomList.Add(itemMgr.LoadItem(itemCode).Uom);
                //添加单位转换中的单位
                foreach (UomConversion uomConversion in uomConversionList)
                {
                    if (!uomList.Contains(uomConversion.BaseUom))
                    {
                        uomList.Add(uomConversion.BaseUom);
                    }
                    if (!uomList.Contains(uomConversion.AlterUom))
                    {
                        uomList.Add(uomConversion.AlterUom);
                    }
                }
            }
            return(uomList);
        }
Ejemplo n.º 3
0
        public IList <BomDetail> GetBomView_Cost(string itemCode, DateTime effDate)
        {
            Item              item            = itemMgr.LoadItem(itemCode);
            string            bomCode         = item.Bom != null ? item.Bom.Code : item.Code;
            IList <BomDetail> bomDetailList   = this.GetFlatBomDetail(bomCode, effDate);
            IList <BomDetail> bomViewList     = new List <BomDetail>();
            IList <BomDetail> costBomViewList = new List <BomDetail>();

            bomViewList = this.GetAllBomDetailTree(bomDetailList, effDate);
            bomViewList = this.GetNoOverloadBomDetail(bomViewList);
            if (bomViewList != null && bomViewList.Count > 0)
            {
                bomViewList = this.GetCostBomDetail(bomViewList);
                Bom bom = bomMgr.LoadBom(bomCode);
                foreach (BomDetail bomDetail in bomViewList)
                {
                    BomDetail costBomDetail = new BomDetail();
                    CloneHelper.CopyProperty(bomDetail, costBomDetail, BomCompDetail);
                    costBomDetail.Bom = bom;

                    costBomViewList.Add(costBomDetail);
                }
            }

            return(this.GetNoOverloadBomDetail(costBomViewList));
        }
Ejemplo n.º 4
0
        public LocationDetail FindLocationDetail(string loc, string itemCode, DateTime?effectiveDate, bool includeActiveOrder)
        {
            Item     item     = ItemMgr.LoadItem(itemCode);
            Location location = LocationMgr.LoadLocation(loc);

            if (location == null)
            {
                return(null);
            }
            else
            {
                return(this.FindLocationDetail(location, item, effectiveDate));
            }
        }
Ejemplo n.º 5
0
        public IList <OrderDetail> ConvertResolverToOrderDetails(Resolver resolver, Flow flow)
        {
            OrderHead           orderHead    = orderMgr.TransferFlow2Order(flow);
            IList <OrderDetail> orderDetails = new List <OrderDetail>();

            if (resolver.Transformers == null)
            {
                throw new BusinessErrorException("OrderDetail.Error.OrderDetailEmpty");
            }
            foreach (Transformer transformer in resolver.Transformers)
            {
                if (transformer.TransformerDetails != null)
                {
                    foreach (TransformerDetail transformerDetail in transformer.TransformerDetails)
                    {
                        if (transformerDetail.CurrentQty == 0) //数量为零的过滤掉
                        {
                            continue;
                        }

                        OrderDetail newOrderDetail = new OrderDetail();
                        //newOrderDetail.IsScanHu = true;
                        int seqInterval = int.Parse(entityPreferenceMgr.LoadEntityPreference(BusinessConstants.ENTITY_PREFERENCE_CODE_SEQ_INTERVAL).Value);
                        if (orderDetails == null || orderDetails.Count == 0)
                        {
                            newOrderDetail.Sequence = seqInterval;
                        }
                        else
                        {
                            newOrderDetail.Sequence = orderDetails.Last <OrderDetail>().Sequence + seqInterval;
                        }
                        newOrderDetail.Item = itemMgr.LoadItem(transformerDetail.ItemCode);
                        newOrderDetail.Uom  = uomMgr.LoadUom(transformerDetail.UomCode);
                        newOrderDetail.HuId = transformerDetail.HuId;
                        if ((resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_SHIPRETURN) ||
                            resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_RECEIVERETURN)
                        {
                            newOrderDetail.OrderedQty = -transformerDetail.CurrentQty;
                            newOrderDetail.HuQty      = -transformerDetail.Qty;
                        }
                        else
                        {
                            newOrderDetail.OrderedQty = transformerDetail.CurrentQty;
                            newOrderDetail.HuQty      = transformerDetail.Qty;
                        }
                        if (!(resolver.OrderType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PROCUREMENT ||
                              resolver.OrderType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_CUSTOMERGOODS))
                        {
                            newOrderDetail.LocationFrom = locationMgr.LoadLocation(transformer.LocationFromCode);
                        }
                        if (!(resolver.OrderType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_DISTRIBUTION))
                        {
                            newOrderDetail.LocationTo = locationMgr.LoadLocation(transformer.LocationToCode);
                        }
                        newOrderDetail.ReferenceItemCode = transformer.ReferenceItemCode;
                        newOrderDetail.UnitCount         = transformerDetail.UnitCount;
                        //newOrderDetail.PackageType = transformerDetail.PackageType;
                        newOrderDetail.OrderHead      = orderHead;
                        newOrderDetail.IsScanHu       = true;
                        newOrderDetail.PutAwayBinCode = resolver.BinCode;
                        orderDetails.Add(newOrderDetail);
                    }
                }
            }
            return(orderDetails);
        }