using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; using System.ServiceModel; namespace SiaSun.LMS.Implement { [ServiceBehavior(IncludeExceptionDetailInFaults = true, InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple, MaxItemsInObjectGraph = int.MaxValue)] public class S_GoodsService : S_BaseService, SiaSun.LMS.Interface.I_GoodsService { public S_GoodsService() { } /// /// /// /// 物料编号 /// public SiaSun.LMS.Model.GOODS_MAIN GoodsGetModelGoodsID(int GOODS_ID) { return this._P_GOODS_MAIN.GetModel(GOODS_ID); } public SiaSun.LMS.Model.GOODS_MAIN GoodsGetModelGoodsCode(string GOODS_CODE) { return this._P_GOODS_MAIN.GetModel(GOODS_CODE); } /// /// /// /// 物料编号 /// public SiaSun.LMS.Model.GOODS_CLASS GoodsClassGetModelGoodsClassID(int GOODS_CLASS_ID) { return this._P_GOODS_CLASS.GetModel(GOODS_CLASS_ID); } /// /// /// /// 物料编号 /// public IList GoodsGetListGoodsClassID(int GOODS_CLASS_ID) { return this._P_GOODS_MAIN.GetListGoodsClassID(GOODS_CLASS_ID); } public IList GoodsPropertyGetListGoodsTypeID(int GOODS_TYPE_ID) { return this._P_GOODS_PROPERTY.GetListGoodsTypeID(GOODS_TYPE_ID); } /// /// 四川电力 数据库物料属性动态赋值 /// /// /// /// /// /// /// public bool GoodsPropertySetValue(int GOODS_ID, T objTarget, object objSource, out string sResult) { bool bResult = true; sResult = string.Empty; SiaSun.LMS.Model.GOODS_MAIN mGOODS_MAIN = this._P_GOODS_MAIN.GetModel(GOODS_ID); SiaSun.LMS.Model.GOODS_CLASS mGOODS_CLASS = this._P_GOODS_CLASS.GetModel(mGOODS_MAIN.GOODS_CLASS_ID); IList lsGOODS_PROPERTY = this._P_GOODS_PROPERTY.GetListGoodsTypeID(mGOODS_CLASS.GOODS_TYPE_ID); string GOODS_PROPERTY_CODE = string.Empty; string GOODS_PROPERTY_SOURCE = string.Empty; string GOODS_PROPERTY_VALUE = string.Empty; foreach (SiaSun.LMS.Model.GOODS_PROPERTY mGOODS_PROPERTY in lsGOODS_PROPERTY) { try { GOODS_PROPERTY_CODE = mGOODS_PROPERTY.GOODS_PROPERTY_FIELD; GOODS_PROPERTY_SOURCE = mGOODS_PROPERTY.GOODS_PROPERTY_CODE; if (string.IsNullOrEmpty(GOODS_PROPERTY_CODE)) { continue; } PropertyInfo[] propertys_source = objSource.GetType().GetProperties(); foreach (PropertyInfo pi in propertys_source) { if (pi.Name.Equals(GOODS_PROPERTY_CODE, StringComparison.CurrentCultureIgnoreCase)) { GOODS_PROPERTY_VALUE = pi.GetValue(objSource, null) == null ? string.Empty : pi.GetValue(objSource, null).ToString(); } } if (string.IsNullOrEmpty(GOODS_PROPERTY_VALUE)) { continue; } PropertyInfo[] propertys_in = objTarget.GetType().GetProperties(); foreach (PropertyInfo pi in propertys_in) { if (pi.Name.Equals(GOODS_PROPERTY_CODE, StringComparison.CurrentCultureIgnoreCase)) { pi.SetValue(objTarget, GOODS_PROPERTY_VALUE, null); } } } catch (Exception ex) { bResult = false; sResult = ex.StackTrace; } } return bResult; } /// /// /// /// /// /// /// public bool GoodsPropertyCheck(int GOODS_ID, Object mObj, out string sResult) { bool bResult = true; sResult = string.Empty; SiaSun.LMS.Model.GOODS_MAIN mGOODS_MAIN = this._P_GOODS_MAIN.GetModel(GOODS_ID); SiaSun.LMS.Model.GOODS_CLASS mGOODS_CLASS = this._P_GOODS_CLASS.GetModel(mGOODS_MAIN.GOODS_CLASS_ID); IList lsGOODS_PROPERTY = this._P_GOODS_PROPERTY.GetListGoodsTypeID(mGOODS_CLASS.GOODS_TYPE_ID); string GOODS_PROPERTY_CODE = string.Empty; string GOODS_PROPERTY_VALUE = string.Empty; foreach (SiaSun.LMS.Model.GOODS_PROPERTY mGOODS_PROPERTY in lsGOODS_PROPERTY) { try { GOODS_PROPERTY_CODE = mGOODS_PROPERTY.GOODS_PROPERTY_CODE; PropertyInfo[] propertys = mObj.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { if (pi.Name.Equals(GOODS_PROPERTY_CODE)) { GOODS_PROPERTY_VALUE = pi.GetValue(mObj, null).ToString(); } } //是自定义属性 if ("1".Equals(mGOODS_PROPERTY.GOODS_PROPERTY_VALID) && (string.IsNullOrEmpty(GOODS_PROPERTY_VALUE) || GOODS_PROPERTY_VALUE.Equals("%"))) { bResult = false; sResult = string.Format("{0}为必填项", mGOODS_PROPERTY.GOODS_PROPERTY_NAME); return bResult; } } catch (Exception ex) { sResult += ex.Message; } } return bResult; } public SiaSun.LMS.Model.GOODS_TEMPLATE GoodsTemplateGetModel(int TEMPLATE_ID) { return this._P_GOODS_TEMPLETE.GetModel(TEMPLATE_ID); } public IList GoodsTemplateGetList(int GOODS_ID) { return this._P_GOODS_TEMPLETE.GetList(GOODS_ID); } public IList GoodsTemplateListGetList(int TEMPLATE_ID) { return this._P_GOODS_TEMPLETE_LIST.GetList(TEMPLATE_ID); } } }