2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
/// <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.
|
2023-09-04 22:41:19 +08:00
|
|
|
|
public DataTable QueryByStateForPick( enumOutStockRequestStatus state )
|
2023-05-23 16:13:17 +08:00
|
|
|
|
{
|
|
|
|
|
cmdParameters[0] = (int)state;
|
|
|
|
|
cmdParameters[1] = new WaveRule().getCurrentActiveRule(enumWaveRuleType.普通波次);
|
|
|
|
|
// cmdParameters[1] = (int)startOn;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
return CustQuery(201).Tables[0];
|
2023-05-23 16:13:17 +08:00
|
|
|
|
}
|
2023-09-04 22:41:19 +08:00
|
|
|
|
|
|
|
|
|
public DataTable getByCustForPick(enumOutStockRequestStatus state,string custId)
|
|
|
|
|
{
|
|
|
|
|
cmdParameters[0] = (int)state;
|
|
|
|
|
cmdParameters[1] = custId;
|
|
|
|
|
// cmdParameters[1] = (int)startOn;
|
|
|
|
|
return CustQuery(2011).Tables[0];
|
|
|
|
|
}
|
2023-05-23 16:13:17 +08:00
|
|
|
|
//begin cust db operation, query, excute sql etc.
|
2023-09-04 22:41:19 +08:00
|
|
|
|
public DataSet QueryByState(DeiNiu.Utils.enumOutStockRequestStatus state)
|
2023-05-23 16:13:17 +08:00
|
|
|
|
{
|
|
|
|
|
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()
|
|
|
|
|
{
|
2023-09-04 22:41:19 +08:00
|
|
|
|
return CustOper(500);
|
2023-05-23 16:13:17 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <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>
|
2023-11-21 19:18:23 +08:00
|
|
|
|
public DataSet getRequests(DeiNiu.Utils.enumOrderType orderType,DeiNiu.Utils.enumOutStockRequestStatus orderStatus)
|
2023-05-23 16:13:17 +08:00
|
|
|
|
{
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-04 22:41:19 +08:00
|
|
|
|
public int updateTmpPickState( string pickOrderNo , Utils.enumOutStockRequestStatus state )
|
2023-05-23 16:13:17 +08:00
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
cmdParameters[0] = pickOrderNo;
|
2023-09-04 22:41:19 +08:00
|
|
|
|
cmdParameters[1] = (int)state;
|
|
|
|
|
cmdParameters[2] = operater;
|
2023-05-23 16:13:17 +08:00
|
|
|
|
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);
|
|
|
|
|
}
|
2024-03-06 20:48:05 +08:00
|
|
|
|
|
|
|
|
|
public void updatePickState(string pickOrderNo, Utils.enumOutStockRequestStatus stateNew)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
cmdParameters[0] = pickOrderNo;
|
|
|
|
|
cmdParameters[1] = (int)stateNew;
|
|
|
|
|
cmdParameters[2] = operater;
|
|
|
|
|
CustOper(1212);
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-23 16:13:17 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// prepare the out request orders for pick
|
|
|
|
|
/// </summary>
|
2023-09-04 22:41:19 +08:00
|
|
|
|
/* public void preparePick()
|
2023-05-23 16:13:17 +08:00
|
|
|
|
{
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2023-09-04 22:41:19 +08:00
|
|
|
|
*/
|
2023-05-23 16:13:17 +08:00
|
|
|
|
/// <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);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|