Пример #1
0
 /// <summary>
 /// 获取逻辑库区名称
 /// </summary>
 /// <param name="houseName">库房名称</param>
 /// <param name="cell">货位位置</param>
 /// <param name="logicArea">库区名称</param>
 /// <returns>执行状态</returns>
 //public bool GetLogicAreaName(string houseName, CellCoordModel cell, ref EnumLogicArea logicArea)
 public bool GetLogicAreaName(string houseName, CellCoordModel cell, ref string logicArea)
 {
     try
     {
         StoreHouseModel houseModel = bllStoreHouse.GetModelByName(houseName);
         if (houseModel == null)
         {
             return(false);
         }
         if (cell == null)
         {
             return(false);
         }
         GoodsSiteModel gsm = bllGoodsSite.GetModelByRCL(houseModel.StoreHouseID, cell.Row, cell.Col, cell.Layer);
         if (gsm == null)
         {
             return(false);
         }
         View_GoodsSiteModel viewGsm = bllViewGoodsSite.GetModelByGSID(gsm.GoodsSiteID);
         if (viewGsm == null)
         {
             return(false);
         }
         logicArea = viewGsm.StoreHouseAreaName;// (EnumLogicArea)Enum.Parse(typeof(EnumLogicArea), viewGsm.StoreHouseAreaName);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Пример #2
0
        public void OnCellExpandPro(string productCode, string stockListID)
        {
            StockListModel slm = bllStockList.GetModel(long.Parse(stockListID));

            if (slm == null)
            {
                return;
            }
            StockModel sm = bllStock.GetModel(slm.StockID);

            if (sm == null)
            {
                return;
            }
            View_GoodsSiteModel viewGSM = bllViewGS.GetModelByGSID(sm.GoodsSiteID);

            if (viewGSM == null)
            {
                return;
            }
            StockListProEventArgs slpea = new StockListProEventArgs();

            slpea.HouseName = viewGSM.StoreHouseName;
            slpea.CellCoord = new CellCoordModel(viewGSM.GoodsSiteRow, viewGSM.GoodsSiteColumn, viewGSM.GoodsSiteLayer);

            slpea.ProductCode = productCode;
            StorageMainView.storageMana.OnEventStorDetail(slpea);
            this.view.ShowExtForm(ExtendFormCate.外部);//直接打开页面
        }
Пример #3
0
        /// <summary>
        /// 从第一排第一列第一层开始查找
        /// </summary>
        /// <param name="logicAreaID">逻辑区域ID</param>
        /// <param name="gsStoreStatus">存储状态</param>
        /// <param name="gsType">货位类型</param>
        /// <returns></returns>
        public View_GoodsSiteModel ApplyGoodsSite(string houseName, string houseAreaName)
        {
            View_GoodsSiteModel goodsSite = null;
            string strSql = " GoodsSiteStatus ='" + EnumCellStatus.空闲.ToString() + "'and GoodsSiteTaskStatus ='"
                            + EnumGSTaskStatus.完成.ToString() + "'";

            if (houseName != "所有")//没有分区
            {
                strSql += " and StoreHouseName = '" + houseName + "'";
            }
            if (houseAreaName != "所有")
            {
                strSql += " and StoreHouseAreaName='" + houseAreaName + "'";
            }
            strSql += " and GsEnabled =1 order by GoodsSiteColumn asc,"
                      + "GoodsSiteRow asc,GoodsSiteLayer asc";
            List <View_GoodsSiteModel> goodsSiteList = GetModelList(strSql);

            if (goodsSiteList.Count > 0)
            {
                goodsSite = goodsSiteList[0];
            }

            return(goodsSite);
        }
Пример #4
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);
            }
            View_GoodsSiteModel gsModel = bllViewGoodsSite.ApplyGoodsSite(houseName, logicAreaName);

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

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

            return(true);
        }
Пример #5
0
        /// <summary>
        /// 获取库存货位剩余量
        /// </summary>
        /// <param name="houseName">库房名称</param>
        /// <param name="houseAreaName">逻辑库存名称</param>
        /// <param name="gsCount">货位数量</param>
        /// <returns>查询状态</returns>
        public bool GetHouseAreaLeftGs(string houseName, string houseAreaName, ref int gsCount, string reStr)
        {
            View_GoodsSiteModel viewGSModel = bllViewGoodsSite.GetModelByHouseAndAreaName(houseName, houseAreaName);

            if (viewGSModel == null)
            {
                reStr = "不存在'" + houseName + "'库房!" + houseAreaName + "分区!";
                return(false);
            }
            gsCount = bllViewGoodsSite.GetHouseAreaLeftGs(houseName, houseAreaName);
            reStr   = "查询成功!";
            return(true);
        }
