public async Task <FinancialReportViewModel> GetFinancialReportByCompany(string companyCode, string type, int pageIndex, int itemsPage)
        {
            var businessResultQuery = _businessResultRepository.Query(t => t.Company.Code == companyCode && (type == "annual" ? (t.EndDate.Month - t.StartDate.Month) == 11 : (t.EndDate.Month - t.StartDate.Month) == 2) && !t.IsDeleted);
            var businessResults     = await businessResultQuery
                                      .OrderByDescending(t => t.StartDate)
                                      .Skip(itemsPage * pageIndex)
                                      .Take(itemsPage)
                                      .ToListAsync();

            var balanceSheets = await _balanceSheetRepository.Query(t => t.Company.Code == companyCode && (type == "annual" ? (t.EndDate.Month - t.StartDate.Month) == 11 : (t.EndDate.Month - t.StartDate.Month) == 2) && !t.IsDeleted)
                                .OrderByDescending(t => t.StartDate)
                                .Skip(itemsPage * pageIndex)
                                .Take(itemsPage)
                                .ToListAsync();

            var totalItems = businessResultQuery.Count();

            var vm = new FinancialReportViewModel()
            {
                BusinessResults = _mapper.Map <List <BusinessResultViewModel> >(businessResults).OrderBy(t => t.StartDate),
                BalanceSheets   = _mapper.Map <List <BalanceSheetViewModel> >(balanceSheets).OrderBy(t => t.StartDate),
                Pagination      = new PaginationViewModel()
                {
                    ActualPage   = pageIndex,
                    ItemsPerPage = businessResults.Count,
                    TotalItems   = totalItems,
                    TotalPages   = int.Parse(Math.Ceiling(((decimal)totalItems / itemsPage)).ToString())
                }
            };

            vm.Pagination.IsNext     = (vm.Pagination.ActualPage == vm.Pagination.TotalPages - 1) ? false : true;
            vm.Pagination.IsPrevious = (vm.Pagination.ActualPage == 0) ? false : true;

            return(vm);
        }
        public async Task <JsonResult> FinancialReport(string keyword = null, string state = null, DateTime?startDate = null, DateTime?endDate = null)
        {
            FinancialReportViewModel fin = new FinancialReportViewModel(false);
            await fin.GetFinancialReport(true, keyword, state, startDate, endDate);

            return(Json(fin, JsonRequestBehavior.AllowGet));
        }
Esempio n. 3
0
        public ActionResult ViewTransactions([FromUri] int id)

        {
            var acc     = _context.GlAccounts.SingleOrDefault(c => c.Id == id);
            var fReport = new FinancialReportViewModel()
            {
                FinancialReport = new FinancialReport(),
                Id   = id,
                Name = acc.Name
            };

            return(View("ViewTransactions", fReport));
        }
        public async void FinancialReport()
        {
            var controller = new ReportController();
            var result     = await controller.FinancialReport();

            FinancialReportViewModel fin = null;

            try
            {
                fin = (FinancialReportViewModel)result.Data;
            }
            catch (Exception ex)
            {
                throw new Exception("FinancialReportViewModel failed to parse: " + ex.Message);
            }

            Assert.NotNull(fin);
            Assert.AreEqual(String.Empty, fin.ErrorMsg);
            Assert.AreEqual(10, fin.data.Count);
        }