/// 
///INTERFACE CLASS FOR TABLE t_erp_purch
///By wm  
///on 06/11/2018
/// 
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 Erp_purch : Erp_purch_base
    {
        public Erp_purch()
        {
        }
        public Erp_purch(int id): base(id)
        {
        }
        public Erp_purch(DataRow dr): base(dr)
        {
        }
        public Erp_purch(String orderNo) 
         {
             cmdParameters[0] = orderNo;
             getModel(100);
         }
      protected override void getImp()
        {
            model_imp = new Erp_purch_Imp();  
        }
        //begin cust db operation, query, excute sql etc.
        public DataSet queryReceiveNos(string querystr, int rownumStart, int rownumEnd)
       {
           if (rownumEnd > rownumStart && rownumStart > 0)
           {
               this.rownumStart = rownumStart;
               this.rownumEnd = rownumEnd;
           }
         
           cmdParameters[0] = getCondition(querystr);
           return CustQuery(99);
       }
        public DataSet queryValidationLog(string querystr, int rownumStart, int rownumEnd)
        {
            if (rownumEnd > rownumStart && rownumStart > 0)
            {
                this.rownumStart = rownumStart;
                this.rownumEnd = rownumEnd;
            }
            cmdParameters[0] = getCondition(querystr);
            return CustQuery(102);
        }
        public DataTable queryPurchDetail(string orderNo,int status =-1)
        {
            cmdParameters[0] =orderNo;
            cmdParameters[1] = status;
            return CustQuery(200).Tables[0];
        }
        public DataTable queryPurchDetailByVender(string venderId, int status = -1)
        {
            cmdParameters[0] = venderId;
            cmdParameters[1] = status;
            return CustQuery(210).Tables[0];
        }
        public DataSet queryValidation(string querystr, int rownumStart, int rownumEnd)
        {
            if (rownumEnd > rownumStart && rownumStart > 0)
            {
                this.rownumStart = rownumStart;
                this.rownumEnd = rownumEnd;
            }
            cmdParameters[0] = getCondition(querystr) ;
            return CustQuery(101);
        }
        public DataTable getOrderDetail(string orderNo)
        {
            cmdParameters[0] = orderNo;
          
            return CustQuery(300).Tables[0];
        }
        public DataTable getValidedInDetail(string orderNo, int status)
        {
            cmdParameters[0] = orderNo;
            cmdParameters[1] = status;
            return CustQuery(400).Tables[0];
        }
        public bool updateStockStatus(string orderNo, enumInStockOrderStatus orderStatus,enumReceiveStockDetailStatus detailStatus,int operater ){
            cmdParameters[0] = orderNo;
            cmdParameters[1] = orderStatus;
            cmdParameters[2] = detailStatus;
            cmdParameters[3] = operater;
            return CustOper(500)>0 ;
        }
        public DataTable getReceiveHistory(string orderNo)
        {
            cmdParameters[0] = orderNo;
            return CustQuery(600).Tables[0];
        }
        /// 
        /// 根据计划单号,验收记录
        /// 
        /// 
        /// 
        public DataTable getReceiveMuiltiHistory(string orderNo)
        {
            cmdParameters[0] = orderNo;
            return CustQuery(640).Tables[0];
        }
        public DataTable getReceivePreSumByVender(string venderId)
        {
            cmdParameters[0] = venderId;
            return CustQuery(610).Tables[0];
        }
        public DataTable getReceivePreSumByPreNo(string preNo)
        {
            cmdParameters[0] = preNo;
            return CustQuery(620).Tables[0];
        }
        public DataTable getReceivePreSumByVenderNotValided(string venderId)
        {
            cmdParameters[0] = venderId;
            return CustQuery(630).Tables[0];
        }
        public DataTable getRequestIn(string orderNo)
        {
            cmdParameters[0] = orderNo;
            return CustQuery(700).Tables[0];
        }
        public DataTable get4ValidDetail(string orderNo)
        {
            cmdParameters[0] = orderNo;
            return CustQuery(800).Tables[0];
        }
      
        public DataSet getReceiveRecs(string querystr, int rownumStart, int rownumEnd)
        {
            if (rownumEnd > rownumStart && rownumStart > 0)
            {
                this.rownumStart = rownumStart;
                this.rownumEnd = rownumEnd;
            }
            cmdParameters[0] = getCondition(querystr);
            return CustQuery(900);
        }
        public void updateCreatetime()
        {
            cmdParameters[0] = _pur_order;
            CustOper(1000);
        }
        public DataTable getRequestDetailByVender(string venderName, int status)
        {
            cmdParameters[0] = venderName;
            cmdParameters[1] = status;
            return CustQuery(1100).Tables[0];
            
        }
        public DataSet queryReceivesByVender(string querystr, int rownumStart, int rownumEnd)
        {
            if (rownumEnd > rownumStart && rownumStart > 0)
            {
                this.rownumStart = rownumStart;
                this.rownumEnd = rownumEnd;
            }
            cmdParameters[0] = getCondition(querystr);
            return CustQuery(98);
        }
        public DataTable getRequestByVenderPinyin(string pinYin ,enumInStockOrderStatus status,int orderType )
        {
            cmdParameters[0] = pinYin;
            cmdParameters[1] = (int)status;
            if(orderType==0)
                return CustQuery(110).Tables[0];
            else
                return CustQuery(111).Tables[0];
        }
        public bool deleteOrder(string orderNo)
        {
            cmdParameters[0] = orderNo;
            return CustOper(1200) > 0;
        }
        public DataTable getZhiTongOrderByCust(string preOrderNo, string orderBy)
        {
            cmdParameters[0] = preOrderNo;
            cmdParameters[1] = orderBy;
            return CustQuery(1300).Tables[0];
        }
        public DataTable getAll4Valid(string vender)
        {
            cmdParameters[0] = vender;
            return CustQuery(1400).Tables[0];
        }
      
        public DataTable getCusts4InTest()
        {
            return CustQuery(1600).Tables[0];
        }
        public DataTable getByErpNoticeFailure(bool isForce= false)
        {  
            cmdParameters[0] = (int)enumErpOrderStatus.通知失败;
            cmdParameters[1] = isForce;
            return CustQuery(1500).Tables[0];
             
        }
        public DataTable getPreValidResult(string preInNo)
        {
            cmdParameters[0] = preInNo;
            return CustQuery(1700).Tables[0];
        }
    }
}