using System;
using System.Collections.Generic;
using System.Data;
using SuperMap.RealEstate.ServiceModel;
using Business = SuperMap.RealEstate.ReportDataAnalysis.Business;
using GSYWApi.Helper;
namespace GSYWApi.GeneralMethod
{
///
/// 单品销售数据相关方法
///
public class COMMODITYSALEHelper
{
#region 获取单品销售数据列表
///
/// 获取单品销售数据列表
///
/// 事务管理器
/// 查询结果总数
/// 查询条件对象
public static List GetCOMMODITYSALEList(Transaction transaction,
ref int TotalCount, Models.SearchModel searchModel)
{
List COMMODITYSALEList = new List();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper.GetWhereSQL(
searchModel.SearchParameter, searchModel.QueryType, "", "ENDDATE", "STARTDATE");
if (WhereSQL != "")
{
WhereSQL = "WHERE " + WhereSQL;
}
//查询开始时间
if (searchModel.SearchParameter.STARTDATE != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "ENDDATE >= TO_DATE('" +
searchModel.SearchParameter.STARTDATE.ToString().Split(' ')[0] + "','YYYY/MM/DD')";
}
//查询结束时间
if (searchModel.SearchParameter.ENDDATE != null)
{
WhereSQL += (WhereSQL == "" ? "WHERE " : " AND ") + "ENDDATE < TO_DATE('" +
searchModel.SearchParameter.ENDDATE.ToString().Split(' ')[0] + "','YYYY/MM/DD') + 1";
}
}
DataTable dtCOMMODITYSALE = new Business.COMMODITYSALE(transaction).FillDataTable(WhereSQL);
//增加组合查询条件
if (searchModel.keyWord != null && !string.IsNullOrWhiteSpace(searchModel.keyWord.Key))
{
foreach (string KeyName in searchModel.keyWord.Key.Split(','))
{
RowFilterSQL += (RowFilterSQL == "" ? "" : " or ") +
KeyName + " like '%" + searchModel.keyWord.Value + "%'";
}
}
if (RowFilterSQL != "")
{
dtCOMMODITYSALE.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtCOMMODITYSALE.DefaultView.Sort = searchModel.SortStr;
dtCOMMODITYSALE = dtCOMMODITYSALE.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtCOMMODITYSALE.Rows.Count;
if (searchModel.PageSize > 0)
{
//根据传入的页码和每页显示条数返回结果
dtCOMMODITYSALE = CommonHelper.GetDataTableWithPageSize(dtCOMMODITYSALE, searchModel.PageSize, searchModel.PageIndex);
}
else
{
searchModel.PageSize = TotalCount;
if (searchModel.PageIndex == 0)
{
searchModel.PageIndex = 1;
}
}
foreach (DataRow drCOMMODITYSALE in dtCOMMODITYSALE.Rows)
{
Model.COMMODITYSALEModel commoditysaleModel = new Model.COMMODITYSALEModel();
commoditysaleModel.COMMODITYSALE_ID = drCOMMODITYSALE["COMMODITYSALE_ID"].TryParseToInt(); //内码(不唯一)
commoditysaleModel.STARTDATE = drCOMMODITYSALE["STARTDATE"].TryParseToDateTime(); //账期开始时间
commoditysaleModel.ENDDATE = drCOMMODITYSALE["ENDDATE"].TryParseToDateTime(); //账期结束时间
commoditysaleModel.SERVERPARTCODE = drCOMMODITYSALE["SERVERPARTCODE"].ToString(); //服务区编码
commoditysaleModel.SHOPCODE = drCOMMODITYSALE["SHOPCODE"].ToString(); //门店编码
commoditysaleModel.MACHINECODE = drCOMMODITYSALE["MACHINECODE"].ToString(); //收银机编码
commoditysaleModel.COMMODITY_TYPE = drCOMMODITYSALE["COMMODITY_TYPE"].ToString(); //商品类型(中文)
commoditysaleModel.COMMODITY_CODE = drCOMMODITYSALE["COMMODITY_CODE"].ToString(); //商品编码
commoditysaleModel.COMMODITY_NAME = drCOMMODITYSALE["COMMODITY_NAME"].ToString(); //商品名称
commoditysaleModel.TICKETCOUNT = drCOMMODITYSALE["TICKETCOUNT"].TryParseToLong(); //客单数量
commoditysaleModel.TOTALCOUNT = drCOMMODITYSALE["TOTALCOUNT"].TryParseToDouble(); //销售数量
commoditysaleModel.TOTALSELLAMOUNT = drCOMMODITYSALE["TOTALSELLAMOUNT"].TryParseToDouble(); //对客营收
commoditysaleModel.TOTALOFFAMOUNT = drCOMMODITYSALE["TOTALOFFAMOUNT"].TryParseToDouble(); //优惠金额
commoditysaleModel.SERVERPART_ID = drCOMMODITYSALE["SERVERPART_ID"].TryParseToInt(); //服务区内码
commoditysaleModel.SERVERPARTSHOP_ID = drCOMMODITYSALE["SERVERPARTSHOP_ID"].TryParseToInt(); //门店内码
commoditysaleModel.COMMODITYTYPE_ID = drCOMMODITYSALE["COMMODITYTYPE_ID"].TryParseToInt(); //商品类型内码
commoditysaleModel.COMMODITYTYPE_NAME = drCOMMODITYSALE["COMMODITYTYPE_NAME"].ToString(); //商品类型名称
commoditysaleModel.COMMODITYTYPE_CODE = drCOMMODITYSALE["COMMODITYTYPE_CODE"].ToString(); //商品类型编码
commoditysaleModel.COMMODITY_ID = drCOMMODITYSALE["COMMODITY_ID"].TryParseToInt(); //商品内码
commoditysaleModel.COMMODITY_RULE = drCOMMODITYSALE["COMMODITY_RULE"].ToString(); //商品规格
commoditysaleModel.COMMODITY_UNIT = drCOMMODITYSALE["COMMODITY_UNIT"].ToString(); //商品单位
commoditysaleModel.COMMODITY_BARCODE = drCOMMODITYSALE["COMMODITY_BARCODE"].ToString(); //商品条码
commoditysaleModel.COMMODITY_PURCHASEPRICE = drCOMMODITYSALE["COMMODITY_PURCHASEPRICE"].TryParseToDouble(); //商品进价
commoditysaleModel.COMMODITY_CURRPRICE = drCOMMODITYSALE["COMMODITY_CURRPRICE"].TryParseToDouble(); //商品售价
commoditysaleModel.BUSINESSTYPE = drCOMMODITYSALE["BUSINESSTYPE"].TryParseToInt(); //商品业态
COMMODITYSALEList.Add(commoditysaleModel);
}
return COMMODITYSALEList;
}
#endregion
#region 获取单品销售数据明细
///
/// 获取单品销售数据明细
///
/// 事务管理器
/// 单品销售数据内码
public static Model.COMMODITYSALEModel GetCOMMODITYSALEDetail(Transaction transaction, int COMMODITYSALEId)
{
Model.COMMODITYSALEModel commoditysaleModel = new Model.COMMODITYSALEModel();
Business.COMMODITYSALE _COMMODITYSALE = new Business.COMMODITYSALE(transaction);
_COMMODITYSALE.COMMODITYSALE_ID = COMMODITYSALEId;
if (_COMMODITYSALE.Select())
{
commoditysaleModel.COMMODITYSALE_ID = _COMMODITYSALE.COMMODITYSALE_ID; //内码(不唯一)
commoditysaleModel.STARTDATE = _COMMODITYSALE.STARTDATE; //账期开始时间
commoditysaleModel.ENDDATE = _COMMODITYSALE.ENDDATE; //账期结束时间
commoditysaleModel.SERVERPARTCODE = _COMMODITYSALE.SERVERPARTCODE; //服务区编码
commoditysaleModel.SHOPCODE = _COMMODITYSALE.SHOPCODE; //门店编码
commoditysaleModel.MACHINECODE = _COMMODITYSALE.MACHINECODE; //收银机编码
commoditysaleModel.COMMODITY_TYPE = _COMMODITYSALE.COMMODITY_TYPE; //商品类型(中文)
commoditysaleModel.COMMODITY_CODE = _COMMODITYSALE.COMMODITY_CODE; //商品编码
commoditysaleModel.COMMODITY_NAME = _COMMODITYSALE.COMMODITY_NAME; //商品名称
commoditysaleModel.TICKETCOUNT = _COMMODITYSALE.TICKETCOUNT; //客单数量
commoditysaleModel.TOTALCOUNT = _COMMODITYSALE.TOTALCOUNT; //销售数量
commoditysaleModel.TOTALSELLAMOUNT = _COMMODITYSALE.TOTALSELLAMOUNT; //对客营收
commoditysaleModel.TOTALOFFAMOUNT = _COMMODITYSALE.TOTALOFFAMOUNT; //优惠金额
commoditysaleModel.FLAG = _COMMODITYSALE.FLAG; //单品扣除状态(用于进销存系统)
commoditysaleModel.RESERVE_FIRSTNUM = _COMMODITYSALE.RESERVE_FIRSTNUM; //备用字段一(数字)
commoditysaleModel.RESERVE_SECONDNUM = _COMMODITYSALE.RESERVE_SECONDNUM; //备用字段二(数字)
commoditysaleModel.RESERVE_THIRDNUM = _COMMODITYSALE.RESERVE_THIRDNUM; //备用字段三(数字)
commoditysaleModel.RESERVE_FIRSTCHAR = _COMMODITYSALE.RESERVE_FIRSTCHAR; //备用字段一(字符串)
commoditysaleModel.RESERVE_SECONDCHAR = _COMMODITYSALE.RESERVE_SECONDCHAR; //备用字段二(字符串)
commoditysaleModel.RESERVE_THIRDCHAR = _COMMODITYSALE.RESERVE_THIRDCHAR; //备用字段三(字符串)
commoditysaleModel.RESERVE_FIRSTDATE = _COMMODITYSALE.RESERVE_FIRSTDATE; //备用字段一(时间)
commoditysaleModel.RESERVE_SECONDDATE = _COMMODITYSALE.RESERVE_SECONDDATE; //备用字段二(时间)
commoditysaleModel.RESERVE_THIRDDATE = _COMMODITYSALE.RESERVE_THIRDDATE; //备用字段三(时间)
commoditysaleModel.TRANSFER_STATE = _COMMODITYSALE.TRANSFER_STATE; //传输状态
commoditysaleModel.TRANSFER_ID = _COMMODITYSALE.TRANSFER_ID; //传输内码
commoditysaleModel.MERGE_STATE = _COMMODITYSALE.MERGE_STATE; //拆分状态(用于标识单品数据是否导入到分表,分表是按照服务区编码单独存储建立的表)
commoditysaleModel.SERVERPART_ID = _COMMODITYSALE.SERVERPART_ID; //服务区内码
commoditysaleModel.SERVERPARTSHOP_ID = _COMMODITYSALE.SERVERPARTSHOP_ID; //门店内码
commoditysaleModel.COMMODITYTYPE_ID = _COMMODITYSALE.COMMODITYTYPE_ID; //商品类型内码
commoditysaleModel.COMMODITYTYPE_NAME = _COMMODITYSALE.COMMODITYTYPE_NAME; //商品类型名称
commoditysaleModel.COMMODITYTYPE_CODE = _COMMODITYSALE.COMMODITYTYPE_CODE; //商品类型编码
commoditysaleModel.COMMODITY_ID = _COMMODITYSALE.COMMODITY_ID; //商品内码
commoditysaleModel.COMMODITY_RULE = _COMMODITYSALE.COMMODITY_RULE; //商品规格
commoditysaleModel.COMMODITY_UNIT = _COMMODITYSALE.COMMODITY_UNIT; //商品单位
commoditysaleModel.COMMODITY_BARCODE = _COMMODITYSALE.COMMODITY_BARCODE; //商品条码
commoditysaleModel.COMMODITY_PURCHASEPRICE = _COMMODITYSALE.COMMODITY_PURCHASEPRICE; //商品进价
commoditysaleModel.COMMODITY_CURRPRICE = _COMMODITYSALE.COMMODITY_CURRPRICE; //商品售价
commoditysaleModel.BUSINESSTYPE = _COMMODITYSALE.BUSINESSTYPE; //商品业态
}
return commoditysaleModel;
}
#endregion
#region 同步单品销售数据
///
/// 赋值单品销售数据数据对象
///
/// 事务管理器
/// 单品销售数据数据对象
public static bool SynchroCOMMODITYSALE(Transaction transaction, Model.COMMODITYSALEModel commoditysaleModel)
{
bool SynchroFlag = true;
Business.COMMODITYSALE _COMMODITYSALE = new Business.COMMODITYSALE(transaction);
if (commoditysaleModel.COMMODITYSALE_ID != null)
{
_COMMODITYSALE.COMMODITYSALE_ID = commoditysaleModel.COMMODITYSALE_ID;
if (_COMMODITYSALE.Select())
{
SynchroModelToObject(_COMMODITYSALE, commoditysaleModel);
_COMMODITYSALE.Update();
}
else
{
SynchroFlag = false;
}
}
else
{
SynchroModelToObject(_COMMODITYSALE, commoditysaleModel);
_COMMODITYSALE.Insert();
}
return SynchroFlag;
}
#region 赋值单品销售数据数据对象
///
/// 赋值单品销售数据数据对象
///
///
///
public static void SynchroModelToObject(Business.COMMODITYSALE _COMMODITYSALE, Model.COMMODITYSALEModel commoditysaleModel)
{
_COMMODITYSALE.STARTDATE = commoditysaleModel.STARTDATE; //账期开始时间
_COMMODITYSALE.ENDDATE = commoditysaleModel.ENDDATE; //账期结束时间
_COMMODITYSALE.SERVERPARTCODE = commoditysaleModel.SERVERPARTCODE; //服务区编码
_COMMODITYSALE.SHOPCODE = commoditysaleModel.SHOPCODE; //门店编码
_COMMODITYSALE.MACHINECODE = commoditysaleModel.MACHINECODE; //收银机编码
_COMMODITYSALE.COMMODITY_TYPE = commoditysaleModel.COMMODITY_TYPE; //商品类型(中文)
_COMMODITYSALE.COMMODITY_CODE = commoditysaleModel.COMMODITY_CODE; //商品编码
_COMMODITYSALE.COMMODITY_NAME = commoditysaleModel.COMMODITY_NAME; //商品名称
_COMMODITYSALE.TICKETCOUNT = commoditysaleModel.TICKETCOUNT; //客单数量
_COMMODITYSALE.TOTALCOUNT = commoditysaleModel.TOTALCOUNT; //销售数量
_COMMODITYSALE.TOTALSELLAMOUNT = commoditysaleModel.TOTALSELLAMOUNT; //对客营收
_COMMODITYSALE.TOTALOFFAMOUNT = commoditysaleModel.TOTALOFFAMOUNT; //优惠金额
_COMMODITYSALE.FLAG = commoditysaleModel.FLAG; //单品扣除状态(用于进销存系统)
_COMMODITYSALE.RESERVE_FIRSTNUM = commoditysaleModel.RESERVE_FIRSTNUM; //备用字段一(数字)
_COMMODITYSALE.RESERVE_SECONDNUM = commoditysaleModel.RESERVE_SECONDNUM; //备用字段二(数字)
_COMMODITYSALE.RESERVE_THIRDNUM = commoditysaleModel.RESERVE_THIRDNUM; //备用字段三(数字)
_COMMODITYSALE.RESERVE_FIRSTCHAR = commoditysaleModel.RESERVE_FIRSTCHAR; //备用字段一(字符串)
_COMMODITYSALE.RESERVE_SECONDCHAR = commoditysaleModel.RESERVE_SECONDCHAR; //备用字段二(字符串)
_COMMODITYSALE.RESERVE_THIRDCHAR = commoditysaleModel.RESERVE_THIRDCHAR; //备用字段三(字符串)
_COMMODITYSALE.RESERVE_FIRSTDATE = commoditysaleModel.RESERVE_FIRSTDATE; //备用字段一(时间)
_COMMODITYSALE.RESERVE_SECONDDATE = commoditysaleModel.RESERVE_SECONDDATE; //备用字段二(时间)
_COMMODITYSALE.RESERVE_THIRDDATE = commoditysaleModel.RESERVE_THIRDDATE; //备用字段三(时间)
_COMMODITYSALE.TRANSFER_STATE = commoditysaleModel.TRANSFER_STATE; //传输状态
_COMMODITYSALE.TRANSFER_ID = commoditysaleModel.TRANSFER_ID; //传输内码
_COMMODITYSALE.MERGE_STATE = commoditysaleModel.MERGE_STATE; //拆分状态(用于标识单品数据是否导入到分表,分表是按照服务区编码单独存储建立的表)
_COMMODITYSALE.SERVERPART_ID = commoditysaleModel.SERVERPART_ID; //服务区内码
_COMMODITYSALE.SERVERPARTSHOP_ID = commoditysaleModel.SERVERPARTSHOP_ID; //门店内码
_COMMODITYSALE.COMMODITYTYPE_ID = commoditysaleModel.COMMODITYTYPE_ID; //商品类型内码
_COMMODITYSALE.COMMODITYTYPE_NAME = commoditysaleModel.COMMODITYTYPE_NAME; //商品类型名称
_COMMODITYSALE.COMMODITYTYPE_CODE = commoditysaleModel.COMMODITYTYPE_CODE; //商品类型编码
_COMMODITYSALE.COMMODITY_ID = commoditysaleModel.COMMODITY_ID; //商品内码
_COMMODITYSALE.COMMODITY_RULE = commoditysaleModel.COMMODITY_RULE; //商品规格
_COMMODITYSALE.COMMODITY_UNIT = commoditysaleModel.COMMODITY_UNIT; //商品单位
_COMMODITYSALE.COMMODITY_BARCODE = commoditysaleModel.COMMODITY_BARCODE; //商品条码
_COMMODITYSALE.COMMODITY_PURCHASEPRICE = commoditysaleModel.COMMODITY_PURCHASEPRICE; //商品进价
_COMMODITYSALE.COMMODITY_CURRPRICE = commoditysaleModel.COMMODITY_CURRPRICE; //商品售价
_COMMODITYSALE.BUSINESSTYPE = commoditysaleModel.BUSINESSTYPE; //商品业态
}
#endregion
#endregion
}
}