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 PROMOTIONHelper
{
#region 获取促销信息表列表
///
/// 获取促销信息表列表
///
/// 事务管理器
/// 促销类型
/// 促销状态
/// 1:有效,2:审核中,0:无效
///
/// 服务区内码集合
/// 数据总数量
/// 查询页码数
/// 每显示行数
/// 排序字段
///
public static List GetPROMOTIONList(Transaction transaction, int? PromotionType,
int? PromotionStatus, string Serverpart_IDS, ref int TotalCount, int PageIndex = 1, int PageSize = 10, string SortStr = "")
{
List PROMOTIONList = new List();
string WhereSQL = "", RowFilterSQL = "";
//查询促销类型
if (PromotionType != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "SALESPROMOTE_TYPE = " + PromotionType;
}
//查询促销状态
if (PromotionStatus != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "SALESPROMOTE_STATE = " + PromotionStatus;
}
//查询服务区内码
if (!string.IsNullOrWhiteSpace(Serverpart_IDS))
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "SERVERPART_IDS = '" + Serverpart_IDS + "'";
}
DataTable dtPROMOTION = new Business.PROMOTION(transaction).FillDataTable(WhereSQL);
if (RowFilterSQL != "")
{
dtPROMOTION.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtPROMOTION.DefaultView.Sort = SortStr;
dtPROMOTION = dtPROMOTION.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtPROMOTION.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtPROMOTION = CommonHelper.GetDataTableWithPageSize(dtPROMOTION, PageSize, PageIndex);
foreach (DataRow drPROMOTION in dtPROMOTION.Rows)
{
Model.PROMOTIONModel promotionModel = new Model.PROMOTIONModel();
promotionModel.PROMOTION_ID = drPROMOTION["PROMOTION_ID"].TryParseToInt(); //内码
promotionModel.MEMBERSHIP_IDS = drPROMOTION["MEMBERSHIP_IDS"].ToString(); //会员内码
promotionModel.MEMBERSHIP_TYPE = drPROMOTION["MEMBERSHIP_TYPE"].TryParseToInt(); //会员类型
promotionModel.MEMBERSHIP_LEVEL = drPROMOTION["MEMBERSHIP_LEVEL"].TryParseToInt(); //会员等级
promotionModel.SERVERPART_IDS = drPROMOTION["SERVERPART_IDS"].ToString(); //服务区
promotionModel.SERVERPARTSHOP_IDS = drPROMOTION["SERVERPARTSHOP_IDS"].ToString(); //门店内码集合
if (!string.IsNullOrWhiteSpace(promotionModel.SERVERPARTSHOP_IDS))
{
//解析门店名称
string _SHOP_NAMES = "";
foreach (Business.SERVERPARTSHOP _SERVERPARTSHOP in new Business.SERVERPARTSHOP(transaction).FillCollection(
"WHERE SERVERPARTSHOP_ID IN (" + promotionModel.SERVERPARTSHOP_IDS + ")"))
{
_SHOP_NAMES += (_SHOP_NAMES == "" ? "" : ",") + _SERVERPARTSHOP.SHOPNAME;
}
promotionModel.SHOP_NAMES = _SHOP_NAMES;
}
promotionModel.COMMODITYTYPE_IDS = drPROMOTION["COMMODITYTYPE_IDS"].ToString(); //商品类型
promotionModel.COMMODITY_IDS = drPROMOTION["COMMODITY_IDS"].ToString(); //商品名称
promotionModel.CONDITION_SKU = drPROMOTION["CONDITION_SKU"].ToString(); //条件商品编码
promotionModel.SALESPROMOTE_STARTDATE = drPROMOTION["SALESPROMOTE_STARTDATE"].TryParseToDateTime(); //促销开始时间
promotionModel.SALESPROMOTE_ENDDATE = drPROMOTION["SALESPROMOTE_ENDDATE"].TryParseToDateTime(); //促销结束时间
promotionModel.SALESPROMOTE_TYPE = drPROMOTION["SALESPROMOTE_TYPE"].TryParseToInt(); //促销类型
promotionModel.SALESPROMOTE_NAME = drPROMOTION["SALESPROMOTE_NAME"].ToString(); //促销名称
promotionModel.THRESHOLD_AMOUNT = drPROMOTION["THRESHOLD_AMOUNT"].TryParseToDouble(); //促销起点金额
promotionModel.DISCOUNT_RATE = drPROMOTION["DISCOUNT_RATE"].TryParseToDouble(); //折扣金额
promotionModel.SALESPROMOTE_VIP = drPROMOTION["SALESPROMOTE_VIP"].TryParseToShort(); //会员促销
promotionModel.SALESPROMOTE_STATE = drPROMOTION["SALESPROMOTE_STATE"].TryParseToShort(); //促销状态
promotionModel.TICKET_PREFIX = drPROMOTION["TICKET_PREFIX"].ToString(); //小票前缀
promotionModel.STAFF_ID = drPROMOTION["STAFF_ID"].TryParseToInt(); //操作员内码
promotionModel.STAFF_NAME = drPROMOTION["STAFF_NAME"].ToString(); //操作人员
promotionModel.OPERATE_DATE = drPROMOTION["OPERATE_DATE"].TryParseToDateTime(); //操作时间
promotionModel.SALESPROMOTE_DESC = drPROMOTION["SALESPROMOTE_DESC"].ToString(); //备注
PROMOTIONList.Add(promotionModel);
}
return PROMOTIONList;
}
#endregion
#region 获取促销信息表明细
///
/// 获取促销信息表明细
///
/// 事务管理器
/// 促销信息表内码
///
public static Model.PROMOTIONModel GetPROMOTIONDetail(Transaction transaction, int PROMOTIONId)
{
Model.PROMOTIONModel promotionModel = new Model.PROMOTIONModel();
Business.PROMOTION _PROMOTION = new Business.PROMOTION(transaction);
_PROMOTION.PROMOTION_ID = PROMOTIONId;
if (_PROMOTION.Select())
{
promotionModel.PROMOTION_ID = _PROMOTION.PROMOTION_ID; //内码
promotionModel.MEMBERSHIP_IDS = _PROMOTION.MEMBERSHIP_IDS; //会员内码
promotionModel.MEMBERSHIP_TYPE = _PROMOTION.MEMBERSHIP_TYPE; //会员类型
promotionModel.MEMBERSHIP_LEVEL = _PROMOTION.MEMBERSHIP_LEVEL; //会员等级
promotionModel.SERVERPART_IDS = _PROMOTION.SERVERPART_IDS; //服务区
promotionModel.SERVERPARTSHOP_IDS = _PROMOTION.SERVERPARTSHOP_IDS; //门店内码集合
if (!string.IsNullOrWhiteSpace(promotionModel.SERVERPARTSHOP_IDS))
{
//解析门店名称
string _SHOP_NAMES = "";
foreach (Business.SERVERPARTSHOP _SERVERPARTSHOP in new Business.SERVERPARTSHOP(transaction).FillCollection(
"WHERE SERVERPARTSHOP_ID IN (" + promotionModel.SERVERPARTSHOP_IDS + ")"))
{
_SHOP_NAMES += (_SHOP_NAMES == "" ? "" : ",") + _SERVERPARTSHOP.SHOPNAME;
}
promotionModel.SHOP_NAMES = _SHOP_NAMES;
}
promotionModel.COMMODITYTYPE_IDS = _PROMOTION.COMMODITYTYPE_IDS; //商品类型
promotionModel.COMMODITY_IDS = _PROMOTION.COMMODITY_IDS; //商品名称
promotionModel.CONDITION_SKU = _PROMOTION.CONDITION_SKU; //条件商品编码
promotionModel.SALESPROMOTE_STARTDATE = _PROMOTION.SALESPROMOTE_STARTDATE; //促销开始时间
promotionModel.SALESPROMOTE_ENDDATE = _PROMOTION.SALESPROMOTE_ENDDATE; //促销结束时间
promotionModel.SALESPROMOTE_TYPE = _PROMOTION.SALESPROMOTE_TYPE; //促销类型
promotionModel.SALESPROMOTE_NAME = _PROMOTION.SALESPROMOTE_NAME; //促销名称
promotionModel.THRESHOLD_AMOUNT = _PROMOTION.THRESHOLD_AMOUNT; //促销起点金额
promotionModel.DISCOUNT_RATE = _PROMOTION.DISCOUNT_RATE; //折扣金额
promotionModel.SALESPROMOTE_VIP = _PROMOTION.SALESPROMOTE_VIP; //会员促销
promotionModel.SALESPROMOTE_STATE = _PROMOTION.SALESPROMOTE_STATE; //促销状态
promotionModel.TICKET_PREFIX = _PROMOTION.TICKET_PREFIX; //小票前缀
promotionModel.STAFF_ID = _PROMOTION.STAFF_ID; //操作员内码
promotionModel.STAFF_NAME = _PROMOTION.STAFF_NAME; //操作人员
promotionModel.OPERATE_DATE = _PROMOTION.OPERATE_DATE; //操作时间
promotionModel.SALESPROMOTE_DESC = _PROMOTION.SALESPROMOTE_DESC; //备注
}
return promotionModel;
}
#endregion
#region 同步促销信息表
///
/// 同步促销信息表
///
/// 事务管理器
/// 促销信息表对象
///
public static bool SynchroPROMOTION(Transaction transaction, Model.PROMOTIONModel promotionModel)
{
bool SynchroFlag = true;
Business.PROMOTION _PROMOTION = new Business.PROMOTION(transaction);
if (promotionModel.PROMOTION_ID != null)
{
_PROMOTION.PROMOTION_ID = promotionModel.PROMOTION_ID;
if (_PROMOTION.Select())
{
SynchroModelToObject(_PROMOTION, promotionModel);
_PROMOTION.Update();
}
else
{
SynchroFlag = false;
}
}
else
{
SynchroModelToObject(_PROMOTION, promotionModel);
_PROMOTION.Insert();
}
return SynchroFlag;
}
#region 赋值促销信息表数据对象
///
/// 赋值促销信息表数据对象
///
///
///
public static void SynchroModelToObject(Business.PROMOTION _PROMOTION, Model.PROMOTIONModel promotionModel)
{
_PROMOTION.MEMBERSHIP_IDS = promotionModel.MEMBERSHIP_IDS; //会员内码
_PROMOTION.MEMBERSHIP_TYPE = promotionModel.MEMBERSHIP_TYPE; //会员类型
_PROMOTION.MEMBERSHIP_LEVEL = promotionModel.MEMBERSHIP_LEVEL; //会员等级
_PROMOTION.SERVERPART_IDS = promotionModel.SERVERPART_IDS; //服务区
_PROMOTION.SERVERPARTSHOP_IDS = promotionModel.SERVERPARTSHOP_IDS; //门店名称
_PROMOTION.COMMODITYTYPE_IDS = promotionModel.COMMODITYTYPE_IDS; //商品类型
_PROMOTION.COMMODITY_IDS = promotionModel.COMMODITY_IDS; //商品名称
_PROMOTION.CONDITION_SKU = promotionModel.CONDITION_SKU; //条件商品编码
_PROMOTION.SALESPROMOTE_STARTDATE = promotionModel.SALESPROMOTE_STARTDATE; //促销开始时间
_PROMOTION.SALESPROMOTE_ENDDATE = promotionModel.SALESPROMOTE_ENDDATE; //促销结束时间
_PROMOTION.SALESPROMOTE_TYPE = promotionModel.SALESPROMOTE_TYPE; //促销类型
_PROMOTION.SALESPROMOTE_NAME = promotionModel.SALESPROMOTE_NAME; //促销名称
_PROMOTION.THRESHOLD_AMOUNT = promotionModel.THRESHOLD_AMOUNT; //促销起点金额
_PROMOTION.DISCOUNT_RATE = promotionModel.DISCOUNT_RATE; //折扣金额
_PROMOTION.SALESPROMOTE_VIP = promotionModel.SALESPROMOTE_VIP; //会员促销
_PROMOTION.SALESPROMOTE_STATE = promotionModel.SALESPROMOTE_STATE; //促销状态
_PROMOTION.TICKET_PREFIX = promotionModel.TICKET_PREFIX; //小票前缀
_PROMOTION.STAFF_ID = promotionModel.STAFF_ID; //操作员内码
_PROMOTION.STAFF_NAME = promotionModel.STAFF_NAME; //操作人员
_PROMOTION.OPERATE_DATE = promotionModel.OPERATE_DATE; //操作时间
_PROMOTION.SALESPROMOTE_DESC = promotionModel.SALESPROMOTE_DESC; //备注
}
#endregion
#endregion
#region 更新促销信息状态
///
/// 更新促销信息状态
///
/// 事务管理器
/// 促销信息表内码
/// 促销状态
///
public static bool UpdatePromotionstatus(Transaction transaction, int? PromotionId, int PromotionStatus)
{
bool UpdateFlag = false;
if (PromotionId != null)
{
Business.PROMOTION _PROMOTION = new Business.PROMOTION(transaction);
_PROMOTION.PROMOTION_ID = PromotionId;
if (_PROMOTION.Select())
{
_PROMOTION.SALESPROMOTE_STATE = (short)PromotionStatus;
UpdateFlag = _PROMOTION.Update();
}
}
return UpdateFlag;
}
#endregion
#region 删除促销信息表
///
/// 删除促销信息表
///
/// 事务管理器
/// 促销信息表内码
///
public static bool DeletePROMOTION(Transaction transaction, int? PROMOTIONId)
{
bool DeleteFlag = false;
if (PROMOTIONId != null)
{
Business.PROMOTION _PROMOTION = new Business.PROMOTION(transaction);
_PROMOTION.PROMOTION_ID = PROMOTIONId;
if (_PROMOTION.Select())
{
_PROMOTION.Delete();
DeleteFlag = true;
}
}
return DeleteFlag;
}
#endregion
}
}