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 STOCKLOGHelper { #region 获取库存操作记录表列表 public static List GetSTOCKLOGList(Transaction transaction, ref int TotalCount, int PageIndex = 1, int PageSize = 10, string SortStr = "") { List STOCKLOGList = new List(); string WhereSQL = "", RowFilterSQL = ""; DataTable dtSTOCKLOG = new Business.STOCKLOG(transaction).FillDataTable(WhereSQL); if (RowFilterSQL != "") { dtSTOCKLOG.DefaultView.RowFilter = RowFilterSQL; } //排序: dtSTOCKLOG.DefaultView.Sort = SortStr; dtSTOCKLOG = dtSTOCKLOG.DefaultView.ToTable(); //获取查询结果总记录条数 TotalCount = dtSTOCKLOG.Rows.Count; //根据传入的页码和每页显示条数返回结果 dtSTOCKLOG = CommonHelper.GetDataTableWithPageSize(dtSTOCKLOG, PageSize, PageIndex); foreach (DataRow drSTOCKLOG in dtSTOCKLOG.Rows) { Model.STOCKLOGModel stocklogModel = new Model.STOCKLOGModel(); stocklogModel.STOCKLOG_ID = drSTOCKLOG["STOCKLOG_ID"].TryParseToInt(); //内码 stocklogModel.BUSINESS_ID = drSTOCKLOG["BUSINESS_ID"].TryParseToInt(); //业务记录内码 stocklogModel.SERVERPARTSHOP_ID = drSTOCKLOG["SERVERPARTSHOP_ID"].TryParseToInt(); //门店内码 stocklogModel.COMMODITY_ID = drSTOCKLOG["COMMODITY_ID"].TryParseToInt(); //商品内码 stocklogModel.COMMODITY_NAME = drSTOCKLOG["COMMODITY_NAME"].ToString(); //商品名称 stocklogModel.COMMODITY_BARCODE = drSTOCKLOG["COMMODITY_BARCODE"].ToString(); //商品条码 stocklogModel.OPERATE_TYPE = drSTOCKLOG["OPERATE_TYPE"].TryParseToInt(); //业务类型(0:商品进价、商品售价;1000:入库业务;2000:调拨业务;3000:退货业务;4000:领用业务;5000:单品销售;6000:盘点结存;6001:盘点损溢) stocklogModel.OPERATE_COUNT = drSTOCKLOG["OPERATE_COUNT"].TryParseToDouble(); //操作数量 stocklogModel.ORIGIN_STOCK = drSTOCKLOG["ORIGIN_STOCK"].TryParseToDouble(); //原库存数 stocklogModel.CURRENT_STOCK = drSTOCKLOG["CURRENT_STOCK"].TryParseToDouble(); //剩余库存 stocklogModel.OPERATE_TAXAMOUNT = drSTOCKLOG["OPERATE_TAXAMOUNT"].TryParseToDouble(); //含税金额 stocklogModel.OPERATE_AMOUNT = drSTOCKLOG["OPERATE_AMOUNT"].TryParseToDouble(); //除税金额 stocklogModel.OPERATE_DATE = drSTOCKLOG["OPERATE_DATE"].TryParseToDateTime(); //业务发生时间 stocklogModel.RECORD_DATE = drSTOCKLOG["RECORD_DATE"].TryParseToDateTime(); //记录产生时间 stocklogModel.PURCHASE_TAXPRICE = drSTOCKLOG["PURCHASE_TAXPRICE"].TryParseToDouble(); //含税进价 stocklogModel.PURCHASE_PRICE = drSTOCKLOG["PURCHASE_PRICE"].TryParseToDouble(); //除税进价 stocklogModel.SALE_TAXPRICE = drSTOCKLOG["SALE_TAXPRICE"].TryParseToDouble(); //含税售价 stocklogModel.SALE_PRICE = drSTOCKLOG["SALE_PRICE"].TryParseToDouble(); //除税售价 STOCKLOGList.Add(stocklogModel); } return STOCKLOGList; } #endregion #region 获取库存操作记录表列表 /// /// 获取库存操作记录表列表 /// /// 事务管理器 /// 查询结果总数 /// 查询条件对象 public static List GetSTOCKLOGList(Transaction transaction, ref int TotalCount, Models.SearchModel searchModel) { List STOCKLOGList = new List(); string WhereSQL = "", RowFilterSQL = ""; if (searchModel.SearchParameter != null) { WhereSQL = OperationDataHelper.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType); if (WhereSQL != "") { WhereSQL = "WHERE " + WhereSQL; } } DataTable dtSTOCKLOG = new Business.STOCKLOG(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 != "") { dtSTOCKLOG.DefaultView.RowFilter = RowFilterSQL; } //排序: dtSTOCKLOG.DefaultView.Sort = searchModel.SortStr; dtSTOCKLOG = dtSTOCKLOG.DefaultView.ToTable(); //获取查询结果总记录条数 TotalCount = dtSTOCKLOG.Rows.Count; //根据传入的页码和每页显示条数返回结果 dtSTOCKLOG = CommonHelper.GetDataTableWithPageSize(dtSTOCKLOG, searchModel.PageSize, searchModel.PageIndex); foreach (DataRow drSTOCKLOG in dtSTOCKLOG.Rows) { Model.STOCKLOGModel stocklogModel = new Model.STOCKLOGModel(); stocklogModel.STOCKLOG_ID = drSTOCKLOG["STOCKLOG_ID"].TryParseToInt(); //内码 stocklogModel.BUSINESS_ID = drSTOCKLOG["BUSINESS_ID"].TryParseToInt(); //业务记录内码 stocklogModel.SERVERPARTSHOP_ID = drSTOCKLOG["SERVERPARTSHOP_ID"].TryParseToInt(); //门店内码 stocklogModel.COMMODITY_ID = drSTOCKLOG["COMMODITY_ID"].TryParseToInt(); //商品内码 stocklogModel.COMMODITY_NAME = drSTOCKLOG["COMMODITY_NAME"].ToString(); //商品名称 stocklogModel.COMMODITY_BARCODE = drSTOCKLOG["COMMODITY_BARCODE"].ToString(); //商品条码 stocklogModel.OPERATE_TYPE = drSTOCKLOG["OPERATE_TYPE"].TryParseToInt(); //业务类型(0:商品进价、商品售价;1000:入库业务;2000:调拨业务;3000:退货业务;4000:领用业务;5000:单品销售;6000:盘点结存;6001:盘点损溢) stocklogModel.OPERATE_COUNT = drSTOCKLOG["OPERATE_COUNT"].TryParseToDouble(); //操作数量 stocklogModel.ORIGIN_STOCK = drSTOCKLOG["ORIGIN_STOCK"].TryParseToDouble(); //原库存数 stocklogModel.CURRENT_STOCK = drSTOCKLOG["CURRENT_STOCK"].TryParseToDouble(); //剩余库存 stocklogModel.OPERATE_TAXAMOUNT = drSTOCKLOG["OPERATE_TAXAMOUNT"].TryParseToDouble(); //含税金额 stocklogModel.OPERATE_AMOUNT = drSTOCKLOG["OPERATE_AMOUNT"].TryParseToDouble(); //除税金额 stocklogModel.OPERATE_DATE = drSTOCKLOG["OPERATE_DATE"].TryParseToDateTime(); //业务发生时间 stocklogModel.RECORD_DATE = drSTOCKLOG["RECORD_DATE"].TryParseToDateTime(); //记录产生时间 stocklogModel.PURCHASE_TAXPRICE = drSTOCKLOG["PURCHASE_TAXPRICE"].TryParseToDouble(); //含税进价 stocklogModel.PURCHASE_PRICE = drSTOCKLOG["PURCHASE_PRICE"].TryParseToDouble(); //除税进价 stocklogModel.SALE_TAXPRICE = drSTOCKLOG["SALE_TAXPRICE"].TryParseToDouble(); //含税售价 stocklogModel.SALE_PRICE = drSTOCKLOG["SALE_PRICE"].TryParseToDouble(); //除税售价 STOCKLOGList.Add(stocklogModel); } return STOCKLOGList; } #endregion #region 获取库存操作记录表明细 public static Model.STOCKLOGModel GetSTOCKLOGDetail(Transaction transaction, int STOCKLOGId) { Model.STOCKLOGModel stocklogModel = new Model.STOCKLOGModel(); Business.STOCKLOG _STOCKLOG = new Business.STOCKLOG(transaction); _STOCKLOG.STOCKLOG_ID = STOCKLOGId; if (_STOCKLOG.Select()) { stocklogModel.STOCKLOG_ID = _STOCKLOG.STOCKLOG_ID; //内码 stocklogModel.BUSINESS_ID = _STOCKLOG.BUSINESS_ID; //业务记录内码 stocklogModel.SERVERPARTSHOP_ID = _STOCKLOG.SERVERPARTSHOP_ID; //门店内码 stocklogModel.COMMODITY_ID = _STOCKLOG.COMMODITY_ID; //商品内码 stocklogModel.COMMODITY_NAME = _STOCKLOG.COMMODITY_NAME; //商品名称 stocklogModel.COMMODITY_BARCODE = _STOCKLOG.COMMODITY_BARCODE; //商品条码 stocklogModel.OPERATE_TYPE = _STOCKLOG.OPERATE_TYPE; //业务类型(0:商品进价、商品售价;1000:入库业务;2000:调拨业务;3000:退货业务;4000:领用业务;5000:单品销售;6000:盘点结存;6001:盘点损溢) stocklogModel.OPERATE_COUNT = _STOCKLOG.OPERATE_COUNT; //操作数量 stocklogModel.ORIGIN_STOCK = _STOCKLOG.ORIGIN_STOCK; //原库存数 stocklogModel.CURRENT_STOCK = _STOCKLOG.CURRENT_STOCK; //剩余库存 stocklogModel.OPERATE_TAXAMOUNT = _STOCKLOG.OPERATE_TAXAMOUNT; //含税金额 stocklogModel.OPERATE_AMOUNT = _STOCKLOG.OPERATE_AMOUNT; //除税金额 stocklogModel.OPERATE_DATE = _STOCKLOG.OPERATE_DATE; //业务发生时间 stocklogModel.RECORD_DATE = _STOCKLOG.RECORD_DATE; //记录产生时间 stocklogModel.PURCHASE_TAXPRICE = _STOCKLOG.PURCHASE_TAXPRICE; //含税进价 stocklogModel.PURCHASE_PRICE = _STOCKLOG.PURCHASE_PRICE; //除税进价 stocklogModel.SALE_TAXPRICE = _STOCKLOG.SALE_TAXPRICE; //含税售价 stocklogModel.SALE_PRICE = _STOCKLOG.SALE_PRICE; //除税售价 } return stocklogModel; } #endregion #region 同步库存操作记录表 /// /// 赋值库存操作记录表数据对象 /// /// 事务管理器 /// 库存操作记录表数据对象 public static bool SynchroSTOCKLOG(Transaction transaction, Model.STOCKLOGModel stocklogModel) { bool SynchroFlag = true; Business.STOCKLOG _STOCKLOG = new Business.STOCKLOG(transaction); if (stocklogModel.STOCKLOG_ID != null) { _STOCKLOG.STOCKLOG_ID = stocklogModel.STOCKLOG_ID; if (_STOCKLOG.Select()) { SynchroModelToObject(_STOCKLOG, stocklogModel); _STOCKLOG.Update(); } else { SynchroFlag = false; } } else { SynchroModelToObject(_STOCKLOG, stocklogModel); _STOCKLOG.Insert(); } return SynchroFlag; } #region 赋值库存操作记录表数据对象 /// /// 赋值库存操作记录表数据对象 /// /// /// public static void SynchroModelToObject(Business.STOCKLOG _STOCKLOG, Model.STOCKLOGModel stocklogModel) { _STOCKLOG.BUSINESS_ID = stocklogModel.BUSINESS_ID; //业务记录内码 _STOCKLOG.SERVERPARTSHOP_ID = stocklogModel.SERVERPARTSHOP_ID; //门店内码 _STOCKLOG.COMMODITY_ID = stocklogModel.COMMODITY_ID; //商品内码 _STOCKLOG.COMMODITY_NAME = stocklogModel.COMMODITY_NAME; //商品名称 _STOCKLOG.COMMODITY_BARCODE = stocklogModel.COMMODITY_BARCODE; //商品条码 _STOCKLOG.OPERATE_TYPE = stocklogModel.OPERATE_TYPE; //业务类型(0:商品进价、商品售价;1000:入库业务;2000:调拨业务;3000:退货业务;4000:领用业务;5000:单品销售;6000:盘点结存;6001:盘点损溢) _STOCKLOG.OPERATE_COUNT = stocklogModel.OPERATE_COUNT; //操作数量 _STOCKLOG.ORIGIN_STOCK = stocklogModel.ORIGIN_STOCK; //原库存数 _STOCKLOG.CURRENT_STOCK = stocklogModel.CURRENT_STOCK; //剩余库存 _STOCKLOG.OPERATE_TAXAMOUNT = stocklogModel.OPERATE_TAXAMOUNT; //含税金额 _STOCKLOG.OPERATE_AMOUNT = stocklogModel.OPERATE_AMOUNT; //除税金额 _STOCKLOG.OPERATE_DATE = stocklogModel.OPERATE_DATE; //业务发生时间 _STOCKLOG.RECORD_DATE = stocklogModel.RECORD_DATE; //记录产生时间 _STOCKLOG.PURCHASE_TAXPRICE = stocklogModel.PURCHASE_TAXPRICE; //含税进价 _STOCKLOG.PURCHASE_PRICE = stocklogModel.PURCHASE_PRICE; //除税进价 _STOCKLOG.SALE_TAXPRICE = stocklogModel.SALE_TAXPRICE; //含税售价 _STOCKLOG.SALE_PRICE = stocklogModel.SALE_PRICE; //除税售价 } #endregion #endregion #region 删除库存操作记录表 public static bool DeleteSTOCKLOG(Transaction transaction, int? STOCKLOGId) { bool DeleteFlag = false; if (STOCKLOGId != null) { Business.STOCKLOG _STOCKLOG = new Business.STOCKLOG(transaction); _STOCKLOG.STOCKLOG_ID = STOCKLOGId; if (_STOCKLOG.Select()) { _STOCKLOG.Delete(); DeleteFlag = true; } } return DeleteFlag; } #endregion } }