public void Info(FinTotal FinTotal)
        {
            if (FinTotal.Id != 0)
            {
                FinTotal = Entity.FinTotal.FirstOrDefault(n => n.Id == FinTotal.Id);
                FinTotal = Update(FinTotal);
                Entity.SaveChanges();
            }
            string StrJson = FinTotal.OutJson();

            Response.Write(StrJson);
        }
        public ActionResult Index(FinTotal FinTotal, EFPagingInfo <FinTotal> p, int IsFirst = 0)
        {
            if (IsFirst == 0)
            {
                PageOfItems <FinTotal> FinTotalList1 = new PageOfItems <FinTotal>(new List <FinTotal>(), 0, 10, 0, new Hashtable());
                ViewBag.FinTotalList  = FinTotalList1;
                ViewBag.FinTotal      = FinTotal;
                ViewBag.IsCountByYear = false;
                return(View());
            }
            p.OrderByList.Add("AddTime", "DESC");
            bool IsCountByYear = false;

            if (!FinTotal.Id.IsNullOrEmpty())
            {
                p.SqlWhere.Add(n => n.AddTime.Year == FinTotal.Id);
                IsCountByYear = true;
            }
            p.PageSize = 12;//一年为一页
            IPageOfItems <FinTotal> FinTotalList = Entity.Selects <FinTotal>(p);

            if (p.PageIndex < 2)
            {//第一页处理
                FinTotal FT = FinTotalList.FirstOrDefault();
                if (FT != null)
                {//有数据才处理
                    DateTime DT = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01"));
                    if (FT.AddTime < DT)
                    {//本月未在数据库中
                        FinTotal ft = new FinTotal();
                        ft.AddTime = DT;
                        Entity.FinTotal.AddObject(ft);
                        Entity.SaveChanges();
                        FT = Update(FT);
                        //重新获取数据
                        FinTotalList = Entity.Selects <FinTotal>(p);
                    }
                }
            }
            ViewBag.FinTotalList  = FinTotalList;
            ViewBag.FinTotal      = FinTotal;
            ViewBag.IsCountByYear = IsCountByYear;
            return(View());
        }
        private FinTotal Update(FinTotal FinTotal)
        {
            if (FinTotal.Id.IsNullOrEmpty())
            {
                return(new FinTotal());
            }
            FinTotal = Entity.FinTotal.FirstOrDefault(n => n.Id == FinTotal.Id);
            if (FinTotal == null)
            {
                return(new FinTotal());
            }
            DateTime ST = FinTotal.AddTime;
            DateTime ET = ST.AddMonths(1);
            //银联总交易额
            IQueryable <Orders> a = Entity.Orders.Where(n => n.PayWay == 2 && n.PayState == 1 && n.PayTime >= ST && n.PayTime < ET);
            decimal             A = a.Count() > 0 ? a.Sum(n => n.Amoney) : 0;
            //总手续费
            decimal B = 0;
            IQueryable <OrderRecharge> c = Entity.OrderRecharge.Where(n => n.PayState == 1 && n.PayTime >= ST && n.PayTime < ET);
            //银联卡支付总额
            decimal C = c.Count() > 0 ? c.Sum(n => n.Amoney) : 0;
            //银联卡支付总手续费B
            decimal D = c.Count() > 0 ? c.Sum(n => n.Poundage) : 0;
            IQueryable <OrderCash> e = Entity.OrderCash.Where(n => n.PayState == 2 && n.AddTime >= ST && n.AddTime < ET);
            //提现总额
            decimal E = e.Count() > 0 ? e.Sum(n => n.Amoney) : 0;
            IQueryable <OrderCash> f = Entity.OrderCash.Where(n => n.PayState == 2 && n.AddTime >= ST && n.AddTime < ET && n.TrunType == 0);
            //T0提现总额
            decimal F = f.Count() > 0 ? f.Sum(n => n.Amoney) : 0;
            //T0提现手续费
            decimal G = (decimal)(f.Count() > 0 ? f.Sum(n => (double)n.UserRate) : 0);
            //提现笔数
            int H = e.Count();
            //提现服务费
            double I = e.Count() > 0 ? e.Sum(n => n.UserRate) : 0;
            IQueryable <OrderTransfer> j = Entity.OrderTransfer.Where(n => n.PayState == 1 && n.PayTime >= ST && n.PayTime < ET);
            //转帐总额
            decimal J = j.Count() > 0 ? j.Sum(n => n.Amoney) : 0;
            //转帐手续费B
            decimal K = j.Count() > 0 ? j.Sum(n => n.Poundage) : 0;
            IQueryable <OrderHouse> l = Entity.OrderHouse.Where(n => n.PayState == 2 && n.PayTime >= ST && n.PayTime < ET);
            //房租总额
            decimal L = l.Count() > 0 ? l.Sum(n => n.PayMoney) : 0;
            //房租手续费
            decimal M = l.Count() > 0 ? l.Sum(n => n.Poundage) : 0;
            IQueryable <OrderHouse> m = Entity.OrderHouse.Where(n => n.PayState == 2 && n.PayTime >= ST && n.PayTime < ET);
            //房租T0总额
            decimal L0 = m.Count() > 0 ? m.Sum(n => n.PayMoney) : 0;
            //房租T0手续费
            decimal M0 = m.Count() > 0 ? m.Sum(n => n.CashRate * n.PayMoney) : 0;
            //房租手续费银联
            double M1 = l.Count() > 0 ? l.Sum(n => n.UserRate * (double)n.PayMoney) : 0;
            IQueryable <PayConfigOrder> z = Entity.PayConfigOrder.Where(n => n.PayState == 1 && n.PayTime >= ST && n.PayTime < ET);
            //升级总额
            decimal N = z.Count() > 0 ? z.Sum(n => n.Amoney) : 0;
            IQueryable <OrderF2F> o = Entity.OrderF2F.Where(n => n.PayState == 1 && n.PayTime >= ST && n.PayTime < ET && n.PayWay == 5);
            //支付宝总额
            decimal O = o.Count() > 0 ? o.Sum(n => n.Amoney) : 0;
            //支付宝手续费
            decimal P = o.Count() > 0 ? o.Sum(n => n.Poundage) : 0;
            IQueryable <OrderF2F> q = Entity.OrderF2F.Where(n => n.PayState == 1 && n.PayTime >= ST && n.PayTime < ET && n.PayWay == 6);
            //微信总额
            decimal Q = q.Count() > 0 ? q.Sum(n => n.Amoney) : 0;
            //微信手续费
            decimal R = q.Count() > 0 ? q.Sum(n => n.Poundage) : 0;
            IQueryable <OrderF2F> p = Entity.OrderF2F.Where(n => n.PayState == 1 && n.PayTime >= ST && n.PayTime < ET && n.PayWay == 7);
            //NFC总额
            decimal S = p.Count() > 0 ? p.Sum(n => n.Amoney) : 0;
            //NFC手续费
            decimal T = p.Count() > 0 ? p.Sum(n => n.Poundage) : 0;

            B = D + K + (decimal)M1;
            FinTotal.Update        = DateTime.Now;
            FinTotal.TotalAmoney   = A;
            FinTotal.TotlaPoundage = B;
            FinTotal.Amoney1       = C;
            FinTotal.Poundage1     = D;
            FinTotal.Amoney2       = E;
            FinTotal.Poundage2     = 0;
            FinTotal.Amoney2_0     = F;
            FinTotal.Poundage2_0   = G;
            FinTotal.Number2       = H;
            FinTotal.Poundage2_1   = (decimal)I;
            FinTotal.Amoney3       = J;
            FinTotal.Poundage3     = K;
            FinTotal.Amoney4       = 0;
            FinTotal.Poundage4     = 0;
            FinTotal.Amoney5       = L;
            FinTotal.Poundage5     = M;
            FinTotal.Amoney5_0     = L0;
            FinTotal.Poundage5_0   = M0;
            FinTotal.Amoney6       = N;
            FinTotal.Poundage6     = 0;
            FinTotal.Amoney7       = O;
            FinTotal.Poundage7     = P;
            FinTotal.Amoney8       = Q;
            FinTotal.Poundage8     = R;
            FinTotal.Amoney9       = S;
            FinTotal.Poundage9     = T;
            Entity.SaveChanges();
            return(FinTotal);
        }