public List <CollectionSheetSearchItemDTO> GetAllSearchCollectionInPage(SearchCollectionSheetDTO input)
        {
            var query        = QueryAndApplyFilterSearchCollectionSheet(input);
            var resultExport = query.ToList();

            return(TakeIndexForListExport(resultExport));
        }
示例#2
0
 private void ValidateRequest_Search(SearchCollectionSheetDTO input)
 {
     if (input == null)
     {
         throw new UserException(ErrorStatusReturn.REQUEST_NULL);
     }
     input.TransactionCode = string.IsNullOrEmpty(input.TransactionCode) ? input.TransactionCode : input.TransactionCode.Trim();
 }
 public ApiJsonResult ExportReportCollectionSheet([FromBody] SearchCollectionSheetDTO sheet)
 {
     try
     {
         return(new ApiJsonResult(true, _collectionSheetService.FilterAndCreateReportSearchCollectionSheet(sheet)));
     }
     catch (Exception ex)
     {
         return(ProcessException(ex));
     }
 }
示例#4
0
        public FileToDownloadDTO FilterAndCreateReportSearchCollectionSheet(SearchCollectionSheetDTO input)
        {
            List <CollectionSheetSearchItemDTO> listDataSearchRespone = GetAllSearchCollectionInPage(input);
            string fileName = "BÁO CÁO THỐNG KÊ DANH SÁCH TTTT.xlsx";
            string filePath = CreateCollectionCarInfoReport(listDataSearchRespone, fileName);

            byte[] fileData = System.IO.File.ReadAllBytes(filePath);
            System.IO.File.Delete(filePath);
            return(new FileToDownloadDTO {
                FileName = fileName, FileData = fileData
            });
        }
 public ApiJsonResult Search([FromBody] SearchCollectionSheetDTO sheet)
 {
     try
     {
         ValidateRequest_Search(sheet);
         return(new ApiJsonResult(true, _collectionSheetService.GetAllWithFillter(sheet)));
     }
     catch (Exception ex)
     {
         return(ProcessException(ex));
     }
 }
        public PaginationResultModel <CollectionSheetSearchItemDTO> GetAllWithFillter(SearchCollectionSheetDTO input)
        {
            var query = QueryAndApplyFilterSearchCollectionSheet(input);

            PaginationResultModel <CollectionSheetSearchItemDTO> resultSearch = new PaginationResultModel <CollectionSheetSearchItemDTO>();

            var resultPaging = PaginationHelper.GetItemsWithPagination(query, input.PageIndex, input.PageSize);

            return(TakeIndexForPaging(input, resultPaging));
        }
示例#7
0
        private IQueryable <CollectionSheetSearchItemDTO> QueryAndApplyFilterSearchCollectionSheet(SearchCollectionSheetDTO filter)
        {
            IQueryable <InfoCustomer>    customerQuery        = _infoCustomerRepository.FindAllAsNoTracking();
            IQueryable <CollectionSheet> collectionSheetQuery = _collectionSheetRepository.FindAllAsNoTracking();
            var query = from collectionSheet in collectionSheetQuery.Where(x => x.Status == Data.Enums.Status.Active)
                        join customer in customerQuery on collectionSheet.InfoCustomerId equals customer.Id into CollectionWithCustomer
                        from item in CollectionWithCustomer.DefaultIfEmpty()
                        select new CollectionSheetSearchItemDTO()
            {
                CollectionSheetId = collectionSheet.Id,
                TransactionCode   = collectionSheet.TransactionCode,
                TransactionDate   = collectionSheet.TransactionDate,
                OrgId             = collectionSheet.OrgId,
                OrgCode           = collectionSheet.OrgCode,
                OrgName           = collectionSheet.OrgName,
                CustomerName      = item.CustomerName,
                CustomerPhone     = item.CustomerPhone,
                BriefType         = collectionSheet.BriefType,
                BriefStatus       = collectionSheet.BriefStatus,
                UserCreateCode    = collectionSheet.UserCreateCode,
                UserCreateName    = collectionSheet.UserCreateName,
                CollectorCode     = collectionSheet.CollectorCode,
                CollectorName     = collectionSheet.CollectorName,
                CreatedDate       = collectionSheet.CreatedDate,
                CreatedById       = collectionSheet.CreatedBy,
                CollectorId       = collectionSheet.CollectorId
            };

            query = FilterConditionSearchInfoCustomer(query, filter);
            query = query.OrderByDescending(x => x.CreatedDate);
            return(query);
        }
