262 lines
17 KiB
C#
262 lines
17 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 单品销售数据相关方法
|
|
/// </summary>
|
|
public class COMMODITYSALEHelper
|
|
{
|
|
#region 获取单品销售数据列表
|
|
/// <summary>
|
|
/// 获取单品销售数据列表
|
|
/// </summary>
|
|
/// <param name="transaction">事务管理器</param>
|
|
/// <param name="TotalCount">查询结果总数</param>
|
|
/// <param name="searchModel">查询条件对象</param>
|
|
public static List<Model.COMMODITYSALEModel> GetCOMMODITYSALEList(Transaction transaction,
|
|
ref int TotalCount, Models.SearchModel<Model.COMMODITYSALEModel> searchModel)
|
|
{
|
|
List<Model.COMMODITYSALEModel> COMMODITYSALEList = new List<Model.COMMODITYSALEModel>();
|
|
|
|
string WhereSQL = "", RowFilterSQL = "";
|
|
if (searchModel.SearchParameter != null)
|
|
{
|
|
WhereSQL = OperationDataHelper<Model.COMMODITYSALEModel>.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 获取单品销售数据明细
|
|
/// <summary>
|
|
/// 获取单品销售数据明细
|
|
/// </summary>
|
|
/// <param name="transaction">事务管理器</param>
|
|
/// <param name="COMMODITYSALEId">单品销售数据内码</param>
|
|
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 同步单品销售数据
|
|
/// <summary>
|
|
/// 赋值单品销售数据数据对象
|
|
/// </summary>
|
|
/// <param name="transaction">事务管理器</param>
|
|
/// <param name="commoditysaleModel">单品销售数据数据对象</param>
|
|
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 赋值单品销售数据数据对象
|
|
/// <summary>
|
|
/// 赋值单品销售数据数据对象
|
|
/// </summary>
|
|
/// <param name="_COMMODITYSALE"></param>
|
|
/// <param name="commoditysaleModel"></param>
|
|
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
|
|
}
|
|
}
|