/// 
///INTERFACE CLASS FOR TABLE t_wmsInRequest
///By wm with codesmith. 
///on 05/12/2017
/// 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using DeiNiu.Utils;
namespace DeiNiu.wms.Data.Model
{
    [Serializable]
    public class WmsInRequest : WmsInRequest_base
    {
        public WmsInRequest()
        {
        }
        public WmsInRequest(int id): base(id)
        {
        }
         public WmsInRequest(DataRow dr): base(dr)
        {
        }
         public WmsInRequest(string preInNo) 
         {
             cmdParameters[0] = preInNo;
             getModel(110);
         }
         protected override void getImp()
         {
             model_imp = new WmsInRequest_Imp();
         }
        //begin cust db operation, query, excute sql etc.
        public DataSet QueryByName(string orderNo)
        {
            cmdParameters[0] = orderNo;
            return  CustQuery(100);
        }
        /// 
        /// sync new request orders
        /// 启用入库收货、验收模块后不再自动同步入库数据
        /// 
        /// 
        public int syncInRequest()
        {
            if (!WmsConstants.IN_STOCK_RECEIVE_VALID) 
            {
                return CustOper(200);
            }
            return -1;
        }
         
        public DataSet getRequestDetail(string orderNo)
        {
            cmdParameters[0] =  orderNo;
            return CustQuery(400);
        }
        public DataSet getRequestInStockDetail(string orderNo)
        {
            cmdParameters[0] =  orderNo;
            return CustQuery(500);
        }
         
        
        private List _inDetails;
        public List inDetails
        {  
            get {
                if (_inDetails == null && !string.IsNullOrEmpty(_preInOrder))
                {
                    _inDetails = new List();
                    DataTable dt = getRequestDetail(_preInOrder).Tables[0];
                    foreach (DataRow dr in dt.Rows)
                    {
                        _inDetails.Add(new WmsInRequestDetail(dr));
                    }
                }
                return _inDetails;
              
            }
           
        }
        /// 
        /// 批次、有效期、生产日期维护错的订单
        /// 
        /// 
        public DataSet getInvalidInRequest()
        {
        
            return CustQuery(600);
        }
        /// 
        ///  批次、有效期、生产日期维护错的订单明细
        /// 
        /// 
        /// 
        public DataSet getInvalidInRequestDetail(string orderNo)
        {
            cmdParameters[0] =  orderNo;
            return CustQuery(610);
        }
        public bool deleteRequest(string orderNo)
        { 
            cmdParameters[0] = orderNo;
            return CustOper(700) > 0;
        }
        
        /// 
        /// 取入库货位分配详情
        /// 
        /// stockrecord id
        /// datatable
        /*public DataTable getStockInDetail(int Id)
        {
            cmdParameters[0] = Id;
            return CustQuery(800).Tables[0];
        }
        */
        public DataTable getInPortDetail(int portId)
        {
            cmdParameters[0] = portId;
            return CustQuery(800).Tables[0];
        }
        /// 
        /// 取入库货位分配详情,一个inDetailid/ 流水号id 可能对应多个库位
        /// 
        /// stockrecord id
        /// datatable
        public DataTable getInPortDetails(string flowNo)
        {
            cmdParameters[0] =   flowNo;
            return CustQuery(810).Tables[0];
        }
        public DataTable getInPortDetails(string preInNo,string flowNo)
        {
            cmdParameters[0] = flowNo;
            cmdParameters[1] = preInNo;
            return CustQuery(830).Tables[0];
        }
        /// 
        ///根据入库验收产生的入库明细,查询上架任务
        /// 
        /// 
        /// 
        public DataTable getInPortDetails(int detailId)
        {
            cmdParameters[0] = detailId;
            return CustQuery(820).Tables[0];
        }
        public bool finishUpShelf(string orderNo,int detailId,int operater)
        {
            cmdParameters[0] = orderNo;
            cmdParameters[1] = detailId;
            cmdParameters[2] = operater;
            return CustOper(900) ==1 ;
        }
       
        /// 
        /// 验收结果货位明细
        /// 待上架任务明细,包括补货上架
        /// 
        /// 
        /// 
        public DataTable getPreValidResult4Wince(string preInNo, string flowNo="",int userId =0 ) 
        {
            cmdParameters[0] = preInNo;
            cmdParameters[1] = flowNo;
            cmdParameters[2] = userId;
            //DataSet ds = CustQuery(1000);
           
            return CustQuery(1000).Tables[0];
        }
        public void truncateDataForTestOnly()
        {
            CustOper(9999);
        }
         
        public DataTable getValidInDetail(string preInNo, string flowNo)
        {
            cmdParameters[0] = preInNo;
            cmdParameters[1] = flowNo; 
            return CustQuery(1100).Tables[0];
        }
        public DataTable getZhiTongOrderDetail(string flowNo)
        {
            
            cmdParameters[0] = flowNo;
            return CustQuery(1200).Tables[0];
        }
        public DataTable getZhiTongOrderByCust(string preNo,  string orderBy,string barcoce ="")
        {
            cmdParameters[0] = preNo;
            cmdParameters[1] = orderBy;
            cmdParameters[2] = barcoce;
            return CustQuery(1300).Tables[0];
        }
        public DataSet queryStockInSum(string querystr, int rownumStart, int rownumEnd)
        {
            if (rownumEnd > rownumStart && rownumStart > 0)
            {
                this.rownumStart = rownumStart;
                this.rownumEnd = rownumEnd;
            }
            cmdParameters[0] = getCondition(querystr);
            return CustQuery(991);
        }
    }
}