Exemple #1
0
        public List <PendingVoucherRequest> Get2(String id)
        {
            List <PendingVoucherRequest> l1 = new List <PendingVoucherRequest>();
            int did = Convert.ToInt32(id);

            l1 = new VoucherRepo().ListPendingVoucherRequests(did);

            return(l1);
        }
            private IQueryable <Olma.Voucher> BuildVoucherSearchQuery()
            {
                var query = VoucherRepo
                            .FindAll()
                            .AsNoTracking()
                            .Where(i => i.IsDeleted == false);

                //var postingAccountIds = AuthData.GetPostingAccountIds().ToArray();

                if (VouchersSearchRequest.CustomerId?.Count > 0)
                {
                    var predicate = PredicateBuilder.New <Olma.Voucher>(v => VouchersSearchRequest.CustomerId.Contains(v.CustomerDivision.CustomerId));
                    predicate.Or(v => v.ReceivingCustomerId != null && VouchersSearchRequest.CustomerId.Contains(v.ReceivingCustomerId.Value));
                    query = query.Where(predicate);
                }

                if (VouchersSearchRequest.Type != null)
                {
                    query = query.Where(v => v.Type == VouchersSearchRequest.Type);
                }

                if (!string.IsNullOrEmpty(VouchersSearchRequest.DocumentNumber))
                {
                    query = query.Where(v => v.Document.Number.Contains(VouchersSearchRequest.DocumentNumber)); //TODO compare as SQL LIKE
                }

                if (VouchersSearchRequest.FromIssueDate != null)
                {
                    query = query.Where(v => v.Document.IssuedDateTime >= VouchersSearchRequest.FromIssueDate.Value.Date);
                }

                if (VouchersSearchRequest.ToIssueDate != null)
                {
                    query = query.Where(v => v.Document.IssuedDateTime <= VouchersSearchRequest.ToIssueDate.Value.Date);
                }

                if (VouchersSearchRequest.States != null)
                {
                    query = query.Where(i => VouchersSearchRequest.States.Contains(i.Status));
                }

                if (VouchersSearchRequest.ReasonTypes?.Count > 0)
                {
                    query = query.Where(i => VouchersSearchRequest.ReasonTypes.Contains(i.ReasonTypeId));
                }

                if (VouchersSearchRequest.LoadCarrierTypes?.Count > 0)
                {
                    query = query.Where(i => i.Positions.Any(p => VouchersSearchRequest.LoadCarrierTypes.Contains(p.LoadCarrier.TypeId)));
                }

                if (!string.IsNullOrEmpty(VouchersSearchRequest.Shipper))
                {
                    query = query.Where(v => v.Shipper != null && v.Shipper.CompanyName.Contains(VouchersSearchRequest.Shipper));
                }

                if (!string.IsNullOrEmpty(VouchersSearchRequest.SubShipper))
                {
                    query = query.Where(v => v.SubShipper != null && v.SubShipper.CompanyName.Contains(VouchersSearchRequest.SubShipper));
                }

                if (!string.IsNullOrEmpty(VouchersSearchRequest.Recipient))
                {
                    query = query.Where(v => v.Recipient != null && v.Recipient.CompanyName.Contains(VouchersSearchRequest.Recipient));
                }

                if (VouchersSearchRequest.RecipientType != null)
                {
                    query = query.Where(v => v.RecipientType == VouchersSearchRequest.RecipientType);
                }

                if (VouchersSearchRequest.ValidFrom != null)
                {
                    query = query.Where(v => v.ValidUntil >= VouchersSearchRequest.ValidFrom.Value.Date);
                }

                if (VouchersSearchRequest.ValidTo != null)
                {
                    query = query.Where(v => v.ValidUntil <= VouchersSearchRequest.ValidTo.Value.Date);
                }

                if (VouchersSearchRequest.QuantityFrom != null)
                {
                    query = query.Where(v => v.Positions.Any(p => p.LoadCarrierQuantity >= VouchersSearchRequest.QuantityFrom));
                }

                if (VouchersSearchRequest.QuantityTo != null)
                {
                    query = query.Where(v => v.Positions.Any(p => p.LoadCarrierQuantity <= VouchersSearchRequest.QuantityTo));
                }

                if (!string.IsNullOrEmpty(VouchersSearchRequest.Supplier))
                {
                    query = query.Where(v => v.Supplier != null && v.Supplier.CompanyName.Contains(VouchersSearchRequest.Supplier));
                }

                if (VouchersSearchRequest.HasDplNote.HasValue)
                {
                    query = query.Where(v => v.DplNotes.Any() == VouchersSearchRequest.HasDplNote.Value);
                }
                if (!string.IsNullOrEmpty(VouchersSearchRequest.CustomerReference))
                {
                    query = query.Where(v => v.CustomerReference.Contains(VouchersSearchRequest.CustomerReference));
                }

                return(query);
            }