Exemplo n.º 1
0
        /// <summary>
        /// 生成物料唯一识别码
        /// </summary>
        /// <param name="count">个数</param>
        public void BuildMatIDCode(WHMat info, int count)
        {
            string newSeq = new WHMatDAL().GetNewIDCodeSeq(info);

            if (newSeq == null)
            {
                newSeq = "0";
            }

            List <MatIDCode> list = new List <MatIDCode>();

            for (int i = 0; i < count; i++)
            {
                MatIDCode idCode = new MatIDCode();
                idCode.MatID     = info.ID;
                idCode.IDCode    = info.MatCode + DateTime.Now.ToString("yyyyMMdd").Substring(2) + (int.Parse(newSeq) + (i + 1)).ToString("000");
                idCode.BuildDate = DateTime.Now.ToString("yyyyMMdd");
                idCode.Seq       = (int.Parse(newSeq) + (i + 1));
                idCode.Status    = 0;
                idCode.MatSpec   = info.SpecCode;

                list.Add(idCode);
            }
            new WHMatDAL().SaveMatIDCode(list);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取货品可用单位
        /// </summary>
        /// <param name="matID">货品主键</param>
        /// <returns>货品可用单位</returns>
        public List <MatUnit> GetMayUnits(string matID)
        {
            List <MatUnit> units = new List <MatUnit>();

            //获取货品规格单位
            List <WHMatSpec> matSpecList = this.GetList(new WHMatSpec {
                MatID = matID
            });

            foreach (WHMatSpec ms in matSpecList)
            {
                units.Add(new MatUnit {
                    ID = ms.ID, Description = ms.UnitName, Remark = ms.Description
                });
            }

            //获取主计量单位
            MatUnit mainUnit = new WHMatDAL().GetMainUnit(matID);

            units.Add(new MatUnit {
                ID = mainUnit.ID, Description = mainUnit.Description, Remark = ""
            });

            return(units);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 根据货品唯一识别码获取货品信息
        /// </summary>
        /// <param name="matIDCode">唯一识别码</param>
        /// <returns>货品信息</returns>
        public WHMat GetMatByIDCode(string matIDCode)
        {
            try
            {
                WHMat info = new WHMatDAL().GetMatByIDCode(matIDCode);

                if (info == null)
                {
                    return(info);
                }

                //处理货品规格
                List <MatUnit> matUnits = new WHMatSpecBLL().GetMayUnits(info.MatID);
                MatUnit        find     = matUnits.Find(p => p.ID == info.MatSpecID);
                if (find != null)
                {
                    info.UnitCode        = find.ID;
                    info.OperateUnitName = find.Description;
                    info.OperateSpecName = find.Remark;
                }
                //计算核算数量
                List <WHMatSpec> matSpecList = new WHMatSpecBLL().GetList(new WHMatSpec {
                    MatID = info.MatID
                });

                WHMatSpec findMatSpec = matSpecList.Find(p => p.ID == info.MatSpecID);

                decimal mainUnitAmount = 1;
                while (findMatSpec != null && findMatSpec.ChangeUnit != info.UnitCode)
                {
                    mainUnitAmount = mainUnitAmount * findMatSpec.Amount;

                    findMatSpec = matSpecList.Find(p => p.ID == findMatSpec.ChangeUnit);
                    if (findMatSpec == null)
                    {
                        break;
                    }
                }

                if (findMatSpec != null && findMatSpec.ChangeUnit == info.UnitCode)
                {
                    mainUnitAmount = mainUnitAmount * findMatSpec.Amount;
                }
                info.MainUnitAmount = mainUnitAmount;

                return(info);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }