public ReportViewModel GroupSum(List <TrialBalanceViewModel> solly, string year, string headerVariable)
        {
            var     result1 = solly.DistinctBy(x => x.code).ToList();
            var     result2 = new List <TrialBalanceViewModel>();
            decimal TotalCr = 0M;
            decimal TotalDr = 0M;

            foreach (var j in result1)
            {
                var k = new TrialBalanceViewModel
                {
                    code        = j.code,
                    description = j.description,
                    credit      = getSumCr(solly, j.code),
                    debit       = getSumDr(solly, j.code)
                };
                TotalCr += k.credit;
                TotalDr += k.debit;

                result2.Add(k);
            }

            var result3 = new ReportViewModel
            {
                getList        = result2,
                TotalCredit    = TotalCr,
                TotalDebit     = TotalDr,
                year           = year,
                HeaderVariable = headerVariable
            };

            return(result3);
        }
        public ReportViewModel GetAllSubs(List <TrialBalanceViewModel> solly, string year, string headerVariable)
        {
            var     subsidiaryList = new List <TrialBalanceViewModel>();
            decimal TotalCr        = 0M;
            decimal TotalDr        = 0M;

            foreach (var j in solly)
            {
                var k = new TrialBalanceViewModel
                {
                    code        = j.code,
                    description = j.description,
                    debit       = j.debit,
                    credit      = j.credit
                };

                TotalCr += k.credit;
                TotalDr += k.debit;

                subsidiaryList.Add(k);
            }

            return(new ReportViewModel
            {
                getList = subsidiaryList.ToList(),
                TotalCredit = TotalCr,
                TotalDebit = TotalDr,
                year = year,
                HeaderVariable = headerVariable
            });
        }
Exemplo n.º 3
0
        /// <summary>
        /// 科目期初试算平衡
        /// </summary>
        public List <TrialBalanceViewModel> TrialBalance()
        {
            List <Account> accounts = GetAccountsWithAcctBookId();

            var initBal = from a in accounts
                          group a by a.Direction into g
                          select new { g.Key, InitialBalance = g.Sum(a => a.InitialBalance) };

            TrialBalanceViewModel tbInit = new TrialBalanceViewModel();

            tbInit.ItemName      = "期初余额";
            tbInit.DebitBalance  = initBal.Where(a => a.Key == "借").FirstOrDefault().InitialBalance;
            tbInit.CreditBalance = initBal.Where(a => a.Key == "贷").FirstOrDefault().InitialBalance;
            tbInit.Imbalance     = tbInit.DebitBalance - tbInit.CreditBalance;

            TrialBalanceViewModel tbYtd = new TrialBalanceViewModel();

            tbYtd.ItemName      = "累计发生额";
            tbYtd.DebitBalance  = accounts.Sum(a => a.YtdDebit);
            tbYtd.CreditBalance = accounts.Sum(a => a.YtdCredit);
            tbYtd.Imbalance     = tbYtd.DebitBalance - tbYtd.CreditBalance;

            return(new List <TrialBalanceViewModel>()
            {
                tbInit, tbYtd
            });
        }
        public ActionResult TrialBalance(string date1, string date2)
        {
            try
            {
                TransactionRepository tRepo = new TransactionRepository();
                var transactions            = tRepo.GetAll();

                if (!(String.IsNullOrEmpty(date1) || String.IsNullOrEmpty(date2)))
                {
                    transactions = tRepo.GetTrialBalanceTransactions(Convert.ToDateTime(date1), Convert.ToDateTime(date2));
                }
                transactions = transactions.OrderBy(t => t.MainCategory).ToList();

                var     viewModel = new List <TrialBalanceViewModel>();
                decimal totalDebit = 0, totalCredit = 0;
                foreach (var transaction in transactions)
                {
                    var model = viewModel.FirstOrDefault(i => i.AccountName.ToLower().Equals((transaction.AccountName.ToLower())));
                    if (model == null)   //add new
                    {
                        model              = new TrialBalanceViewModel();
                        model.AccountName  = transaction.AccountName;
                        model.SubCategory  = transaction.SubCategory;
                        model.MainCategory = transaction.MainCategory.ToString();
                        model.TotalCredit  = transaction.TransactionType == TransactionType.Credit ? transaction.Amount : 0;
                        model.TotalDebit   = transaction.TransactionType == TransactionType.Debit ? transaction.Amount : 0;
                        viewModel.Add(model);

                        totalCredit += model.TotalCredit;
                        totalDebit  += model.TotalDebit;
                    }
                    else    //continue with the item
                    {
                        decimal amt = transaction.Amount;
                        if (transaction.TransactionType == TransactionType.Credit)
                        {
                            model.TotalCredit += amt;
                            totalCredit       += amt;
                        }
                        else if (transaction.TransactionType == TransactionType.Debit)
                        {
                            model.TotalDebit += amt;
                            totalDebit       += amt;
                        }
                    }
                }//end foreach

                ViewBag.TotalCredit = totalCredit;
                ViewBag.TotalDebit  = totalDebit;
                return(View(viewModel));
            }
            catch (Exception ex)
            {
                ErrorLogger.Log("Message= " + ex.Message + "\nInner Exception= " + ex.InnerException + "\n");
                return(PartialView("Error"));
            }
        }
