ldj/Model/wms/tables/WmsOutRequest.cs

468 lines
14 KiB
C#
Raw Normal View History

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