Пример #6
0
        //private void ShowExpandProFormEventHandler(object sender,ExpandFormEventArgs e)
        //{
        //    this.view.ShowExpandForm(e.ExpandForm);
        //}
        public void OnCellExpandPro(Positions pos)
        {
            if (pos == null)
            {
                return;
            }
            View_GoodsSiteModel viewGS = bllViewGs.GetModelByGSID(pos.GoodsSiteID);

            if (viewGS == null)
            {
                return;
            }
            CellPositionEventArgs cpea = new CellPositionEventArgs();

            cpea.HouseName = viewGS.StoreHouseName;
            cpea.CellCoord = new CellCoordModel(viewGS.GoodsSiteRow, viewGS.GoodsSiteColumn, viewGS.GoodsSiteLayer);
            this.view.ShowExtForm(ExtendFormCate.外部);
            StorageMainView.storageMana.OnEventCellClicked(cpea);
        }
Пример #7
0
        public void OutputManual(long gsID)
        {
            string reStr = "";

            //View_StockGSModel skGsModel = bllViewStockGs.GetModelByGSID(gsID);
            //if (skGsModel == null)
            //{
            //    this.view.AddLog("库存管理", "手动出库货失败,没有库存!", LogInterface.EnumLoglevel.提示);
            //    return;
            //}
            try
            {
                View_GoodsSiteModel vgsm = bllViewGs.GetModelByGSID(gsID);
                if (vgsm == null)
                {
                    this.view.AddLog("库存管理", "货位错误!", LogInterface.EnumLoglevel.提示);
                    return;
                }

                CellCoordModel cell = new CellCoordModel(vgsm.GoodsSiteRow, vgsm.GoodsSiteColumn, vgsm.GoodsSiteLayer);
                if (this.iControl == null)
                {
                    return;
                }
                bool status = this.iControl.CreateManualOutputTask(vgsm.StoreHouseName, cell, ref reStr);
                if (status == true)
                {
                    this.view.AddLog("库存管理", "手动出库货位:" + vgsm.GoodsSiteName + "成功!", LogInterface.EnumLoglevel.提示);
                    this.iStorageManage.AddGSOperRecord(vgsm.StoreHouseName, cell, EnumGSOperateType.手动出库, "手动出库货位:" + vgsm.GoodsSiteName, ref reStr);
                }
                else
                {
                    this.view.AddLog("库存管理", "手动出库货位:" + vgsm.GoodsSiteName + "失败!" + reStr, LogInterface.EnumLoglevel.提示);
                    this.iStorageManage.AddGSOperRecord(vgsm.StoreHouseName, cell, EnumGSOperateType.手动出库, "手动出库货位:" + vgsm.GoodsSiteName + "失败" + reStr, ref reStr);
                }

                RefreshPos(vgsm.StoreHouseName, vgsm.GoodsSiteRow);//刷新
            }
            catch (Exception ex)
            {
                Console.WriteLine("发生异常:" + ex.ToString());
            }
        }
Пример #8
0
        public View_GoodsSiteModel ApplyGoodsSiteByRow(string houseName, string houseAreaName, int row, int requireCellRule)
        {
            View_GoodsSiteModel goodsSite = null;
            string strSql = " GoodsSiteStatus ='" + EnumCellStatus.空闲.ToString() + "'and GoodsSiteTaskStatus ='"
                            + EnumGSTaskStatus.完成.ToString() + "'";

            strSql += string.Format(" and GoodsSiteRow={0} ", row);

            if (houseName != "所有")//没有分区
            {
                strSql += " and StoreHouseName = '" + houseName + "'";
            }
            if (houseAreaName != "所有")
            {
                strSql += " and StoreHouseAreaName='" + houseAreaName + "'";
            }
            if (requireCellRule == 1)
            {
                strSql += " and GsEnabled =1 order by GoodsSiteColumn asc,"
                          + "GoodsSiteRow asc,GoodsSiteLayer asc";
            }
            else if (requireCellRule == 2)
            {
                strSql += " and GsEnabled =1 order by GoodsSiteColumn Desc,"
                          + "GoodsSiteRow asc,GoodsSiteLayer asc";
            }
            else
            {
                strSql += " and GsEnabled =1 order by GoodsSiteColumn asc,"
                          + "GoodsSiteRow asc,GoodsSiteLayer asc";
            }

            List <View_GoodsSiteModel> goodsSiteList = GetModelList(strSql);

            if (goodsSiteList.Count > 0)
            {
                goodsSite = goodsSiteList[0];
            }

            return(goodsSite);
        }
Пример #9
0
        public bool CellRequireByRow(string houseName, string logicAreaName, int row, 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.ApplyGoodsSiteByRow(houseName, logicAreaName, row, requireCellRule);

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

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

            return(true);
        }