You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
7.3 KiB
225 lines
7.3 KiB
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()
|
|
{
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="GOODS_ID">物料编号</param>
|
|
/// <returns></returns>
|
|
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);
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="GOODS_ID">物料编号</param>
|
|
/// <returns></returns>
|
|
public SiaSun.LMS.Model.GOODS_CLASS GoodsClassGetModelGoodsClassID(int GOODS_CLASS_ID)
|
|
{
|
|
return this._P_GOODS_CLASS.GetModel(GOODS_CLASS_ID);
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="GOODS_ID">物料编号</param>
|
|
/// <returns></returns>
|
|
public IList<SiaSun.LMS.Model.GOODS_MAIN> GoodsGetListGoodsClassID(int GOODS_CLASS_ID)
|
|
{
|
|
return this._P_GOODS_MAIN.GetListGoodsClassID(GOODS_CLASS_ID);
|
|
}
|
|
|
|
|
|
|
|
public IList<SiaSun.LMS.Model.GOODS_PROPERTY> GoodsPropertyGetListGoodsTypeID(int GOODS_TYPE_ID)
|
|
{
|
|
return this._P_GOODS_PROPERTY.GetListGoodsTypeID(GOODS_TYPE_ID);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 四川电力 数据库物料属性动态赋值
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="GOODS_ID"></param>
|
|
/// <param name="objIn"></param>
|
|
/// <param name="objSource"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public bool GoodsPropertySetValue<T>(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<SiaSun.LMS.Model.GOODS_PROPERTY> 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;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="GOODS_ID"></param>
|
|
/// <param name="mObj"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
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<SiaSun.LMS.Model.GOODS_PROPERTY> 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<SiaSun.LMS.Model.GOODS_TEMPLATE> GoodsTemplateGetList(int GOODS_ID)
|
|
{
|
|
return this._P_GOODS_TEMPLETE.GetList(GOODS_ID);
|
|
}
|
|
|
|
|
|
public IList<SiaSun.LMS.Model.GOODS_TEMPLATE_LIST> GoodsTemplateListGetList(int TEMPLATE_ID)
|
|
{
|
|
return this._P_GOODS_TEMPLETE_LIST.GetList(TEMPLATE_ID);
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|