468 lines
14 KiB
C#
468 lines
14 KiB
C#
|
||
/// <summary>
|
||
///INTERFACE CLASS FOR TABLE t_wmsOutRequest
|
||
///By wm with codesmith.
|
||
///on 05/18/2017
|
||
/// </summary>
|
||
|
||
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);
|
||
}
|
||
/// <summary>
|
||
/// 同步新销售订单前
|
||
/// 记录临时数据
|
||
/// 并删除临时数据
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public int prepareSaleInTmpData()
|
||
{
|
||
return CustOper(202);
|
||
}
|
||
/// <summary>
|
||
/// 出库请求原始单详情
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataSet getRequestDetail()
|
||
{
|
||
cmdParameters[0] = this.orderNo;
|
||
return CustQuery(300);
|
||
}
|
||
/// <summary>
|
||
/// 出库单详情(根据货物id,批号合并原始单明细)
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataSet getOutDetail()
|
||
{
|
||
cmdParameters[0] = this.orderNo;
|
||
return CustQuery(400);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取订单详细,直接转换为拣货单明细
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataTable getOutDetailForPick()
|
||
{
|
||
cmdParameters[0] = this.orderNo;
|
||
return CustQuery(1400).Tables[0];
|
||
|
||
|
||
}
|
||
/// <summary>
|
||
/// 待出库新订单
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataTable getNewOrders()
|
||
{
|
||
return CustQuery(600).Tables[0];
|
||
}
|
||
|
||
/// <summary>
|
||
/// 拉取erp订单
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public int syncOutRequest()
|
||
{
|
||
return CustOper(500);
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataTable getLastSyncOrders()
|
||
{
|
||
return CustQuery(504).Tables[0];
|
||
|
||
}
|
||
/// <summary>
|
||
/// 自动审核立即分拣类型的出库单,即刻进入订单合并分拣环节
|
||
/// 分店客户需集单出库的情况不适用,按订单约定日期出库的需要手动核准
|
||
/// </summary>
|
||
/// <param name="status"></param>
|
||
/// <returns></returns>
|
||
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];
|
||
}
|
||
|
||
/// <summary>
|
||
/// 根据客户拣货策略信息,分流待分拣新订单到不同拣货方式
|
||
/// </summary>
|
||
public int autoPickPrepare()
|
||
{
|
||
return CustOper(502);
|
||
}
|
||
|
||
private List<WmsOutDetail> _outDetails;
|
||
/// <summary>
|
||
/// 查询订单出库详情
|
||
/// </summary>
|
||
public List<WmsOutDetail> outDetails
|
||
{
|
||
get {
|
||
if (_outDetails == null && !string.IsNullOrEmpty( _orderNo))
|
||
{
|
||
// DeiNiu.Utils.LogHelper.WriteLog(this.GetType(), "start to get outDetails");
|
||
_outDetails = new List<WmsOutDetail>();
|
||
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;
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取订单,并按客户排序
|
||
/// </summary>
|
||
/// <param name="orderType">订单类型</param>
|
||
/// <param name="orderStatus">订单状态</param>
|
||
/// <returns></returns>
|
||
public DataSet getRequests(DeiNiu.Utils.enumOrderType orderType,DeiNiu.Utils.enumOutStockRequestStatus orderStatus)
|
||
{
|
||
cmdParameters[0] =(int)orderType;
|
||
cmdParameters[1] = (int)orderStatus;
|
||
return CustQuery(800);
|
||
}
|
||
/// <summary>
|
||
/// get new request for merged pre to pick request
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataSet getNewRequests()
|
||
{
|
||
return QueryByState(Utils.enumOutStockRequestStatus.待出库);
|
||
}
|
||
|
||
/// <summary>
|
||
/// get merged view of new requests
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataSet getNewRequestPickDetails()
|
||
{
|
||
// cmdParameters[0] = (int)Utils.enumOutStockRequestStatus.待处理;
|
||
return CustQuery(900);
|
||
}
|
||
|
||
/// <summary>
|
||
/// get error pick details
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataSet getErroredPickDetails()
|
||
{
|
||
return CustQuery(1000);
|
||
}
|
||
/// <summary>
|
||
/// get sales man list
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public DataTable getSalesMen()
|
||
{
|
||
return CustQuery(1100).Tables[0];
|
||
}
|
||
|
||
/// <summary>
|
||
/// 合并销售订单或取消合并
|
||
/// </summary>
|
||
/// <param name="custID"></param>
|
||
/// <param name="custName"></param>
|
||
/// <param name="custAddress"></param>
|
||
/// <param name="pickOrderNo"></param>
|
||
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);
|
||
}
|
||
|
||
/// <summary>
|
||
/// prepare the out request orders for pick
|
||
/// </summary>
|
||
/* 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;
|
||
}
|
||
|
||
}
|
||
*/
|
||
/// <summary>
|
||
/// 入库单自动核准,每次抓100个订单的情况下,出现部分待核准订单切明细为空的订单
|
||
/// 每次抓500个的情况下没发现此状况
|
||
/// </summary>
|
||
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];
|
||
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 分店客户生成取总分拣单明细,更新原订单状态
|
||
/// </summary>
|
||
/// <param name="pickGroup"></param>
|
||
/// <param name="pickStartOn"></param>
|
||
/// <param name="dueDate"></param>
|
||
/// <param name="pickOrder"></param>
|
||
/// <returns></returns>
|
||
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(1900).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);
|
||
|
||
|
||
|
||
|
||
}
|
||
}
|
||
}
|
||
|