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 } }