Exemplo n.º 5
0
        public ActionResult TrialBalance(string startDate, string endDate)
        {
            var transactions = _transactionContext.GetAllLogs().ToList();

            if (startDate != null && endDate != null)//get trial balance by date
            {
                transactions = _transactionContext.GetLogsByPeriod(startDate, endDate).OrderBy(c => c.MainAccountCategory).ToList();
            }
            var viewModel = new List <TrialBalanceViewModel>();

            foreach (var transaction in transactions)
            {
                var model = viewModel.FirstOrDefault(t => t.AccountCode == transaction.AccountCode);
                if (model == null) //the transaction is unique
                {
                    model = new TrialBalanceViewModel
                    {
                        AccountCode  = transaction.AccountCode,
                        AccountName  = transaction.Name,
                        MainCategory = transaction.MainAccountCategory,
                        DebitTotal   = transaction.TransactionType == TransactionType.Debit?transaction.Amount:0,
                        CreditTotal  = transaction.TransactionType == TransactionType.Credit?transaction.Amount:0,
                    };
                    viewModel.Add(model);
                }
                else
                {
                    //the account code is not unique
                    var amount = transaction.Amount;
                    if (transaction.TransactionType == TransactionType.Debit)
                    {
                        model.DebitTotal += amount;
                        //creditTotal += amount;
                    }
                    else
                    {
                        model.CreditTotal += amount;
                        //debitTotal += amount;
                    }
                }
            }

            ViewBag.DebitTotal  = viewModel.Sum(c => c.DebitTotal);
            ViewBag.CreditTotal = viewModel.Sum(c => c.CreditTotal);
            ViewBag.StartDate   = startDate;
            ViewBag.EndDate     = endDate;
            return(View(viewModel));
        }
        public IEnumerable <TrialBalanceViewModel> FilterViewModel(List <LedgersView> opo)
        {
            var result = new List <TrialBalanceViewModel>();

            foreach (var j in opo)
            {
                var k = new TrialBalanceViewModel
                {
                    code        = j.code,
                    description = j.desc,
                    debit       = checkDebit(j.opBal, j.dbbal, j.crbal),
                    credit      = checkCredit(j.opBal, j.dbbal, j.crbal)
                };

                result.Add(k);
            }
            return(result);
        }
Exemplo n.º 7
0
        public List <TrialBalanceViewModel> FilteredLoan(List <LedgersView> lolly)
        {
            var opoy = new List <TrialBalanceViewModel>();

            foreach (var j in lolly)
            {
                var jk = new TrialBalanceViewModel
                {
                    code        = j.code,
                    description = j.desc,
                    debit       = Math.Abs(j.dbbal - j.crbal),
                    credit      = 0M
                };
                opoy.Add(jk);
            }

            return(opoy);
        }
Exemplo n.º 8
0
        public ActionResult TrialBalance()
        {
            var allLogs    = _context.GetAllLogs().ToList();
            var viewModels = new List <TrialBalanceViewModel>();

            foreach (var transaction in allLogs)
            {
                var model = viewModels.FirstOrDefault(t => t.AccountCode == transaction.AccountCode);

                if (model == null)
                {
                    model = new TrialBalanceViewModel
                    {
                        AccountCode = transaction.AccountCode,
                        AcctName    = transaction.Name,
                        Category    = transaction.MainAccountCategory,
                        totalDebit  = transaction.Type == TransactionType.Debit ? transaction.Amount : 0,
                        totalCredit = transaction.Type == TransactionType.Credit ? transaction.Amount : 0
                    };
                    viewModels.Add(model);
                }
                else
                {
                    var amount = transaction.Amount;
                    if (transaction.Type == TransactionType.Debit)
                    {
                        model.totalDebit += amount;
                    }
                    else
                    {
                        model.totalCredit += amount;
                    }
                }
            }

            ViewBag.DebitTotal  = viewModels.Sum(c => c.totalDebit);
            ViewBag.CreditTotal = viewModels.Sum(c => c.totalCredit);


            return(View(viewModels));
        }