public List <SalesInvoice> GetSalesInvoices(QueryOptions queryOptions, PrimeActs.Domain.ViewModels.Invoice.SearchObject searchObject, out int totalCount) { totalCount = 0; return (_repository.Query(GetSearchCriteria(searchObject)) .Include(inc => inc.SalesInvoiceItems.Select(incp => incp.TicketItem.Ticket.Division.Company)) .Include(inc => inc.CustomerDepartment.Customer) .OrderBy(GetOrder(queryOptions.SortField, queryOptions.SortOrder)) .SelectPage(queryOptions.CurrentPage, queryOptions.PageSize, out totalCount) .ToList()); }
private Expression <Func <SalesInvoice, bool> > GetSearchCriteria(PrimeActs.Domain.ViewModels.Invoice.SearchObject searchObject) { Expression <Func <SalesInvoice, bool> > mainCriteria = c => c.SalesInvoiceItems.Any(x => x.TicketItem.Ticket.IsCashSale == false); if (!string.IsNullOrEmpty(searchObject.SalesInvoiceReference)) { mainCriteria = mainCriteria.And(c => c.SalesInvoiceReference.StartsWith(searchObject.SalesInvoiceReference)); } if (!string.IsNullOrEmpty(searchObject.SalesInvoiceReference)) { mainCriteria = mainCriteria.And(c => c.CustomerDepartment.CustomerDepartmentName.StartsWith(searchObject.CustomerDepartmentName)); } if (!string.IsNullOrEmpty(searchObject.TicketReference)) { mainCriteria = mainCriteria.And(c => c.SalesInvoiceItems.Any(y => y.TicketItem.Ticket.TicketReference.StartsWith(searchObject.TicketReference))); } if (!string.IsNullOrEmpty(searchObject.ConsignmentReference)) { mainCriteria = mainCriteria.And(c => c.SalesInvoiceItems.Any(y => y.TicketItem.ConsignmentItem.Consignment.ConsignmentReference.StartsWith(searchObject.ConsignmentReference))); } if (!string.IsNullOrEmpty(searchObject.SalesInvoiceReference)) { mainCriteria = mainCriteria.And(c => c.CustomerDepartment.CustomerDepartmentName.StartsWith(searchObject.CustomerDepartmentName)); } if (searchObject.FromDate.HasValue) { mainCriteria = mainCriteria.And(c => c.CreatedDate.Value >= searchObject.FromDate.Value); } if (searchObject.ToDate.HasValue) { mainCriteria = mainCriteria.And(c => c.CreatedDate.Value <= searchObject.ToDate.Value); } return(mainCriteria); }