public ActionResult List(GridCommand command, ItemConsumeSearchModel searchModel)
 {
     SearchCacheModel searchCacheModel = this.ProcessSearchModel(command, searchModel);
     ViewBag.PageSize = base.ProcessPageSize(command.PageSize);
     return View();
 }
 public ActionResult _AjaxList(GridCommand command, ItemConsumeSearchModel searchModel)
 {
     TempData["GridCommand"] = command;
     TempData["searchModel"] = searchModel;
     return _GetReturnList();
 }
        private SearchStatementModel PrepareSearchStatement(GridCommand command, ItemConsumeSearchModel searchModel)
        {
            string whereStatement = " where 1=1 ";
            if (searchModel.IsClose)
            {
                    whereStatement += " and  i.Qty<=i.ConsumedQty";
             }
            else{
                    whereStatement += " and  i.Qty>i.ConsumedQty";
            }

            IList<object> param = new List<object>();

            HqlStatementHelper.AddEqStatement("SourceType", searchModel.SourceType, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Item", searchModel.ItemCode, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("PONo", searchModel.PONo, "i", ref whereStatement, param);
            //HqlStatementHelper.AddEqStatement("IsClose", searchModel.IsClose, "i", ref whereStatement, param);

            if (searchModel.EffFrom != null & searchModel.EffTo != null)
            {
                searchModel.EffTo = searchModel.EffTo.Value.AddDays(1).AddSeconds(-1);
                HqlStatementHelper.AddBetweenStatement("CreateDate", searchModel.DateFrom, searchModel.DateTo, "i", ref whereStatement, param);
            }
            else if (searchModel.EffFrom != null & searchModel.DateFrom == null)
            {
                HqlStatementHelper.AddGeStatement("CreateDate", searchModel.DateFrom, "i", ref whereStatement, param);
            }
            else if (searchModel.EffFrom == null & searchModel.DateTo != null)
            {
                HqlStatementHelper.AddLeStatement("CreateDate", searchModel.DateTo, "i", ref whereStatement, param);
            }

           

           
            string sortingStatement = HqlStatementHelper.GetSortingStatement(command.SortDescriptors);
            if (string.IsNullOrWhiteSpace(sortingStatement))
            {
                sortingStatement = " order by  CreateDate desc";
            }
            SearchStatementModel searchStatementModel = new SearchStatementModel();
            searchStatementModel.SelectCountStatement = selectCountStatement;
            searchStatementModel.SelectStatement = selectStatement;
            searchStatementModel.WhereStatement = whereStatement;
            searchStatementModel.SortingStatement = sortingStatement;
            searchStatementModel.Parameters = param.ToArray<object>();

            return searchStatementModel;
        }