using System;
using System.Collections.Generic;
using System.Data;
using SuperMap.RealEstate.ServiceModel;
using Business = SuperMap.RealEstate.BasicArchives.Storage.Business;
namespace GSYWApi.Helper
{
///
/// 商品管理相关方法
///
public class COMMODITYHelper
{
#region 获取商品信息列表
///
/// 获取商品信息列表
///
/// 事务管理器
/// 服务区内码
/// 记录总数量
/// 查询页码
/// 每页显示行数
/// 模糊查询内容:商品名称、条码
/// 商品类别
/// 商品业态
/// 商品状态
/// 排序字段
///
public static List GetCOMMODITYList(Transaction transaction,
int? ServerpartId, ref int TotalCount, int PageIndex = 1, int PageSize = 10, string keyword = "",
int? COMMODITY_TYPE = null, int? BUSINESSTYPE = null, int? COMMODITY_STATE = null, string SortStr = "")
{
List COMMODITYList = new List();
string WhereSQL = "", RowFilterSQL = "";
//查询服务区内码
if (ServerpartId != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "SERVERPART_ID = " + ServerpartId;
}
//查询商品类别
if (COMMODITY_TYPE != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "COMMODITY_TYPE = '" + COMMODITY_TYPE + "'";
}
//查询商品业态
if (BUSINESSTYPE != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "BUSINESSTYPE = " + BUSINESSTYPE;
}
//查询商品状态
if (COMMODITY_STATE != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "COMMODITY_STATE = " + COMMODITY_STATE;
}
DataTable dtCOMMODITY = new Business.COMMODITY(transaction).FillDataTable(WhereSQL);
if (!string.IsNullOrWhiteSpace(keyword))
{
RowFilterSQL = string.Format("COMMODITY_NAME like '%{0}%' or COMMODITY_BARCODE like '%{0}%'", keyword);
}
if (RowFilterSQL != "")
{
dtCOMMODITY.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtCOMMODITY.DefaultView.Sort = SortStr;
dtCOMMODITY = dtCOMMODITY.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtCOMMODITY.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtCOMMODITY = CommonHelper.GetDataTableWithPageSize(dtCOMMODITY, PageSize, PageIndex);
DataTable dtCommodityType = new Business.COMMODITYTYPE(transaction).FillDataTable("");
foreach (DataRow drCOMMODITY in dtCOMMODITY.Rows)
{
Model.COMMODITYModel commodityModel = new Model.COMMODITYModel();
commodityModel.COMMODITY_ID = drCOMMODITY["COMMODITY_ID"].TryParseToInt(); //商品内码
commodityModel.COMMODITY_TYPE = drCOMMODITY["COMMODITY_TYPE"].TryParseToInt(); //商品类型
if (commodityModel.COMMODITY_TYPE != null && dtCommodityType.Select(
"COMMODITYTYPE_ID = " + commodityModel.COMMODITY_TYPE).Length > 0)
{
//商品类型名称
commodityModel.COMMODITY_TYPENAME = dtCommodityType.Select("COMMODITYTYPE_ID = " +
commodityModel.COMMODITY_TYPE)[0]["COMMODITYTYPE_NAME"].ToString();
}
commodityModel.COMMODITY_CODE = drCOMMODITY["COMMODITY_CODE"].ToString(); //商品编码
commodityModel.COMMODITY_NAME = drCOMMODITY["COMMODITY_NAME"].ToString(); //商品名称
commodityModel.COMMODITY_BARCODE = drCOMMODITY["COMMODITY_BARCODE"].ToString(); //商品条码
commodityModel.COMMODITY_SERVERCODE = drCOMMODITY["COMMODITY_SERVERCODE"].ToString(); //商品服务区编码
commodityModel.COMMODITY_ALLNAME = drCOMMODITY["COMMODITY_ALLNAME"].ToString(); //商品全名
commodityModel.COMMODITY_EN = drCOMMODITY["COMMODITY_EN"].ToString(); //商品英文缩写
commodityModel.COMMODITY_UNIT = drCOMMODITY["COMMODITY_UNIT"].ToString(); //商品单位
commodityModel.COMMODITY_RULE = drCOMMODITY["COMMODITY_RULE"].ToString(); //商品规格
commodityModel.COMMODITY_ORI = drCOMMODITY["COMMODITY_ORI"].ToString(); //商品产地
commodityModel.COMMODITY_GRADE = drCOMMODITY["COMMODITY_GRADE"].ToString(); //商品质量等级
commodityModel.COMMODITY_CURRPRICE = drCOMMODITY["COMMODITY_CURRPRICE"].TryParseToDouble(); //商品当前价格
commodityModel.COMMODITY_ORIPRICE = drCOMMODITY["COMMODITY_ORIPRICE"].TryParseToDouble(); //商品原价
commodityModel.COMMODITY_RETAILPRICE = drCOMMODITY["COMMODITY_RETAILPRICE"].TryParseToDouble(); //商品零售价
commodityModel.COMMODITY_MAXPRICE = drCOMMODITY["COMMODITY_MAXPRICE"].TryParseToDouble(); //商品最高价
commodityModel.COMMODITY_MINPRICE = drCOMMODITY["COMMODITY_MINPRICE"].TryParseToDouble(); //商品最低价
commodityModel.COMMODITY_PROMOTIONPRICE = drCOMMODITY["COMMODITY_PROMOTIONPRICE"].TryParseToDouble(); //商品促销价
commodityModel.COMMODITY_UNIFORMPRICE = drCOMMODITY["COMMODITY_UNIFORMPRICE"].TryParseToDouble(); //商品统一价
commodityModel.COMMODITY_GROUPPRICE = drCOMMODITY["COMMODITY_GROUPPRICE"].TryParseToDouble(); //商品团购价
commodityModel.COMMODITY_MEMBERPRICE = drCOMMODITY["COMMODITY_MEMBERPRICE"].TryParseToDouble(); //商品会员价
commodityModel.COMMODITY_PURCHASEPRICE = drCOMMODITY["COMMODITY_PURCHASEPRICE"].TryParseToDouble(); //商品进货价
commodityModel.COMMODITY_STATE = drCOMMODITY["COMMODITY_STATE"].TryParseToInt(); //商品状态
commodityModel.COMMODITY_DESC = drCOMMODITY["COMMODITY_DESC"].ToString(); //商品说明
commodityModel.SUPPLIER_ID = drCOMMODITY["SUPPLIER_ID"].TryParseToInt(); //商品供应商内码
commodityModel.COMMODITY_BRAND = drCOMMODITY["COMMODITY_BRAND"].ToString(); //品牌编码
commodityModel.DUTY_PARAGRAPH = drCOMMODITY["DUTY_PARAGRAPH"].TryParseToShort(); //进价税率
commodityModel.RETAIL_DUTY = drCOMMODITY["RETAIL_DUTY"].TryParseToShort(); //零售税率
commodityModel.COMMODITY_COUNT = drCOMMODITY["COMMODITY_COUNT"].TryParseToLong(); //货物剩余数量
commodityModel.COMMODITY_FROZENCOUNT = drCOMMODITY["COMMODITY_FROZENCOUNT"].TryParseToLong(); //货物冻结数量
commodityModel.ADDTIME = drCOMMODITY["ADDTIME"].TryParseToDateTime(); //添加时间
commodityModel.CANSALE = drCOMMODITY["CANSALE"].TryParseToInt(); //是否可售
commodityModel.SERVERPART_ID = drCOMMODITY["SERVERPART_ID"].TryParseToInt(); //服务区内码
commodityModel.PROVINCE_CODE = drCOMMODITY["PROVINCE_CODE"].TryParseToInt(); //省份编码
commodityModel.BUSINESSTYPE = drCOMMODITY["BUSINESSTYPE"].TryParseToInt(); //商品业态
commodityModel.ISBULK = drCOMMODITY["ISBULK"].TryParseToInt(); //是否散装
commodityModel.METERINGMETHOD = drCOMMODITY["METERINGMETHOD"].TryParseToInt(); //称重方式
commodityModel.OPERATE_DATE = drCOMMODITY["OPERATE_DATE"].TryParseToDateTime(); //修改时间
commodityModel.COMMODITY_SYMBOL = drCOMMODITY["COMMODITY_SYMBOL"].ToString(); //商品标识
commodityModel.COMMODITY_HOTKEY = drCOMMODITY["COMMODITY_HOTKEY"].ToString(); //商品快捷键
commodityModel.USERDEFINEDTYPE_ID = drCOMMODITY["USERDEFINEDTYPE_ID"].TryParseToInt(); //自定义类别内码
COMMODITYList.Add(commodityModel);
}
return COMMODITYList;
}
#endregion
#region 获取商品管理明细
///
/// 获取商品管理明细
///
/// 事务管理器
/// 商品内码
///
public static Model.COMMODITYModel GetCOMMODITYDetail(Transaction transaction, int COMMODITYId)
{
Model.COMMODITYModel commodityModel = new Model.COMMODITYModel();
Business.COMMODITY _COMMODITY = new Business.COMMODITY(transaction);
_COMMODITY.COMMODITY_ID = COMMODITYId;
if (_COMMODITY.Select())
{
commodityModel.COMMODITY_HOTKEY = _COMMODITY.COMMODITY_HOTKEY; //商品快捷键
commodityModel.USERDEFINEDTYPE_ID = _COMMODITY.USERDEFINEDTYPE_ID; //自定义类别内码
commodityModel.COMMODITY_ID = _COMMODITY.COMMODITY_ID; //商品内码
commodityModel.COMMODITY_TYPE = _COMMODITY.COMMODITY_TYPE.TryParseToInt(); //商品类型
commodityModel.COMMODITY_CODE = _COMMODITY.COMMODITY_CODE; //商品编码
commodityModel.COMMODITY_NAME = _COMMODITY.COMMODITY_NAME; //商品名称
commodityModel.COMMODITY_BARCODE = _COMMODITY.COMMODITY_BARCODE; //商品条码
commodityModel.COMMODITY_SERVERCODE = _COMMODITY.COMMODITY_SERVERCODE; //商品服务区编码
commodityModel.COMMODITY_ALLNAME = _COMMODITY.COMMODITY_ALLNAME; //商品全名
commodityModel.COMMODITY_EN = _COMMODITY.COMMODITY_EN; //商品英文缩写
commodityModel.COMMODITY_UNIT = _COMMODITY.COMMODITY_UNIT; //商品单位
commodityModel.COMMODITY_RULE = _COMMODITY.COMMODITY_RULE; //商品规格
commodityModel.COMMODITY_ORI = _COMMODITY.COMMODITY_ORI; //商品产地
commodityModel.COMMODITY_GRADE = _COMMODITY.COMMODITY_GRADE; //商品质量等级
commodityModel.COMMODITY_CURRPRICE = _COMMODITY.COMMODITY_CURRPRICE; //商品当前价格
commodityModel.COMMODITY_ORIPRICE = _COMMODITY.COMMODITY_ORIPRICE; //商品原价
commodityModel.COMMODITY_RETAILPRICE = _COMMODITY.COMMODITY_RETAILPRICE; //商品零售价
commodityModel.COMMODITY_MAXPRICE = _COMMODITY.COMMODITY_MAXPRICE; //商品最高价
commodityModel.COMMODITY_MINPRICE = _COMMODITY.COMMODITY_MINPRICE; //商品最低价
commodityModel.COMMODITY_PROMOTIONPRICE = _COMMODITY.COMMODITY_PROMOTIONPRICE; //商品促销价
commodityModel.COMMODITY_UNIFORMPRICE = _COMMODITY.COMMODITY_UNIFORMPRICE; //商品统一价
commodityModel.COMMODITY_GROUPPRICE = _COMMODITY.COMMODITY_GROUPPRICE; //商品团购价
commodityModel.COMMODITY_MEMBERPRICE = _COMMODITY.COMMODITY_MEMBERPRICE; //商品会员价
commodityModel.COMMODITY_PURCHASEPRICE = _COMMODITY.COMMODITY_PURCHASEPRICE; //商品进货价
commodityModel.COMMODITY_STATE = _COMMODITY.COMMODITY_STATE; //商品状态
commodityModel.COMMODITY_DESC = _COMMODITY.COMMODITY_DESC; //商品说明
commodityModel.SUPPLIER_ID = _COMMODITY.SUPPLIER_ID; //商品供应商内码
commodityModel.COMMODITY_BRAND = _COMMODITY.COMMODITY_BRAND; //品牌编码
commodityModel.DUTY_PARAGRAPH = _COMMODITY.DUTY_PARAGRAPH; //进价税率
commodityModel.RETAIL_DUTY = _COMMODITY.RETAIL_DUTY; //零售税率
commodityModel.COMMODITY_COUNT = _COMMODITY.COMMODITY_COUNT; //货物剩余数量
commodityModel.COMMODITY_FROZENCOUNT = _COMMODITY.COMMODITY_FROZENCOUNT; //货物冻结数量
commodityModel.ADDTIME = _COMMODITY.ADDTIME; //添加时间
commodityModel.CANSALE = _COMMODITY.CANSALE; //是否可售
commodityModel.SERVERPART_ID = _COMMODITY.SERVERPART_ID; //服务区内码
commodityModel.PROVINCE_CODE = _COMMODITY.PROVINCE_CODE; //省份编码
commodityModel.BUSINESSTYPE = _COMMODITY.BUSINESSTYPE; //商品业态
commodityModel.ISBULK = _COMMODITY.ISBULK; //是否散装
commodityModel.METERINGMETHOD = _COMMODITY.METERINGMETHOD; //称重方式
commodityModel.OPERATE_DATE = _COMMODITY.OPERATE_DATE; //修改时间
commodityModel.COMMODITY_SYMBOL = _COMMODITY.COMMODITY_SYMBOL; //商品标识
}
return commodityModel;
}
#endregion
#region 同步商品信息
///
/// 同步商品信息
///
///
///
///
public static bool SynchroCOMMODITY(Transaction transaction, Model.COMMODITYModel commodityModel)
{
bool SynchroFlag = true;
if (commodityModel.SERVERPART_ID != null)
{
Business.SERVERPART _SERVERPART = new Business.SERVERPART(transaction);
_SERVERPART.SERVERPART_ID = commodityModel.SERVERPART_ID;
if (_SERVERPART.Select())
{
commodityModel.COMMODITY_SERVERCODE = _SERVERPART.SERVERPART_CODE;
}
}
Business.COMMODITY _COMMODITY = new Business.COMMODITY(transaction);
if (commodityModel.COMMODITY_ID != null)
{
_COMMODITY.COMMODITY_ID = commodityModel.COMMODITY_ID;
if (_COMMODITY.Select())
{
SynchroModelToObject(_COMMODITY, commodityModel);
_COMMODITY.Update();
}
else
{
SynchroFlag = false;
}
}
else
{
SynchroModelToObject(_COMMODITY, commodityModel);
_COMMODITY.Insert();
}
return SynchroFlag;
}
#region 赋值商品管理数据对象
///
/// 赋值商品管理数据对象
///
///
///
public static void SynchroModelToObject(Business.COMMODITY _COMMODITY, Model.COMMODITYModel commodityModel)
{
_COMMODITY.COMMODITY_HOTKEY = commodityModel.COMMODITY_HOTKEY; //商品快捷键
_COMMODITY.USERDEFINEDTYPE_ID = commodityModel.USERDEFINEDTYPE_ID; //自定义类别内码
_COMMODITY.COMMODITY_TYPE = commodityModel.COMMODITY_TYPE.ToString(); //商品类型
_COMMODITY.COMMODITY_CODE = commodityModel.COMMODITY_CODE; //商品编码
_COMMODITY.COMMODITY_NAME = commodityModel.COMMODITY_NAME; //商品名称
_COMMODITY.COMMODITY_BARCODE = commodityModel.COMMODITY_BARCODE; //商品条码
_COMMODITY.COMMODITY_SERVERCODE = commodityModel.COMMODITY_SERVERCODE; //商品服务区编码
_COMMODITY.COMMODITY_ALLNAME = commodityModel.COMMODITY_ALLNAME; //商品全名
_COMMODITY.COMMODITY_EN = commodityModel.COMMODITY_EN; //商品英文缩写
_COMMODITY.COMMODITY_UNIT = commodityModel.COMMODITY_UNIT; //商品单位
_COMMODITY.COMMODITY_RULE = commodityModel.COMMODITY_RULE; //商品规格
_COMMODITY.COMMODITY_ORI = commodityModel.COMMODITY_ORI; //商品产地
_COMMODITY.COMMODITY_GRADE = commodityModel.COMMODITY_GRADE; //商品质量等级
_COMMODITY.COMMODITY_CURRPRICE = commodityModel.COMMODITY_CURRPRICE; //商品当前价格
_COMMODITY.COMMODITY_ORIPRICE = commodityModel.COMMODITY_ORIPRICE; //商品原价
_COMMODITY.COMMODITY_RETAILPRICE = commodityModel.COMMODITY_RETAILPRICE; //商品零售价
_COMMODITY.COMMODITY_MAXPRICE = commodityModel.COMMODITY_MAXPRICE; //商品最高价
_COMMODITY.COMMODITY_MINPRICE = commodityModel.COMMODITY_MINPRICE; //商品最低价
_COMMODITY.COMMODITY_PROMOTIONPRICE = commodityModel.COMMODITY_PROMOTIONPRICE; //商品促销价
_COMMODITY.COMMODITY_UNIFORMPRICE = commodityModel.COMMODITY_UNIFORMPRICE; //商品统一价
_COMMODITY.COMMODITY_GROUPPRICE = commodityModel.COMMODITY_GROUPPRICE; //商品团购价
_COMMODITY.COMMODITY_MEMBERPRICE = commodityModel.COMMODITY_MEMBERPRICE; //商品会员价
_COMMODITY.COMMODITY_PURCHASEPRICE = commodityModel.COMMODITY_PURCHASEPRICE; //商品进货价
_COMMODITY.COMMODITY_STATE = commodityModel.COMMODITY_STATE; //商品状态
_COMMODITY.COMMODITY_DESC = commodityModel.COMMODITY_DESC; //商品说明
_COMMODITY.SUPPLIER_ID = commodityModel.SUPPLIER_ID; //商品供应商内码
_COMMODITY.COMMODITY_BRAND = commodityModel.COMMODITY_BRAND; //品牌编码
_COMMODITY.DUTY_PARAGRAPH = commodityModel.DUTY_PARAGRAPH; //进价税率
_COMMODITY.RETAIL_DUTY = commodityModel.RETAIL_DUTY; //零售税率
_COMMODITY.COMMODITY_COUNT = commodityModel.COMMODITY_COUNT; //货物剩余数量
_COMMODITY.COMMODITY_FROZENCOUNT = commodityModel.COMMODITY_FROZENCOUNT; //货物冻结数量
_COMMODITY.ADDTIME = commodityModel.ADDTIME; //添加时间
_COMMODITY.CANSALE = commodityModel.CANSALE; //是否可售
_COMMODITY.SERVERPART_ID = commodityModel.SERVERPART_ID; //服务区内码
_COMMODITY.PROVINCE_CODE = commodityModel.PROVINCE_CODE; //省份编码
_COMMODITY.BUSINESSTYPE = commodityModel.BUSINESSTYPE; //商品业态
_COMMODITY.ISBULK = commodityModel.ISBULK; //是否散装
_COMMODITY.METERINGMETHOD = commodityModel.METERINGMETHOD; //称重方式
_COMMODITY.OPERATE_DATE = commodityModel.OPERATE_DATE; //修改时间
_COMMODITY.COMMODITY_SYMBOL = commodityModel.COMMODITY_SYMBOL; //商品标识
}
#endregion
#endregion
#region 删除商品信息
///
/// 删除商品信息
///
/// 事务管理器
/// 商品内码
///
public static bool DeleteCOMMODITY(Transaction transaction, int? COMMODITYId)
{
bool DeleteFlag = false;
if (COMMODITYId != null)
{
Business.COMMODITY _COMMODITY = new Business.COMMODITY(transaction);
_COMMODITY.COMMODITY_ID = COMMODITYId;
if (_COMMODITY.Select())
{
_COMMODITY.Delete();
DeleteFlag = true;
}
}
return DeleteFlag;
}
#endregion
}
}