///
///INTERFACE CLASS FOR TABLE t_wmsOutRequest
///By wm with codesmith.
///on 05/18/2017
///
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using DeiNiu.Utils;
using System.Transactions;
namespace DeiNiu.wms.Data.Model
{
[Serializable]
public class WmsOutRequest : WmsOutRequest_base
{
public WmsOutRequest()
{
}
public WmsOutRequest(int id): base(id)
{
}
public WmsOutRequest(DataRow dr): base(dr)
{
}
public WmsOutRequest(String orderNo)
{
cmdParameters[0] = orderNo;
getModel(100);
}
protected override void getImp()
{
model_imp = new WmsOutRequest_Imp();
}
//begin cust db operation, query, excute sql etc.
public DataTable QueryByStateForPick( enumOutStockRequestStatus state )
{
cmdParameters[0] = (int)state;
cmdParameters[1] = new WaveRule().getCurrentActiveRule(enumWaveRuleType.普通波次);
// cmdParameters[1] = (int)startOn;
return CustQuery(201).Tables[0];
}
public DataTable getByCustForPick(enumOutStockRequestStatus state,string custId)
{
cmdParameters[0] = (int)state;
cmdParameters[1] = custId;
// cmdParameters[1] = (int)startOn;
return CustQuery(2011).Tables[0];
}
//begin cust db operation, query, excute sql etc.
public DataSet QueryByState(DeiNiu.Utils.enumOutStockRequestStatus state)
{
cmdParameters[0] = (int)state;
return CustQuery(200);
}
///
/// 同步新销售订单前
/// 记录临时数据
/// 并删除临时数据
///
///
public int prepareSaleInTmpData()
{
return CustOper(202);
}
///
/// 出库请求原始单详情
///
///
public DataSet getRequestDetail()
{
cmdParameters[0] = this.orderNo;
return CustQuery(300);
}
///
/// 出库单详情(根据货物id,批号合并原始单明细)
///
///
public DataSet getOutDetail()
{
cmdParameters[0] = this.orderNo;
return CustQuery(400);
}
///
/// 取订单详细,直接转换为拣货单明细
///
///
public DataTable getOutDetailForPick()
{
cmdParameters[0] = this.orderNo;
return CustQuery(1400).Tables[0];
}
///
/// 待出库新订单
///
///
public DataTable getNewOrders()
{
return CustQuery(600).Tables[0];
}
///
/// 拉取erp订单
///
///
public int syncOutRequest()
{
return CustOper(500);
}
///
///
///
///
public DataTable getLastSyncOrders()
{
return CustQuery(504).Tables[0];
}
///
/// 自动审核立即分拣类型的出库单,即刻进入订单合并分拣环节
/// 分店客户需集单出库的情况不适用,按订单约定日期出库的需要手动核准
///
///
///
public int autoApproveOutRequest(enumOutStockRequestStatus status )
{
cmdParameters[0] = (int)status;
cmdParameters[1] = this.operater;
int r = CustOper(501);
return r;
}
public DataTable getLastSynOrders()
{
return CustQuery(503).Tables[0];
}
///
/// 根据客户拣货策略信息,分流待分拣新订单到不同拣货方式
///
public int autoPickPrepare()
{
return CustOper(502);
}
private List _outDetails;
///
/// 查询订单出库详情
///
public List outDetails
{
get {
if (_outDetails == null && !string.IsNullOrEmpty( _orderNo))
{
// DeiNiu.Utils.LogHelper.WriteLog(this.GetType(), "start to get outDetails");
_outDetails = new List();
DataTable dt = getOutDetail().Tables[0];
foreach (DataRow dr in dt.Rows)
{
_outDetails.Add( new WmsOutDetail(dr));
}
// DeiNiu.Utils.LogHelper.WriteLog(this.GetType(), "end get outDetails");
}
return _outDetails;
}
}
///
/// 获取订单,并按客户排序
///
/// 订单类型
/// 订单状态
///
public DataSet getRequests(DeiNiu.Utils.enumOrderType orderType,DeiNiu.Utils.enumOutStockRequestStatus orderStatus)
{
cmdParameters[0] =(int)orderType;
cmdParameters[1] = (int)orderStatus;
return CustQuery(800);
}
///
/// get new request for merged pre to pick request
///
///
public DataSet getNewRequests()
{
return QueryByState(Utils.enumOutStockRequestStatus.待出库);
}
///
/// get merged view of new requests
///
///
public DataSet getNewRequestPickDetails()
{
// cmdParameters[0] = (int)Utils.enumOutStockRequestStatus.待处理;
return CustQuery(900);
}
///
/// get error pick details
///
///
public DataSet getErroredPickDetails()
{
return CustQuery(1000);
}
///
/// get sales man list
///
///
public DataTable getSalesMen()
{
return CustQuery(1100).Tables[0];
}
///
/// 合并销售订单或取消合并
///
///
///
///
///
public void updatePickState(string custID, string custName, string custAddress, string pickOrderNo
, Utils.enumOutStockRequestStatus stateNew,Utils.enumOutStockRequestStatus stateOld
)
{
cmdParameters[0] = custID;
cmdParameters[1] = custName;
cmdParameters[2] = custAddress;
cmdParameters[3] = pickOrderNo;
cmdParameters[4] = (int)stateNew;
cmdParameters[5] = (int)stateOld;
cmdParameters[6] = operater;
CustOper(1200);
}
public int updateTmpPickState( string pickOrderNo , Utils.enumOutStockRequestStatus state )
{
cmdParameters[0] = pickOrderNo;
cmdParameters[1] = (int)state;
cmdParameters[2] = operater;
return CustOper(1210);
}
public DataTable getTemp()
{
return CustQuery(3000).Tables[0];
}
public void updatePickState(string pickOrderNo, Utils.enumOutStockRequestStatus stateNew,
Utils.enumOutStockRequestStatus stateOld)
{
cmdParameters[0] = pickOrderNo;
cmdParameters[1] = (int)stateNew;
cmdParameters[2] = (int)stateOld;
cmdParameters[3] = operater;
CustOper(1211);
}
public void updatePickState(string pickOrderNo, Utils.enumOutStockRequestStatus stateNew)
{
cmdParameters[0] = pickOrderNo;
cmdParameters[1] = (int)stateNew;
cmdParameters[2] = operater;
CustOper(1212);
}
///
/// prepare the out request orders for pick
///
/* public void preparePick()
{
cmdParameters[0] = (int)enumOutStockDetailStatus.库存不足;
cmdParameters[1] = "库存不足";
cmdParameters[2] = (int)enumOutStockDetailStatus.待处理;
cmdParameters[3] = (int)enumOutStockRequestStatus.准备分拣;
cmdParameters[4] = operater;
try
{
using (TransactionScope scope1 = new TransactionScope())
{
CustOper(1300);
scope1.Complete();
}
}
catch (Exception er)
{
LogHelper.WriteLog(typeof(WmsOutRequest), er);
// throw er;
}
}
*/
///
/// 入库单自动核准,每次抓100个订单的情况下,出现部分待核准订单切明细为空的订单
/// 每次抓500个的情况下没发现此状况
///
public void deleteBadData()
{
CustOper(1500);
}
public DataTable getRequest4pick(int cnt, enumOutStockRequestStatus status)
{
cmdParameters[0] = cnt;
cmdParameters[1] = (int)status;
return CustQuery(1600).Tables[0];
}
public void insertTmp(string orderNo)
{
cmdParameters[0] = orderNo;
CustOper(1610);
}
public void deleteTmp(string orderNo)
{
LogHelper.debug(typeof(WmsOutRequest), " delete from temp......, orderNo is " + orderNo);
cmdParameters[0] = orderNo;
CustOper(1620);
}
public DataTable getOverStock()
{
//with skuId in sales detail
DataTable dt = CustQuery(1640).Tables[0];
if (dt.Rows.Count > 0)
{
return dt;
}
//with batch in sales detail
dt = CustQuery(1670).Tables[0];
if (dt.Rows.Count > 0)
{
return dt;
}
//only goodsId in sales detail
dt = CustQuery(1680).Tables[0];
return dt;
}
public DataTable getStockLack4Out()
{
return CustQuery(1640).Tables[0] ;
}
public DataTable getSeedsSumDetail(int pickGroup, int pickStartOn, string dueDate, enumOutStockRequestStatus enOs,
enumOutStockDetailStatus enOd)
{
cmdParameters[0] = pickGroup;
cmdParameters[1] = pickStartOn;
cmdParameters[2] = dueDate;
cmdParameters[3] = (int)enOs;
cmdParameters[4] = (int)enOd;
return CustQuery(1700).Tables[0];
}
public DataSet getSeedsSumDetail(string queryStr, int rownumStart, int rownumEnd)
{
if (rownumEnd > rownumStart && rownumStart > 0)
{
this.rownumStart = rownumStart;
this.rownumEnd = rownumEnd;
}
cmdParameters[0] = queryStr;
return CustQuery(1701) ;
}
public DataTable getSeedsDetail(int skuId)
{
cmdParameters[0] = skuId;
return CustQuery(1702).Tables[0];
}
public DataTable getSeedsDetailByGoods(string goodsId)
{
cmdParameters[0] = goodsId;
return CustQuery(1703).Tables[0];
}
///
/// 分店客户生成取总分拣单明细,更新原订单状态
///
///
///
///
///
///
public int groupPickStart(int pickGroup, int pickStartOn, string dueDate, string pickOrder,int operater)
{
cmdParameters[0] = pickGroup;
cmdParameters[1] = pickStartOn;
cmdParameters[2] = dueDate;
cmdParameters[3] = enumOutStockRequestStatus.待审核;
cmdParameters[4] = enumOutStockDetailStatus.待处理;
cmdParameters[5] = pickOrder;
cmdParameters[6] = operater;
return CustOper(1800) ;
}
public DataTable getAvErpDetailNoSkuId()
{
return CustQuery(1910).Tables[0];
}
public DataTable getRequestByPickOrder(string pickOrderNo)
{
cmdParameters[0] = pickOrderNo;
return CustQuery(2000).Tables[0];
}
public int updateDetailStockShortage(string orderno,int skuId, decimal lackCount)
{
cmdParameters[0] = orderno;
cmdParameters[1] = skuId;
cmdParameters[2] = "库存不足,缺货 " +lackCount;
return CustOper(2100);
}
}
}