public ActionResult IssuedCollections(bool isAdmin, DateTime?fromDate, DateTime?toDate) { var nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone(); nfi.NumberGroupSeparator = " "; var queryToDate = toDate ?? DateTime.Now.Date; var queryFromDate = fromDate ?? queryToDate.AddDays(-30); var userId = _userManager.GetUserId(User); //var isUserAdmin = User.IsInRole("Administrators"); var collectionList = (from collection in _db.Collections.Include(c => c.Provider).Include(c => c.DeskIssued).Include(c => c.Collector) from operation in _db.CollectionOperations.Where(co => co.CollectionId == collection.CollectionId) .OrderByDescending(o => o.OperationDateTime).Take(1).DefaultIfEmpty() where (isAdmin || collection.ProviderId == userId) && operation.OperationDateTime >= queryFromDate && operation.OperationDateTime < queryToDate.AddDays(1) orderby operation.OperationDateTime descending select new { collection, operation }).ToList(); var model = new CollectionDatatableViewModel { IsAdmin = isAdmin, FromDate = queryFromDate.ToString("d"), ToDate = queryToDate.ToString("d"), Items = (from q in collectionList select new CollectionListItem { CollectionId = q.collection.CollectionId, Amount = q.collection.Amount.ToString("#,0.00", nfi), ProviderName = q.collection.Provider != null ? q.collection.Provider.Name : "", DeskId = q.collection.DeskIssued != null ? q.collection.DeskIssued.DeskId : "", DeskName = q.collection.DeskIssued != null ? q.collection.DeskIssued.Description : "", CollectorName = q.collection.Collector.Name, Status = q.operation.OperationTypeId, IssuedDateTime = q.operation.OperationDateTime.ToString("g"), PaymentType = q.collection.PaymentType, Comment = q.collection.Comment }).ToList() }; return(PartialView(model)); }
public ActionResult IncomingCollections() { var nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone(); nfi.NumberGroupSeparator = " "; var userId = _userManager.GetUserId(User); var collectionList = (from collection in _db.Collections.Include(c => c.Provider).Include(c => c.DeskIssued).Include(c => c.Collector) from operation in _db.CollectionOperations.Where(co => co.CollectionId == collection.CollectionId) .OrderByDescending(o => o.OperationDateTime).Take(1).DefaultIfEmpty() where collection.CollectorId == userId && operation.OperationTypeId == CollectionOperationType.COType.New orderby operation.OperationDateTime descending select new { collection, operation }).ToList(); var model = new CollectionDatatableViewModel { Items = (from q in collectionList select new CollectionListItem { CollectionId = q.collection.CollectionId, CollectionOperationId = q.operation.CollectionOperationId, Amount = q.collection.Amount.ToString("#,0.00", nfi), ProviderName = q.collection.Provider != null ? q.collection.Provider.Name : "", DeskId = q.collection.DeskIssued != null ? q.collection.DeskIssued.DeskId : "", DeskName = q.collection.DeskIssued != null ? q.collection.DeskIssued.Description : "", CollectorName = q.collection.Collector.Name, IssuedDateTime = q.operation.OperationDateTime.ToString("g"), PaymentType = q.collection.PaymentType, Comment = q.collection.Comment }).ToList() }; return(PartialView(model)); }