private void btnSearch_Click(object sender, RoutedEventArgs e)
        {
            if (cbxStorage.SelectedIndex == -1)
            {
                cbxStorage.Focus();
                MessageBox.Show("请选择盘点仓库");
                return;
            }
            var filters = new CompositeFilterDescriptorCollection();

            //filters.AddRange(billFilter.FilterDescriptors.ToList());
            filters.Add(billFilter.FilterDescriptors);
            int storageID = (int)cbxStorage.SelectedValue;

            filters.Add(new FilterDescriptor("StorageID", FilterOperator.IsEqualTo, cbxStorage.SelectedValue));
            filters.Add(new FilterDescriptor("Status", FilterOperator.IsEqualTo, false));

            var data   = ReportDataContext.AggregateStocktakeForStockUpdate(filters, out _refrenceStocktakeIDs);
            var pids   = data.Select(o => o.ProductID);
            var stocks = VMGlobal.DistributionQuery.LinqOP.Search <Stock>(o => o.StorageID == storageID && pids.Contains(o.ProductID)).ToList();
            var result = data.Select(o =>
            {
                var d = new StocktakeAggregationEntityForStockUpdate
                {
                    BrandID     = o.BrandID,
                    BrandCode   = o.BrandCode,
                    ColorCode   = o.ColorCode,
                    ProductCode = o.ProductCode,
                    ProductID   = o.ProductID,
                    Quantity    = o.Quantity,
                    SizeCode    = o.SizeCode,
                    SizeName    = o.SizeName,
                    StyleCode   = o.StyleCode
                };
                var stock       = stocks.FirstOrDefault(s => s.ProductID == o.ProductID);
                d.StockQuantity = (stock == null ? 0 : stock.Quantity);
                return(d);
            }).ToList();

            RadGridView1.ItemsSource = result;
        }
        public void AppendFilters(CompositeFilterDescriptorCollection filters)
        {
            FilterDescriptor fd_paisId      = null;
            FilterDescriptor fd_provinciaId = null;

            if (filters == null)
            {
                throw new ArgumentNullException();
            }
            if ((this.paisId == -1) || (this.provinciaId == -1))
            {
                return;
            }

            fd_paisId      = new FilterDescriptor(PAIS_ID_ELEMENT, FilterOperator.IsEqualTo, this.paisId, false, typeof(int));
            fd_provinciaId = new FilterDescriptor(PROVINCIA_ID_ELEMENT, FilterOperator.IsEqualTo, this.provinciaId, false, typeof(int));

            // Verify this filter does not exist prior to adding it
            filters.Add(fd_paisId);
            filters.Add(fd_provinciaId);
        }
Example #3
0
        /// <summary>
        /// Get FilterDescriptorCollection from Expression
        /// </summary>
        /// <param name="filterExpression">Expression</param>
        /// <param name="radDataFilter">The RAD data filter.</param>
        /// <returns>CompositeFilterDescriptorCollection</returns>
        public static CompositeFilterDescriptorCollection GetFilterDescriptorCollection(this string filterExpression, RadDataFilter radDataFilter)
        {
            var descriptor = Veyron.SharedTypes.FilterDescriptor.FromJSON(filterExpression);
            var result = new CompositeFilterDescriptorCollection { LogicalOperator = descriptor.LogicalOperator.ToRadLogicalOperator() };

            if (descriptor.FilterDescriptors == null || descriptor.FilterDescriptors.Count == 0)
            {
                if (descriptor.Operator != FilterOperator.Any)
                {
                    result.Add(GetRadFilterDescriptor(descriptor, radDataFilter));
                }
            }
            else
            {
                CompositeFilterDescriptor(descriptor, result, radDataFilter);
            }

            return result;
        }
Example #4
0
        /// <summary>
        /// Get FilterDescriptorCollection from Expression.
        /// </summary>
        /// <param name="filterDescriptor">Filter Descriptor.</param>
        /// <param name="radDataFilter">The RAD data filter.</param>
        /// <returns>CompositeFilterDescriptorCollection.</returns>
        public static CompositeFilterDescriptorCollection GetFilterDescriptorCollection(this Veyron.SharedTypes.IFilterDescriptor filterDescriptor, RadDataFilter radDataFilter)
        {
            if (filterDescriptor == null)
                return null;

            var result = new CompositeFilterDescriptorCollection { LogicalOperator = filterDescriptor.LogicalOperator.ToRadLogicalOperator() };

            if (filterDescriptor.FilterDescriptors == null || filterDescriptor.FilterDescriptors.Count == 0)
            {
                if (filterDescriptor.Operator != FilterOperator.Any)
                    result.Add(GetRadFilterDescriptor(filterDescriptor, radDataFilter));
            }
            else
                CompositeFilterDescriptor(filterDescriptor, result, radDataFilter);

            return result;
        }