예제 #1
0
        /// <summary>
        /// 清除指定库房货位
        /// </summary>
        /// <param name="houseName"></param>
        private void ClearInvalidGS(string houseName, int totalRow, int totalCol, int totalLayer)
        {
            // string houseName = EnumStoreHouse.A库房.ToString();
            XmlNode house = xmlOper.GetNodeByName("StoreHouse", houseName);

            if (house == null)
            {
                return;
            }
            XmlNode gSInvalidNode = house.SelectSingleNode("GSInvalidList");

            if (gSInvalidNode == null)
            {
                return;
            }

            XmlNodeList gsInvalidList = gSInvalidNode.SelectNodes("GSItem");

            if (null == gsInvalidList)//如果都为可用货位就无需操作
            {
                return;
            }
            for (int j = 0; j < gsInvalidList.Count; j++)
            {
                string   gsName = gsInvalidList[j].InnerText;
                string[] rclStr = gsName.Split('-');
                int      row    = int.Parse(rclStr[0]);
                int      col    = int.Parse(rclStr[1]);
                int      layer  = int.Parse(rclStr[2]);
                bllGoodsSite.DeleteModelByRCL(houseName, row, col, layer);
            }

            bllGoodsSite.DeleteUnnecessaryGs(houseName, totalRow, totalCol, totalLayer);//删除排、列、层以外的
        }
예제 #2
0
        /// <summary>
        ///// 显示库存扩展属性窗体
        ///// </summary>
        //public EventHandler<CellPositionEventArgs> EventStorageViewCellExpandProClick { get; set; }
        ///// <summary>
        ///// 库存单元格扩展属性触发事件
        ///// </summary>
        //public EventHandler<ExpandFormEventArgs> EventStorageViewAddExpandForm { get; set; }

        ///// <summary>
        ///// 库存列表页面中添加扩展属性窗体事件,控制模块调用,库存模块注册
        ///// </summary>
        //public EventHandler<ExpandFormEventArgs> EventStockListAddExpandForm { get; set; }
        ///// <summary>
        ///// 库存列表页面中库存单元格扩展属性点击事件,控制模块注册此事件,库存模块调用
        ///// </summary>
        //public EventHandler<StockListProEventArgs> EventStockListCellExpandProClick { get; set; }

        /// <summary>
        /// 货位申请(排、列、层都从1开始计数)
        /// </summary>
        /// <param name="houseName">库名称,管理层、控制层约定好即可</param>
        /// <param name="logicAreaName">库房逻辑区域名称,可以为空为空代表没有分区查询所有</param>
        /// <param name="goodsInfo">货物信息</param>
        /// <param name="cellCoord">若申请成功,返回货位坐标</param>
        /// <param name="reStr">若申请失败,返回原因信息</param>
        /// <returns>申请成功返回true,否则返回false</returns>
        public bool CellRequire(string houseName, string logicAreaName, ref CellCoordModel cellCoord, ref string reStr)
        {
            View_GoodsSiteModel viewGSModel = bllViewGoodsSite.GetModelByHouseAndAreaName(houseName, logicAreaName);

            if (viewGSModel == null)
            {
                reStr = "不存在'" + houseName + "'库房!" + logicAreaName + "分区!";
                return(false);
            }
            int     requireCellRule = 1;//默认是从最小列开始
            XmlNode houseCfgNode    = xmlOper.GetNodeByName("StoreHouse", houseName);

            if (houseCfgNode != null)
            {
                XmlNode requireCellRuleNode = houseCfgNode.SelectSingleNode("RequireCellRule");
                if (requireCellRuleNode != null)
                {
                    int.TryParse(requireCellRuleNode.InnerText.Trim(), out requireCellRule);
                }
            }
            View_GoodsSiteModel gsModel = bllViewGoodsSite.ApplyGoodsSite(houseName, logicAreaName, requireCellRule);

            if (gsModel == null)
            {
                reStr = "没有货位可申请!";
                return(false);
            }
            else
            {
                cellCoord = new CellCoordModel(gsModel.GoodsSiteRow, gsModel.GoodsSiteColumn, gsModel.GoodsSiteLayer);

                reStr = "货位申请成功";
            }

            return(true);
        }