//IEnumerable<ItemPropertyDefinition> _itemPropertyDefinitions; //public override IEnumerable<ItemPropertyDefinition> ItemPropertyDefinitions //{ // get // { // if (_itemPropertyDefinitions == null) // { // _itemPropertyDefinitions = new List<ItemPropertyDefinition>() // { // new ItemPropertyDefinition { DisplayName = "开单日期", PropertyName = "CreateTime", PropertyType = typeof(DateTime)}, // new ItemPropertyDefinition { DisplayName = "订货品牌", PropertyName = "BrandID", PropertyType = typeof(int)}, // new ItemPropertyDefinition { DisplayName = "款号", PropertyName = "StyleCode", PropertyType = typeof(string) } // }; // } // return _itemPropertyDefinitions; // } //} //CompositeFilterDescriptorCollection _filterDescriptors; //public override CompositeFilterDescriptorCollection FilterDescriptors //{ // get // { // if (_filterDescriptors == null) // { // _filterDescriptors = new CompositeFilterDescriptorCollection() // { // new FilterDescriptor("CreateTime", FilterOperator.IsGreaterThanOrEqualTo, DateTime.Now.Date), // new FilterDescriptor("CreateTime", FilterOperator.IsLessThanOrEqualTo, DateTime.Now.Date), // new FilterDescriptor("StyleCode", FilterOperator.Contains, FilterDescriptor.UnsetValue, false) // }; // } // return _filterDescriptors; // } //} protected override IEnumerable <OrderAggregationEntity> SearchData() { var data = ReportDataContext.GetSubordinateOrderAggregation(FilterDescriptors, OrganizationArray.Select(o => o.ID).ToArray()); var result = this.AggregateOrder(data); if (IsShowStock) { ShowStock(result); } return(result); }
public List <OrderDistributionEntity> GetSubordinateOrderDistribution() { var lp = VMGlobal.DistributionQuery.LinqOP; var oids = OrganizationArray.Select(o => o.ID).ToArray(); var data = ReportDataContext.GetSubordinateOrderAggregation(FilterDescriptors, oids); var temp = data.GroupBy(o => new { o.ProductID, o.OrganizationID }).Select(g => new { g.Key, Quantity = g.Sum(o => o.Quantity), QuaDelivered = g.Sum(o => o.QuaDelivered) }).ToList(); var pids = temp.Select(o => o.Key.ProductID).ToArray(); var products = lp.Search <ViewProduct>(o => pids.Contains(o.ProductID)).ToList(); //var oids = temp.Select(o => o.Key.OrganizationID).ToArray(); //var organizations = lp.Search<ViewOrganization>(o => oids.Contains(o.ID)).ToList(); temp.RemoveAll(o => o.Quantity == 0 && o.QuaDelivered == 0); var result = temp.Select(o => { var product = products.First(p => p.ProductID == o.Key.ProductID); var organization = OrganizationArray.First(p => p.ID == o.Key.OrganizationID); return(new OrderDistributionEntity { OrganizationID = o.Key.OrganizationID, OrganizationName = organization.Name, ProductID = o.Key.ProductID, ProductCode = product.ProductCode, StyleCode = product.StyleCode, BYQID = product.BYQID, ColorID = product.ColorID, SizeID = product.SizeID, Quantity = o.Quantity, QuaDelivered = o.QuaDelivered }); }).ToList(); foreach (var r in result) { r.ColorCode = VMGlobal.Colors.Find(o => o.ID == r.ColorID).Code; r.SizeName = VMGlobal.Sizes.Find(o => o.ID == r.SizeID).Name; var byq = VMGlobal.BYQs.Find(o => o.ID == r.BYQID); r.BrandID = byq.BrandID; r.BrandCode = VMGlobal.PoweredBrands.Find(o => o.ID == r.BrandID).Code; } return(result); }