/// <summary> /// 顯示安置人 /// </summary> /// <param name="share_no"></param> /// <param name="sales_no"></param> /// <returns></returns> public SalesTree GetShareBySalesSelf(string share_no, string sales_no) { using (db0 = getDB0) { var sales = db0.Sales.Find(sales_no); var share_sales = db0.Sales.Find(share_no); var data = sales.ShareSub .Traverse(x => x.ShareSub).Where(x => x.share_level > sales.share_level & x.share_level < (sales.share_level + 4)).ToList(); //安置人 SalesTree share = new SalesTree() { sales_no = share_no, sales_name = share_sales.sales_name, sub = null }; //自己 SalesTree n = new SalesTree() { sales_no = sales_no, sales_name = sales.sales_name, sub = null }; IList<SalesTree> Share_n = new List<SalesTree>() { n }; share.sub = Share_n; share.sub_count = sales.ShareSub .Traverse(x => x.ShareSub).Where(x => x.share_level > sales.share_level & x.share_level <= (sales.share_level + 4)).Count(); IList<SalesTree> L = new List<SalesTree>(); foreach (var t in sales.ShareSub) { var m = new SalesTree() { sales_no = t.sales_no, sales_name = t.sales_name, sub = null }; var k = QSub(t.sales_no, data); m.sub = k; m.sub_count = k.Length; L.Add(m); } n.sub_count = L.Count(); n.sub = L; return share; } }
private IList<SalesTree> ReMarkData(IList<SalesTree> data, string sales_no) { IList<SalesTree> n = new List<SalesTree>(); foreach (var item in data) { if (item.sales_no == sales_no) { var m = new SalesTree() { sales_no = item.sales_no, sales_name = item.sales_name, sub_count = 3, is_me = true, sub = new List<SalesTree>() //排除其下探詢 }; n.Add(m); //return n; } else { var m = new SalesTree() { sales_no = item.sales_no, sales_name = item.sales_name, sub_count = item.sub_count, is_me = false, sub = ReMarkData(item.sub, sales_no) }; n.Add(m); } } return n; }
private SalesTree[] QSub(string sales_no, IEnumerable<Sales> data) { IList<SalesTree> L = new List<SalesTree>(); var f = data.FirstOrDefault(x => x.sales_no == sales_no); if (f != null) { foreach (var t in f.ShareSub) { var m = new SalesTree() { sales_no = t.sales_no, sales_name = t.sales_name, sub = null }; var k = QSub(t.sales_no, data); m.sub = k; m.sub_count = k.Length; L.Add(m); } } return L.ToArray(); }
/// <summary> /// 查詢該員其下共享圈樹狀結構會員 /// </summary> /// <param name="sales_no"></param> /// <returns></returns> public SalesTree GetShareBySales(string sales_no, string exexclude_no) { using (db0 = getDB0) { var sales = db0.Sales.Find(sales_no); var data = sales.ShareSub .Traverse(x => x.ShareSub).Where(x => x.share_level + 4 >= sales.share_level).ToList(); SalesTree n = new SalesTree() { sales_no = sales_no, sales_name = sales.sales_name, sub = null }; IList<SalesTree> L = new List<SalesTree>(); foreach (var t in sales.ShareSub) { var m = new SalesTree() { sales_no = t.sales_no, sales_name = t.sales_name, sub = null }; var k = QSub(t.sales_no, data); m.sub = k; m.sub_count = k.Length; L.Add(m); } n.sub_count = L.Count(); n.sub = ReMarkData(L, exexclude_no); return n; } }
private SalesTree[] QSubBySales(string sales_no, IEnumerable<Sales> data) { IList<SalesTree> L = new List<SalesTree>(); var f = data.FirstOrDefault(x => x.sales_no == sales_no); DateTime now = DateTime.Now; DateTime past = now.AddMonths(-1); if (f != null) { foreach (var t in f.SalesSub) { var m = new SalesTree() { sales_no = t.sales_no, sales_name = t.sales_name, sales_rank = t.rank, sub = null }; var k = QSubBySales(t.sales_no, data); m.sub = k; m.sub_count = k.Length; #region get kv、total var subthisMonth = t.Purchase.Where(x => x.sales_no == t.sales_no & x.set_date.Year == now.Year & x.set_date.Month == now.Month & (x.state == (int)PurchaseState.complete || x.state == (int)PurchaseState.onSite)).ToList(); var sublastMonth = t.Purchase.Where(x => x.sales_no == t.sales_no & x.set_date.Year == past.Year & x.set_date.Month == past.Month & (x.state == (int)PurchaseState.complete || x.state == (int)PurchaseState.onSite)).ToList(); m.kv_total = (int)subthisMonth.Sum(x => x.kv_total); m.total = (int)subthisMonth.Sum(x => x.total); m.last_kv_total = (int)sublastMonth.Sum(x => x.kv_total); m.last_total = (int)sublastMonth.Sum(x => x.total); #endregion L.Add(m); } } return L.ToArray(); }
/// <summary> /// 推薦人及其下線 /// </summary> /// <param name="sales_no"></param> /// <returns></returns> public SalesTree GetRemmonedBySales(string sales_no) { using (db0 = getDB0) { var sales = db0.Sales.Find(sales_no); var data = sales.SalesSub.Traverse(x => x.SalesSub).ToList(); SalesTree n = new SalesTree() { sales_no = sales_no, sales_name = sales.sales_name, sales_rank = sales.rank, sub = null }; n.sub_count = sales.SalesSub.Count(); #region get kv、total DateTime now = DateTime.Now; DateTime past = now.AddMonths(-1); var thisMonth = sales.Purchase.Where(x => x.sales_no == sales_no & x.set_date.Year == now.Year & x.set_date.Month == now.Month & (x.state == (int)PurchaseState.complete || x.state == (int)PurchaseState.onSite)).ToList(); var lastMonth = sales.Purchase.Where(x => x.sales_no == sales_no & x.set_date.Year == past.Year & x.set_date.Month == past.Month & (x.state == (int)PurchaseState.complete || x.state == (int)PurchaseState.onSite)).ToList(); n.kv_total = (int)thisMonth.Sum(x => x.kv_total); n.total = (int)thisMonth.Sum(x => x.total); n.last_kv_total = (int)lastMonth.Sum(x => x.kv_total); n.last_total = (int)lastMonth.Sum(x => x.total); #endregion IList<SalesTree> L = new List<SalesTree>(); foreach (var t in sales.SalesSub) { var m = new SalesTree() { sales_no = t.sales_no, sales_name = t.sales_name, sales_rank = t.rank, sub = null }; var k = QSubBySales(t.sales_no, data); m.sub = k; m.sub_count = k.Length; #region get kv、total var subthisMonth = t.Purchase.Where(x => x.sales_no == t.sales_no & x.set_date.Year == now.Year & x.set_date.Month == now.Month & (x.state == (int)PurchaseState.complete || x.state == (int)PurchaseState.onSite)).ToList(); var sublastMonth = t.Purchase.Where(x => x.sales_no == t.sales_no & x.set_date.Year == past.Year & x.set_date.Month == past.Month & (x.state == (int)PurchaseState.complete || x.state == (int)PurchaseState.onSite)).ToList(); m.kv_total = (int)subthisMonth.Sum(x => x.kv_total); m.total = (int)subthisMonth.Sum(x => x.total); m.last_kv_total = (int)sublastMonth.Sum(x => x.kv_total); m.last_total = (int)sublastMonth.Sum(x => x.total); #endregion L.Add(m); } n.sub = L; return n; } }