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