protected void view_NeedDataSource(object sender, Telerik.Web.UI.RadListViewNeedDataSourceEventArgs e) { var sv = ps.SelectedDate.HasValue ? ps.SelectedDate.Value : DateTime.Today; var ev = pe.SelectedDate.HasValue ? pe.SelectedDate.Value : DateTime.Today; if (sv > ev) { var _t = sv; sv = ev; ev = _t; } var _s = new DateTime(sv.Year, sv.Month, 1).AddMilliseconds(-1); var _e = new DateTime(ev.Year, ev.Month, 1).AddMonths(1); var catalogs = tree.GetAllNodes().Where(o => o.Checked).Select(o => o.Value.GlobalId()).ToList(); var source = catalogs.Join(DataContext.DepotST.Where(o => o.Time >= _s && o.Time <= _e), o => o, o => o.CatalogId, (a, b) => b).ToList(); var list = new List<InMemoryST>(); if (!name.Text.Trim().None()) { var a_source = DataContext.DepotObjectLoad(Depot.Id, null); if (!name.Text.None()) { var glist = a_source.Where(o => o.Name.ToLower().Contains(name.Text.Trim().ToLower()) || o.PinYin.ToLower().Contains(name.Text.Trim().ToLower()) || o.Code.ToLower() == name.Text.Trim().ToLower()).Select(o => o.Id).ToList(); source = glist.Join(source, o => o, o => o.ObjectId, (a, b) => b).ToList(); } } foreach (var g in source.GroupBy(o => o.ObjectId)) { var obj = new InMemoryST(); var v = g.OrderBy(o => o.Time).ToList(); obj.CatalogPath = v.First().CatalogPath; obj.Name = v.First().Name; obj.Single = v.First().Single; obj.Consumable = v.First().Consumable; obj.Fixed = v.First().Fixed; obj.S = g.First().StartAmount; obj.SM = g.First().StartMoney; obj.I = g.Sum(o => o.InAmount); obj.IM = g.Sum(o => o.InMoney); obj.U = Math.Abs(g.Sum(o => o.LendAmount + o.ConsumeAmount)); obj.UM = Math.Abs(g.Sum(o => o.LendMoney + o.ConsumeMoney)); obj.R = g.Sum(o => o.RedoAmount); obj.RM = g.Sum(o => o.RedoMoney); obj.O = Math.Abs(g.Sum(o => o.OutAmount)); obj.OM = Math.Abs(g.Sum(o => o.OutMoney)); obj.E = g.Last().EndAmount; obj.EM = g.Last().EndMoney; list.Add(obj); } ___total.Value = list.Sum(o => o.S).ToAmount() + "@" + list.Sum(o => o.SM).ToMoney() + "@" + list.Sum(o => o.I).ToAmount() + "@" + list.Sum(o => o.IM).ToMoney() + "@" + list.Sum(o => o.U).ToAmount() + "@" + list.Sum(o => o.UM).ToMoney() + "@" + list.Sum(o => o.O).ToAmount() + "@" + list.Sum(o => o.OM).ToMoney() + "@" + list.Sum(o => o.E).ToAmount() + "@" + list.Sum(o => o.EM).ToMoney(); view.DataSource = list.OrderBy(o => o.CatalogPath).ThenBy(o => o.Name).ToList(); }
protected void view_NeedDataSource(object sender, Telerik.Web.UI.RadListViewNeedDataSourceEventArgs e) { var timex = periodx.SelectedDate.HasValue ? periodx.SelectedDate.Value : DateTime.Today; var time = period.SelectedDate.HasValue ? period.SelectedDate.Value : DateTime.Today; if (timex > time) { var time_t = timex; timex = time; time = time_t; } var start = timex.AddMilliseconds(-1).ToTimeNode(); var end = time.AddDays(1).ToTimeNode(); var catalogs = tree.GetAllNodes().Where(o => o.Checked).Select(o => o.Value.GlobalId()).ToList(); var source = catalogs.Join(db.Value.StoreObject, o => o, o => o.CatalogId, (a, b) => b.Id).Join(db.Value.StoreFlow.Where(o => o.TimeNode > start && o.TimeNode < end), o => o, o => o.ObjectId, (a, b) => b).ToList(); var list = new List<InMemoryST>(); foreach (var g in source.GroupBy(o => o.ObjectId)) { var obj = new InMemoryST(); var v = g.OrderBy(o => o.Time).ToList(); var x = v.First().StoreObject; obj.CatalogPath = db.Value.GetCatalogPath(x.CatalogId).First(); obj.Name = x.Name; obj.Single = x.Single; obj.Consumable = x.Consumable; obj.Fixed = x.Fixed; obj.S = 0; obj.SM = 0; obj.I = g.Where(o => o.Type == FlowType.入库 || o.Type == FlowType.入库修改).Sum(o => o.Amount); obj.IM = g.Where(o => o.Type == FlowType.入库 || o.Type == FlowType.入库修改).Sum(o => o.Money); obj.U = Math.Abs(g.Where(o => o.Type == FlowType.借用出库 || o.Type == FlowType.领用出库 || o.Type == FlowType.出库修改).Sum(o => o.Amount)); obj.UM = Math.Abs(g.Where(o => o.Type == FlowType.借用出库 || o.Type == FlowType.领用出库 || o.Type == FlowType.出库修改).Sum(o => o.Money)); obj.R = 0; obj.RM = 0; obj.O = 0; obj.OM = 0; obj.E = 0; obj.EM = 0; list.Add(obj); } if (!name.Text.Trim().Null()) { list = list.Where(o => o.Name == name.Text.Trim()).ToList(); } ___total.Value = list.Sum(o => o.I).ToMoney() + "@" + list.Sum(o => o.IM).ToMoney() + "@" + list.Sum(o => o.U).ToMoney() + "@" + list.Sum(o => o.UM).ToMoney(); view.DataSource = list.OrderBy(o => o.CatalogPath).ThenBy(o => o.Name).ToList(); }
protected void view_NeedDataSource(object sender, Telerik.Web.UI.RadListViewNeedDataSourceEventArgs e) { var sv = px.SelectedDate.HasValue ? px.SelectedDate.Value : DateTime.Today; var ev = px.SelectedDate.HasValue ? px.SelectedDate.Value : DateTime.Today; var _s = new DateTime(sv.Year, sv.Month, 1).ToTimeNode(); var _e = new DateTime(ev.Year, ev.Month, 1).ToTimeNode(); if (_s > _e) { var _t = _s; _s = _e; _e = _t; } var catalogs = tree.GetAllNodes().Where(o => o.Checked).Select(o => o.Value.GlobalId()).ToList(); var source = catalogs.Join(db.Value.Store_ST.Where(o => o.Time >= _s && o.Time <= _e), o => o, o => o.CatalogId, (a, b) => b).ToList(); var list = new List<InMemoryST>(); foreach (var g in source.GroupBy(o => o.ObjectId)) { var obj = new InMemoryST(); var v = g.OrderBy(o => o.Time).ToList(); obj.CatalogPath = v.First().CatalogPath; obj.Name = v.First().Name; obj.Single = v.First().Single; obj.Consumable = v.First().Consumable; obj.Fixed = v.First().Fixed; obj.S = g.First().StartAmount; obj.SM = g.First().StartMoney; obj.I = g.Sum(o => o.InAmount); obj.IM = g.Sum(o => o.InMoney); obj.U = g.Sum(o => o.LendAmount + o.ConsumeAmount); obj.UM = g.Sum(o => o.LendMoney + o.ConsumeMoney); obj.R = g.Sum(o => o.RedoAmount); obj.RM = g.Sum(o => o.RedoMoney); obj.O = g.Sum(o => o.OutAmount); obj.OM = g.Sum(o => o.OutMoney); obj.E = g.Last().EndAmount; obj.EM = g.Last().EndMoney; list.Add(obj); } if (!name.Text.Trim().Null()) { list = list.Where(o => o.Name == name.Text.Trim()).ToList(); } ___total.Value = list.Sum(o => o.S).ToMoney() + "@" + list.Sum(o => o.SM).ToMoney() + "@" + list.Sum(o => o.I).ToMoney() + "@" + list.Sum(o => o.IM).ToMoney() + "@" + list.Sum(o => o.U).ToMoney() + "@" + list.Sum(o => o.UM).ToMoney() + "@" + list.Sum(o => o.R).ToMoney() + "@" + list.Sum(o => o.RM).ToMoney() + "@" + list.Sum(o => o.E).ToMoney() + "@" + list.Sum(o => o.EM).ToMoney(); view.DataSource = list.OrderBy(o => o.CatalogPath).ThenBy(o => o.Name).ToList(); }
protected void view_NeedDataSource(object sender, Telerik.Web.UI.RadListViewNeedDataSourceEventArgs e) { var sv = ps.SelectedDate.HasValue ? ps.SelectedDate.Value : DateTime.Today; var ev = pe.SelectedDate.HasValue ? pe.SelectedDate.Value : DateTime.Today; var _s = new DateTime(sv.Year, sv.Month, 1).ToTimeNode(); var _e = new DateTime(ev.Year, ev.Month, 1).ToTimeNode(); if (_s > _e) { var _t = _s; _s = _e; _e = _t; } var catalogs = tree.GetAllNodes().Where(o => o.Checked).Select(o => o.Value.GlobalId()).ToList(); var source = catalogs.Join(db.Value.Store_ST.Where(o => o.Time >= _s && o.Time <= _e), o => o, o => o.CatalogId, (a, b) => b).ToList(); var list = new List<InMemoryST>(); var ___objs = catalogs.Join(db.Value.StoreObject.Where(o => o.State < 2), o => o, o => o.CatalogId, (a, b) => b.Id).ToList(); foreach (var ___id in ___objs) { if (source.Count(o => o.ObjectId == ___id && o.Time == _s) == 0) { db.Value.ActionRecord(___id, DateTime.Parse(_s.FromTimeNode()), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); db.Value.SaveChanges(); } } foreach (var g in source.GroupBy(o => o.ObjectId)) { var obj = new InMemoryST(); var v = g.OrderBy(o => o.Time).ToList(); obj.CatalogPath = v.First().CatalogPath; obj.Name = v.First().Name; obj.Single = v.First().Single; obj.Consumable = v.First().Consumable; obj.Fixed = v.First().Fixed; obj.S = g.First().StartAmount; obj.SM = g.First().StartMoney; obj.SP = obj.S == 0 ? 0M : decimal.Divide(obj.SM, obj.S); obj.I = g.Sum(o => o.InAmount); obj.IM = g.Sum(o => o.InMoney); obj.IP = obj.I == 0 ? 0M : decimal.Divide(obj.IM, obj.I); obj.U = g.Sum(o => o.LendAmount + o.ConsumeAmount); obj.UM = g.Sum(o => o.LendMoney + o.ConsumeMoney); obj.UP = obj.U == 0 ? 0M : decimal.Divide(obj.UM, obj.U); obj.R = g.Sum(o => o.RedoAmount); obj.RM = g.Sum(o => o.RedoMoney); obj.RP = obj.R == 0 ? 0M : decimal.Divide(obj.RM, obj.R); obj.O = g.Sum(o => o.OutAmount); obj.OM = g.Sum(o => o.OutMoney); obj.OP = obj.O == 0 ? 0M : decimal.Divide(obj.OM, obj.O); obj.E = g.Last().EndAmount; obj.EM = g.Last().EndMoney; obj.EP = obj.E == 0 ? 0M : decimal.Divide(obj.EM, obj.E); if (obj.S > 0 || obj.SM > 0 || obj.I > 0 || obj.IM > 0 || obj.U > 0 || obj.UM > 0 || obj.R > 0 || obj.RM > 0 || obj.O > 0 || obj.OM > 0 || obj.E > 0 || obj.EM > 0) list.Add(obj); } if (!name.Text.Trim().Null()) { list = list.Where(o => o.Name == name.Text.Trim()).ToList(); } ___total.Value = list.Sum(o => o.S).ToMoney() + "@" + list.Sum(o => o.SM).ToMoney() + "@" + list.Sum(o => o.I).ToMoney() + "@" + list.Sum(o => o.IM).ToMoney() + "@" + list.Sum(o => o.U).ToMoney() + "@" + list.Sum(o => o.UM).ToMoney() + "@" + list.Sum(o => o.R).ToMoney() + "@" + list.Sum(o => o.RM).ToMoney() + "@" + list.Sum(o => o.E).ToMoney() + "@" + list.Sum(o => o.EM).ToMoney(); view.DataSource = list.OrderBy(o => o.CatalogPath).ThenBy(o => o.Name).ToList(); }