Exemplo n.º 1
0
        /// <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;
            }

        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        /// <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;
            }

        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        /// <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;
            }
        }