ldj/Model/wms/tables/WmsOutRequest.cs

470 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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