/// 
///INTERFACE IMPLIMENT FOR TABLE t_wmsPlateStock_tmp
///By wm with codesmith. 
///on 05/25/2020
/// 
using System;
using System.Data.SqlClient;
using DeiNiu.Utils;
namespace DeiNiu.wms.Data.Model
{
    [Serializable]  class WmsPlateStock_tmp_Imp : WmsPlateStock_tmp_base_Imp
    { 
        protected override void CmdPrepare(SqlCommand sqlCmd)
        { 
            base.CmdPrepare(sqlCmd);
            WmsPlateStock_tmp mObj = ( WmsPlateStock_tmp)modelObj;
            switch (_cust_op_flag)
            {
             case 99:  //query with dic
                    _strSql = "SELECT *,ROW_NUMBER() OVER (ORDER BY ID DESC) as sortNo  FROM t_wmsPlateStock_tmp  WHERE DR = 1 " + mObj.CmdParameters[0].ToString();
                    _strSql = "SELECT * FROM (" + _strSql + " )AS SORTEDTB WHERE sortNo BETWEEN @START AND @END" + " ORDER BY ID DESC";
                    _strSql += ";SELECT COUNT(*) FROM t_wmsPlateStock_tmp  WHERE DR = 1 " + mObj.CmdParameters[0].ToString();
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@START", this._rownumStart);
                    sqlCmd.Parameters.AddWithValue("@END", this._rownumEnd);
                    sqlCmd.CommandText = _strSql;
                    break;
             case 10:  //get model by plateid,skuid
                    _strSql = "SELECT * FROM t_wmsPlateStock_tmp WHERE plateId = @plateId and skuId=@skuId";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
                    sqlCmd.Parameters.AddWithValue("@skuId", mObj.CmdParameters[1]);
                    break;
                case 100:  //by name
                    _strSql = "SELECT * FROM t_wmsPlateStock_tmp WHERE NAME = @NAME";
                    sqlCmd.CommandText = _strSql; 
                     sqlCmd.Parameters.AddWithValue("@NAME",   mObj.CmdParameters[0]  );
                    break;
                case 200:  //by plateId
                    _strSql = "SELECT * FROM v_wmsPlateStockTmp WHERE plateId = @plateId";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
                    break;
                case 300:  //by outportId
                    _strSql = "SELECT * FROM t_wmsPlateStock_tmp WHERE outportId = @portId";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@portId", mObj.CmdParameters[0]);
                    break;
                case 310:  //by inportId
                    _strSql = "SELECT * FROM t_wmsPlateStock_tmp WHERE inPortId = @portId";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@portId", mObj.CmdParameters[0]);
                    break;
                case 320:  //by outportId,plateId
                    _strSql = "SELECT * FROM t_wmsPlateStock_tmp WHERE outportId = @portId and plateId =@plateId";
                    sqlCmd.CommandText = _strSql; 
                    sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
                    sqlCmd.Parameters.AddWithValue("@portId", mObj.CmdParameters[1]);
                  
                    break;
                case 400:  // inupPort, outPort job detail
                    _strSql = "SELECT * FROM [v_plateStockDetail] WHERE plateId = @plateId";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
                    break;
                case 500:  // 
                    _strSql = "SELECT * FROM v_stockOutPort WHERE id = @portId";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@portId", mObj.CmdParameters[0]);
                    break;
                case 600:  // 
                    _strSql = "SELECT * FROM t_wmsPlateStock_tmp WHERE plateId = @plateId" +
                        " and outPortId =@portId";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@portId", mObj.CmdParameters[1]);
                    sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
                    break;
                case 700:  // 
                    _strSql = "SELECT * FROM t_wmsPlateStock_tmp WHERE plateId = @plateId " +
                           " and   inPortId =@portId";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@portId", mObj.CmdParameters[1]);
                    sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
                    break;
                case 800:  //delete
                    _strSql = "delete  FROM t_wmsPlateStock_tmp WHERE plateId = @plateId ";
                    sqlCmd.CommandText = _strSql; 
                    sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
                    break;
                case 900:  //merge
                    _strSql = "update t_wmsPlateStock_tmp set plateId = @toPlateId " +
                        "where plateId =@plateId and orderNo =@orderNo ;";
                    _strSql += " update t_wmsoutpickport set flowNo = @toPlateId where " +
                         " orderNo= @orderNo and flowNo =@plateId ;";
                    _strSql += " update t_wmsFlow set flowNo = @toPlateId where " +
                            " orderNo= @orderNo and flowNo =@plateId ;";
                    _strSql += " update t_wmsPlatePack set plateId = @toPlateId where " +
                         "   plateId =@plateId ;";
                    _strSql += " update t_wmsPlatePack set subPlateId = @toPlateId where " +
                       "   subPlateId =@plateId ;";
                  //  _strSql += " update t_wmsPlate set inPlate = @toPlateId where    inPlate =@plateId ;";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
                    sqlCmd.Parameters.AddWithValue("@toPlateId", mObj.CmdParameters[1]);
                    sqlCmd.Parameters.AddWithValue("@orderNo", mObj.CmdParameters[2]);
                    break;
                case 1000: // 
                    _strSql = "select * from t_wmsoutpickrequest p where outStoreType=@outStoreType and exists (select 1 from t_wmsPlateStock_tmp where plateid =@plateid and orderno = p.pickorderNo )";
                    sqlCmd.CommandText = _strSql;
                    sqlCmd.Parameters.AddWithValue("@plateId", mObj.CmdParameters[0]);
                    sqlCmd.Parameters.AddWithValue("@outStoreType", mObj.CmdParameters[1]);
                    break;
                case 1100:  //insert plate stock his,     delete from plate stock
                    _strSql = "insert into t_wmsPlateStock_tmp_his " +
                        " select *  FROM t_wmsPlateStock_tmp WHERE orderNo =  @orderNo" +
                        "; delete  FROM t_wmsPlateStock_tmp WHERE orderNo = @orderNo " +
                        " ; delete  FROM t_wmsPlateStock_tmp_his WHERE createtime