/// 
///INTERFACE CLASS FOR TABLE t_wmsPlateStock_tmp
///By wm  
///on 05/25/2020
/// 
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 WmsPlateStock_tmp : WmsPlateStock_tmp_base
    {
        public WmsPlateStock_tmp()
        {
        }
        public WmsPlateStock_tmp(int id): base(id)
        {
        }
        
       /* public WmsPlateStock_tmp(string plateId,int skuId) 
        {
            cmdParameters[0] = plateId;
            cmdParameters[1] = skuId;
            getModel(10);
        }
        */
        public WmsPlateStock_tmp(DataRow dr): base(dr)
        {
        }
      protected override void getImp()
        {
            model_imp = new WmsPlateStock_tmp_Imp();  
        }
        //begin cust db operation, query, excute sql etc.
        public DataSet QueryByName(string name)
        {
            cmdParameters[0] = name;
            return  CustQuery(100);
        }
        public DataTable getPlateStockDetail(string plateId)
        {
            cmdParameters[0] = plateId;
            return CustQuery(200).Tables[0];
        }
        public DataTable getStockLst(string plateId, int skuId)
        {
            cmdParameters[0] = plateId;
            cmdParameters[1] = skuId;
            return CustQuery(10).Tables[0];
        }
        public DataTable getByOutPort(int id)
        {
            cmdParameters[0] = id;
           return CustQuery(300).Tables[0];
           
        }
        public DataTable getByInPort(int id)
        {
            cmdParameters[0] = id;
            return CustQuery(310).Tables[0];
        }
        public WmsPlateStock_tmp getModelByOutPort(string plateId,int outPortId)
        {
            cmdParameters[0] = plateId;
            cmdParameters[1] = outPortId;
            DataTable dt = CustQuery(320).Tables[0];
         
            foreach (DataRow dr in dt.Rows)
            {
                return new WmsPlateStock_tmp(dr);
             
            }
            return new WmsPlateStock_tmp();
        }
        public DataTable getStockLst(string plateId )
        {
            cmdParameters[0] = plateId; 
            return CustQuery(400).Tables[0];
        }
        public List getPickRequests(string plateId, enumOutStoreType outPickType)
        {
            cmdParameters[0] = plateId;
            cmdParameters[1] =(int) outPickType;
            return new WmsOutPickRequest().getObjs( CustQuery(1000).Tables[0]);
        }
        public DataTable getOutPort(int outPortId)
        {
            cmdParameters[0] = outPortId;
            return CustQuery(500).Tables[0];
        }
        public DataTable getPlateOut(string plateId,int outPortId)
        {
            cmdParameters[0] = plateId;
            cmdParameters[1] = outPortId;
            return CustQuery(600).Tables[0];
        }
         
        public DataTable getPlateIn(string plateId, int inPortId)
        {
            cmdParameters[0] = plateId;
            cmdParameters[1] = inPortId;
            return CustQuery(700).Tables[0];
        }
        public int releasePlate(string plateId)
        {
            cmdParameters[0] = plateId;
           return CustOper(800);
        }
        public int releasePlateByOrder(string orderNo)
        {
            cmdParameters[0] = orderNo;
            return CustOper(1100);
        }
        public DataTable getByOrder(string orderNo)
        {
            cmdParameters[0] = orderNo;
            return CustQuery(1200).Tables[0]; 
        }
        public int merge(string fromPlate, string toPlate,string pickOrderNo)
        {
            cmdParameters[0] = fromPlate;
            cmdParameters[1] = toPlate;
            cmdParameters[2] = pickOrderNo;
            return CustOper(900);
        }
        public string getRelatedCustId(string flowNo)
        {
            string custId = new WmsPlate(flowNo).customerId;
            if (!string.IsNullOrEmpty(custId))
            {
                return custId;
            }
            
            DataTable dt =  getStockLst(flowNo);
            foreach (DataRow dr in dt.Rows)
            {
                WmsPlateStock_tmp ptmp = new WmsPlateStock_tmp(dr);
                string c = ptmp.customerId;
                LogHelper.debug(GetType(), " plate stock customer id is " + c);
                if (!string.IsNullOrEmpty(ptmp.customerId))
                {
                    return ptmp.customerId;
                }  
                /*
                DataTable dt1 = ptmp.getOutPort(ptmp.outPortId);
                foreach (DataRow dr1 in dt1.Rows)
                {
                    custId = dr1["customerId"].ToString();
                    break;
                }
                break;*/
            }
            return custId;
        }
       public DataTable getUnLoadTruckStks(string transNo, int cnt)
        {
           
            cmdParameters[0] = transNo;
            cmdParameters[1] = cnt;
            return CustQuery(1300).Tables[0];
        }
        public DataTable getLoadContent(string toPlate)
        { 
            cmdParameters[0] = toPlate; 
            return CustQuery(1400).Tables[0];
        }
    }
}