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