/// <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); }
/// <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); }
/// <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; } }