private SearchStatementModel PrepareSearchStatement(GridCommand command, PlanBillSearchModel searchModel) { string whereStatement = string.Empty; IList <object> param = new List <object>(); SecurityHelper.AddPartyFromPermissionStatement(ref whereStatement, "p", "Party", com.Sconit.CodeMaster.OrderType.Procurement, true); HqlStatementHelper.AddLikeStatement("OrderNo", searchModel.OrderNo, HqlStatementHelper.LikeMatchMode.Start, "p", ref whereStatement, param); HqlStatementHelper.AddLikeStatement("ReceiptNo", searchModel.ReceiptNo, HqlStatementHelper.LikeMatchMode.Start, "p", ref whereStatement, param); HqlStatementHelper.AddEqStatement("Item", searchModel.Item, "p", ref whereStatement, param); HqlStatementHelper.AddEqStatement("Party", searchModel.Party, "p", ref whereStatement, param); if (searchModel.CreateDate_start != null & searchModel.CreateDate_End != null) { HqlStatementHelper.AddBetweenStatement("CreateDate", searchModel.CreateDate_start, searchModel.CreateDate_End, "p", ref whereStatement, param); } else if (searchModel.CreateDate_start != null & searchModel.CreateDate_End == null) { HqlStatementHelper.AddGeStatement("CreateDate", searchModel.CreateDate_start, "p", ref whereStatement, param); } else if (searchModel.CreateDate_start == null & searchModel.CreateDate_End != null) { HqlStatementHelper.AddLeStatement("CreateDate", searchModel.CreateDate_End, "p", ref whereStatement, param); } if (whereStatement == string.Empty) { whereStatement += " where p.PlanQty>p.ActingQty"; } else { whereStatement += " and p.PlanQty>p.ActingQty"; } string sortingStatement = HqlStatementHelper.GetSortingStatement(command.SortDescriptors); SearchStatementModel searchStatementModel = new SearchStatementModel(); searchStatementModel.SelectCountStatement = selectCountStatement; searchStatementModel.SelectStatement = selectStatement; searchStatementModel.WhereStatement = whereStatement; searchStatementModel.SortingStatement = sortingStatement; searchStatementModel.Parameters = param.ToArray <object>(); return(searchStatementModel); }