示例#8
0
        private PaginationResultModel <CollectionSheetSearchItemDTO> TakeIndexForPaging(SearchCollectionSheetDTO input, PaginationResultModel <CollectionSheetSearchItemDTO> paging)
        {
            if (paging != null && paging.Items.Any())
            {
                if (input.PageIndex >= paging.NumberOfPage)
                {
                    input.PageIndex = 0;
                }

                int no = input.PageSize * (input.PageIndex);
                foreach (CollectionSheetSearchItemDTO item in paging.Items)
                {
                    no++;
                    item.No = no;
                }
            }
            return(paging);
        }
示例#9
0
        private IQueryable <CollectionSheetSearchItemDTO> FilterByTransactionCode(IQueryable <CollectionSheetSearchItemDTO> query, SearchCollectionSheetDTO filter)
        {
            if (!string.IsNullOrEmpty(filter.TransactionCode))
            {
                query = query.Where(n => n.TransactionCode.Contains(filter.TransactionCode));
            }

            return(query);
        }
示例#10
0
 private IQueryable <CollectionSheetSearchItemDTO> FilterByVnpostOrgContainWhenNotOrgManger(IQueryable <CollectionSheetSearchItemDTO> query, SearchCollectionSheetDTO filter)
 {
     return(query.Where(x => x.CollectorId == filter.CurrentUserId || x.CreatedById == filter.CurrentUserId));
 }
示例#11
0
        private IQueryable <CollectionSheetSearchItemDTO> FilterByVnpostOrgContainWhenIsOrgManger(IQueryable <CollectionSheetSearchItemDTO> query, SearchCollectionSheetDTO filter)
        {
            var listIdOrg = filter.OrgItems.Select(x => x.Id).ToList();

            if (filter.OrgId != 0)
            {
                query = query.Where(n => n.OrgId == filter.OrgId);
            }
            else
            {
                query = query.Where(n => listIdOrg.Contains(n.OrgId));
            }

            return(query);
        }
示例#12
0
 private IQueryable <CollectionSheetSearchItemDTO> FilterByVnpostOrgContain(IQueryable <CollectionSheetSearchItemDTO> query, SearchCollectionSheetDTO filter)
 {
     if (filter.IsOrgManager)
     {
         return(FilterByVnpostOrgContainWhenIsOrgManger(query, filter));
     }
     else
     {
         return(FilterByVnpostOrgContainWhenNotOrgManger(query, filter));
     }
 }
示例#13
0
        private IQueryable <CollectionSheetSearchItemDTO> FilterByDateTransaction(IQueryable <CollectionSheetSearchItemDTO> query, SearchCollectionSheetDTO filter)
        {
            if (filter.FromDate.HasValue)
            {
                query = query.Where(s => s.TransactionDate.Value >= filter.FromDate.Value);
            }
            if (filter.ToDate.HasValue)
            {
                query = query.Where(s => s.TransactionDate.Value < filter.ToDate.Value.AddDays(1));
            }

            return(query);
        }
示例#14
0
        private IQueryable <CollectionSheetSearchItemDTO> FilterConditionSearchInfoCustomer(IQueryable <CollectionSheetSearchItemDTO> query, SearchCollectionSheetDTO filter)
        {
            query = FilterByVnpostOrgContain(query, filter);
            query = FilterByDateTransaction(query, filter);
            query = FilterByTransactionCode(query, filter);

            return(query);
        }