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