Example #1
0
 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();
 }
Example #2
0
 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();
 }
Example #4
0
 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();
 }